@domql/element 3.1.2 → 3.2.7
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/children.js +45 -18
- package/create.js +58 -46
- package/define.js +1 -1
- package/dist/cjs/children.js +43 -13
- package/dist/cjs/create.js +57 -27
- package/dist/cjs/define.js +1 -1
- package/dist/cjs/event/animationFrame.js +96 -0
- package/dist/cjs/event/can.js +28 -0
- package/dist/cjs/event/index.js +20 -0
- package/dist/cjs/event/on.js +84 -0
- package/dist/cjs/event/store.js +27 -0
- package/dist/cjs/extend.js +88 -0
- package/dist/cjs/index.js +9 -6
- package/dist/cjs/iterate.js +89 -33
- package/dist/cjs/methods/set.js +5 -0
- package/dist/cjs/methods/v2.js +1 -1
- package/dist/cjs/mixins/attr.js +3 -2
- package/dist/cjs/mixins/classList.js +11 -1
- package/dist/cjs/mixins/content.js +72 -0
- package/dist/cjs/mixins/html.js +1 -2
- package/dist/cjs/mixins/registry.js +2 -2
- package/dist/cjs/mixins/scope.js +1 -1
- package/dist/cjs/mixins/state.js +4 -4
- package/dist/cjs/mixins/style.js +11 -2
- package/dist/cjs/mixins/text.js +9 -5
- package/dist/cjs/node.js +22 -19
- package/dist/cjs/render/append.js +72 -0
- package/dist/cjs/render/cache.js +80 -0
- package/dist/cjs/render/create.js +25 -0
- package/dist/cjs/render/index.js +20 -0
- package/dist/cjs/set.js +33 -40
- package/dist/cjs/update.js +100 -69
- package/dist/cjs/utils/applyParam.js +7 -7
- package/dist/cjs/utils/extendUtils.js +132 -0
- package/dist/cjs/utils/index.js +2 -0
- package/dist/cjs/utils/propEvents.js +56 -0
- package/dist/esm/children.js +44 -14
- package/dist/esm/create.js +58 -27
- package/dist/esm/define.js +1 -1
- package/dist/esm/event/animationFrame.js +76 -0
- package/dist/esm/event/can.js +8 -0
- package/dist/esm/event/index.js +3 -0
- package/dist/esm/event/on.js +64 -0
- package/dist/esm/event/store.js +7 -0
- package/dist/esm/extend.js +74 -0
- package/dist/esm/index.js +8 -6
- package/dist/esm/iterate.js +90 -35
- package/dist/esm/methods/set.js +10 -0
- package/dist/esm/methods/v2.js +1 -1
- package/dist/esm/mixins/attr.js +4 -3
- package/dist/esm/mixins/classList.js +11 -1
- package/dist/esm/mixins/content.js +52 -0
- package/dist/esm/mixins/html.js +1 -2
- package/dist/esm/mixins/registry.js +1 -1
- package/dist/esm/mixins/scope.js +1 -1
- package/dist/esm/mixins/state.js +5 -5
- package/dist/esm/mixins/style.js +12 -3
- package/dist/esm/mixins/text.js +10 -6
- package/dist/esm/node.js +22 -19
- package/dist/esm/render/append.js +52 -0
- package/dist/esm/render/cache.js +60 -0
- package/dist/esm/render/create.js +5 -0
- package/dist/esm/render/index.js +3 -0
- package/dist/esm/set.js +34 -41
- package/dist/esm/update.js +100 -71
- package/dist/esm/utils/applyParam.js +8 -8
- package/dist/esm/utils/extendUtils.js +119 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/propEvents.js +36 -0
- package/dist/iife/index.js +4718 -0
- package/extend.js +95 -0
- package/index.js +9 -6
- package/iterate.js +100 -38
- package/node.js +25 -23
- package/package.json +44 -20
- package/set.js +28 -32
- package/update.js +111 -82
- package/__tests__/checkIfOnUpdate.test.js +0 -103
- package/__tests__/children.test.js +0 -213
- package/__tests__/define.test.js +0 -75
- package/__tests__/inheritStateUpdates.test.js +0 -79
- package/__tests__/renderElement.test.js +0 -131
- package/__tests__/resetElement.test.js +0 -44
- package/__tests__/set.test.js +0 -316
- package/__tests__/throughExecProps.test.js +0 -86
- package/__tests__/throughInitialDefine.test.js +0 -104
- package/__tests__/throughInitialExec.test.js +0 -92
- package/__tests__/throughUpdatedDefine.test.js +0 -92
- package/__tests__/throughUpdatedExec.test.js +0 -110
- package/__tests__/tree.test.js +0 -15
- package/__tests__/update.test.js +0 -256
- 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/cjs/package.json +0 -4
- 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/methods/set.js +0 -63
- package/methods/v2.js +0 -83
- package/mixins/attr.js +0 -32
- package/mixins/classList.js +0 -54
- package/mixins/data.js +0 -26
- package/mixins/html.js +0 -21
- package/mixins/index.js +0 -23
- package/mixins/registry.js +0 -46
- package/mixins/scope.js +0 -23
- package/mixins/state.js +0 -19
- package/mixins/style.js +0 -16
- package/mixins/text.js +0 -26
- package/utils/applyParam.js +0 -34
- package/utils/index.js +0 -3
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
const contentElementKey = (0, import_utils.setContentKey)(element, opts);
|
|
64
|
+
if (param && element) {
|
|
65
|
+
if (element[contentElementKey]?.update) {
|
|
66
|
+
element[contentElementKey].update({}, opts);
|
|
67
|
+
} else {
|
|
68
|
+
import_set.set.call(element, param, opts);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
var content_default = setContent;
|
package/dist/cjs/mixins/html.js
CHANGED
|
@@ -24,8 +24,7 @@ __export(html_exports, {
|
|
|
24
24
|
module.exports = __toCommonJS(html_exports);
|
|
25
25
|
var import_utils = require("@domql/utils");
|
|
26
26
|
function html(param, element, node) {
|
|
27
|
-
|
|
28
|
-
const prop = (0, import_utils.exec)(param, element) || (0, import_utils.exec)((_a = element == null ? void 0 : element.props) == null ? void 0 : _a.html, element);
|
|
27
|
+
const prop = (0, import_utils.exec)(element?.props?.html || param, element);
|
|
29
28
|
const { __ref } = element;
|
|
30
29
|
if (prop !== __ref.__html) {
|
|
31
30
|
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,12 +23,12 @@ __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
|
-
if (import_utils.STATE_METHODS.
|
|
31
|
-
if (!Object.hasOwnProperty.call(state2, param)) continue;
|
|
30
|
+
if (import_utils.STATE_METHODS.has(param)) continue;
|
|
31
|
+
if (!Object.prototype.hasOwnProperty.call(state2, param)) continue;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
return element;
|
package/dist/cjs/mixins/style.js
CHANGED
|
@@ -26,8 +26,17 @@ var import_utils = require("@domql/utils");
|
|
|
26
26
|
var import_report = require("@domql/report");
|
|
27
27
|
function style(params, element, node) {
|
|
28
28
|
if (params) {
|
|
29
|
-
if ((0, import_utils.isObject)(params))
|
|
30
|
-
|
|
29
|
+
if ((0, import_utils.isObject)(params)) {
|
|
30
|
+
const { __ref } = element;
|
|
31
|
+
if (!__ref.__style) __ref.__style = {};
|
|
32
|
+
const cache = __ref.__style;
|
|
33
|
+
for (const prop in params) {
|
|
34
|
+
const val = (0, import_utils.exec)(params[prop], element);
|
|
35
|
+
if (val === cache[prop]) continue;
|
|
36
|
+
cache[prop] = val;
|
|
37
|
+
node.style[prop] = val;
|
|
38
|
+
}
|
|
39
|
+
} else (0, import_report.report)("HTMLInvalidStyles", params);
|
|
31
40
|
}
|
|
32
41
|
}
|
|
33
42
|
var style_default = style;
|
package/dist/cjs/mixins/text.js
CHANGED
|
@@ -24,19 +24,23 @@ __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;
|
|
34
|
-
} else if (param !== void 0
|
|
34
|
+
} else if (param !== void 0 && param !== null) {
|
|
35
|
+
if (import_utils.SVG_TAGS.has(element.tag)) {
|
|
36
|
+
if (node) node.textContent = prop;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
35
39
|
if (element.__text) {
|
|
36
40
|
if (element.__text.text === prop) return;
|
|
37
41
|
element.__text.text = prop;
|
|
38
42
|
if (element.__text.node) element.__text.node.nodeValue = prop;
|
|
39
|
-
} else
|
|
43
|
+
} else (0, import_create.create)({ tag: "string", text: prop }, element, "__text");
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
46
|
var text_default = text;
|
package/dist/cjs/node.js
CHANGED
|
@@ -33,16 +33,17 @@ __export(node_exports, {
|
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(node_exports);
|
|
35
35
|
var import_utils = require("@domql/utils");
|
|
36
|
-
var import_event = require("
|
|
37
|
-
var
|
|
36
|
+
var import_event = require("./event/index.js");
|
|
37
|
+
var import_propEvents = require("./utils/propEvents.js");
|
|
38
|
+
var import_render = require("./render/index.js");
|
|
38
39
|
var import_create = require("./create.js");
|
|
39
40
|
var import_iterate = require("./iterate.js");
|
|
40
41
|
var import_mixins = require("./mixins/index.js");
|
|
41
42
|
var import_applyParam = require("./utils/applyParam.js");
|
|
42
43
|
var import_children = __toESM(require("./children.js"), 1);
|
|
43
44
|
var import_set = require("./set.js");
|
|
44
|
-
const ENV =
|
|
45
|
-
const createNode =
|
|
45
|
+
const ENV = process.env.NODE_ENV;
|
|
46
|
+
const createNode = (element, opts) => {
|
|
46
47
|
let { node, tag, __ref: ref } = element;
|
|
47
48
|
if (!ref.__if) return element;
|
|
48
49
|
let isNewNode;
|
|
@@ -51,42 +52,44 @@ const createNode = async (element, opts) => {
|
|
|
51
52
|
if (tag === "shadow") {
|
|
52
53
|
node = element.node = element.parent.node.attachShadow({ mode: "open" });
|
|
53
54
|
} else node = element.node = (0, import_render.cacheNode)(element);
|
|
54
|
-
|
|
55
|
+
(0, import_event.triggerEventOn)("attachNode", element, opts);
|
|
55
56
|
}
|
|
56
57
|
if (ENV === "test" || ENV === "development" || opts.alowRefReference) {
|
|
57
58
|
node.ref = element;
|
|
58
59
|
if ((0, import_utils.isFunction)(node.setAttribute)) node.setAttribute("key", element.key);
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
(0, import_iterate.throughExecProps)(element);
|
|
62
|
+
(0, import_iterate.throughInitialDefine)(element);
|
|
63
|
+
(0, import_iterate.throughInitialExec)(element);
|
|
64
|
+
(0, import_propEvents.propagateEventsFromProps)(element);
|
|
65
|
+
(0, import_propEvents.propagateEventsFromElement)(element);
|
|
66
|
+
(0, import_event.applyEventsOnNode)(element, { isNewNode, ...opts });
|
|
64
67
|
for (const param in element) {
|
|
65
68
|
const value = element[param];
|
|
66
|
-
if (!Object.hasOwnProperty.call(element, param) ||
|
|
69
|
+
if (!Object.prototype.hasOwnProperty.call(element, param) || value === void 0 || (0, import_utils.isMethod)(param, element) || (0, import_utils.isObject)(import_mixins.REGISTRY[param]) || param.length > 2 && param.charCodeAt(0) === 111 && param.charCodeAt(1) === 110 && param.charCodeAt(2) >= 65 && param.charCodeAt(2) <= 90) {
|
|
67
70
|
continue;
|
|
68
71
|
}
|
|
69
|
-
const isElement =
|
|
72
|
+
const isElement = (0, import_applyParam.applyParam)(param, element, opts);
|
|
70
73
|
if (isElement) {
|
|
71
74
|
const { hasDefine, hasContextDefine } = isElement;
|
|
72
75
|
if (element[param] && !hasDefine && !hasContextDefine) {
|
|
73
|
-
const createAsync =
|
|
74
|
-
|
|
76
|
+
const createAsync = () => {
|
|
77
|
+
(0, import_create.create)(value, element, param, opts);
|
|
75
78
|
};
|
|
76
79
|
if (element.props && element.props.lazyLoad || opts.lazyLoad) {
|
|
77
|
-
window.requestAnimationFrame(
|
|
78
|
-
|
|
80
|
+
window.requestAnimationFrame(() => {
|
|
81
|
+
createAsync();
|
|
79
82
|
if (!opts.preventUpdateListener) {
|
|
80
|
-
|
|
83
|
+
(0, import_event.triggerEventOn)("lazyLoad", element, opts);
|
|
81
84
|
}
|
|
82
85
|
});
|
|
83
|
-
} else
|
|
86
|
+
} else createAsync();
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
|
-
const content = element.children ?
|
|
90
|
+
const content = element.children ? (0, import_children.default)(element.children, element, opts) : element.children || element.content;
|
|
88
91
|
if (content) {
|
|
89
|
-
|
|
92
|
+
(0, import_set.setContent)(content, element, opts);
|
|
90
93
|
}
|
|
91
94
|
return element;
|
|
92
95
|
};
|
|
@@ -0,0 +1,72 @@
|
|
|
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 append_exports = {};
|
|
20
|
+
__export(append_exports, {
|
|
21
|
+
appendNode: () => appendNode,
|
|
22
|
+
assignNode: () => assignNode,
|
|
23
|
+
insertNodeAfter: () => insertNodeAfter,
|
|
24
|
+
insertNodeBefore: () => insertNodeBefore
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(append_exports);
|
|
27
|
+
const appendNode = (node, parentNode) => {
|
|
28
|
+
try {
|
|
29
|
+
parentNode.appendChild(node);
|
|
30
|
+
return node;
|
|
31
|
+
} catch (e) {
|
|
32
|
+
console.error("Does not support to append", parentNode, node);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const insertNodeAfter = (node, siblingNode, parentNode) => {
|
|
36
|
+
if (!node) {
|
|
37
|
+
throw new Error("Node is required");
|
|
38
|
+
}
|
|
39
|
+
const parent = parentNode || siblingNode?.parentNode;
|
|
40
|
+
if (siblingNode?.nextSibling) {
|
|
41
|
+
parent?.insertBefore(node, siblingNode.nextSibling);
|
|
42
|
+
} else if (siblingNode?.insertAdjacentElement) {
|
|
43
|
+
siblingNode.insertAdjacentElement("afterend", node);
|
|
44
|
+
} else {
|
|
45
|
+
parent?.insertBefore(node, siblingNode);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const insertNodeBefore = (node, siblingNode, parentNode) => {
|
|
49
|
+
if (!node) {
|
|
50
|
+
throw new Error("Node is required");
|
|
51
|
+
}
|
|
52
|
+
const parent = parentNode || siblingNode.parentNode;
|
|
53
|
+
parent?.insertBefore(node, siblingNode);
|
|
54
|
+
};
|
|
55
|
+
const assignNode = (element, parent, key, attachOptions) => {
|
|
56
|
+
if (!element) {
|
|
57
|
+
throw new Error("Element is required");
|
|
58
|
+
}
|
|
59
|
+
if (!parent) {
|
|
60
|
+
throw new Error("Parent is required");
|
|
61
|
+
}
|
|
62
|
+
parent[key || element.key] = element;
|
|
63
|
+
if (element.tag !== "shadow") {
|
|
64
|
+
if (attachOptions && attachOptions.position) {
|
|
65
|
+
;
|
|
66
|
+
(attachOptions.position === "before" ? insertNodeBefore : insertNodeAfter)(element.node, attachOptions.node || parent.node);
|
|
67
|
+
} else {
|
|
68
|
+
appendNode(element.node, parent.node, element);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return element;
|
|
72
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
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 cache_exports = {};
|
|
20
|
+
__export(cache_exports, {
|
|
21
|
+
cacheNode: () => cacheNode,
|
|
22
|
+
createHTMLNode: () => createHTMLNode,
|
|
23
|
+
detectTag: () => detectTag
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(cache_exports);
|
|
26
|
+
var import_report = require("@domql/report");
|
|
27
|
+
var import_event = require("../event/index.js");
|
|
28
|
+
var import_utils = require("@domql/utils");
|
|
29
|
+
const SVG_NS = "http://www.w3.org/2000/svg";
|
|
30
|
+
const createHTMLNode = (element) => {
|
|
31
|
+
const { tag, context } = element;
|
|
32
|
+
const doc = context.document || import_utils.document;
|
|
33
|
+
if (tag) {
|
|
34
|
+
if (tag === "string") return doc.createTextNode(element.text);
|
|
35
|
+
else if (tag === "fragment") {
|
|
36
|
+
return doc.createDocumentFragment();
|
|
37
|
+
} else if (import_utils.SVG_TAGS.has(tag)) {
|
|
38
|
+
if (tag === "svg" || element.parent?.node?.namespaceURI === SVG_NS) {
|
|
39
|
+
return doc.createElementNS(SVG_NS, tag);
|
|
40
|
+
}
|
|
41
|
+
return doc.createElement(tag);
|
|
42
|
+
} else return doc.createElement(tag);
|
|
43
|
+
} else {
|
|
44
|
+
return doc.createElement("div");
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const detectTag = (element) => {
|
|
48
|
+
let { tag, key, props } = element;
|
|
49
|
+
tag = (0, import_utils.exec)(tag, element);
|
|
50
|
+
if (tag === true) tag = key;
|
|
51
|
+
if ((0, import_utils.isObject)(props) && (0, import_utils.isString)(props.tag)) {
|
|
52
|
+
const tagExists = (0, import_utils.isValidHtmlTag)(props.tag);
|
|
53
|
+
if (tagExists) return props.tag;
|
|
54
|
+
}
|
|
55
|
+
if ((0, import_utils.isString)(tag)) {
|
|
56
|
+
if ((0, import_utils.isValidHtmlTag)(tag)) return tag;
|
|
57
|
+
} else {
|
|
58
|
+
let keyAsTag = key.toLowerCase();
|
|
59
|
+
if (keyAsTag.includes(".")) keyAsTag = keyAsTag.split(".")[0];
|
|
60
|
+
if (keyAsTag.includes("_")) keyAsTag = keyAsTag.split("_")[0];
|
|
61
|
+
if ((0, import_utils.isValidHtmlTag)(keyAsTag)) return keyAsTag;
|
|
62
|
+
}
|
|
63
|
+
return "div";
|
|
64
|
+
};
|
|
65
|
+
const cacheNode = (element) => {
|
|
66
|
+
const { context } = element;
|
|
67
|
+
const win = context.window || window;
|
|
68
|
+
const tag = element.tag = detectTag(element);
|
|
69
|
+
if (!(0, import_event.canRenderTag)(tag)) {
|
|
70
|
+
return (0, import_report.report)("HTMLInvalidTag", element.tag, element);
|
|
71
|
+
}
|
|
72
|
+
if (!win.nodeCaches) win.nodeCaches = {};
|
|
73
|
+
const isSvgContext = import_utils.SVG_TAGS.has(tag) && (tag === "svg" || element.parent?.node?.namespaceURI === SVG_NS);
|
|
74
|
+
const cacheKey = isSvgContext ? "svg:" + tag : tag;
|
|
75
|
+
let cachedTag = win.nodeCaches[cacheKey];
|
|
76
|
+
if (!cachedTag) cachedTag = win.nodeCaches[cacheKey] = createHTMLNode(element);
|
|
77
|
+
const clonedNode = cachedTag.cloneNode(true);
|
|
78
|
+
if (tag === "string") clonedNode.nodeValue = element.text;
|
|
79
|
+
return clonedNode;
|
|
80
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
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 create_exports = {};
|
|
20
|
+
__export(create_exports, {
|
|
21
|
+
createNode: () => createNode
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(create_exports);
|
|
24
|
+
const createNode = (element) => {
|
|
25
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var render_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(render_exports);
|
|
18
|
+
__reExport(render_exports, require("./create.js"), module.exports);
|
|
19
|
+
__reExport(render_exports, require("./cache.js"), module.exports);
|
|
20
|
+
__reExport(render_exports, require("./append.js"), module.exports);
|
package/dist/cjs/set.js
CHANGED
|
@@ -30,7 +30,7 @@ __export(set_exports, {
|
|
|
30
30
|
module.exports = __toCommonJS(set_exports);
|
|
31
31
|
var import_utils = require("@domql/utils");
|
|
32
32
|
var import_create = require("./create.js");
|
|
33
|
-
var import_event = require("
|
|
33
|
+
var import_event = require("./event/index.js");
|
|
34
34
|
const setContentKey = (element, opts = {}) => {
|
|
35
35
|
const { __ref: ref } = element;
|
|
36
36
|
const contentElementKey = opts.contentElementKey;
|
|
@@ -39,49 +39,42 @@ const setContentKey = (element, opts = {}) => {
|
|
|
39
39
|
}
|
|
40
40
|
return ref.contentElementKey;
|
|
41
41
|
};
|
|
42
|
-
|
|
43
|
-
const element =
|
|
44
|
-
|
|
42
|
+
function reset(options) {
|
|
43
|
+
const element = this;
|
|
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
|
-
}
|
|
51
|
-
const resetContent =
|
|
52
|
-
var _a;
|
|
50
|
+
}
|
|
51
|
+
const resetContent = (params, element, opts) => {
|
|
53
52
|
const contentElementKey = setContentKey(element, opts);
|
|
54
|
-
if (
|
|
55
|
-
const contentElem =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
...import_utils.OPTIONS.defaultOptions,
|
|
62
|
-
...import_utils.OPTIONS.create,
|
|
63
|
-
...opts
|
|
64
|
-
}
|
|
65
|
-
);
|
|
53
|
+
if (element[contentElementKey]?.node) removeContent(element, opts);
|
|
54
|
+
const contentElem = (0, import_create.create)(params, element, contentElementKey || "content", {
|
|
55
|
+
ignoreChildExtends: true,
|
|
56
|
+
...import_utils.OPTIONS.defaultOptions,
|
|
57
|
+
...import_utils.OPTIONS.create,
|
|
58
|
+
...opts
|
|
59
|
+
});
|
|
66
60
|
if (contentElementKey !== "content") opts.contentElementKey = "content";
|
|
67
61
|
return contentElem;
|
|
68
62
|
};
|
|
69
|
-
const updateContent =
|
|
63
|
+
const updateContent = function(params, opts) {
|
|
70
64
|
const element = this;
|
|
71
65
|
const contentElementKey = setContentKey(element, opts);
|
|
72
66
|
if (!element[contentElementKey]) return;
|
|
73
67
|
if (element[contentElementKey].update) {
|
|
74
|
-
|
|
68
|
+
element[contentElementKey].update(params, opts);
|
|
75
69
|
}
|
|
76
70
|
};
|
|
77
|
-
|
|
78
|
-
const content =
|
|
71
|
+
function setContent(param, element, opts) {
|
|
72
|
+
const content = (0, import_utils.exec)(param, element);
|
|
79
73
|
if (content && element) {
|
|
80
|
-
|
|
74
|
+
set.call(element, content, opts);
|
|
81
75
|
}
|
|
82
76
|
}
|
|
83
77
|
const removeContent = function(el, opts = {}) {
|
|
84
|
-
var _a;
|
|
85
78
|
const element = el || this;
|
|
86
79
|
const contentElementKey = setContentKey(element, opts);
|
|
87
80
|
if (opts.contentElementKey !== "content") {
|
|
@@ -89,16 +82,17 @@ const removeContent = function(el, opts = {}) {
|
|
|
89
82
|
}
|
|
90
83
|
const content = element[contentElementKey];
|
|
91
84
|
if (!content) return;
|
|
92
|
-
if (content.tag === "fragment" &&
|
|
93
|
-
content.__ref.__children
|
|
94
|
-
|
|
85
|
+
if (content.tag === "fragment" && content.__ref?.__children) {
|
|
86
|
+
const __children = content.__ref.__children;
|
|
87
|
+
for (let i = 0; i < __children.length; i++) {
|
|
88
|
+
const child = content[__children[i]];
|
|
95
89
|
if (child.node && child.node.parentNode) {
|
|
96
90
|
child.node.parentNode.removeChild(child.node);
|
|
97
91
|
}
|
|
98
92
|
if ((0, import_utils.isFunction)(child.remove)) {
|
|
99
93
|
child.remove();
|
|
100
94
|
}
|
|
101
|
-
}
|
|
95
|
+
}
|
|
102
96
|
} else {
|
|
103
97
|
if (content.node && content.node.parentNode) {
|
|
104
98
|
content.node.parentNode.removeChild(content.node);
|
|
@@ -109,8 +103,7 @@ const removeContent = function(el, opts = {}) {
|
|
|
109
103
|
}
|
|
110
104
|
delete element[contentElementKey];
|
|
111
105
|
};
|
|
112
|
-
const set =
|
|
113
|
-
var _a;
|
|
106
|
+
const set = function(params, options = {}, el) {
|
|
114
107
|
const element = el || this;
|
|
115
108
|
const { __ref: ref } = element;
|
|
116
109
|
const contentElementKey = setContentKey(element, options);
|
|
@@ -121,9 +114,9 @@ const set = async function(params, options = {}, el) {
|
|
|
121
114
|
if (options.preventContentUpdate === true && !hasChildren) return;
|
|
122
115
|
const childHasChanged = !ref.__noChildrenDifference;
|
|
123
116
|
const childrenIsDifferentFromCache = childHasChanged && __contentRef && Object.keys(params).length === Object.keys(content).length && (0, import_utils.deepContains)(params, content);
|
|
124
|
-
if (
|
|
117
|
+
if (content?.update && !childHasChanged && !childrenIsDifferentFromCache) {
|
|
125
118
|
if (!options.preventBeforeUpdateListener && !options.preventListeners) {
|
|
126
|
-
const beforeUpdateReturns =
|
|
119
|
+
const beforeUpdateReturns = (0, import_event.triggerEventOnUpdate)(
|
|
127
120
|
"beforeUpdate",
|
|
128
121
|
params,
|
|
129
122
|
element,
|
|
@@ -131,9 +124,9 @@ const set = async function(params, options = {}, el) {
|
|
|
131
124
|
);
|
|
132
125
|
if (beforeUpdateReturns === false) return element;
|
|
133
126
|
}
|
|
134
|
-
|
|
127
|
+
content.update(params);
|
|
135
128
|
if (!options.preventUpdateListener && !options.preventListeners) {
|
|
136
|
-
|
|
129
|
+
(0, import_event.triggerEventOn)("update", element, options);
|
|
137
130
|
}
|
|
138
131
|
return;
|
|
139
132
|
}
|
|
@@ -145,20 +138,20 @@ const set = async function(params, options = {}, el) {
|
|
|
145
138
|
params.childExtends = element.childExtends;
|
|
146
139
|
props.ignoreChildExtends = true;
|
|
147
140
|
}
|
|
148
|
-
if (!
|
|
141
|
+
if (!props?.childProps && element.props?.childProps) {
|
|
149
142
|
props.childProps = element.props.childProps;
|
|
150
143
|
props.ignoreChildProps = true;
|
|
151
144
|
}
|
|
152
145
|
}
|
|
153
146
|
if (lazyLoad) {
|
|
154
|
-
window.requestAnimationFrame(
|
|
155
|
-
|
|
147
|
+
window.requestAnimationFrame(() => {
|
|
148
|
+
resetContent(params, element, options);
|
|
156
149
|
if (!options.preventUpdateListener) {
|
|
157
|
-
|
|
150
|
+
(0, import_event.triggerEventOn)("lazyLoad", element, options);
|
|
158
151
|
}
|
|
159
152
|
});
|
|
160
153
|
} else {
|
|
161
|
-
|
|
154
|
+
resetContent(params, element, options);
|
|
162
155
|
}
|
|
163
156
|
};
|
|
164
157
|
var set_default = set;
|