@domql/element 2.5.75 → 2.5.78
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/set.js +0 -1
- package/dist/cjs/update.js +20 -6
- 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/set.js +0 -1
- package/update.js +22 -8
- 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/set.js
CHANGED
|
@@ -38,7 +38,6 @@ var import_options = __toESM(require("./cache/options"), 1);
|
|
|
38
38
|
var import_mixins = require("./mixins");
|
|
39
39
|
var import_content = require("./mixins/content");
|
|
40
40
|
const resetElement = (params, element, options) => {
|
|
41
|
-
const perf = performance.now();
|
|
42
41
|
if (!options.preventRemove)
|
|
43
42
|
(0, import_content.removeContent)(element, options);
|
|
44
43
|
(0, import_create.default)(params, element, options.contentElementKey || "content", {
|
package/dist/cjs/update.js
CHANGED
|
@@ -53,7 +53,8 @@ const UPDATE_DEFAULT_OPTIONS = {
|
|
|
53
53
|
calleeElement: false,
|
|
54
54
|
excludes: import_utils2.METHODS_EXL
|
|
55
55
|
};
|
|
56
|
-
const update = function(params = {},
|
|
56
|
+
const update = function(params = {}, opts = UPDATE_DEFAULT_OPTIONS) {
|
|
57
|
+
const options = (0, import_utils2.deepClone)((0, import_utils2.deepMerge)(opts, UPDATE_DEFAULT_OPTIONS));
|
|
57
58
|
const element = this;
|
|
58
59
|
const { parent, node, key } = element;
|
|
59
60
|
const { excludes, preventInheritAtCurrentState } = options;
|
|
@@ -170,6 +171,7 @@ const captureSnapshot = (element, options) => {
|
|
|
170
171
|
return [snapshotOnCallee, calleeElement];
|
|
171
172
|
};
|
|
172
173
|
const checkIfOnUpdate = (element, parent, options) => {
|
|
174
|
+
var _a;
|
|
173
175
|
if (!(0, import_utils.isFunction)(element.if) || !parent)
|
|
174
176
|
return;
|
|
175
177
|
const ref = element.__ref;
|
|
@@ -179,6 +181,7 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
179
181
|
ref.__if = true;
|
|
180
182
|
if (itWasFalse) {
|
|
181
183
|
delete element.__hash;
|
|
184
|
+
delete element.__text;
|
|
182
185
|
delete element.extend;
|
|
183
186
|
if (!ref.__hasRootState) {
|
|
184
187
|
delete element.state;
|
|
@@ -188,15 +191,26 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
188
191
|
} else if (!ref.__hasRootState) {
|
|
189
192
|
delete element.state;
|
|
190
193
|
}
|
|
191
|
-
|
|
194
|
+
if (element.node) {
|
|
195
|
+
element.node.remove();
|
|
196
|
+
delete element.node;
|
|
197
|
+
}
|
|
198
|
+
if (element.$collection || element.$stateCollection || element.$propsCollection) {
|
|
199
|
+
element.removeContent();
|
|
200
|
+
} else if ((_a = element.content) == null ? void 0 : _a.parseDeep)
|
|
201
|
+
element.content = element.content.parseDeep();
|
|
192
202
|
const previousElement = element.previousElement();
|
|
203
|
+
const previousNode = previousElement == null ? void 0 : previousElement.node;
|
|
204
|
+
const hasPrevious = previousNode == null ? void 0 : previousNode.parentNode;
|
|
193
205
|
const nextElement = element.nextElement();
|
|
194
|
-
const
|
|
195
|
-
const hasNext =
|
|
196
|
-
const attachOptions = (hasPrevious
|
|
206
|
+
const nextNode = nextElement == null ? void 0 : nextElement.node;
|
|
207
|
+
const hasNext = nextNode == null ? void 0 : nextNode.parentNode;
|
|
208
|
+
const attachOptions = (hasPrevious || hasNext) && {
|
|
197
209
|
position: hasPrevious ? "after" : hasNext ? "before" : null,
|
|
198
|
-
node: hasPrevious || hasNext
|
|
210
|
+
node: hasPrevious && previousNode || hasNext && nextNode
|
|
199
211
|
};
|
|
212
|
+
delete element.__ref;
|
|
213
|
+
delete element.parent;
|
|
200
214
|
const created = (0, import_create.default)(element, parent, element.key, import_options.default.create, attachOptions);
|
|
201
215
|
if (options.preventUpdate !== true && element.on && (0, import_utils.isFunction)(element.on.update)) {
|
|
202
216
|
(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.78",
|
|
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": "053f137856aad06574e99486357f486d6d724132",
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/core": "^7.12.0"
|
|
37
37
|
}
|
package/set.js
CHANGED
|
@@ -8,7 +8,6 @@ import { registry } from './mixins'
|
|
|
8
8
|
import { removeContent } from './mixins/content'
|
|
9
9
|
|
|
10
10
|
export const resetElement = (params, element, options) => {
|
|
11
|
-
const perf = performance.now()
|
|
12
11
|
if (!options.preventRemove) removeContent(element, options)
|
|
13
12
|
create(params, element, options.contentElementKey || 'content', {
|
|
14
13
|
ignoreChildExtend: true,
|
package/update.js
CHANGED
|
@@ -19,7 +19,7 @@ import { isMethod } from './methods'
|
|
|
19
19
|
import { updateProps } from './props'
|
|
20
20
|
import { createState, findInheritedState } from '@domql/state'
|
|
21
21
|
|
|
22
|
-
import { METHODS_EXL, isVariant } from './utils'
|
|
22
|
+
import { METHODS_EXL, deepClone, isVariant, deepMerge } from './utils'
|
|
23
23
|
import create from './create'
|
|
24
24
|
import { throughUpdatedDefine, throughUpdatedExec } from './iterate'
|
|
25
25
|
import { registry } from './mixins'
|
|
@@ -39,7 +39,8 @@ const UPDATE_DEFAULT_OPTIONS = {
|
|
|
39
39
|
excludes: METHODS_EXL
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
const update = function (params = {},
|
|
42
|
+
const update = function (params = {}, opts = UPDATE_DEFAULT_OPTIONS) {
|
|
43
|
+
const options = deepClone(deepMerge(opts, UPDATE_DEFAULT_OPTIONS))
|
|
43
44
|
const element = this
|
|
44
45
|
const { parent, node, key } = element
|
|
45
46
|
const { excludes, preventInheritAtCurrentState } = options
|
|
@@ -183,6 +184,7 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
183
184
|
ref.__if = true
|
|
184
185
|
if (itWasFalse) {
|
|
185
186
|
delete element.__hash
|
|
187
|
+
delete element.__text
|
|
186
188
|
delete element.extend
|
|
187
189
|
if (!ref.__hasRootState) {
|
|
188
190
|
delete element.state
|
|
@@ -194,19 +196,31 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
194
196
|
delete element.state
|
|
195
197
|
}
|
|
196
198
|
|
|
197
|
-
|
|
199
|
+
if (element.node) {
|
|
200
|
+
element.node.remove()
|
|
201
|
+
delete element.node
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (element.$collection || element.$stateCollection || element.$propsCollection) {
|
|
205
|
+
element.removeContent()
|
|
206
|
+
} else if (element.content?.parseDeep) element.content = element.content.parseDeep()
|
|
198
207
|
|
|
199
208
|
const previousElement = element.previousElement()
|
|
200
|
-
const
|
|
209
|
+
const previousNode = previousElement?.node // document.body.contains(previousElement.node)
|
|
210
|
+
const hasPrevious = previousNode?.parentNode // document.body.contains(previousElement.node)
|
|
201
211
|
|
|
202
|
-
const
|
|
203
|
-
const
|
|
212
|
+
const nextElement = element.nextElement()
|
|
213
|
+
const nextNode = nextElement?.node // document.body.contains(previousElement.node)
|
|
214
|
+
const hasNext = nextNode?.parentNode // && document.body.contains(nextElement.node)
|
|
215
|
+
// const hasNext = nextElement && document.body.contains(nextElement.node)
|
|
204
216
|
|
|
205
|
-
const attachOptions = (
|
|
217
|
+
const attachOptions = (hasPrevious || hasNext) && {
|
|
206
218
|
position: hasPrevious ? 'after' : hasNext ? 'before' : null,
|
|
207
|
-
node: hasPrevious || hasNext
|
|
219
|
+
node: (hasPrevious && previousNode) || (hasNext && nextNode)
|
|
208
220
|
}
|
|
209
221
|
|
|
222
|
+
delete element.__ref
|
|
223
|
+
delete element.parent
|
|
210
224
|
const created = create(element, parent, element.key, OPTIONS.create, attachOptions)
|
|
211
225
|
// check preventUpdate for an array (Line: 87)
|
|
212
226
|
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
|
|