| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174 | 1×
 
1×
1×
1×
68×
 
 
 
68×
68×
68×
68×
 
1×
17×
17×
 
1×
120×
120×
 
1×
137×
137×
137×
137×
137×
137×
137×
137×
5×
5×
2×
 
 
3×
 
 
137×
137×
572×
572×
66×
66×
66×
 
 
66×
 
 
 
66×
 
66×
 
506×
38×
 
468×
468×
10×
 
 
458×
 
468×
468×
462×
1×
1×
 
 
 
 
 
461×
 
 
 
 
462×
131×
131×
 
 
 
 
1×
131×
131×
 
 
131×
81×
 
 
50×
 
131×
106×
 
 
1×
137×
137×
137×
137×
6×
 
131×
506×
506×
34×
 
472×
4×
4×
4×
4×
4×
4×
4×
4×
4×
 
468×
468×
468×
468×
468×
6×
6×
 
 
462×
1×
1×
 
 
461×
 
462×
1×
1×
1×
 
462×
462×
462×
 
 
 
462×
462×
20×
 
462×
 
61×
 
 
468×
 
131×
 
1×
39×
 
1×
 
1×
 
  | define(["require", "exports", "@syncfusion/ej2-base", "./inline-edit-renderer", "./batch-edit-renderer", "./dialog-edit-renderer", "@syncfusion/ej2-base", "../base/enum", "../services/row-model-generator", "../base/util"], function (require, exports, ej2_base_1, inline_edit_renderer_1, batch_edit_renderer_1, dialog_edit_renderer_1, ej2_base_2, enum_1, row_model_generator_1, util_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var EditRender = (function () {
        function EditRender(parent, serviceLocator) {
            this.editType = {
                'Inline': inline_edit_renderer_1.InlineEditRender,
                'Normal': inline_edit_renderer_1.InlineEditRender, 'Batch': batch_edit_renderer_1.BatchEditRender, 'Dialog': dialog_edit_renderer_1.DialogEditRender
            };
            this.parent = parent;
            this.serviceLocator = serviceLocator;
            this.renderer = new this.editType[this.parent.editSettings.mode](parent, serviceLocator);
            this.focus = serviceLocator.getService('focus');
        }
        EditRender.prototype.addNew = function (args) {
            this.renderer.addNew(this.getEditElements(args), args);
            this.convertWidget(args);
        };
        EditRender.prototype.update = function (args) {
            this.renderer.update(this.getEditElements(args), args);
            this.convertWidget(args);
        };
        EditRender.prototype.convertWidget = function (args) {
            var gObj = this.parent;
            var isFocused;
            var cell;
            var value;
            var fForm;
            var frzCols = gObj.getFrozenColumns();
            var form = gObj.element.querySelector('.e-gridform');
            if (frzCols && gObj.editSettings.mode === 'Normal') {
                var rowIndex = parseInt(args.row.getAttribute('aria-rowindex'), 10);
                if (gObj.frozenRows && (args.requestType === 'add' || rowIndex < gObj.frozenRows)) {
                    fForm = gObj.element.querySelector('.e-movableheader').querySelector('.e-gridform');
                }
                else {
                    fForm = gObj.element.querySelector('.e-movablecontent').querySelector('.e-gridform');
                }
            }
            var cols = gObj.editSettings.mode !== 'Batch' ? gObj.getColumns() : [gObj.getColumnByField(args.columnName)];
            for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {
                var col = cols_1[_i];
                if (this.parent.editSettings.template) {
                    var cellArgs = ej2_base_1.extend({}, args);
                    cellArgs.element = form.querySelector('[name=' + util_1.getComplexFieldID(col.field) + ']');
                    Iif (ej2_base_1.isNullOrUndefined(cellArgs.element) && frzCols) {
                        cellArgs.element = fForm.querySelector('[name=' + util_1.getComplexFieldID(col.field) + ']');
                    }
                    Iif (typeof col.edit.write === 'string') {
                        util_1.getObject(col.edit.write, window)(cellArgs);
                    }
                    else {
                        col.edit.write(cellArgs);
                    }
                    continue;
                }
                if (!col.visible || col.commands) {
                    continue;
                }
                value = (col.valueAccessor(col.field, args.rowData, col));
                if (frzCols && cols.indexOf(col) >= frzCols && gObj.editSettings.mode === 'Normal') {
                    cell = fForm.querySelector('[e-mappinguid=' + col.uid + ']');
                }
                else {
                    cell = form.querySelector('[e-mappinguid=' + col.uid + ']');
                }
                var temp = col.edit.write;
                if (!ej2_base_1.isNullOrUndefined(cell)) {
                    if (typeof temp === 'string') {
                        temp = util_1.getObject(temp, window);
                        temp({
                            rowData: args.rowData, element: cell, column: col, requestType: args.requestType, row: args.row,
                            foreignKeyData: col.isForeignColumn() && util_1.getObject(col.field, args.foreignKeyData)
                        });
                    }
                    else {
                        col.edit.write({
                            rowData: args.rowData, element: cell, column: col, requestType: args.requestType, row: args.row,
                            foreignKeyData: col.isForeignColumn() && util_1.getObject(col.field, args.foreignKeyData)
                        });
                    }
                    if (!isFocused && !cell.getAttribute('disabled')) {
                        this.focusElement(cell, args.type);
                        isFocused = true;
                    }
                }
            }
        };
        EditRender.prototype.focusElement = function (elem, type) {
            var chkBox = this.parent.element.querySelector('.e-edit-checkselect');
            Iif (!ej2_base_1.isNullOrUndefined(chkBox)) {
                chkBox.nextElementSibling.classList.add('e-focus');
            }
            if (this.parent.editSettings.mode === 'Batch') {
                this.focus.onClick({ target: ej2_base_1.closest(elem, 'td') }, true);
            }
            else {
                elem.focus();
            }
            if (elem.classList.contains('e-defaultcell')) {
                elem.setSelectionRange(elem.value.length, elem.value.length);
            }
        };
        EditRender.prototype.getEditElements = function (args) {
            var gObj = this.parent;
            var elements = {};
            var cols = gObj.editSettings.mode !== 'Batch' ? gObj.getColumns() : [gObj.getColumnByField(args.columnName)];
            if (this.parent.editSettings.template) {
                return {};
            }
            for (var i = 0, len = cols.length; i < len; i++) {
                var col = cols[i];
                if (!col.visible) {
                    continue;
                }
                if (col.commands || col.commandsTemplate) {
                    var cellRendererFact = this.serviceLocator.getService('cellRendererFactory');
                    var model = new row_model_generator_1.RowModelGenerator(this.parent);
                    var cellRenderer = cellRendererFact.getCellRenderer(enum_1.CellType.CommandColumn);
                    var cells = model.generateRows(args.rowData)[0].cells;
                    var td = cellRenderer.render(cells[i], args.rowData, { 'index': args.row ? args.row.getAttribute('aria-rowindex') : 0 });
                    var div = td.firstElementChild;
                    div.setAttribute('textAlign', td.getAttribute('textAlign'));
                    elements[col.uid] = div;
                    continue;
                }
                var value = (col.valueAccessor(col.field, args.rowData, col));
                var tArgs = { column: col, value: value, type: args.requestType, data: args.rowData };
                var temp = col.edit.create;
                var input = void 0;
                if (col.editTemplate) {
                    input = ej2_base_2.createElement('span');
                    util_1.appendChildren(input, col.getEditTemplate()(args.rowData, this.parent, 'editTemplate'));
                }
                else {
                    if (typeof temp === 'string') {
                        temp = util_1.getObject(temp, window);
                        input = temp(tArgs);
                    }
                    else {
                        input = col.edit.create(tArgs);
                    }
                    if (typeof input === 'string') {
                        var div = ej2_base_2.createElement('div');
                        div.innerHTML = input;
                        input = div.firstChild;
                    }
                    var isInput = input.tagName !== 'input' && input.querySelectorAll('input').length;
                    var complexFieldName = util_1.getComplexFieldID(col.field);
                    ej2_base_2.attributes(isInput ? input.querySelector('input') : input, {
                        name: complexFieldName, 'e-mappinguid': col.uid,
                        id: gObj.element.id + complexFieldName
                    });
                    ej2_base_2.classList(input, ['e-input', 'e-field'], []);
                    if (col.textAlign === 'Right') {
                        input.classList.add('e-ralign');
                    }
                    if ((col.isPrimaryKey || col.isIdentity) && args.requestType === 'beginEdit' ||
                        (col.isIdentity && args.requestType === 'add')) {
                        input.setAttribute('disabled', 'true');
                    }
                }
                elements[col.uid] = input;
            }
            return elements;
        };
        EditRender.prototype.destroy = function () {
            this.renderer.removeEventListener();
        };
        return EditRender;
    }());
    exports.EditRender = EditRender;
});
  |