@domql/element 2.5.136 → 2.5.138
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/create.js +5 -7
- package/dist/cjs/create.js +2 -1
- package/dist/cjs/mixins/attr.js +3 -1
- package/dist/cjs/mixins/data.js +10 -6
- package/dist/cjs/set.js +8 -0
- package/dist/cjs/update.js +4 -4
- package/dist/cjs/utils/onlyResolveExtends.js +1 -1
- package/mixins/attr.js +2 -1
- package/mixins/data.js +10 -7
- package/package.json +6 -6
- package/set.js +8 -0
- package/update.js +2 -2
- package/utils/onlyResolveExtends.js +1 -1
package/create.js
CHANGED
|
@@ -17,7 +17,8 @@ import {
|
|
|
17
17
|
applyComponentFromContext,
|
|
18
18
|
applyKeyComponentAsExtend,
|
|
19
19
|
isVariant,
|
|
20
|
-
detectInfiniteLoop
|
|
20
|
+
detectInfiniteLoop,
|
|
21
|
+
addChildrenIfNotInOriginal
|
|
21
22
|
} from '@domql/utils'
|
|
22
23
|
import { triggerEventOn } from '@domql/event'
|
|
23
24
|
import { assignNode } from '@domql/render'
|
|
@@ -57,23 +58,18 @@ const create = (element, parent, key, options = OPTIONS.create || {}, attachOpti
|
|
|
57
58
|
|
|
58
59
|
const ref = addRef(element, parent, key)
|
|
59
60
|
|
|
60
|
-
// assign initial props
|
|
61
61
|
ref.__initialProps = deepCloneWithExtend(element.props, [])
|
|
62
62
|
|
|
63
|
-
// assign context
|
|
64
63
|
applyContext(element, parent, options)
|
|
65
64
|
|
|
66
65
|
applyComponentFromContext(element, parent, options)
|
|
67
66
|
|
|
68
67
|
if (!ref.__skipCreate) {
|
|
69
|
-
// create EXTEND inheritance
|
|
70
68
|
applyExtend(element, parent, options)
|
|
71
69
|
}
|
|
72
70
|
|
|
73
|
-
// create and assign a KEY
|
|
74
71
|
element.key = key
|
|
75
72
|
|
|
76
|
-
// Only resolve extends, skip everything else
|
|
77
73
|
if (options.onlyResolveExtends) {
|
|
78
74
|
return onlyResolveExtends(element, parent, key, options)
|
|
79
75
|
}
|
|
@@ -114,6 +110,8 @@ const create = (element, parent, key, options = OPTIONS.create || {}, attachOpti
|
|
|
114
110
|
// generate a CLASS name
|
|
115
111
|
assignKeyAsClassname(element)
|
|
116
112
|
|
|
113
|
+
addChildrenIfNotInOriginal(element, parent, key)
|
|
114
|
+
|
|
117
115
|
renderElement(element, parent, options, attachOptions)
|
|
118
116
|
|
|
119
117
|
addElementIntoParentChildren(element, parent)
|
|
@@ -286,7 +284,7 @@ const createScope = (element, parent) => {
|
|
|
286
284
|
const createIfConditionFlag = (element, parent) => {
|
|
287
285
|
const { __ref: ref } = element
|
|
288
286
|
|
|
289
|
-
if (isFunction(element.if) && !element.if(element, element.state)) {
|
|
287
|
+
if (isFunction(element.if) && !element.if(element, element.state, element.context)) {
|
|
290
288
|
delete ref.__if
|
|
291
289
|
} else ref.__if = true
|
|
292
290
|
}
|
package/dist/cjs/create.js
CHANGED
|
@@ -87,6 +87,7 @@ const create = (element, parent, key, options = import_options.default.create ||
|
|
|
87
87
|
return element;
|
|
88
88
|
(0, import_event.triggerEventOn)("beforeClassAssign", element, options);
|
|
89
89
|
(0, import_classList.assignKeyAsClassname)(element);
|
|
90
|
+
(0, import_utils.addChildrenIfNotInOriginal)(element, parent, key);
|
|
90
91
|
renderElement(element, parent, options, attachOptions);
|
|
91
92
|
addElementIntoParentChildren(element, parent);
|
|
92
93
|
(0, import_event.triggerEventOn)("complete", element, options);
|
|
@@ -227,7 +228,7 @@ const createScope = (element, parent) => {
|
|
|
227
228
|
};
|
|
228
229
|
const createIfConditionFlag = (element, parent) => {
|
|
229
230
|
const { __ref: ref } = element;
|
|
230
|
-
if ((0, import_utils.isFunction)(element.if) && !element.if(element, element.state)) {
|
|
231
|
+
if ((0, import_utils.isFunction)(element.if) && !element.if(element, element.state, element.context)) {
|
|
231
232
|
delete ref.__if;
|
|
232
233
|
} else
|
|
233
234
|
ref.__if = true;
|
package/dist/cjs/mixins/attr.js
CHANGED
|
@@ -23,12 +23,15 @@ __export(attr_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(attr_exports);
|
|
24
24
|
var import_utils = require("@domql/utils");
|
|
25
25
|
var import_report = require("@domql/report");
|
|
26
|
+
var import_utils2 = require("../utils");
|
|
26
27
|
var attr_default = (params, element, node) => {
|
|
27
28
|
const { __ref } = element;
|
|
28
29
|
const { __attr } = __ref;
|
|
29
30
|
if ((0, import_utils.isNot)("object"))
|
|
30
31
|
(0, import_report.report)("HTMLInvalidAttr", params);
|
|
31
32
|
if (params) {
|
|
33
|
+
if (element.props.attr)
|
|
34
|
+
(0, import_utils2.deepMerge)(params, element.props.attr);
|
|
32
35
|
for (const attr in params) {
|
|
33
36
|
const val = (0, import_utils.exec)(params[attr], element);
|
|
34
37
|
if (val !== false && !(0, import_utils.isUndefined)(val) && !(0, import_utils.isNull)(val) && node.setAttribute)
|
|
@@ -38,5 +41,4 @@ var attr_default = (params, element, node) => {
|
|
|
38
41
|
__attr[attr] = val;
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
|
-
console.groupEnd(params, __attr);
|
|
42
44
|
};
|
package/dist/cjs/mixins/data.js
CHANGED
|
@@ -24,12 +24,16 @@ module.exports = __toCommonJS(data_exports);
|
|
|
24
24
|
var import_utils = require("@domql/utils");
|
|
25
25
|
var import_report = require("@domql/report");
|
|
26
26
|
var data_default = (params, element, node) => {
|
|
27
|
-
if (params
|
|
28
|
-
if (
|
|
29
|
-
(0,
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
|
|
27
|
+
if (params) {
|
|
28
|
+
if (element.props.attr)
|
|
29
|
+
(0, import_utils.deepMerge)(params, element.props.attr);
|
|
30
|
+
if (params.showOnNode) {
|
|
31
|
+
if (!(0, import_utils.isObject)(params))
|
|
32
|
+
(0, import_report.report)("HTMLInvalidData", params);
|
|
33
|
+
for (const dataset in params) {
|
|
34
|
+
if (dataset !== "showOnNode") {
|
|
35
|
+
node.dataset[dataset] = (0, import_utils.exec)(params[dataset], element);
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
}
|
package/dist/cjs/set.js
CHANGED
|
@@ -38,6 +38,7 @@ var import_create = __toESM(require("./create"), 1);
|
|
|
38
38
|
var import_options = __toESM(require("./cache/options"), 1);
|
|
39
39
|
var import_mixins = require("./mixins");
|
|
40
40
|
var import_content = require("./mixins/content");
|
|
41
|
+
var import_event = require("@domql/event");
|
|
41
42
|
const resetElement = (params, element, options) => {
|
|
42
43
|
if (!options.preventRemove)
|
|
43
44
|
(0, import_content.removeContent)(element, options);
|
|
@@ -62,6 +63,11 @@ const set = function(params, options = {}, el) {
|
|
|
62
63
|
const { __ref: ref, content } = element;
|
|
63
64
|
const __contentRef = content && content.__ref;
|
|
64
65
|
const lazyLoad = element.props && element.props.lazyLoad;
|
|
66
|
+
if (!options.preventBeforeUpdateListener && !options.preventListeners) {
|
|
67
|
+
const beforeUpdateReturns = (0, import_event.triggerEventOnUpdate)("beforeUpdate", params, element, options);
|
|
68
|
+
if (beforeUpdateReturns === false)
|
|
69
|
+
return element;
|
|
70
|
+
}
|
|
65
71
|
const hasCollection = element.$collection || element.$stateCollection || element.$propsCollection;
|
|
66
72
|
if (options.preventContentUpdate === true && !hasCollection)
|
|
67
73
|
return;
|
|
@@ -79,6 +85,8 @@ const set = function(params, options = {}, el) {
|
|
|
79
85
|
} else
|
|
80
86
|
resetElement(params, element, options);
|
|
81
87
|
}
|
|
88
|
+
if (!options.preventUpdateListener)
|
|
89
|
+
(0, import_event.triggerEventOn)("update", element, options);
|
|
82
90
|
return element;
|
|
83
91
|
};
|
|
84
92
|
var set_default = set;
|
package/dist/cjs/update.js
CHANGED
|
@@ -174,11 +174,11 @@ const captureSnapshot = (element, options) => {
|
|
|
174
174
|
return [snapshotOnCallee, calleeElement];
|
|
175
175
|
};
|
|
176
176
|
const checkIfOnUpdate = (element, parent, options) => {
|
|
177
|
-
var _a;
|
|
178
|
-
if (!(0, import_utils.isFunction)(element.if) || !parent)
|
|
177
|
+
var _a, _b;
|
|
178
|
+
if (!(0, import_utils.isFunction)(element.if) && !(0, import_utils.isFunction)(element.props.if) || !parent)
|
|
179
179
|
return;
|
|
180
180
|
const ref = element.__ref;
|
|
181
|
-
const ifPassed = element.if(element, element.state, element.context, options);
|
|
181
|
+
const ifPassed = (element.if || ((_a = element.props) == null ? void 0 : _a.if))(element, element.state, element.context, options);
|
|
182
182
|
const itWasFalse = ref.__if !== true;
|
|
183
183
|
if (ifPassed) {
|
|
184
184
|
ref.__if = true;
|
|
@@ -200,7 +200,7 @@ const checkIfOnUpdate = (element, parent, options) => {
|
|
|
200
200
|
}
|
|
201
201
|
if (element.$collection || element.$stateCollection || element.$propsCollection) {
|
|
202
202
|
element.removeContent();
|
|
203
|
-
} else if ((
|
|
203
|
+
} else if ((_b = element.content) == null ? void 0 : _b.parseDeep)
|
|
204
204
|
element.content = element.content.parseDeep();
|
|
205
205
|
const previousElement = element.previousElement();
|
|
206
206
|
const previousNode = previousElement == null ? void 0 : previousElement.node;
|
|
@@ -57,7 +57,7 @@ const onlyResolveExtends = (element, parent, key, options) => {
|
|
|
57
57
|
(0, import_state.createState)(element, parent);
|
|
58
58
|
const ref = __ref;
|
|
59
59
|
if ((0, import_utils.isFunction)(element.if)) {
|
|
60
|
-
const ifPassed = element.if(element, element.state);
|
|
60
|
+
const ifPassed = element.if(element, element.state, element.context);
|
|
61
61
|
if (!ifPassed) {
|
|
62
62
|
delete ref.__if;
|
|
63
63
|
} else
|
package/mixins/attr.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { exec, isNot, isNull, isUndefined } from '@domql/utils'
|
|
4
4
|
import { report } from '@domql/report'
|
|
5
|
+
import { deepMerge } from '../utils'
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Recursively add attributes to a DOM node
|
|
@@ -11,6 +12,7 @@ export default (params, element, node) => {
|
|
|
11
12
|
const { __attr } = __ref
|
|
12
13
|
if (isNot('object')) report('HTMLInvalidAttr', params)
|
|
13
14
|
if (params) {
|
|
15
|
+
if (element.props.attr) deepMerge(params, element.props.attr)
|
|
14
16
|
for (const attr in params) {
|
|
15
17
|
const val = exec(params[attr], element)
|
|
16
18
|
// if (__attr[attr] === val) return
|
|
@@ -19,5 +21,4 @@ export default (params, element, node) => {
|
|
|
19
21
|
__attr[attr] = val
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
|
-
console.groupEnd(params, __attr)
|
|
23
24
|
}
|
package/mixins/data.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
import { exec, isObject } from '@domql/utils'
|
|
3
|
+
import { exec, isObject, deepMerge } from '@domql/utils'
|
|
4
4
|
import { report } from '@domql/report'
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -8,13 +8,16 @@ import { report } from '@domql/report'
|
|
|
8
8
|
* this should only work if `showOnNode: true` is passed
|
|
9
9
|
*/
|
|
10
10
|
export default (params, element, node) => {
|
|
11
|
-
if (params
|
|
12
|
-
if (
|
|
11
|
+
if (params) {
|
|
12
|
+
if (element.props.attr) deepMerge(params, element.props.attr)
|
|
13
|
+
if (params.showOnNode) {
|
|
14
|
+
if (!isObject(params)) report('HTMLInvalidData', params)
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
// Apply data params on node
|
|
17
|
+
for (const dataset in params) {
|
|
18
|
+
if (dataset !== 'showOnNode') {
|
|
19
|
+
node.dataset[dataset] = exec(params[dataset], element)
|
|
20
|
+
}
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@domql/element",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.138",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "index.js",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"prepublish": "rimraf -I dist && yarn build && yarn copy:package:cjs"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@domql/event": "^2.5.
|
|
30
|
-
"@domql/render": "^2.5.
|
|
31
|
-
"@domql/state": "^2.5.
|
|
32
|
-
"@domql/utils": "^2.5.
|
|
29
|
+
"@domql/event": "^2.5.138",
|
|
30
|
+
"@domql/render": "^2.5.138",
|
|
31
|
+
"@domql/state": "^2.5.138",
|
|
32
|
+
"@domql/utils": "^2.5.138"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "91afb60b8354f1a95c3364be94ba74612f907918",
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/core": "^7.12.0"
|
|
37
37
|
}
|
package/set.js
CHANGED
|
@@ -6,6 +6,7 @@ import create from './create'
|
|
|
6
6
|
import OPTIONS from './cache/options'
|
|
7
7
|
import { registry } from './mixins'
|
|
8
8
|
import { removeContent } from './mixins/content'
|
|
9
|
+
import { triggerEventOn, triggerEventOnUpdate } from '@domql/event'
|
|
9
10
|
|
|
10
11
|
export const resetElement = (params, element, options) => {
|
|
11
12
|
if (!options.preventRemove) removeContent(element, options)
|
|
@@ -33,6 +34,11 @@ const set = function (params, options = {}, el) {
|
|
|
33
34
|
const __contentRef = content && content.__ref
|
|
34
35
|
const lazyLoad = element.props && element.props.lazyLoad
|
|
35
36
|
|
|
37
|
+
if (!options.preventBeforeUpdateListener && !options.preventListeners) {
|
|
38
|
+
const beforeUpdateReturns = triggerEventOnUpdate('beforeUpdate', params, element, options)
|
|
39
|
+
if (beforeUpdateReturns === false) return element
|
|
40
|
+
}
|
|
41
|
+
|
|
36
42
|
const hasCollection = element.$collection || element.$stateCollection || element.$propsCollection
|
|
37
43
|
if (options.preventContentUpdate === true && !hasCollection) return
|
|
38
44
|
|
|
@@ -50,6 +56,8 @@ const set = function (params, options = {}, el) {
|
|
|
50
56
|
} else resetElement(params, element, options)
|
|
51
57
|
}
|
|
52
58
|
|
|
59
|
+
if (!options.preventUpdateListener) triggerEventOn('update', element, options)
|
|
60
|
+
|
|
53
61
|
return element
|
|
54
62
|
}
|
|
55
63
|
|
package/update.js
CHANGED
|
@@ -180,10 +180,10 @@ const captureSnapshot = (element, options) => {
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
const checkIfOnUpdate = (element, parent, options) => {
|
|
183
|
-
if (!isFunction(element.if) || !parent) return
|
|
183
|
+
if ((!isFunction(element.if) && !isFunction(element.props.if)) || !parent) return
|
|
184
184
|
|
|
185
185
|
const ref = element.__ref
|
|
186
|
-
const ifPassed = element.if(element, element.state, element.context, options)
|
|
186
|
+
const ifPassed = (element.if || element.props?.if)(element, element.state, element.context, options)
|
|
187
187
|
const itWasFalse = ref.__if !== true
|
|
188
188
|
|
|
189
189
|
if (ifPassed) {
|
|
@@ -58,7 +58,7 @@ export const onlyResolveExtends = (element, parent, key, options) => {
|
|
|
58
58
|
// Borrowed from createIfConditionFlag()
|
|
59
59
|
const ref = __ref
|
|
60
60
|
if (isFunction(element.if)) {
|
|
61
|
-
const ifPassed = element.if(element, element.state)
|
|
61
|
+
const ifPassed = element.if(element, element.state, element.context)
|
|
62
62
|
if (!ifPassed) {
|
|
63
63
|
// const ifFragment = cacheNode({ tag: 'fragment' })
|
|
64
64
|
// ref.__ifFragment = appendNode(ifFragment, parent.node)
|