@syncfusion/ej2-base 19.2.55 → 19.3.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/CHANGELOG.md +1 -89
- package/README.md +1 -1
- package/dist/ej2-base.umd.min.js +2 -2
- package/dist/ej2-base.umd.min.js.map +1 -1
- package/dist/es6/ej2-base.es2015.js +2650 -2401
- package/dist/es6/ej2-base.es2015.js.map +1 -1
- package/dist/es6/ej2-base.es5.js +3186 -2948
- package/dist/es6/ej2-base.es5.js.map +1 -1
- package/dist/global/ej2-base.min.js +2 -2
- package/dist/global/ej2-base.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/e2e/crypto.js +1 -1
- package/e2e/index.d.ts +0 -3
- package/e2e/m.protractor.config.js +1 -1
- package/e2e/protractor.config.js +1 -1
- package/helpers/e2e/base.js +3 -3
- package/package.json +7 -64
- package/src/ajax.d.ts +24 -10
- package/src/ajax.js +14 -6
- package/src/animation-model.d.ts +12 -4
- package/src/animation.d.ts +37 -12
- package/src/animation.js +48 -22
- package/src/base.d.ts +31 -11
- package/src/base.js +34 -16
- package/src/browser.d.ts +63 -25
- package/src/browser.js +60 -15
- package/src/child-property.d.ts +21 -10
- package/src/child-property.js +23 -13
- package/src/component-model.d.ts +4 -1
- package/src/component.d.ts +42 -5
- package/src/component.js +52 -35
- package/src/dom.d.ts +76 -25
- package/src/dom.js +128 -124
- package/src/draggable-model.d.ts +5 -0
- package/src/draggable.d.ts +4 -1
- package/src/draggable.js +8 -2
- package/src/droppable-model.d.ts +7 -4
- package/src/droppable.d.ts +7 -3
- package/src/droppable.js +1 -0
- package/src/event-handler.d.ts +10 -6
- package/src/event-handler.js +11 -7
- package/src/hijri-parser.d.ts +12 -0
- package/src/hijri-parser.js +111 -90
- package/src/internationalization.d.ts +54 -21
- package/src/internationalization.js +55 -18
- package/src/intl/date-formatter.d.ts +19 -8
- package/src/intl/date-formatter.js +36 -13
- package/src/intl/date-parser.d.ts +30 -23
- package/src/intl/date-parser.js +61 -42
- package/src/intl/intl-base.d.ts +123 -46
- package/src/intl/intl-base.js +451 -377
- package/src/intl/number-formatter.d.ts +45 -34
- package/src/intl/number-formatter.js +47 -35
- package/src/intl/number-parser.d.ts +11 -8
- package/src/intl/number-parser.js +14 -11
- package/src/intl/parser-base.d.ts +38 -13
- package/src/intl/parser-base.js +45 -16
- package/src/keyboard-model.d.ts +5 -2
- package/src/keyboard.d.ts +26 -8
- package/src/keyboard.js +24 -9
- package/src/l10n.d.ts +16 -7
- package/src/l10n.js +16 -7
- package/src/module-loader.d.ts +13 -8
- package/src/module-loader.js +13 -9
- package/src/notify-property-change.d.ts +19 -7
- package/src/notify-property-change.js +140 -24
- package/src/observer.d.ts +17 -5
- package/src/observer.js +19 -7
- package/src/sanitize-helper.d.ts +1 -0
- package/src/sanitize-helper.js +1 -1
- package/src/template-engine.d.ts +30 -4
- package/src/template-engine.js +37 -12
- package/src/template.d.ts +8 -3
- package/src/template.js +67 -19
- package/src/touch-model.d.ts +11 -4
- package/src/touch.d.ts +51 -9
- package/src/touch.js +45 -13
- package/src/util.d.ts +67 -37
- package/src/util.js +99 -49
- package/styles/_bootstrap-definition.scss +0 -1
- package/styles/_bootstrap5-dark-definition.scss +10 -0
- package/styles/_bootstrap5-definition.scss +9 -0
- package/styles/_fabric-dark-definition.scss +0 -1
- package/styles/_highcontrast-light-definition.scss +1 -0
- package/styles/_material-definition.scss +1 -0
- package/styles/bootstrap-dark.css +2613 -32
- package/styles/bootstrap.css +2613 -32
- package/styles/bootstrap4.css +2149 -32
- package/styles/bootstrap5-dark.css +2157 -0
- package/styles/bootstrap5-dark.scss +3 -0
- package/styles/bootstrap5.css +2157 -0
- package/styles/bootstrap5.scss +3 -0
- package/styles/common/_core.scss +28 -63
- package/styles/definition/_bootstrap-dark.scss +3 -3
- package/styles/definition/_bootstrap.scss +1 -1
- package/styles/definition/_bootstrap5-dark.scss +357 -0
- package/styles/definition/_bootstrap5.scss +356 -0
- package/styles/definition/_material-dark.scss +1 -1
- package/styles/definition/_tailwind-dark.scss +18 -1
- package/styles/definition/_tailwind.scss +17 -0
- package/styles/fabric-dark.css +2589 -32
- package/styles/fabric.css +2589 -32
- package/styles/highcontrast-light.css +2573 -32
- package/styles/highcontrast.css +2573 -32
- package/styles/material-dark.css +2549 -32
- package/styles/material.css +2549 -32
- package/styles/tailwind-dark.css +2221 -32
- package/styles/tailwind.css +2221 -32
- package/src/virtual-dom.d.ts +0 -32
- package/src/virtual-dom.js +0 -449
package/src/virtual-dom.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ElementProperties } from './dom';
|
|
2
|
-
export interface VirtualObject {
|
|
3
|
-
children?: VirtualObject[];
|
|
4
|
-
tagName?: string;
|
|
5
|
-
attributes?: {
|
|
6
|
-
style?: Object;
|
|
7
|
-
};
|
|
8
|
-
parent?: VirtualObject;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Namespace for VirtualDOM
|
|
12
|
-
* @private
|
|
13
|
-
*/
|
|
14
|
-
export declare namespace VirtualDOM {
|
|
15
|
-
function createElement(tagName: string, properties?: ElementProperties): VirtualObject;
|
|
16
|
-
function assignParent(childrens: VirtualObject[], parent: VirtualObject): void;
|
|
17
|
-
function append(fromElements: Object[], toElement: VirtualObject): void;
|
|
18
|
-
function prepend(child: Object[], toElement: {
|
|
19
|
-
children: Object[];
|
|
20
|
-
}): void;
|
|
21
|
-
function detach(element: VirtualObject): VirtualObject;
|
|
22
|
-
function vDomSelector({ ele, selector, selectAll, immediateParent }: {
|
|
23
|
-
ele: VirtualObject & VirtualObject[];
|
|
24
|
-
selector: string;
|
|
25
|
-
selectAll: boolean;
|
|
26
|
-
immediateParent?: boolean;
|
|
27
|
-
}): VirtualObject[];
|
|
28
|
-
function accessElement(ele: VirtualObject, mapper: any, selectAll: boolean, immediateParent?: boolean): VirtualObject[];
|
|
29
|
-
function ConvertHTMLToJSon(htmlString: string): VirtualObject[];
|
|
30
|
-
function cloneNode(ele: VirtualObject | Element, deep: boolean): any;
|
|
31
|
-
function setStyleAttribute(element: VirtualObject, attrs: Object): void;
|
|
32
|
-
}
|
package/src/virtual-dom.js
DELETED
|
@@ -1,449 +0,0 @@
|
|
|
1
|
-
import { isObject, getValue, extend, isNullOrUndefined } from './util';
|
|
2
|
-
import { getRandomId } from './template-engine';
|
|
3
|
-
var simpleRegex = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/;
|
|
4
|
-
var multipleSplitRegex = /(?:#([\w-]+)|(\w+)|\.([\w-]+))/g;
|
|
5
|
-
var idClassSelector = /^(\.|#)/;
|
|
6
|
-
var selectMapper = {
|
|
7
|
-
'.': 'className',
|
|
8
|
-
'#': 'id'
|
|
9
|
-
};
|
|
10
|
-
var classRegexString = '(?=.*?\\b{value}\\b)';
|
|
11
|
-
var assigner = { className: 'attributes.className', id: 'attributes.id', tagName: 'tagName' };
|
|
12
|
-
var emptyElements = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input',
|
|
13
|
-
'link', 'meta', 'param', 'embed', 'command', 'keygen', 'source', 'track', 'wbr'];
|
|
14
|
-
var blockElements = ['a', 'address', 'article', 'applet', 'aside', 'audio', 'blockquote',
|
|
15
|
-
'button', 'canvas', 'center', 'dd', 'del', 'dir', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure',
|
|
16
|
-
'footer', 'form', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'iframe', 'ins',
|
|
17
|
-
'isindex', 'li', 'map', 'menu', 'noframes', 'noscript', 'object', 'ol', 'output', 'p', 'pre', 'section',
|
|
18
|
-
'script', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'ul', 'video'];
|
|
19
|
-
var inlineElement = ['abbr', 'acronym', 'applet', 'b', 'basefont', 'bdo', 'big', 'br', 'button',
|
|
20
|
-
'cite', 'code', 'del', 'dfn', 'em', 'font', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'map',
|
|
21
|
-
'object', 'q', 's', 'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'sub', 'sup', 'textarea',
|
|
22
|
-
'tt', 'u', 'var'];
|
|
23
|
-
var selfClosingElements = ['colgroup', 'dd', 'dt', 'li', 'options', 'p', 'td', 'tfoot', 'th',
|
|
24
|
-
'thead', 'tr'];
|
|
25
|
-
var fillAttrs = ['checked', 'compact', 'declare', 'defer', 'disabled', 'ismap', 'multiple',
|
|
26
|
-
'nohref', 'noresize', 'noshade', 'nowrap', 'readonly', 'selected'];
|
|
27
|
-
var cspElement = ['Script', 'style'];
|
|
28
|
-
var nameMapper = { 'tabindex': 'tabIndex' };
|
|
29
|
-
var startRegex = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/;
|
|
30
|
-
var endRegex = /^<\/([-A-Za-z0-9_]+)[^>]*>/;
|
|
31
|
-
var attributeRegex = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;
|
|
32
|
-
/**
|
|
33
|
-
* Namespace for VirtualDOM
|
|
34
|
-
* @private
|
|
35
|
-
*/
|
|
36
|
-
export var VirtualDOM;
|
|
37
|
-
(function (VirtualDOM) {
|
|
38
|
-
//tslint:disable:no-any
|
|
39
|
-
function createElement(tagName, properties) {
|
|
40
|
-
var children = [];
|
|
41
|
-
var extended = extend({}, {}, properties, true);
|
|
42
|
-
if (!isNullOrUndefined(properties)) {
|
|
43
|
-
var keys = Object.keys(properties);
|
|
44
|
-
if (keys.length) {
|
|
45
|
-
if (extended.innerHTML) {
|
|
46
|
-
children = ConvertHTMLToJSon(extended.innerHTML);
|
|
47
|
-
delete extended.innerHTML;
|
|
48
|
-
}
|
|
49
|
-
if (extended.attrs) {
|
|
50
|
-
extend(extended, extended.attrs);
|
|
51
|
-
delete extended.attrs;
|
|
52
|
-
}
|
|
53
|
-
if (extended.styles) {
|
|
54
|
-
var valArr = extended.styles.split(';');
|
|
55
|
-
var vObj = {};
|
|
56
|
-
for (var i = 0, length_1 = valArr.length; i < length_1; i++) {
|
|
57
|
-
var cVal = valArr[i];
|
|
58
|
-
var styleSplit = cVal.split(':');
|
|
59
|
-
vObj[styleSplit[0]] = styleSplit[1];
|
|
60
|
-
}
|
|
61
|
-
delete extended.styles;
|
|
62
|
-
extended.style = vObj;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
tagName: tagName,
|
|
68
|
-
attributes: extended || {},
|
|
69
|
-
children: children
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
VirtualDOM.createElement = createElement;
|
|
73
|
-
function assignParent(childrens, parent) {
|
|
74
|
-
if (parent && childrens) {
|
|
75
|
-
childrens.forEach(function (child) {
|
|
76
|
-
if (isObject(child)) {
|
|
77
|
-
if (child.parent) {
|
|
78
|
-
detach(child);
|
|
79
|
-
}
|
|
80
|
-
child.parent = parent;
|
|
81
|
-
}
|
|
82
|
-
return child;
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
VirtualDOM.assignParent = assignParent;
|
|
87
|
-
function append(fromElements, toElement) {
|
|
88
|
-
assignParent(fromElements, toElement);
|
|
89
|
-
if (toElement.children) {
|
|
90
|
-
toElement.children = toElement.children.concat(fromElements);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
toElement.children = [].concat(fromElements);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
VirtualDOM.append = append;
|
|
97
|
-
function prepend(child, toElement) {
|
|
98
|
-
assignParent(child, toElement);
|
|
99
|
-
if (!toElement.children || !toElement.children.length) {
|
|
100
|
-
toElement.children = [];
|
|
101
|
-
toElement.children.concat(child);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
for (var i = child.length - 1; i >= 0; i--) {
|
|
105
|
-
toElement.children.unshift(child[i]);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
VirtualDOM.prepend = prepend;
|
|
110
|
-
function detach(element) {
|
|
111
|
-
var parent = element.parent;
|
|
112
|
-
if (parent) {
|
|
113
|
-
var index = parent.children.indexOf(element);
|
|
114
|
-
if (index !== -1) {
|
|
115
|
-
parent.children.splice(index);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return parent;
|
|
119
|
-
}
|
|
120
|
-
VirtualDOM.detach = detach;
|
|
121
|
-
//tslint:disable-next-line
|
|
122
|
-
function vDomSelector(_a) {
|
|
123
|
-
var ele = _a.ele, selector = _a.selector, selectAll = _a.selectAll, immediateParent = _a.immediateParent;
|
|
124
|
-
var iSelector = selector.split(' ');
|
|
125
|
-
var curColl = ele;
|
|
126
|
-
for (var i = 0, length_2 = iSelector.length; i < length_2; i++) {
|
|
127
|
-
var isDescendant = false;
|
|
128
|
-
var parent_2 = curColl;
|
|
129
|
-
var curSelector = iSelector[i];
|
|
130
|
-
var simpleSelector = false;
|
|
131
|
-
var mapper = [];
|
|
132
|
-
if (simpleRegex.test(curSelector)) {
|
|
133
|
-
simpleSelector = true;
|
|
134
|
-
processSelector(curSelector, mapper);
|
|
135
|
-
}
|
|
136
|
-
else if (curSelector.indexOf('>') === -1) {
|
|
137
|
-
var splitSelector = curSelector.match(multipleSplitRegex);
|
|
138
|
-
for (var _i = 0, splitSelector_1 = splitSelector; _i < splitSelector_1.length; _i++) {
|
|
139
|
-
var curMap = splitSelector_1[_i];
|
|
140
|
-
processSelector(curMap, mapper);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else if (curSelector.indexOf('>') !== -1) {
|
|
144
|
-
isDescendant = true;
|
|
145
|
-
var dSelector = curSelector.split('>');
|
|
146
|
-
//tslint:disable-next-line
|
|
147
|
-
var dParent = ele;
|
|
148
|
-
var descendent = void 0;
|
|
149
|
-
var flag = 0;
|
|
150
|
-
for (var _b = 0, dSelector_1 = dSelector; _b < dSelector_1.length; _b++) {
|
|
151
|
-
var sel = dSelector_1[_b];
|
|
152
|
-
if (!dParent) {
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
if (dParent.length) {
|
|
156
|
-
var descendentChild = [];
|
|
157
|
-
for (var _c = 0, dParent_1 = dParent; _c < dParent_1.length; _c++) {
|
|
158
|
-
var child = dParent_1[_c];
|
|
159
|
-
descendentChild = descendentChild.concat(vDomSelector({
|
|
160
|
-
ele: child, selector: sel,
|
|
161
|
-
selectAll: selectAll, immediateParent: !!flag
|
|
162
|
-
}));
|
|
163
|
-
}
|
|
164
|
-
descendent = descendentChild;
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
descendent = vDomSelector({ ele: dParent, selector: sel, selectAll: selectAll, immediateParent: !!flag });
|
|
168
|
-
}
|
|
169
|
-
flag++;
|
|
170
|
-
dParent = descendent;
|
|
171
|
-
}
|
|
172
|
-
if (descendent) {
|
|
173
|
-
curColl = descendent;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
if (!isDescendant) {
|
|
177
|
-
if (parent_2.length) {
|
|
178
|
-
var iCurSelector = [];
|
|
179
|
-
for (var _d = 0, parent_1 = parent_2; _d < parent_1.length; _d++) {
|
|
180
|
-
var curParent = parent_1[_d];
|
|
181
|
-
iCurSelector = iCurSelector.concat(accessElement(curParent, mapper, selectAll, immediateParent));
|
|
182
|
-
}
|
|
183
|
-
curColl = iCurSelector;
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
curColl = accessElement(parent_2, mapper, selectAll, immediateParent);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
if (selectAll) {
|
|
191
|
-
return curColl;
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
return curColl[0] || null;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
VirtualDOM.vDomSelector = vDomSelector;
|
|
198
|
-
function processSelector(selector, mapper) {
|
|
199
|
-
var match = selector.match(idClassSelector);
|
|
200
|
-
var obj = {};
|
|
201
|
-
if (match) {
|
|
202
|
-
var curMapper = selectMapper[match[0]];
|
|
203
|
-
if (curMapper === 'className') {
|
|
204
|
-
var curObj = mapper.filter(function (obj) { return obj.hasOwnProperty('className'); })[0];
|
|
205
|
-
var canPush = false;
|
|
206
|
-
if (!curObj) {
|
|
207
|
-
canPush = true;
|
|
208
|
-
curObj = {};
|
|
209
|
-
}
|
|
210
|
-
var existValue = curObj[curMapper] || '';
|
|
211
|
-
curObj[curMapper] = existValue + classRegexString.replace('{value}', selector.replace('.', ''));
|
|
212
|
-
if (canPush) {
|
|
213
|
-
mapper.push(curObj);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
obj[curMapper] = selector.replace(match[0], '');
|
|
218
|
-
mapper.push(obj);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
mapper.push({ tagName: selector });
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
//tslint:disable-next-line
|
|
226
|
-
function accessElement(ele, mapper, selectAll, immediateParent) {
|
|
227
|
-
if (ele.children) {
|
|
228
|
-
//tslint:disable-next-line
|
|
229
|
-
var temp_1 = ele.children.filter(function (child) {
|
|
230
|
-
if (typeof (child) !== 'string') {
|
|
231
|
-
var matched = true;
|
|
232
|
-
for (var _i = 0, mapper_1 = mapper; _i < mapper_1.length; _i++) {
|
|
233
|
-
var map = mapper_1[_i];
|
|
234
|
-
var key = Object.keys(map)[0];
|
|
235
|
-
var expected = map[key];
|
|
236
|
-
var actualValue = getValue(assigner[key], child);
|
|
237
|
-
if (key === 'className') {
|
|
238
|
-
if (!(new RegExp('^' + expected + '.*$').test(actualValue))) {
|
|
239
|
-
matched = false;
|
|
240
|
-
break;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
else if (actualValue !== expected) {
|
|
244
|
-
matched = false;
|
|
245
|
-
break;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return matched;
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
return false;
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
if (!immediateParent && (!temp_1.length || selectAll)) {
|
|
255
|
-
ele.children.forEach(function (child) {
|
|
256
|
-
if (isObject(child)) {
|
|
257
|
-
temp_1 = temp_1.concat(accessElement(child, mapper, selectAll));
|
|
258
|
-
}
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
return temp_1;
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
return [];
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
VirtualDOM.accessElement = accessElement;
|
|
268
|
-
function ConvertHTMLToJSon(htmlString) {
|
|
269
|
-
var results = [];
|
|
270
|
-
var isText;
|
|
271
|
-
var tagArray = [];
|
|
272
|
-
var backup = htmlString;
|
|
273
|
-
var nodeArray = [];
|
|
274
|
-
while (htmlString) {
|
|
275
|
-
isText = true;
|
|
276
|
-
var lastVal = getLastValue(tagArray);
|
|
277
|
-
if (!lastVal || !contains(cspElement, lastVal)) {
|
|
278
|
-
if (htmlString.indexOf('</') === 0) {
|
|
279
|
-
var match = htmlString.match(endRegex);
|
|
280
|
-
if (match) {
|
|
281
|
-
htmlString = htmlString.substring(match[0].length);
|
|
282
|
-
//tslint:disable-next-line
|
|
283
|
-
match[0].replace(endRegex, iterateEndTag);
|
|
284
|
-
}
|
|
285
|
-
isText = false;
|
|
286
|
-
}
|
|
287
|
-
else if (htmlString.indexOf('<') === 0) {
|
|
288
|
-
var match = htmlString.match(startRegex);
|
|
289
|
-
if (match) {
|
|
290
|
-
htmlString = htmlString.substring(match[0].length);
|
|
291
|
-
//tslint:disable-next-line
|
|
292
|
-
match[0].replace(startRegex, iterateStartTag);
|
|
293
|
-
}
|
|
294
|
-
isText = false;
|
|
295
|
-
}
|
|
296
|
-
if (isText) {
|
|
297
|
-
var tagIndex = htmlString.indexOf('<');
|
|
298
|
-
var text = tagIndex < 0 ? htmlString : htmlString.substring(0, tagIndex);
|
|
299
|
-
htmlString = tagIndex < 0 ? '' : htmlString.substring(tagIndex);
|
|
300
|
-
iterateText(text);
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
//tslint:disable-next-line
|
|
305
|
-
htmlString = htmlString.replace(new RegExp('([\\s\\S]*?)<\/' + getLastValue(nodeArray) + '[^>]*>'), function (all, text) {
|
|
306
|
-
text = text.replace(/<!--([\s\S]*?)-->|<!\[CDATA\[([\s\S]*?)]]>/g, '$1$2');
|
|
307
|
-
iterateText(text);
|
|
308
|
-
return '';
|
|
309
|
-
});
|
|
310
|
-
iterateEndTag('', getLastValue(tagArray));
|
|
311
|
-
}
|
|
312
|
-
backup = htmlString;
|
|
313
|
-
}
|
|
314
|
-
function iterateStartTag(start, tagName, rest) {
|
|
315
|
-
tagName = tagName.toLowerCase();
|
|
316
|
-
if (contains(blockElements, tagName)) {
|
|
317
|
-
while (getLastValue(tagArray) && contains(inlineElement, getLastValue(tagArray))) {
|
|
318
|
-
iterateEndTag('', getLastValue(tagArray));
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
if (contains(selfClosingElements, tagName) && getLastValue(tagArray)) {
|
|
322
|
-
iterateEndTag('', tagName);
|
|
323
|
-
}
|
|
324
|
-
var isSelfTag = contains(emptyElements, tagName);
|
|
325
|
-
if (!isSelfTag) {
|
|
326
|
-
tagArray.push(tagName);
|
|
327
|
-
}
|
|
328
|
-
var attrs = {};
|
|
329
|
-
//tslint:disable-next-line
|
|
330
|
-
rest.replace(attributeRegex, function (match, name) {
|
|
331
|
-
var names = [];
|
|
332
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
333
|
-
names[_i - 2] = arguments[_i];
|
|
334
|
-
}
|
|
335
|
-
//tslint:disable-next-line
|
|
336
|
-
var val = names[2] ? names[2] :
|
|
337
|
-
names[3] ? names[3] :
|
|
338
|
-
names[4] ? names[4] :
|
|
339
|
-
contains(fillAttrs, name) ? name : '';
|
|
340
|
-
if (name === 'style') {
|
|
341
|
-
var valArr = val.split(';');
|
|
342
|
-
var vObj = {};
|
|
343
|
-
for (var i = 0, length_3 = valArr.length; i < length_3; i++) {
|
|
344
|
-
var cVal = valArr[i];
|
|
345
|
-
var styleSplit = cVal.split(':');
|
|
346
|
-
vObj[styleSplit[0]] = styleSplit[1];
|
|
347
|
-
}
|
|
348
|
-
val = vObj;
|
|
349
|
-
}
|
|
350
|
-
name = nameMapper[name] || name;
|
|
351
|
-
attrs[name] = val;
|
|
352
|
-
//tslint:disable-next-line
|
|
353
|
-
});
|
|
354
|
-
attrs['data-id'] = getRandomId();
|
|
355
|
-
var tagObject = {
|
|
356
|
-
tagName: tagName,
|
|
357
|
-
attributes: attrs
|
|
358
|
-
};
|
|
359
|
-
if (isSelfTag) {
|
|
360
|
-
var parent_3 = (nodeArray[0] || results);
|
|
361
|
-
if (parent_3.children === undefined) {
|
|
362
|
-
parent_3.children = [];
|
|
363
|
-
}
|
|
364
|
-
tagObject.parent = parent_3;
|
|
365
|
-
parent_3.children.push(tagObject);
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
nodeArray.unshift(tagObject);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
function iterateEndTag(start, tagName) {
|
|
372
|
-
var pos;
|
|
373
|
-
if (!tagName) {
|
|
374
|
-
pos = 0;
|
|
375
|
-
}
|
|
376
|
-
else {
|
|
377
|
-
for (pos = tagArray.length - 1; pos >= 0; pos--) {
|
|
378
|
-
if (tagArray[pos] === tagName) {
|
|
379
|
-
break;
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
if (pos >= 0) {
|
|
384
|
-
for (var j = nodeArray.length - 1; j >= pos; j--) {
|
|
385
|
-
//tslint:disable-next-line
|
|
386
|
-
var node = nodeArray.shift();
|
|
387
|
-
if (nodeArray.length === 0) {
|
|
388
|
-
results.push(node);
|
|
389
|
-
}
|
|
390
|
-
else {
|
|
391
|
-
var parent_4 = nodeArray[0];
|
|
392
|
-
if (parent_4.children === undefined) {
|
|
393
|
-
parent_4.children = [];
|
|
394
|
-
}
|
|
395
|
-
node.parent = parent_4;
|
|
396
|
-
parent_4.children.push(node);
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
tagArray.length = pos;
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
function iterateText(text) {
|
|
403
|
-
if (nodeArray.length === 0) {
|
|
404
|
-
results.push(text);
|
|
405
|
-
}
|
|
406
|
-
else {
|
|
407
|
-
var parent_5 = nodeArray[0];
|
|
408
|
-
if (parent_5.children === undefined) {
|
|
409
|
-
parent_5.children = [];
|
|
410
|
-
}
|
|
411
|
-
parent_5.children.push(text);
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
return results;
|
|
415
|
-
}
|
|
416
|
-
VirtualDOM.ConvertHTMLToJSon = ConvertHTMLToJSon;
|
|
417
|
-
//tslint:disable-next-line
|
|
418
|
-
function getLastValue(arr) {
|
|
419
|
-
return arr[arr.length - 1];
|
|
420
|
-
}
|
|
421
|
-
function contains(arr, key) {
|
|
422
|
-
return arr.indexOf(key) !== -1;
|
|
423
|
-
}
|
|
424
|
-
//tslint:disable-next-line
|
|
425
|
-
function cloneNode(ele, deep) {
|
|
426
|
-
if (isObject(ele)) {
|
|
427
|
-
if (deep) {
|
|
428
|
-
return extend({}, {}, ele, true);
|
|
429
|
-
}
|
|
430
|
-
else {
|
|
431
|
-
return { tagName: ele.tagName, attributes: ele.attributes };
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
else {
|
|
435
|
-
return ele.cloneNode(deep);
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
VirtualDOM.cloneNode = cloneNode;
|
|
439
|
-
function setStyleAttribute(element, attrs) {
|
|
440
|
-
if (element.attributes.style) {
|
|
441
|
-
(element.attributes).style = extend({}, attrs);
|
|
442
|
-
}
|
|
443
|
-
else {
|
|
444
|
-
element.attributes.style = extend(element.attributes.style, attrs);
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
VirtualDOM.setStyleAttribute = setStyleAttribute;
|
|
448
|
-
//tslint:enable:no-any
|
|
449
|
-
})(VirtualDOM || (VirtualDOM = {}));
|