@domql/element 2.5.75 → 2.5.77
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/dist/cjs/methods/index.js +8 -4
- package/dist/cjs/mixins/content.js +1 -1
- package/dist/cjs/mixins/registry.js +11 -1
- package/dist/cjs/update.js +18 -5
- package/dist/cjs/utils/extendUtils.js +1 -17
- package/methods/index.js +7 -3
- package/mixins/content.js +1 -1
- package/mixins/registry.js +5 -1
- package/package.json +2 -2
- package/update.js +19 -6
- package/utils/extendUtils.js +2 -17
|
@@ -105,12 +105,16 @@ const parse = function(excl = []) {
|
|
|
105
105
|
keyList.forEach((v) => {
|
|
106
106
|
if (excl.includes(v))
|
|
107
107
|
return;
|
|
108
|
-
|
|
108
|
+
const val = element[v];
|
|
109
109
|
if (v === "state") {
|
|
110
|
-
if (element.__ref && element.__ref.__hasRootState)
|
|
110
|
+
if (element.__ref && !element.__ref.__hasRootState)
|
|
111
111
|
return;
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
const parsedVal = (0, import_utils.isFunction)(val && val.parse) ? val.parse() : val;
|
|
113
|
+
obj[v] = (0, import_utils.isFunction)(parsedVal) ? parsedVal : JSON.parse(JSON.stringify(parsedVal || {}));
|
|
114
|
+
} else if (v === "scope") {
|
|
115
|
+
if (element.__ref && !element.__ref.__hasRootScope)
|
|
116
|
+
return;
|
|
117
|
+
obj[v] = JSON.parse(JSON.stringify(val || {}));
|
|
114
118
|
} else if (v === "props") {
|
|
115
119
|
const { __element, update, ...props } = element[v];
|
|
116
120
|
obj[v] = props;
|
|
@@ -47,7 +47,7 @@ const removeContent = function(el) {
|
|
|
47
47
|
const element = el || this;
|
|
48
48
|
const { __ref } = element;
|
|
49
49
|
if (element.content) {
|
|
50
|
-
if (element.content.node) {
|
|
50
|
+
if (element.content.node && element.node) {
|
|
51
51
|
if (element.content.tag === "fragment")
|
|
52
52
|
element.node.innerHTML = "";
|
|
53
53
|
else
|
|
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var registry_exports = {};
|
|
20
20
|
__export(registry_exports, {
|
|
21
|
+
collectionFilters: () => collectionFilters,
|
|
21
22
|
default: () => registry_default,
|
|
22
23
|
parseFilters: () => parseFilters
|
|
23
24
|
});
|
|
@@ -88,8 +89,17 @@ const parseFilters = {
|
|
|
88
89
|
"content",
|
|
89
90
|
"html",
|
|
90
91
|
"on",
|
|
91
|
-
"key"
|
|
92
|
+
"key",
|
|
93
|
+
"extend",
|
|
94
|
+
"childExtend",
|
|
95
|
+
"childExtendRecursive",
|
|
96
|
+
"scope",
|
|
97
|
+
"query",
|
|
98
|
+
"$collection",
|
|
99
|
+
"$stateCollection",
|
|
100
|
+
"$propsCollection"
|
|
92
101
|
],
|
|
93
102
|
propsKeys: ["__element", "update"],
|
|
94
103
|
stateKeys: []
|
|
95
104
|
};
|
|
105
|
+
const collectionFilters = ["$collection", "$stateCollection", "$propsCollection"];
|
package/dist/cjs/update.js
CHANGED
|
@@ -170,6 +170,7 @@ const captureSnapshot = (element, options) => {
|
|
|
170
170
|
return [snapshotOnCallee, calleeElement];
|
|
171
171
|
};
|
|
172
172
|
const checkIfOnUpdate = (element, parent, options) => {
|
|
173
|
+
var _a;
|
|
173
174
|
if (!(0, import_utils.isFunction)(element.if) || !parent)
|
|
174
175
|
return;
|
|
175
176
|
const ref = element.__ref;
|
|
@@ -179,6 +180,7 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
179
180
|
ref.__if = true;
|
|
180
181
|
if (itWasFalse) {
|
|
181
182
|
delete element.__hash;
|
|
183
|
+
delete element.__text;
|
|
182
184
|
delete element.extend;
|
|
183
185
|
if (!ref.__hasRootState) {
|
|
184
186
|
delete element.state;
|
|
@@ -188,15 +190,26 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
188
190
|
} else if (!ref.__hasRootState) {
|
|
189
191
|
delete element.state;
|
|
190
192
|
}
|
|
191
|
-
|
|
193
|
+
if (element.node) {
|
|
194
|
+
element.node.remove();
|
|
195
|
+
delete element.node;
|
|
196
|
+
}
|
|
197
|
+
if (element.$collection || element.$stateCollection || element.$propsCollection) {
|
|
198
|
+
element.removeContent();
|
|
199
|
+
} else if ((_a = element.content) == null ? void 0 : _a.parseDeep)
|
|
200
|
+
element.content = element.content.parseDeep();
|
|
192
201
|
const previousElement = element.previousElement();
|
|
202
|
+
const previousNode = previousElement == null ? void 0 : previousElement.node;
|
|
203
|
+
const hasPrevious = previousNode == null ? void 0 : previousNode.parentNode;
|
|
193
204
|
const nextElement = element.nextElement();
|
|
194
|
-
const
|
|
195
|
-
const hasNext =
|
|
196
|
-
const attachOptions = (hasPrevious
|
|
205
|
+
const nextNode = nextElement == null ? void 0 : nextElement.node;
|
|
206
|
+
const hasNext = nextNode == null ? void 0 : nextNode.parentNode;
|
|
207
|
+
const attachOptions = (hasPrevious || hasNext) && {
|
|
197
208
|
position: hasPrevious ? "after" : hasNext ? "before" : null,
|
|
198
|
-
node: hasPrevious || hasNext
|
|
209
|
+
node: hasPrevious && previousNode || hasNext && nextNode
|
|
199
210
|
};
|
|
211
|
+
delete element.__ref;
|
|
212
|
+
delete element.parent;
|
|
200
213
|
const created = (0, import_create.default)(element, parent, element.key, import_options.default.create, attachOptions);
|
|
201
214
|
if (options.preventUpdate !== true && element.on && (0, import_utils.isFunction)(element.on.update)) {
|
|
202
215
|
(0, import_event.applyEvent)(element.on.update, created, created.state);
|
|
@@ -19,7 +19,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var extendUtils_exports = {};
|
|
20
20
|
__export(extendUtils_exports, {
|
|
21
21
|
cloneAndMergeArrayExtend: () => cloneAndMergeArrayExtend,
|
|
22
|
-
deepCloneExtend: () => deepCloneExtend,
|
|
23
22
|
deepExtend: () => deepExtend,
|
|
24
23
|
deepMergeExtend: () => deepMergeExtend,
|
|
25
24
|
extendCachedRegistry: () => extendCachedRegistry,
|
|
@@ -81,21 +80,6 @@ const flattenExtend = (extend, stack, context) => {
|
|
|
81
80
|
deepExtend(extend, stack, context);
|
|
82
81
|
return stack;
|
|
83
82
|
};
|
|
84
|
-
const deepCloneExtend = (obj) => {
|
|
85
|
-
const o = {};
|
|
86
|
-
for (const prop in obj) {
|
|
87
|
-
if (["parent", "node", "__element"].indexOf(prop) > -1)
|
|
88
|
-
continue;
|
|
89
|
-
const objProp = obj[prop];
|
|
90
|
-
if ((0, import_utils.isObject)(objProp)) {
|
|
91
|
-
o[prop] = deepCloneExtend(objProp);
|
|
92
|
-
} else if ((0, import_utils.isArray)(objProp)) {
|
|
93
|
-
o[prop] = objProp.map((x) => x);
|
|
94
|
-
} else
|
|
95
|
-
o[prop] = objProp;
|
|
96
|
-
}
|
|
97
|
-
return o;
|
|
98
|
-
};
|
|
99
83
|
const deepMergeExtend = (element, extend) => {
|
|
100
84
|
for (const e in extend) {
|
|
101
85
|
if (["parent", "node", "__element"].indexOf(e) > -1)
|
|
@@ -119,7 +103,7 @@ const deepMergeExtend = (element, extend) => {
|
|
|
119
103
|
};
|
|
120
104
|
const cloneAndMergeArrayExtend = (stack) => {
|
|
121
105
|
return stack.reduce((a, c) => {
|
|
122
|
-
return deepMergeExtend(a,
|
|
106
|
+
return deepMergeExtend(a, (0, import_utils.deepCloneWithExtend)(c));
|
|
123
107
|
}, {});
|
|
124
108
|
};
|
|
125
109
|
const fallbackStringExtend = (extend, context, options = {}) => {
|
package/methods/index.js
CHANGED
|
@@ -83,10 +83,14 @@ export const parse = function (excl = []) {
|
|
|
83
83
|
const keyList = keys.call(element)
|
|
84
84
|
keyList.forEach(v => {
|
|
85
85
|
if (excl.includes(v)) return
|
|
86
|
-
|
|
86
|
+
const val = element[v]
|
|
87
87
|
if (v === 'state') {
|
|
88
|
-
if (element.__ref && element.__ref.__hasRootState) return
|
|
89
|
-
|
|
88
|
+
if (element.__ref && !element.__ref.__hasRootState) return
|
|
89
|
+
const parsedVal = isFunction(val && val.parse) ? val.parse() : val
|
|
90
|
+
obj[v] = isFunction(parsedVal) ? parsedVal : JSON.parse(JSON.stringify(parsedVal || {}))
|
|
91
|
+
} else if (v === 'scope') {
|
|
92
|
+
if (element.__ref && !element.__ref.__hasRootScope) return
|
|
93
|
+
obj[v] = JSON.parse(JSON.stringify(val || {}))
|
|
90
94
|
} else if (v === 'props') {
|
|
91
95
|
const { __element, update, ...props } = element[v]
|
|
92
96
|
obj[v] = props
|
package/mixins/content.js
CHANGED
|
@@ -15,7 +15,7 @@ export const removeContent = function (el) {
|
|
|
15
15
|
const { __ref } = element
|
|
16
16
|
|
|
17
17
|
if (element.content) {
|
|
18
|
-
if (element.content.node) {
|
|
18
|
+
if (element.content.node && element.node) {
|
|
19
19
|
if (element.content.tag === 'fragment') element.node.innerHTML = ''
|
|
20
20
|
else element.node.removeChild(element.content.node)
|
|
21
21
|
}
|
package/mixins/registry.js
CHANGED
|
@@ -66,8 +66,12 @@ export default {
|
|
|
66
66
|
export const parseFilters = {
|
|
67
67
|
elementKeys: [
|
|
68
68
|
'tag', 'text', 'style', 'attr', 'class', 'state', 'props',
|
|
69
|
-
'data', 'content', 'html', 'on', 'key'
|
|
69
|
+
'data', 'content', 'html', 'on', 'key', 'extend', 'childExtend',
|
|
70
|
+
'childExtendRecursive', 'scope', 'query',
|
|
71
|
+
'$collection', '$stateCollection', '$propsCollection'
|
|
70
72
|
],
|
|
71
73
|
propsKeys: ['__element', 'update'],
|
|
72
74
|
stateKeys: []
|
|
73
75
|
}
|
|
76
|
+
|
|
77
|
+
export const collectionFilters = ['$collection', '$stateCollection', '$propsCollection']
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/element",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.77",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@domql/state": "latest",
|
|
32
32
|
"@domql/utils": "latest"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "20db0bd2a45b9f1037d8ca6a7fb3fd66197a3056",
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/core": "^7.12.0"
|
|
37
37
|
}
|
package/update.js
CHANGED
|
@@ -183,6 +183,7 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
183
183
|
ref.__if = true
|
|
184
184
|
if (itWasFalse) {
|
|
185
185
|
delete element.__hash
|
|
186
|
+
delete element.__text
|
|
186
187
|
delete element.extend
|
|
187
188
|
if (!ref.__hasRootState) {
|
|
188
189
|
delete element.state
|
|
@@ -194,19 +195,31 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
194
195
|
delete element.state
|
|
195
196
|
}
|
|
196
197
|
|
|
197
|
-
|
|
198
|
+
if (element.node) {
|
|
199
|
+
element.node.remove()
|
|
200
|
+
delete element.node
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (element.$collection || element.$stateCollection || element.$propsCollection) {
|
|
204
|
+
element.removeContent()
|
|
205
|
+
} else if (element.content?.parseDeep) element.content = element.content.parseDeep()
|
|
198
206
|
|
|
199
207
|
const previousElement = element.previousElement()
|
|
200
|
-
const
|
|
208
|
+
const previousNode = previousElement?.node // document.body.contains(previousElement.node)
|
|
209
|
+
const hasPrevious = previousNode?.parentNode // document.body.contains(previousElement.node)
|
|
201
210
|
|
|
202
|
-
const
|
|
203
|
-
const
|
|
211
|
+
const nextElement = element.nextElement()
|
|
212
|
+
const nextNode = nextElement?.node // document.body.contains(previousElement.node)
|
|
213
|
+
const hasNext = nextNode?.parentNode // && document.body.contains(nextElement.node)
|
|
214
|
+
// const hasNext = nextElement && document.body.contains(nextElement.node)
|
|
204
215
|
|
|
205
|
-
const attachOptions = (
|
|
216
|
+
const attachOptions = (hasPrevious || hasNext) && {
|
|
206
217
|
position: hasPrevious ? 'after' : hasNext ? 'before' : null,
|
|
207
|
-
node: hasPrevious || hasNext
|
|
218
|
+
node: (hasPrevious && previousNode) || (hasNext && nextNode)
|
|
208
219
|
}
|
|
209
220
|
|
|
221
|
+
delete element.__ref
|
|
222
|
+
delete element.parent
|
|
210
223
|
const created = create(element, parent, element.key, OPTIONS.create, attachOptions)
|
|
211
224
|
// check preventUpdate for an array (Line: 87)
|
|
212
225
|
if (options.preventUpdate !== true && element.on && isFunction(element.on.update)) {
|
package/utils/extendUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
import { isArray, isFunction, isObject, isString } from '@domql/utils'
|
|
3
|
+
import { isArray, isFunction, isObject, isString, deepCloneWithExtend } from '@domql/utils'
|
|
4
4
|
const ENV = process.env.NODE_ENV
|
|
5
5
|
|
|
6
6
|
export const generateHash = () => Math.random().toString(36).substring(2)
|
|
@@ -48,21 +48,6 @@ export const flattenExtend = (extend, stack, context) => {
|
|
|
48
48
|
return stack
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
// merging
|
|
52
|
-
export const deepCloneExtend = obj => {
|
|
53
|
-
const o = {}
|
|
54
|
-
for (const prop in obj) {
|
|
55
|
-
if (['parent', 'node', '__element'].indexOf(prop) > -1) continue
|
|
56
|
-
const objProp = obj[prop]
|
|
57
|
-
if (isObject(objProp)) {
|
|
58
|
-
o[prop] = deepCloneExtend(objProp)
|
|
59
|
-
} else if (isArray(objProp)) {
|
|
60
|
-
o[prop] = objProp.map(x => x)
|
|
61
|
-
} else o[prop] = objProp
|
|
62
|
-
}
|
|
63
|
-
return o
|
|
64
|
-
}
|
|
65
|
-
|
|
66
51
|
export const deepMergeExtend = (element, extend) => {
|
|
67
52
|
for (const e in extend) {
|
|
68
53
|
if (['parent', 'node', '__element'].indexOf(e) > -1) continue
|
|
@@ -86,7 +71,7 @@ export const deepMergeExtend = (element, extend) => {
|
|
|
86
71
|
|
|
87
72
|
export const cloneAndMergeArrayExtend = stack => {
|
|
88
73
|
return stack.reduce((a, c) => {
|
|
89
|
-
return deepMergeExtend(a,
|
|
74
|
+
return deepMergeExtend(a, deepCloneWithExtend(c))
|
|
90
75
|
}, {})
|
|
91
76
|
}
|
|
92
77
|
|