| 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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216 | 1×
 
1×
1×
1×
38×
 
1×
14×
14×
14×
14×
1×
 
 
13×
 
14×
14×
2×
 
14×
14×
14×
2×
2×
1×
 
 
1×
 
2×
2×
2×
2×
2×
 
 
 
1×
2×
2×
2×
 
 
 
 
2×
2×
 
2×
 
1×
31×
31×
 
1×
32×
4×
4×
4×
4×
4×
4×
2×
 
4×
2×
 
2×
1×
 
1×
1×
 
 
 
 
 
28×
 
1×
31×
31×
1×
 
31×
31×
31×
31×
31×
31×
 
1×
31×
31×
31×
31×
31×
3×
1×
1×
 
 
2×
2×
 
3×
3×
3×
 
 
 
3×
3×
3×
3×
 
 
 
 
 
3×
3×
 
 
1×
3×
3×
3×
3×
 
 
3×
3×
 
1×
5×
5×
10×
 
5×
10×
 
 
1×
45×
45×
45×
45×
30×
 
45×
 
 
 
45×
 
45×
3×
3×
3×
 
42×
42×
42×
42×
42×
42×
2×
 
42×
3×
3×
 
42×
42×
42×
337×
337×
337×
 
 
337×
311×
311×
28×
 
283×
4×
 
 
 
26×
 
337×
337×
337×
 
42×
42×
42×
42×
42×
 
1×
 
1×
3×
3×
 
1×
 
1×
 
  | define(["require", "exports", "@syncfusion/ej2-base", "../base/constant", "../base/util"], function (require, exports, ej2_base_1, events, util_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var InlineEditRender = (function () {
        function InlineEditRender(parent) {
            this.parent = parent;
        }
        InlineEditRender.prototype.addNew = function (elements, args) {
            this.isEdit = false;
            var mTbody;
            var tbody;
            if (this.parent.frozenRows) {
                tbody = this.parent.getHeaderContent().querySelector('tbody');
            }
            else {
                tbody = this.parent.getContentTable().querySelector('tbody');
            }
            args.row = ej2_base_1.createElement('tr', { className: 'e-row e-addedrow' });
            if (tbody.querySelector('.e-emptyrow')) {
                tbody.querySelector('.e-emptyrow').classList.add('e-hide');
            }
            tbody.insertBefore(args.row, tbody.firstChild);
            args.row.appendChild(this.getEditElement(elements, false, undefined, args, true));
            if (this.parent.getFrozenColumns()) {
                var mEle = this.renderMovableform(args.row, args);
                if (this.parent.frozenRows) {
                    mTbody = this.parent.getHeaderContent().querySelector('.e-movableheader').querySelector('tbody');
                }
                else {
                    mTbody = this.parent.getContent().querySelector('.e-movablecontent').querySelector('tbody');
                }
                mTbody.insertBefore(mEle, mTbody.firstChild);
                args.row.querySelector('.e-normaledit').setAttribute('colspan', this.parent.getVisibleFrozenColumns() + '');
                mEle.setAttribute('colspan', '' + (this.parent.getVisibleColumns().length - this.parent.getVisibleFrozenColumns()));
                Eif (this.parent.height === 'auto') {
                    this.parent.notify(events.frozenHeight, {});
                }
            }
        };
        InlineEditRender.prototype.renderMovableform = function (ele, args) {
            var mEle = ele.cloneNode(true);
            var form = args.movableForm = mEle.querySelector('form');
            Iif (this.parent.editSettings.template) {
                form.innerHTML = '';
                this.appendChildren(form, args.rowData, false);
                return mEle;
            }
            this.renderMovable(ele, mEle);
            mEle.querySelector('colgroup').innerHTML = this.parent.getHeaderContent()
                .querySelector('.e-movableheader').querySelector('colgroup').innerHTML;
            return mEle;
        };
        InlineEditRender.prototype.updateFreezeEdit = function (row, td) {
            td = td.concat([].slice.call(this.getFreezeRow(row).querySelectorAll('td.e-rowcell')));
            return td;
        };
        InlineEditRender.prototype.getFreezeRow = function (row) {
            if (this.parent.getFrozenColumns()) {
                var idx = parseInt(row.getAttribute('aria-rowindex'), 10);
                var fCont = this.parent.getContent().querySelector('.e-frozencontent').querySelector('tbody');
                var mCont = this.parent.getContent().querySelector('.e-movablecontent').querySelector('tbody');
                var fHdr = this.parent.getHeaderContent().querySelector('.e-frozenheader').querySelector('tbody');
                var mHdr = this.parent.getHeaderContent().querySelector('.e-movableheader').querySelector('tbody');
                if (this.parent.frozenRows && idx >= this.parent.frozenRows) {
                    idx -= this.parent.frozenRows;
                }
                if (fCont.contains(row)) {
                    return mCont.children[idx];
                }
                else if (mCont.contains(row)) {
                    return fCont.children[idx];
                }
                else Eif (fHdr.contains(row)) {
                    return mHdr.children[idx];
                }
                else if (mHdr.contains(row)) {
                    return fHdr.children[idx];
                }
            }
            return row;
        };
        InlineEditRender.prototype.update = function (elements, args) {
            this.isEdit = true;
            if (ej2_base_1.closest(args.row, '.e-movablecontent')) {
                args.row = this.getFreezeRow(args.row);
            }
            var tdElement = [].slice.call(args.row.querySelectorAll('td.e-rowcell'));
            args.row.innerHTML = '';
            tdElement = this.updateFreezeEdit(args.row, tdElement);
            args.row.appendChild(this.getEditElement(elements, true, tdElement, args, true));
            args.row.classList.add('e-editedrow');
            this.refreshFreezeEdit(args.row, args);
        };
        InlineEditRender.prototype.refreshFreezeEdit = function (row, args) {
            var td = row.firstChild;
            var fCls;
            var cont;
            var idx = parseInt(row.getAttribute('aria-rowindex'), 10);
            if (this.parent.getFrozenColumns()) {
                if (idx < this.parent.frozenRows) {
                    cont = this.parent.getHeaderContent();
                    fCls = '.e-frozenheader';
                }
                else {
                    cont = this.parent.getContent();
                    fCls = '.e-frozencontent';
                }
                var mTd = td.cloneNode(true);
                var form = args.movableForm = mTd.querySelector('form');
                Iif (this.parent.editSettings.template) {
                    form.innerHTML = '';
                    this.appendChildren(form, args.rowData, false);
                }
                var fRows = void 0;
                Eif (cont.querySelector(fCls).contains(row)) {
                    fRows = this.parent.getMovableRowByIndex(idx);
                    this.updateFrozenCont(fRows, td, mTd);
                }
                else {
                    fRows = this.parent.getRowByIndex(idx);
                    this.updateFrozenCont(fRows, mTd, td);
                }
                fRows.appendChild(mTd);
                fRows.classList.add('e-editedrow');
            }
        };
        InlineEditRender.prototype.updateFrozenCont = function (row, ele, mEle) {
            row.innerHTML = '';
            Eif (!this.parent.editSettings.template) {
                this.renderMovable(ele, mEle);
                mEle.querySelector('colgroup').innerHTML = this.parent.getHeaderContent()
                    .querySelector('.e-movableheader').querySelector('colgroup').innerHTML;
            }
            ele.setAttribute('colspan', this.parent.getVisibleFrozenColumns() + '');
            mEle.setAttribute('colspan', this.parent.getColumns().length - this.parent.getFrozenColumns() + '');
        };
        InlineEditRender.prototype.renderMovable = function (ele, mEle) {
            var frzCols = this.parent.getFrozenColumns();
            for (var i = 0; i < frzCols; i++) {
                mEle.querySelector('tr').removeChild(mEle.querySelector('tr').children[0]);
            }
            for (var i = frzCols, len = ele.querySelector('tr').childElementCount; i < len; i++) {
                ele.querySelector('tr').removeChild(ele.querySelector('tr').children[ele.querySelector('tr').childElementCount - 1]);
            }
        };
        InlineEditRender.prototype.getEditElement = function (elements, isEdit, tdElement, args, isFrozen) {
            var gObj = this.parent;
            var gLen = 0;
            var isDetail = !ej2_base_1.isNullOrUndefined(gObj.detailTemplate) || !ej2_base_1.isNullOrUndefined(gObj.childGrid) ? 1 : 0;
            if (gObj.allowGrouping) {
                gLen = gObj.groupSettings.columns.length;
            }
            var td = ej2_base_1.createElement('td', {
                className: 'e-editcell e-normaledit',
                attrs: { colspan: (gObj.getVisibleColumns().length - gObj.getVisibleFrozenColumns() + gLen + isDetail).toString() }
            });
            var form = args.form =
                ej2_base_1.createElement('form', { id: gObj.element.id + 'EditForm', className: 'e-gridform' });
            if (this.parent.editSettings.template) {
                this.appendChildren(form, args.rowData, isFrozen);
                td.appendChild(form);
                return td;
            }
            var table = ej2_base_1.createElement('table', { className: 'e-table e-inline-edit', attrs: { cellspacing: '0.25' } });
            table.appendChild(gObj.getContentTable().querySelector('colgroup').cloneNode(true));
            var tbody = ej2_base_1.createElement('tbody');
            var tr = ej2_base_1.createElement('tr');
            var i = 0;
            if (isDetail) {
                tr.insertBefore(ej2_base_1.createElement('td', { className: 'e-detailrowcollapse' }), tr.firstChild);
            }
            while (i < gLen) {
                tr.appendChild(ej2_base_1.createElement('td', { className: 'e-indentcell' }));
                i++;
            }
            var m = 0;
            i = 0;
            while ((isEdit && m < tdElement.length && i < gObj.getColumns().length) || i < gObj.getColumns().length) {
                var span = isEdit ? tdElement[m].getAttribute('colspan') : null;
                var col = gObj.getColumns()[i];
                var td_1 = ej2_base_1.createElement('td', {
                    className: 'e-rowcell', attrs: { style: 'text-align:' + (col.textAlign ? col.textAlign : ''), 'colspan': span ? span : '' }
                });
                if (col.visible) {
                    td_1.appendChild(elements[col.uid]);
                    if (col.editType === 'booleanedit') {
                        td_1.classList.add('e-boolcell');
                    }
                    else if (col.commands || col.commandsTemplate) {
                        ej2_base_1.addClass([td_1], 'e-unboundcell');
                    }
                }
                else {
                    td_1.classList.add('e-hide');
                }
                tr.appendChild(td_1);
                i = span ? i + parseInt(span, 10) : i + 1;
                m++;
            }
            tbody.appendChild(tr);
            table.appendChild(tbody);
            form.appendChild(table);
            td.appendChild(form);
            return td;
        };
        InlineEditRender.prototype.removeEventListener = function () {
        };
        InlineEditRender.prototype.appendChildren = function (form, data, isFrozen) {
            var dummyData = ej2_base_1.extend({}, data, { isAdd: !this.isEdit, isFrozen: isFrozen }, true);
            util_1.appendChildren(form, this.parent.getEditTemplate()(dummyData, this.parent, 'editSettingsTemplate'));
        };
        return InlineEditRender;
    }());
    exports.InlineEditRender = InlineEditRender;
});
  |