@domql/element 3.1.1 → 3.2.3
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/README.md +4 -6
- package/__tests__/checkIfOnUpdate.test.js +12 -12
- package/__tests__/children.test.js +34 -38
- package/__tests__/inheritStateUpdates.test.js +12 -12
- package/__tests__/renderElement.test.js +11 -11
- package/__tests__/resetElement.test.js +6 -6
- package/__tests__/set.test.js +32 -36
- package/__tests__/throughExecProps.test.js +12 -12
- package/__tests__/throughInitialDefine.test.js +16 -16
- package/__tests__/throughInitialExec.test.js +16 -16
- package/__tests__/throughUpdatedDefine.test.js +14 -14
- package/__tests__/throughUpdatedExec.test.js +17 -16
- package/__tests__/update.test.js +54 -54
- package/children.js +5 -6
- package/create.js +18 -20
- package/dist/cjs/children.js +4 -2
- package/dist/cjs/create.js +16 -16
- package/dist/cjs/extend.js +88 -0
- package/dist/cjs/iterate.js +76 -20
- package/dist/cjs/mixins/content.js +73 -0
- package/dist/cjs/mixins/html.js +1 -1
- package/dist/cjs/mixins/registry.js +2 -2
- package/dist/cjs/mixins/scope.js +1 -1
- package/dist/cjs/mixins/state.js +2 -2
- package/dist/cjs/mixins/text.js +4 -4
- package/dist/cjs/node.js +15 -15
- package/dist/cjs/set.js +22 -27
- package/dist/cjs/update.js +24 -33
- package/dist/cjs/utils/applyParam.js +4 -4
- package/dist/cjs/utils/extendUtils.js +132 -0
- package/dist/cjs/utils/propEvents.js +39 -0
- package/dist/esm/children.js +5 -3
- package/dist/esm/create.js +16 -16
- package/dist/esm/extend.js +74 -0
- package/dist/esm/iterate.js +77 -22
- package/dist/esm/mixins/content.js +53 -0
- package/dist/esm/mixins/html.js +1 -1
- package/dist/esm/mixins/registry.js +1 -1
- package/dist/esm/mixins/scope.js +1 -1
- package/dist/esm/mixins/state.js +3 -3
- package/dist/esm/mixins/text.js +4 -4
- package/dist/esm/node.js +15 -15
- package/dist/esm/set.js +23 -28
- package/dist/esm/update.js +24 -33
- package/dist/esm/utils/applyParam.js +5 -5
- package/dist/esm/utils/extendUtils.js +119 -0
- package/dist/esm/utils/propEvents.js +19 -0
- package/extend.js +98 -0
- package/iterate.js +80 -25
- package/mixins/content.js +65 -0
- package/mixins/html.js +1 -1
- package/mixins/registry.js +1 -1
- package/mixins/scope.js +1 -1
- package/mixins/state.js +3 -3
- package/mixins/text.js +4 -4
- package/node.js +15 -15
- package/package.json +8 -8
- package/set.js +23 -28
- package/update.js +25 -34
- package/utils/applyParam.js +5 -5
- package/utils/extendUtils.js +149 -0
- package/utils/propEvents.js +19 -0
- package/dist/cjs/__tests__/checkIfOnUpdate.test.js +0 -73
- package/dist/cjs/__tests__/children.test.js +0 -177
- package/dist/cjs/__tests__/define.test.js +0 -75
- package/dist/cjs/__tests__/inheritStateUpdates.test.js +0 -62
- package/dist/cjs/__tests__/renderElement.test.js +0 -138
- package/dist/cjs/__tests__/resetElement.test.js +0 -35
- package/dist/cjs/__tests__/set.test.js +0 -256
- package/dist/cjs/__tests__/throughExecProps.test.js +0 -62
- package/dist/cjs/__tests__/throughInitialDefine.test.js +0 -79
- package/dist/cjs/__tests__/throughInitialExec.test.js +0 -73
- package/dist/cjs/__tests__/throughUpdatedDefine.test.js +0 -69
- package/dist/cjs/__tests__/throughUpdatedExec.test.js +0 -84
- package/dist/cjs/__tests__/tree.test.js +0 -11
- package/dist/cjs/__tests__/update.test.js +0 -222
- package/dist/esm/__tests__/checkIfOnUpdate.test.js +0 -73
- package/dist/esm/__tests__/children.test.js +0 -177
- package/dist/esm/__tests__/define.test.js +0 -53
- package/dist/esm/__tests__/inheritStateUpdates.test.js +0 -62
- package/dist/esm/__tests__/renderElement.test.js +0 -116
- package/dist/esm/__tests__/resetElement.test.js +0 -35
- package/dist/esm/__tests__/set.test.js +0 -256
- package/dist/esm/__tests__/throughExecProps.test.js +0 -62
- package/dist/esm/__tests__/throughInitialDefine.test.js +0 -79
- package/dist/esm/__tests__/throughInitialExec.test.js +0 -73
- package/dist/esm/__tests__/throughUpdatedDefine.test.js +0 -69
- package/dist/esm/__tests__/throughUpdatedExec.test.js +0 -84
- package/dist/esm/__tests__/tree.test.js +0 -11
- package/dist/esm/__tests__/update.test.js +0 -222
package/dist/cjs/iterate.js
CHANGED
|
@@ -27,14 +27,21 @@ __export(iterate_exports, {
|
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(iterate_exports);
|
|
29
29
|
var import_utils = require("@domql/utils");
|
|
30
|
-
const throughInitialExec =
|
|
30
|
+
const throughInitialExec = (element, exclude = {}) => {
|
|
31
31
|
const { __ref: ref } = element;
|
|
32
32
|
for (const param in element) {
|
|
33
33
|
if (exclude[param]) continue;
|
|
34
34
|
const prop = element[param];
|
|
35
35
|
if ((0, import_utils.isFunction)(prop) && !(0, import_utils.isMethod)(param, element)) {
|
|
36
36
|
ref.__exec[param] = prop;
|
|
37
|
-
|
|
37
|
+
const result = prop(element, element.state, element.context);
|
|
38
|
+
if (result && typeof result.then === "function") {
|
|
39
|
+
result.then((resolved) => {
|
|
40
|
+
element[param] = resolved;
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
element[param] = result;
|
|
44
|
+
}
|
|
38
45
|
}
|
|
39
46
|
}
|
|
40
47
|
};
|
|
@@ -46,6 +53,12 @@ const throughUpdatedExec = (element, options = {}) => {
|
|
|
46
53
|
const isDefinedParam = ref.__defineCache[param];
|
|
47
54
|
if (isDefinedParam) continue;
|
|
48
55
|
const newExec = ref.__exec[param](element, element.state, element.context);
|
|
56
|
+
if (newExec && typeof newExec.then === "function") {
|
|
57
|
+
newExec.then((resolved) => {
|
|
58
|
+
element[param] = resolved;
|
|
59
|
+
});
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
49
62
|
const execReturnsString = (0, import_utils.isString)(newExec) || (0, import_utils.isNumber)(newExec);
|
|
50
63
|
if (prop && prop.node && execReturnsString) {
|
|
51
64
|
(0, import_utils.overwrite)(prop, { text: newExec });
|
|
@@ -65,23 +78,37 @@ const throughUpdatedExec = (element, options = {}) => {
|
|
|
65
78
|
}
|
|
66
79
|
return changes;
|
|
67
80
|
};
|
|
68
|
-
const throughExecProps =
|
|
81
|
+
const throughExecProps = (element) => {
|
|
69
82
|
const { __ref: ref } = element;
|
|
70
83
|
const { props } = element;
|
|
71
84
|
for (const k in props) {
|
|
72
85
|
const isDefine = k.startsWith("is") || k.startsWith("has") || k.startsWith("use");
|
|
73
86
|
const cachedExecProp = ref.__execProps[k];
|
|
74
87
|
if ((0, import_utils.isFunction)(cachedExecProp)) {
|
|
75
|
-
|
|
88
|
+
const result = (0, import_utils.exec)(cachedExecProp, element);
|
|
89
|
+
if (result && typeof result.then === "function") {
|
|
90
|
+
result.then((resolved) => {
|
|
91
|
+
props[k] = resolved;
|
|
92
|
+
});
|
|
93
|
+
} else {
|
|
94
|
+
props[k] = result;
|
|
95
|
+
}
|
|
76
96
|
} else if (isDefine && (0, import_utils.isFunction)(props[k])) {
|
|
77
97
|
ref.__execProps[k] = props[k];
|
|
78
|
-
|
|
98
|
+
const result = (0, import_utils.exec)(props[k], element);
|
|
99
|
+
if (result && typeof result.then === "function") {
|
|
100
|
+
result.then((resolved) => {
|
|
101
|
+
props[k] = resolved;
|
|
102
|
+
});
|
|
103
|
+
} else {
|
|
104
|
+
props[k] = result;
|
|
105
|
+
}
|
|
79
106
|
}
|
|
80
107
|
}
|
|
81
108
|
};
|
|
82
109
|
const isPropertyInDefines = (key, element) => {
|
|
83
110
|
};
|
|
84
|
-
const throughInitialDefine =
|
|
111
|
+
const throughInitialDefine = (element) => {
|
|
85
112
|
const { define, context, __ref: ref } = element;
|
|
86
113
|
let defineObj = {};
|
|
87
114
|
const hasGlobalDefine = context && (0, import_utils.isObject)(context.define);
|
|
@@ -91,23 +118,38 @@ const throughInitialDefine = async (element) => {
|
|
|
91
118
|
let elementProp = element[param];
|
|
92
119
|
if ((0, import_utils.isFunction)(elementProp) && !(0, import_utils.isMethod)(param, element)) {
|
|
93
120
|
ref.__exec[param] = elementProp;
|
|
94
|
-
|
|
95
|
-
if (execParam2) {
|
|
96
|
-
|
|
97
|
-
|
|
121
|
+
let execParam2 = (0, import_utils.exec)(elementProp, element);
|
|
122
|
+
if (execParam2 && typeof execParam2.then === "function") {
|
|
123
|
+
execParam2.then((resolved) => {
|
|
124
|
+
elementProp = element[param] = resolved && resolved.parse ? resolved.parse() : resolved;
|
|
125
|
+
if (resolved) {
|
|
126
|
+
ref.__defineCache[param] = elementProp;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
} else {
|
|
130
|
+
elementProp = element[param] = execParam2 && execParam2.parse ? execParam2.parse() : execParam2;
|
|
131
|
+
if (execParam2) {
|
|
132
|
+
ref.__defineCache[param] = elementProp;
|
|
133
|
+
}
|
|
98
134
|
}
|
|
99
135
|
}
|
|
100
|
-
const execParam =
|
|
136
|
+
const execParam = defineObj[param](
|
|
101
137
|
elementProp,
|
|
102
138
|
element,
|
|
103
139
|
element.state,
|
|
104
140
|
element.context
|
|
105
141
|
);
|
|
106
|
-
if (execParam
|
|
142
|
+
if (execParam && typeof execParam.then === "function") {
|
|
143
|
+
execParam.then((resolved) => {
|
|
144
|
+
if (resolved) element[param] = resolved;
|
|
145
|
+
});
|
|
146
|
+
} else if (execParam) {
|
|
147
|
+
element[param] = execParam;
|
|
148
|
+
}
|
|
107
149
|
}
|
|
108
150
|
return element;
|
|
109
151
|
};
|
|
110
|
-
const throughUpdatedDefine =
|
|
152
|
+
const throughUpdatedDefine = (element) => {
|
|
111
153
|
const { context, define, __ref: ref } = element;
|
|
112
154
|
const changes = {};
|
|
113
155
|
let obj = {};
|
|
@@ -116,15 +158,29 @@ const throughUpdatedDefine = async (element) => {
|
|
|
116
158
|
for (const param in obj) {
|
|
117
159
|
const execParam = ref.__exec[param];
|
|
118
160
|
if (execParam) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
161
|
+
const result = execParam(element, element.state, element.context);
|
|
162
|
+
if (result && typeof result.then === "function") {
|
|
163
|
+
result.then((resolved) => {
|
|
164
|
+
ref.__defineCache[param] = resolved;
|
|
165
|
+
});
|
|
166
|
+
} else {
|
|
167
|
+
ref.__defineCache[param] = result;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const cached = (0, import_utils.exec)(ref.__defineCache[param], element);
|
|
171
|
+
if (cached && typeof cached.then === "function") {
|
|
172
|
+
cached.then((resolved) => {
|
|
173
|
+
});
|
|
174
|
+
continue;
|
|
124
175
|
}
|
|
125
|
-
const cached = await (0, import_utils.execPromise)(ref.__defineCache[param], element);
|
|
126
176
|
const newExecParam = typeof obj[param] === "function" ? obj[param](cached, element, element.state, element.context) : void 0;
|
|
127
|
-
if (newExecParam
|
|
177
|
+
if (newExecParam && typeof newExecParam.then === "function") {
|
|
178
|
+
newExecParam.then((resolved) => {
|
|
179
|
+
element[param] = resolved;
|
|
180
|
+
});
|
|
181
|
+
} else if (newExecParam) {
|
|
182
|
+
element[param] = newExecParam;
|
|
183
|
+
}
|
|
128
184
|
}
|
|
129
185
|
return changes;
|
|
130
186
|
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var content_exports = {};
|
|
20
|
+
__export(content_exports, {
|
|
21
|
+
default: () => content_default,
|
|
22
|
+
removeContent: () => removeContent,
|
|
23
|
+
setContent: () => setContent,
|
|
24
|
+
updateContent: () => updateContent
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(content_exports);
|
|
27
|
+
var import_utils = require("@domql/utils");
|
|
28
|
+
var import_set = require("../set.js");
|
|
29
|
+
const updateContent = function(params, options) {
|
|
30
|
+
const element = this;
|
|
31
|
+
const ref = element.__ref;
|
|
32
|
+
const contentKey = ref.contentElementKey;
|
|
33
|
+
if (!element[contentKey]) return;
|
|
34
|
+
if (element[contentKey].update) element[contentKey].update(params, options);
|
|
35
|
+
};
|
|
36
|
+
const removeContent = function(el, opts = {}) {
|
|
37
|
+
const element = el || this;
|
|
38
|
+
const { __ref: ref } = element;
|
|
39
|
+
const contentElementKey = (0, import_utils.setContentKey)(element, opts);
|
|
40
|
+
if (opts.contentElementKey !== "content") opts.contentElementKey = "content";
|
|
41
|
+
if (element[contentElementKey]) {
|
|
42
|
+
if (element[contentElementKey].node && element.node) {
|
|
43
|
+
if (element[contentElementKey].tag === "fragment")
|
|
44
|
+
element.node.innerHTML = "";
|
|
45
|
+
else {
|
|
46
|
+
const contentNode = element[contentElementKey].node;
|
|
47
|
+
if (contentNode.parentNode === element.node)
|
|
48
|
+
element.node.removeChild(element[contentElementKey].node);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const { __cached } = ref;
|
|
52
|
+
if (__cached && __cached[contentElementKey]) {
|
|
53
|
+
if (__cached[contentElementKey].tag === "fragment")
|
|
54
|
+
__cached[contentElementKey].parent.node.innerHTML = "";
|
|
55
|
+
else if (__cached[contentElementKey] && (0, import_utils.isFunction)(__cached[contentElementKey].remove))
|
|
56
|
+
__cached[contentElementKey].remove();
|
|
57
|
+
}
|
|
58
|
+
ref.__children.splice(ref.__children.indexOf(element[contentElementKey]), 1);
|
|
59
|
+
delete element[contentElementKey];
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
function setContent(param, element, node, opts) {
|
|
63
|
+
var _a;
|
|
64
|
+
const contentElementKey = (0, import_utils.setContentKey)(element, opts);
|
|
65
|
+
if (param && element) {
|
|
66
|
+
if ((_a = element[contentElementKey]) == null ? void 0 : _a.update) {
|
|
67
|
+
element[contentElementKey].update({}, opts);
|
|
68
|
+
} else {
|
|
69
|
+
import_set.set.call(element, param, opts);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
var content_default = setContent;
|
package/dist/cjs/mixins/html.js
CHANGED
|
@@ -25,7 +25,7 @@ module.exports = __toCommonJS(html_exports);
|
|
|
25
25
|
var import_utils = require("@domql/utils");
|
|
26
26
|
function html(param, element, node) {
|
|
27
27
|
var _a;
|
|
28
|
-
const prop = (0, import_utils.exec)(
|
|
28
|
+
const prop = (0, import_utils.exec)(((_a = element == null ? void 0 : element.props) == null ? void 0 : _a.html) || param, element);
|
|
29
29
|
const { __ref } = element;
|
|
30
30
|
if (prop !== __ref.__html) {
|
|
31
31
|
if (node.nodeName === "SVG") node.textContent = prop;
|
|
@@ -32,7 +32,7 @@ __export(registry_exports, {
|
|
|
32
32
|
default: () => registry_default
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(registry_exports);
|
|
35
|
-
var import_attr =
|
|
35
|
+
var import_attr = require("./attr.js");
|
|
36
36
|
var import_classList = require("./classList.js");
|
|
37
37
|
var import_data = __toESM(require("./data.js"), 1);
|
|
38
38
|
var import_html = __toESM(require("./html.js"), 1);
|
|
@@ -41,7 +41,7 @@ var import_state = __toESM(require("./state.js"), 1);
|
|
|
41
41
|
var import_style = __toESM(require("./style.js"), 1);
|
|
42
42
|
var import_text = __toESM(require("./text.js"), 1);
|
|
43
43
|
const REGISTRY = {
|
|
44
|
-
attr: import_attr.
|
|
44
|
+
attr: import_attr.attr,
|
|
45
45
|
style: import_style.default,
|
|
46
46
|
text: import_text.default,
|
|
47
47
|
html: import_html.default,
|
package/dist/cjs/mixins/scope.js
CHANGED
|
@@ -23,7 +23,7 @@ __export(scope_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(scope_exports);
|
|
25
25
|
var import_utils = require("@domql/utils");
|
|
26
|
-
|
|
26
|
+
function scope(params, element, node) {
|
|
27
27
|
if (!(0, import_utils.isObject)(params)) return;
|
|
28
28
|
for (const scopeItem in params) {
|
|
29
29
|
const value = params[scopeItem];
|
package/dist/cjs/mixins/state.js
CHANGED
|
@@ -23,8 +23,8 @@ __export(state_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(state_exports);
|
|
25
25
|
var import_utils = require("@domql/utils");
|
|
26
|
-
|
|
27
|
-
const state2 =
|
|
26
|
+
function state(params, element, node) {
|
|
27
|
+
const state2 = (0, import_utils.exec)(params, element);
|
|
28
28
|
if ((0, import_utils.isObject)(state2)) {
|
|
29
29
|
for (const param in state2) {
|
|
30
30
|
if (import_utils.STATE_METHODS.includes(param)) continue;
|
package/dist/cjs/mixins/text.js
CHANGED
|
@@ -24,10 +24,10 @@ __export(text_exports, {
|
|
|
24
24
|
module.exports = __toCommonJS(text_exports);
|
|
25
25
|
var import_create = require("../create.js");
|
|
26
26
|
var import_utils = require("@domql/utils");
|
|
27
|
-
|
|
28
|
-
let prop = (0, import_utils.exec)(
|
|
27
|
+
function text(param, element, node) {
|
|
28
|
+
let prop = (0, import_utils.exec)(element.props.text || param, element);
|
|
29
29
|
if ((0, import_utils.isString)(prop) && prop.includes("{{")) {
|
|
30
|
-
prop = element.call("replaceLiteralsWithObjectFields", prop);
|
|
30
|
+
prop = element.call("replaceLiteralsWithObjectFields", prop, element.state);
|
|
31
31
|
}
|
|
32
32
|
if (element.tag === "string") {
|
|
33
33
|
node.nodeValue = prop;
|
|
@@ -36,7 +36,7 @@ async function text(param, element, node) {
|
|
|
36
36
|
if (element.__text.text === prop) return;
|
|
37
37
|
element.__text.text = prop;
|
|
38
38
|
if (element.__text.node) element.__text.node.nodeValue = prop;
|
|
39
|
-
} else
|
|
39
|
+
} else (0, import_create.create)({ tag: "string", text: prop }, element, "__text");
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
var text_default = text;
|
package/dist/cjs/node.js
CHANGED
|
@@ -42,7 +42,7 @@ var import_applyParam = require("./utils/applyParam.js");
|
|
|
42
42
|
var import_children = __toESM(require("./children.js"), 1);
|
|
43
43
|
var import_set = require("./set.js");
|
|
44
44
|
const ENV = "development";
|
|
45
|
-
const createNode =
|
|
45
|
+
const createNode = (element, opts) => {
|
|
46
46
|
let { node, tag, __ref: ref } = element;
|
|
47
47
|
if (!ref.__if) return element;
|
|
48
48
|
let isNewNode;
|
|
@@ -51,42 +51,42 @@ const createNode = async (element, opts) => {
|
|
|
51
51
|
if (tag === "shadow") {
|
|
52
52
|
node = element.node = element.parent.node.attachShadow({ mode: "open" });
|
|
53
53
|
} else node = element.node = (0, import_render.cacheNode)(element);
|
|
54
|
-
|
|
54
|
+
(0, import_event.triggerEventOn)("attachNode", element, opts);
|
|
55
55
|
}
|
|
56
56
|
if (ENV === "test" || ENV === "development" || opts.alowRefReference) {
|
|
57
57
|
node.ref = element;
|
|
58
58
|
if ((0, import_utils.isFunction)(node.setAttribute)) node.setAttribute("key", element.key);
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
(0, import_iterate.throughExecProps)(element);
|
|
61
|
+
(0, import_iterate.throughInitialDefine)(element);
|
|
62
|
+
(0, import_iterate.throughInitialExec)(element);
|
|
63
|
+
(0, import_event.applyEventsOnNode)(element, { isNewNode, ...opts });
|
|
64
64
|
for (const param in element) {
|
|
65
65
|
const value = element[param];
|
|
66
66
|
if (!Object.hasOwnProperty.call(element, param) || (0, import_utils.isUndefined)(value) || (0, import_utils.isMethod)(param, element) || (0, import_utils.isObject)(import_mixins.REGISTRY[param])) {
|
|
67
67
|
continue;
|
|
68
68
|
}
|
|
69
|
-
const isElement =
|
|
69
|
+
const isElement = (0, import_applyParam.applyParam)(param, element, opts);
|
|
70
70
|
if (isElement) {
|
|
71
71
|
const { hasDefine, hasContextDefine } = isElement;
|
|
72
72
|
if (element[param] && !hasDefine && !hasContextDefine) {
|
|
73
|
-
const createAsync =
|
|
74
|
-
|
|
73
|
+
const createAsync = () => {
|
|
74
|
+
(0, import_create.create)(value, element, param, opts);
|
|
75
75
|
};
|
|
76
76
|
if (element.props && element.props.lazyLoad || opts.lazyLoad) {
|
|
77
|
-
window.requestAnimationFrame(
|
|
78
|
-
|
|
77
|
+
window.requestAnimationFrame(() => {
|
|
78
|
+
createAsync();
|
|
79
79
|
if (!opts.preventUpdateListener) {
|
|
80
|
-
|
|
80
|
+
(0, import_event.triggerEventOn)("lazyLoad", element, opts);
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
|
-
} else
|
|
83
|
+
} else createAsync();
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
const content = element.children ?
|
|
87
|
+
const content = element.children ? (0, import_children.default)(element.children, element, opts) : element.content || element.content;
|
|
88
88
|
if (content) {
|
|
89
|
-
|
|
89
|
+
(0, import_set.setContent)(content, element, opts);
|
|
90
90
|
}
|
|
91
91
|
return element;
|
|
92
92
|
};
|
package/dist/cjs/set.js
CHANGED
|
@@ -39,45 +39,40 @@ const setContentKey = (element, opts = {}) => {
|
|
|
39
39
|
}
|
|
40
40
|
return ref.contentElementKey;
|
|
41
41
|
};
|
|
42
|
-
const reset =
|
|
42
|
+
const reset = (options) => {
|
|
43
43
|
const element = void 0;
|
|
44
|
-
|
|
44
|
+
(0, import_create.create)(element, element.parent, void 0, {
|
|
45
45
|
ignoreChildExtends: true,
|
|
46
46
|
...import_utils.OPTIONS.defaultOptions,
|
|
47
47
|
...import_utils.OPTIONS.create,
|
|
48
48
|
...options
|
|
49
49
|
});
|
|
50
50
|
};
|
|
51
|
-
const resetContent =
|
|
51
|
+
const resetContent = (params, element, opts) => {
|
|
52
52
|
var _a;
|
|
53
53
|
const contentElementKey = setContentKey(element, opts);
|
|
54
54
|
if ((_a = element[contentElementKey]) == null ? void 0 : _a.node) removeContent(element, opts);
|
|
55
|
-
const contentElem =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
...import_utils.OPTIONS.defaultOptions,
|
|
62
|
-
...import_utils.OPTIONS.create,
|
|
63
|
-
...opts
|
|
64
|
-
}
|
|
65
|
-
);
|
|
55
|
+
const contentElem = (0, import_create.create)(params, element, contentElementKey || "content", {
|
|
56
|
+
ignoreChildExtends: true,
|
|
57
|
+
...import_utils.OPTIONS.defaultOptions,
|
|
58
|
+
...import_utils.OPTIONS.create,
|
|
59
|
+
...opts
|
|
60
|
+
});
|
|
66
61
|
if (contentElementKey !== "content") opts.contentElementKey = "content";
|
|
67
62
|
return contentElem;
|
|
68
63
|
};
|
|
69
|
-
const updateContent =
|
|
64
|
+
const updateContent = function(params, opts) {
|
|
70
65
|
const element = this;
|
|
71
66
|
const contentElementKey = setContentKey(element, opts);
|
|
72
67
|
if (!element[contentElementKey]) return;
|
|
73
68
|
if (element[contentElementKey].update) {
|
|
74
|
-
|
|
69
|
+
element[contentElementKey].update(params, opts);
|
|
75
70
|
}
|
|
76
71
|
};
|
|
77
|
-
|
|
78
|
-
const content =
|
|
72
|
+
function setContent(param, element, opts) {
|
|
73
|
+
const content = (0, import_utils.exec)(param, element);
|
|
79
74
|
if (content && element) {
|
|
80
|
-
|
|
75
|
+
set.call(element, content, opts);
|
|
81
76
|
}
|
|
82
77
|
}
|
|
83
78
|
const removeContent = function(el, opts = {}) {
|
|
@@ -109,7 +104,7 @@ const removeContent = function(el, opts = {}) {
|
|
|
109
104
|
}
|
|
110
105
|
delete element[contentElementKey];
|
|
111
106
|
};
|
|
112
|
-
const set =
|
|
107
|
+
const set = function(params, options = {}, el) {
|
|
113
108
|
var _a;
|
|
114
109
|
const element = el || this;
|
|
115
110
|
const { __ref: ref } = element;
|
|
@@ -123,7 +118,7 @@ const set = async function(params, options = {}, el) {
|
|
|
123
118
|
const childrenIsDifferentFromCache = childHasChanged && __contentRef && Object.keys(params).length === Object.keys(content).length && (0, import_utils.deepContains)(params, content);
|
|
124
119
|
if ((content == null ? void 0 : content.update) && !childHasChanged && !childrenIsDifferentFromCache) {
|
|
125
120
|
if (!options.preventBeforeUpdateListener && !options.preventListeners) {
|
|
126
|
-
const beforeUpdateReturns =
|
|
121
|
+
const beforeUpdateReturns = (0, import_event.triggerEventOnUpdate)(
|
|
127
122
|
"beforeUpdate",
|
|
128
123
|
params,
|
|
129
124
|
element,
|
|
@@ -131,9 +126,9 @@ const set = async function(params, options = {}, el) {
|
|
|
131
126
|
);
|
|
132
127
|
if (beforeUpdateReturns === false) return element;
|
|
133
128
|
}
|
|
134
|
-
|
|
129
|
+
content.update(params);
|
|
135
130
|
if (!options.preventUpdateListener && !options.preventListeners) {
|
|
136
|
-
|
|
131
|
+
(0, import_event.triggerEventOn)("update", element, options);
|
|
137
132
|
}
|
|
138
133
|
return;
|
|
139
134
|
}
|
|
@@ -151,14 +146,14 @@ const set = async function(params, options = {}, el) {
|
|
|
151
146
|
}
|
|
152
147
|
}
|
|
153
148
|
if (lazyLoad) {
|
|
154
|
-
window.requestAnimationFrame(
|
|
155
|
-
|
|
149
|
+
window.requestAnimationFrame(() => {
|
|
150
|
+
resetContent(params, element, options);
|
|
156
151
|
if (!options.preventUpdateListener) {
|
|
157
|
-
|
|
152
|
+
(0, import_event.triggerEventOn)("lazyLoad", element, options);
|
|
158
153
|
}
|
|
159
154
|
});
|
|
160
155
|
} else {
|
|
161
|
-
|
|
156
|
+
resetContent(params, element, options);
|
|
162
157
|
}
|
|
163
158
|
};
|
|
164
159
|
var set_default = set;
|
package/dist/cjs/update.js
CHANGED
|
@@ -50,7 +50,7 @@ const UPDATE_DEFAULT_OPTIONS = {
|
|
|
50
50
|
calleeElement: false,
|
|
51
51
|
exclude: import_utils2.METHODS_EXL
|
|
52
52
|
};
|
|
53
|
-
const update =
|
|
53
|
+
const update = function(params = {}, opts) {
|
|
54
54
|
const calleeElementCache = opts == null ? void 0 : opts.calleeElement;
|
|
55
55
|
const options = (0, import_utils.deepClone)(
|
|
56
56
|
(0, import_utils.isObject)(opts) ? (0, import_utils.deepMerge)(opts, UPDATE_DEFAULT_OPTIONS) : UPDATE_DEFAULT_OPTIONS,
|
|
@@ -66,7 +66,7 @@ const update = async function(params = {}, opts) {
|
|
|
66
66
|
);
|
|
67
67
|
if (snapshotHasUpdated) return;
|
|
68
68
|
if (!options.preventListeners) {
|
|
69
|
-
|
|
69
|
+
(0, import_event.triggerEventOnUpdate)("startUpdate", params, element, options);
|
|
70
70
|
}
|
|
71
71
|
const { parent, node, key } = element;
|
|
72
72
|
const { exclude, preventInheritAtCurrentState } = options;
|
|
@@ -78,9 +78,9 @@ const update = async function(params = {}, opts) {
|
|
|
78
78
|
params = { text: params };
|
|
79
79
|
}
|
|
80
80
|
params = import_utils.propertizeUpdate.call(element, params);
|
|
81
|
-
const inheritState =
|
|
81
|
+
const inheritState = inheritStateUpdates(element, options);
|
|
82
82
|
if (inheritState === false) return;
|
|
83
|
-
const ifFails =
|
|
83
|
+
const ifFails = checkIfOnUpdate(element, parent, options);
|
|
84
84
|
if (ifFails) return;
|
|
85
85
|
if (ref.__if && !options.preventPropsUpdate) {
|
|
86
86
|
const hasParentProps = parent.props && (parent.props[key] || parent.props.childProps);
|
|
@@ -90,7 +90,7 @@ const update = async function(params = {}, opts) {
|
|
|
90
90
|
}
|
|
91
91
|
if (!options.preventBeforeUpdateListener && !options.preventListeners) {
|
|
92
92
|
const simulate = { ...params, ...element };
|
|
93
|
-
const beforeUpdateReturns =
|
|
93
|
+
const beforeUpdateReturns = (0, import_event.triggerEventOnUpdate)(
|
|
94
94
|
"beforeUpdate",
|
|
95
95
|
params,
|
|
96
96
|
simulate,
|
|
@@ -103,7 +103,7 @@ const update = async function(params = {}, opts) {
|
|
|
103
103
|
(0, import_iterate.throughUpdatedExec)(element, { ignore: UPDATE_DEFAULT_OPTIONS });
|
|
104
104
|
(0, import_iterate.throughUpdatedDefine)(element);
|
|
105
105
|
if (!options.isForced && !options.preventListeners) {
|
|
106
|
-
|
|
106
|
+
(0, import_event.triggerEventOn)("beforeClassAssign", element, options);
|
|
107
107
|
}
|
|
108
108
|
if (!ref.__if) return false;
|
|
109
109
|
if (!node) {
|
|
@@ -135,7 +135,7 @@ const update = async function(params = {}, opts) {
|
|
|
135
135
|
continue;
|
|
136
136
|
}
|
|
137
137
|
if (preventStateUpdate === "once") options.preventStateUpdate = false;
|
|
138
|
-
const isElement =
|
|
138
|
+
const isElement = (0, import_applyParam.applyParam)(param, element, options);
|
|
139
139
|
if (isElement) {
|
|
140
140
|
const { hasDefine, hasContextDefine } = isElement;
|
|
141
141
|
const canUpdate = (0, import_utils.isObject)(prop) && !hasDefine && !hasContextDefine && !preventRecursive;
|
|
@@ -144,33 +144,33 @@ const update = async function(params = {}, opts) {
|
|
|
144
144
|
if (options.onEachUpdate) {
|
|
145
145
|
options.onEachUpdate(param, element, element.state, element.context);
|
|
146
146
|
}
|
|
147
|
-
const childUpdateCall =
|
|
147
|
+
const childUpdateCall = () => update.call(prop, params[prop], {
|
|
148
148
|
...options,
|
|
149
149
|
currentSnapshot: snapshotOnCallee,
|
|
150
150
|
calleeElement
|
|
151
151
|
});
|
|
152
152
|
if (lazyLoad) {
|
|
153
|
-
import_utils.window.requestAnimationFrame(
|
|
154
|
-
|
|
153
|
+
import_utils.window.requestAnimationFrame(() => {
|
|
154
|
+
childUpdateCall();
|
|
155
155
|
if (!options.preventUpdateListener) {
|
|
156
|
-
|
|
156
|
+
(0, import_event.triggerEventOn)("lazyLoad", element, options);
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
|
-
} else
|
|
159
|
+
} else childUpdateCall();
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
if (!preventContentUpdate) {
|
|
163
163
|
const children = params.children || element.children;
|
|
164
|
-
const content = children ?
|
|
164
|
+
const content = children ? (0, import_children.default)(children, element, opts) : element.children || params.content;
|
|
165
165
|
if (content) {
|
|
166
|
-
|
|
166
|
+
(0, import_set.setContent)(content, element, options);
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
if (!preventUpdateListener) {
|
|
170
|
-
|
|
170
|
+
(0, import_event.triggerEventOn)("update", element, options);
|
|
171
171
|
}
|
|
172
172
|
};
|
|
173
|
-
const checkIfOnUpdate =
|
|
173
|
+
const checkIfOnUpdate = (element, parent, options) => {
|
|
174
174
|
var _a, _b, _c;
|
|
175
175
|
if (!(0, import_utils.isFunction)(element.if) && !(0, import_utils.isFunction)((_a = element.props) == null ? void 0 : _a.if) || !parent) {
|
|
176
176
|
return;
|
|
@@ -219,7 +219,7 @@ const checkIfOnUpdate = async (element, parent, options) => {
|
|
|
219
219
|
};
|
|
220
220
|
delete element.__ref;
|
|
221
221
|
delete element.parent;
|
|
222
|
-
const createdElement =
|
|
222
|
+
const createdElement = (0, import_create.create)(
|
|
223
223
|
element,
|
|
224
224
|
parent,
|
|
225
225
|
element.key,
|
|
@@ -227,11 +227,7 @@ const checkIfOnUpdate = async (element, parent, options) => {
|
|
|
227
227
|
attachOptions
|
|
228
228
|
);
|
|
229
229
|
if (options.preventUpdate !== true && element.on && (0, import_utils.isFunction)(element.on.update)) {
|
|
230
|
-
|
|
231
|
-
element.on.update,
|
|
232
|
-
createdElement,
|
|
233
|
-
createdElement.state
|
|
234
|
-
);
|
|
230
|
+
(0, import_event.applyEvent)(element.on.update, createdElement, createdElement.state);
|
|
235
231
|
}
|
|
236
232
|
return createdElement;
|
|
237
233
|
}
|
|
@@ -240,7 +236,7 @@ const checkIfOnUpdate = async (element, parent, options) => {
|
|
|
240
236
|
delete ref.__if;
|
|
241
237
|
}
|
|
242
238
|
};
|
|
243
|
-
const inheritStateUpdates =
|
|
239
|
+
const inheritStateUpdates = (element, options) => {
|
|
244
240
|
const { __ref: ref } = element;
|
|
245
241
|
const stateKey = ref.__state;
|
|
246
242
|
const { parent, state } = element;
|
|
@@ -264,7 +260,7 @@ const inheritStateUpdates = async (element, options) => {
|
|
|
264
260
|
const keyInParentState = (0, import_utils.findInheritedState)(element, element.parent);
|
|
265
261
|
if (!keyInParentState || options.preventInheritedStateUpdate) return;
|
|
266
262
|
if (!options.preventBeforeStateUpdateListener && !options.preventListeners) {
|
|
267
|
-
const initStateReturns =
|
|
263
|
+
const initStateReturns = (0, import_event.triggerEventOnUpdate)(
|
|
268
264
|
"beforeStateUpdate",
|
|
269
265
|
keyInParentState,
|
|
270
266
|
element,
|
|
@@ -272,19 +268,14 @@ const inheritStateUpdates = async (element, options) => {
|
|
|
272
268
|
);
|
|
273
269
|
if (initStateReturns === false) return element;
|
|
274
270
|
}
|
|
275
|
-
const newState =
|
|
271
|
+
const newState = createStateUpdate(element, parent, options);
|
|
276
272
|
if (!options.preventStateUpdateListener && !options.preventListeners) {
|
|
277
|
-
|
|
278
|
-
"stateUpdate",
|
|
279
|
-
newState.parse(),
|
|
280
|
-
element,
|
|
281
|
-
options
|
|
282
|
-
);
|
|
273
|
+
(0, import_event.triggerEventOnUpdate)("stateUpdate", newState.parse(), element, options);
|
|
283
274
|
}
|
|
284
275
|
};
|
|
285
|
-
const createStateUpdate =
|
|
276
|
+
const createStateUpdate = (element, parent, options) => {
|
|
286
277
|
const __stateChildren = element.state.__children;
|
|
287
|
-
const newState =
|
|
278
|
+
const newState = (0, import_state.createState)(element, parent);
|
|
288
279
|
element.state = newState;
|
|
289
280
|
for (const child in __stateChildren) {
|
|
290
281
|
if (newState[child]) newState.__children[child] = __stateChildren[child];
|
|
@@ -23,9 +23,9 @@ __export(applyParam_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(applyParam_exports);
|
|
24
24
|
var import_utils = require("@domql/utils");
|
|
25
25
|
var import_mixins = require("../mixins/index.js");
|
|
26
|
-
const applyParam =
|
|
26
|
+
const applyParam = (param, element, options) => {
|
|
27
27
|
const { node, context, __ref: ref } = element;
|
|
28
|
-
const prop = element[param];
|
|
28
|
+
const prop = (0, import_utils.exec)(element[param], element);
|
|
29
29
|
const { onlyUpdate } = options;
|
|
30
30
|
const DOMQLProperty = import_mixins.REGISTRY[param];
|
|
31
31
|
const DOMQLPropertyFromContext = context && context.registry && context.registry[param];
|
|
@@ -36,9 +36,9 @@ const applyParam = async (param, element, options) => {
|
|
|
36
36
|
const hasOnlyUpdate = onlyUpdate ? onlyUpdate === param || element.lookup(onlyUpdate) : true;
|
|
37
37
|
if (isGlobalTransformer && !hasContextDefine && hasOnlyUpdate) {
|
|
38
38
|
if ((0, import_utils.isFunction)(isGlobalTransformer)) {
|
|
39
|
-
|
|
40
|
-
return;
|
|
39
|
+
isGlobalTransformer(prop, element, node, options);
|
|
41
40
|
}
|
|
41
|
+
return;
|
|
42
42
|
}
|
|
43
43
|
return { hasDefine, hasContextDefine };
|
|
44
44
|
};
|