@domql/element 3.2.3 → 3.2.8
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/children.js +40 -12
- package/create.js +40 -26
- package/define.js +1 -1
- package/dist/cjs/children.js +39 -11
- package/dist/cjs/create.js +41 -11
- 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 +6 -6
- package/dist/cjs/index.js +9 -6
- package/dist/cjs/iterate.js +13 -13
- 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 +1 -2
- package/dist/cjs/mixins/html.js +1 -2
- package/dist/cjs/mixins/state.js +2 -2
- package/dist/cjs/mixins/style.js +11 -2
- package/dist/cjs/mixins/text.js +5 -1
- package/dist/cjs/node.js +8 -5
- 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 +12 -14
- package/dist/cjs/update.js +80 -40
- package/dist/cjs/utils/applyParam.js +3 -3
- package/dist/cjs/utils/extendUtils.js +5 -5
- package/dist/cjs/utils/index.js +2 -0
- package/dist/cjs/utils/propEvents.js +21 -4
- package/dist/esm/children.js +39 -11
- package/dist/esm/create.js +42 -11
- 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 +7 -7
- package/dist/esm/index.js +8 -6
- package/dist/esm/iterate.js +13 -13
- 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 +1 -2
- package/dist/esm/mixins/html.js +1 -2
- package/dist/esm/mixins/state.js +2 -2
- package/dist/esm/mixins/style.js +12 -3
- package/dist/esm/mixins/text.js +6 -2
- package/dist/esm/node.js +8 -5
- 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 +12 -14
- package/dist/esm/update.js +80 -42
- package/dist/esm/utils/applyParam.js +3 -3
- package/dist/esm/utils/extendUtils.js +5 -5
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/propEvents.js +21 -4
- package/dist/iife/index.js +4718 -0
- package/extend.js +7 -10
- package/index.js +9 -6
- package/iterate.js +20 -13
- package/node.js +10 -8
- package/package.json +42 -18
- package/set.js +6 -5
- package/update.js +90 -52
- package/__tests__/checkIfOnUpdate.test.js +0 -103
- package/__tests__/children.test.js +0 -209
- 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 -312
- 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 -111
- package/__tests__/tree.test.js +0 -15
- package/__tests__/update.test.js +0 -256
- package/dist/cjs/package.json +0 -4
- 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/content.js +0 -65
- 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/extendUtils.js +0 -149
- package/utils/index.js +0 -3
- package/utils/propEvents.js +0 -19
|
@@ -0,0 +1,27 @@
|
|
|
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 store_exports = {};
|
|
20
|
+
__export(store_exports, {
|
|
21
|
+
default: () => store_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(store_exports);
|
|
24
|
+
var store_default = {
|
|
25
|
+
click: [],
|
|
26
|
+
render: []
|
|
27
|
+
};
|
package/dist/cjs/extend.js
CHANGED
|
@@ -27,8 +27,8 @@ let mainExtend;
|
|
|
27
27
|
const applyExtend = (element, parent, options = {}) => {
|
|
28
28
|
if ((0, import_utils.isFunction)(element)) element = (0, import_utils.exec)(element, parent);
|
|
29
29
|
const { props, __ref } = element;
|
|
30
|
-
let extend =
|
|
31
|
-
const variant = props
|
|
30
|
+
let extend = props?.extends || element.extends || element.extend;
|
|
31
|
+
const variant = props?.variant;
|
|
32
32
|
const context = element.context || parent.context;
|
|
33
33
|
extend = (0, import_utils2.fallbackStringExtend)(extend, context, options, variant);
|
|
34
34
|
const extendStack = (0, import_utils2.getExtendStack)(extend, context);
|
|
@@ -36,9 +36,9 @@ const applyExtend = (element, parent, options = {}) => {
|
|
|
36
36
|
let childExtendStack = [];
|
|
37
37
|
if (parent) {
|
|
38
38
|
element.parent = parent;
|
|
39
|
-
if (!options.ignoreChildExtend && !
|
|
39
|
+
if (!options.ignoreChildExtend && !props?.ignoreChildExtend) {
|
|
40
40
|
childExtendStack = (0, import_utils2.getExtendStack)(parent.childExtend, context);
|
|
41
|
-
const ignoreChildExtendRecursive = props
|
|
41
|
+
const ignoreChildExtendRecursive = props?.ignoreChildExtendRecursive;
|
|
42
42
|
if (parent.childExtendRecursive && !ignoreChildExtendRecursive) {
|
|
43
43
|
const canExtendRecursive = element.key !== "__text";
|
|
44
44
|
if (canExtendRecursive) {
|
|
@@ -75,9 +75,9 @@ const applyExtend = (element, parent, options = {}) => {
|
|
|
75
75
|
}
|
|
76
76
|
if (__ref) __ref.__extend = stack;
|
|
77
77
|
let mergedExtend = (0, import_utils2.cloneAndMergeArrayExtend)(stack);
|
|
78
|
-
const COMPONENTS = context
|
|
78
|
+
const COMPONENTS = context?.components || options.components;
|
|
79
79
|
const component = (0, import_utils.exec)(element.component || mergedExtend.component, element);
|
|
80
|
-
if (component && COMPONENTS
|
|
80
|
+
if (component && COMPONENTS?.[component]) {
|
|
81
81
|
const componentExtend = (0, import_utils2.cloneAndMergeArrayExtend)(
|
|
82
82
|
(0, import_utils2.getExtendStack)(COMPONENTS[component])
|
|
83
83
|
);
|
package/dist/cjs/index.js
CHANGED
|
@@ -17,6 +17,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
21
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
22
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
23
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -36,9 +37,11 @@ __export(index_exports, {
|
|
|
36
37
|
update: () => import_update.default
|
|
37
38
|
});
|
|
38
39
|
module.exports = __toCommonJS(index_exports);
|
|
39
|
-
var import_tree = require("./tree");
|
|
40
|
-
var import_create = __toESM(require("./create"), 1);
|
|
41
|
-
var import_node = __toESM(require("./node"), 1);
|
|
42
|
-
var import_define = __toESM(require("./define"), 1);
|
|
43
|
-
var import_update = __toESM(require("./update"), 1);
|
|
44
|
-
var import_set = __toESM(require("./set"), 1);
|
|
40
|
+
var import_tree = require("./tree.js");
|
|
41
|
+
var import_create = __toESM(require("./create.js"), 1);
|
|
42
|
+
var import_node = __toESM(require("./node.js"), 1);
|
|
43
|
+
var import_define = __toESM(require("./define.js"), 1);
|
|
44
|
+
var import_update = __toESM(require("./update.js"), 1);
|
|
45
|
+
var import_set = __toESM(require("./set.js"), 1);
|
|
46
|
+
__reExport(index_exports, require("./event/index.js"), module.exports);
|
|
47
|
+
__reExport(index_exports, require("./render/index.js"), module.exports);
|
package/dist/cjs/iterate.js
CHANGED
|
@@ -18,7 +18,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var iterate_exports = {};
|
|
20
20
|
__export(iterate_exports, {
|
|
21
|
-
isPropertyInDefines: () => isPropertyInDefines,
|
|
22
21
|
throughExecProps: () => throughExecProps,
|
|
23
22
|
throughInitialDefine: () => throughInitialDefine,
|
|
24
23
|
throughInitialExec: () => throughInitialExec,
|
|
@@ -60,7 +59,7 @@ const throughUpdatedExec = (element, options = {}) => {
|
|
|
60
59
|
continue;
|
|
61
60
|
}
|
|
62
61
|
const execReturnsString = (0, import_utils.isString)(newExec) || (0, import_utils.isNumber)(newExec);
|
|
63
|
-
if (prop
|
|
62
|
+
if (prop?.node && execReturnsString) {
|
|
64
63
|
(0, import_utils.overwrite)(prop, { text: newExec });
|
|
65
64
|
} else if (newExec !== prop) {
|
|
66
65
|
if ((0, import_utils.matchesComponentNaming)(param)) {
|
|
@@ -82,7 +81,11 @@ const throughExecProps = (element) => {
|
|
|
82
81
|
const { __ref: ref } = element;
|
|
83
82
|
const { props } = element;
|
|
84
83
|
for (const k in props) {
|
|
85
|
-
const
|
|
84
|
+
const c0 = k.charCodeAt(0);
|
|
85
|
+
const c1 = k.charCodeAt(1);
|
|
86
|
+
const isDefine = c0 === 105 && c1 === 115 || // 'is'
|
|
87
|
+
c0 === 104 && c1 === 97 && k.charCodeAt(2) === 115 || // 'has'
|
|
88
|
+
c0 === 117 && c1 === 115 && k.charCodeAt(2) === 101;
|
|
86
89
|
const cachedExecProp = ref.__execProps[k];
|
|
87
90
|
if ((0, import_utils.isFunction)(cachedExecProp)) {
|
|
88
91
|
const result = (0, import_utils.exec)(cachedExecProp, element);
|
|
@@ -106,14 +109,12 @@ const throughExecProps = (element) => {
|
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
111
|
};
|
|
109
|
-
const isPropertyInDefines = (key, element) => {
|
|
110
|
-
};
|
|
111
112
|
const throughInitialDefine = (element) => {
|
|
112
113
|
const { define, context, __ref: ref } = element;
|
|
113
|
-
|
|
114
|
+
const hasLocalDefine = (0, import_utils.isObject)(define);
|
|
114
115
|
const hasGlobalDefine = context && (0, import_utils.isObject)(context.define);
|
|
115
|
-
if (
|
|
116
|
-
|
|
116
|
+
if (!hasLocalDefine && !hasGlobalDefine) return element;
|
|
117
|
+
const defineObj = hasLocalDefine && hasGlobalDefine ? { ...define, ...context.define } : hasLocalDefine ? define : context.define;
|
|
117
118
|
for (const param in defineObj) {
|
|
118
119
|
let elementProp = element[param];
|
|
119
120
|
if ((0, import_utils.isFunction)(elementProp) && !(0, import_utils.isMethod)(param, element)) {
|
|
@@ -151,10 +152,10 @@ const throughInitialDefine = (element) => {
|
|
|
151
152
|
};
|
|
152
153
|
const throughUpdatedDefine = (element) => {
|
|
153
154
|
const { context, define, __ref: ref } = element;
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
if (
|
|
157
|
-
|
|
155
|
+
const hasLocalDefine = (0, import_utils.isObject)(define);
|
|
156
|
+
const hasGlobalDefine = (0, import_utils.isObject)(context?.define);
|
|
157
|
+
if (!hasLocalDefine && !hasGlobalDefine) return;
|
|
158
|
+
const obj = hasLocalDefine && hasGlobalDefine ? { ...define, ...context.define } : hasLocalDefine ? define : context.define;
|
|
158
159
|
for (const param in obj) {
|
|
159
160
|
const execParam = ref.__exec[param];
|
|
160
161
|
if (execParam) {
|
|
@@ -182,5 +183,4 @@ const throughUpdatedDefine = (element) => {
|
|
|
182
183
|
element[param] = newExecParam;
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
|
-
return changes;
|
|
186
186
|
};
|
package/dist/cjs/methods/set.js
CHANGED
|
@@ -40,6 +40,11 @@ const addMethods = (element, parent, options = {}) => {
|
|
|
40
40
|
lookdownAll: import_methods.lookdownAll,
|
|
41
41
|
getRef: import_methods.getRef,
|
|
42
42
|
getPath: import_methods.getPath,
|
|
43
|
+
getRootState: import_methods.getRootState,
|
|
44
|
+
getRoot: import_methods.getRoot,
|
|
45
|
+
getRootData: import_methods.getRootData,
|
|
46
|
+
getRootContext: import_methods.getRootContext,
|
|
47
|
+
getContext: import_methods.getContext,
|
|
43
48
|
setNodeStyles: import_methods.setNodeStyles,
|
|
44
49
|
spotByPath: import_methods.spotByPath,
|
|
45
50
|
parse: import_methods.parse,
|
package/dist/cjs/methods/v2.js
CHANGED
|
@@ -73,7 +73,7 @@ const log = function(...args) {
|
|
|
73
73
|
args.forEach((v) => console.log(`%c${v}:
|
|
74
74
|
`, "font-weight: bold", element[v]));
|
|
75
75
|
} else {
|
|
76
|
-
console.log(__ref
|
|
76
|
+
console.log(__ref?.path);
|
|
77
77
|
const keys2 = element.keys();
|
|
78
78
|
keys2.forEach((v) => console.log(`%c${v}:
|
|
79
79
|
`, "font-weight: bold", element[v]));
|
package/dist/cjs/mixins/attr.js
CHANGED
|
@@ -27,13 +27,14 @@ var import_report = require("@domql/report");
|
|
|
27
27
|
function attr(params, element, node) {
|
|
28
28
|
const { __ref: ref, props } = element;
|
|
29
29
|
const { __attr } = ref;
|
|
30
|
-
if ((0, import_utils.isNot)("object")) (0, import_report.report)("HTMLInvalidAttr", params);
|
|
30
|
+
if ((0, import_utils.isNot)(params)("object")) (0, import_report.report)("HTMLInvalidAttr", params);
|
|
31
31
|
if (params) {
|
|
32
32
|
const attrs = (0, import_utils.exec)(params, element);
|
|
33
33
|
if (props.attr) (0, import_utils.deepMerge)(attrs, props.attr);
|
|
34
34
|
for (const attr2 in attrs) {
|
|
35
35
|
const val = (0, import_utils.exec)(attrs[attr2], element);
|
|
36
|
-
if (val
|
|
36
|
+
if (val === __attr[attr2]) continue;
|
|
37
|
+
if (val !== false && val !== void 0 && val !== null && node.setAttribute) {
|
|
37
38
|
node.setAttribute(attr2, val);
|
|
38
39
|
} else if (node.removeAttribute) node.removeAttribute(attr2);
|
|
39
40
|
__attr[attr2] = val;
|
|
@@ -57,7 +57,17 @@ const classList = (params, element) => {
|
|
|
57
57
|
};
|
|
58
58
|
const applyClassListOnNode = (params, element, node) => {
|
|
59
59
|
const className = classList(params, element);
|
|
60
|
-
|
|
60
|
+
const { __ref } = element;
|
|
61
|
+
if (className === __ref.__className) return className;
|
|
62
|
+
__ref.__className = className;
|
|
63
|
+
if (node && typeof node.setAttribute === "function") {
|
|
64
|
+
node.setAttribute("class", className);
|
|
65
|
+
} else if (node) {
|
|
66
|
+
try {
|
|
67
|
+
node.className = className;
|
|
68
|
+
} catch (e) {
|
|
69
|
+
}
|
|
70
|
+
}
|
|
61
71
|
return className;
|
|
62
72
|
};
|
|
63
73
|
function applyClasslist(params, element, node) {
|
|
@@ -60,10 +60,9 @@ const removeContent = function(el, opts = {}) {
|
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
function setContent(param, element, node, opts) {
|
|
63
|
-
var _a;
|
|
64
63
|
const contentElementKey = (0, import_utils.setContentKey)(element, opts);
|
|
65
64
|
if (param && element) {
|
|
66
|
-
if (
|
|
65
|
+
if (element[contentElementKey]?.update) {
|
|
67
66
|
element[contentElementKey].update({}, opts);
|
|
68
67
|
} else {
|
|
69
68
|
import_set.set.call(element, param, opts);
|
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)(((_a = element == null ? void 0 : element.props) == null ? void 0 : _a.html) || param, 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;
|
package/dist/cjs/mixins/state.js
CHANGED
|
@@ -27,8 +27,8 @@ function state(params, element, node) {
|
|
|
27
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
|
@@ -31,7 +31,11 @@ function text(param, element, node) {
|
|
|
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;
|
package/dist/cjs/node.js
CHANGED
|
@@ -33,15 +33,16 @@ __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 ENV = process.env.NODE_ENV;
|
|
45
46
|
const createNode = (element, opts) => {
|
|
46
47
|
let { node, tag, __ref: ref } = element;
|
|
47
48
|
if (!ref.__if) return element;
|
|
@@ -60,10 +61,12 @@ const createNode = (element, opts) => {
|
|
|
60
61
|
(0, import_iterate.throughExecProps)(element);
|
|
61
62
|
(0, import_iterate.throughInitialDefine)(element);
|
|
62
63
|
(0, import_iterate.throughInitialExec)(element);
|
|
64
|
+
(0, import_propEvents.propagateEventsFromProps)(element);
|
|
65
|
+
(0, import_propEvents.propagateEventsFromElement)(element);
|
|
63
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
72
|
const isElement = (0, import_applyParam.applyParam)(param, element, opts);
|
|
@@ -84,7 +87,7 @@ const createNode = (element, opts) => {
|
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
|
-
const content = element.children ? (0, import_children.default)(element.children, element, opts) : element.
|
|
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
|
}
|
|
@@ -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,19 +39,18 @@ const setContentKey = (element, opts = {}) => {
|
|
|
39
39
|
}
|
|
40
40
|
return ref.contentElementKey;
|
|
41
41
|
};
|
|
42
|
-
|
|
43
|
-
const element =
|
|
42
|
+
function reset(options) {
|
|
43
|
+
const element = this;
|
|
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
51
|
const resetContent = (params, element, opts) => {
|
|
52
|
-
var _a;
|
|
53
52
|
const contentElementKey = setContentKey(element, opts);
|
|
54
|
-
if (
|
|
53
|
+
if (element[contentElementKey]?.node) removeContent(element, opts);
|
|
55
54
|
const contentElem = (0, import_create.create)(params, element, contentElementKey || "content", {
|
|
56
55
|
ignoreChildExtends: true,
|
|
57
56
|
...import_utils.OPTIONS.defaultOptions,
|
|
@@ -76,7 +75,6 @@ function setContent(param, element, opts) {
|
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
const removeContent = function(el, opts = {}) {
|
|
79
|
-
var _a;
|
|
80
78
|
const element = el || this;
|
|
81
79
|
const contentElementKey = setContentKey(element, opts);
|
|
82
80
|
if (opts.contentElementKey !== "content") {
|
|
@@ -84,16 +82,17 @@ const removeContent = function(el, opts = {}) {
|
|
|
84
82
|
}
|
|
85
83
|
const content = element[contentElementKey];
|
|
86
84
|
if (!content) return;
|
|
87
|
-
if (content.tag === "fragment" &&
|
|
88
|
-
content.__ref.__children
|
|
89
|
-
|
|
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]];
|
|
90
89
|
if (child.node && child.node.parentNode) {
|
|
91
90
|
child.node.parentNode.removeChild(child.node);
|
|
92
91
|
}
|
|
93
92
|
if ((0, import_utils.isFunction)(child.remove)) {
|
|
94
93
|
child.remove();
|
|
95
94
|
}
|
|
96
|
-
}
|
|
95
|
+
}
|
|
97
96
|
} else {
|
|
98
97
|
if (content.node && content.node.parentNode) {
|
|
99
98
|
content.node.parentNode.removeChild(content.node);
|
|
@@ -105,7 +104,6 @@ const removeContent = function(el, opts = {}) {
|
|
|
105
104
|
delete element[contentElementKey];
|
|
106
105
|
};
|
|
107
106
|
const set = function(params, options = {}, el) {
|
|
108
|
-
var _a;
|
|
109
107
|
const element = el || this;
|
|
110
108
|
const { __ref: ref } = element;
|
|
111
109
|
const contentElementKey = setContentKey(element, options);
|
|
@@ -116,7 +114,7 @@ const set = function(params, options = {}, el) {
|
|
|
116
114
|
if (options.preventContentUpdate === true && !hasChildren) return;
|
|
117
115
|
const childHasChanged = !ref.__noChildrenDifference;
|
|
118
116
|
const childrenIsDifferentFromCache = childHasChanged && __contentRef && Object.keys(params).length === Object.keys(content).length && (0, import_utils.deepContains)(params, content);
|
|
119
|
-
if (
|
|
117
|
+
if (content?.update && !childHasChanged && !childrenIsDifferentFromCache) {
|
|
120
118
|
if (!options.preventBeforeUpdateListener && !options.preventListeners) {
|
|
121
119
|
const beforeUpdateReturns = (0, import_event.triggerEventOnUpdate)(
|
|
122
120
|
"beforeUpdate",
|
|
@@ -140,7 +138,7 @@ const set = function(params, options = {}, el) {
|
|
|
140
138
|
params.childExtends = element.childExtends;
|
|
141
139
|
props.ignoreChildExtends = true;
|
|
142
140
|
}
|
|
143
|
-
if (!
|
|
141
|
+
if (!props?.childProps && element.props?.childProps) {
|
|
144
142
|
props.childProps = element.props.childProps;
|
|
145
143
|
props.ignoreChildProps = true;
|
|
146
144
|
}
|