@domql/element 2.4.1 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cache/index.js +24 -0
- package/dist/cjs/cache/options.js +24 -0
- package/dist/cjs/methods/index.js +186 -0
- package/dist/cjs/{set.js → methods/set.js} +24 -24
- package/dist/cjs/methods/v2.js +109 -0
- package/dist/cjs/mixins/attr.js +42 -0
- package/dist/cjs/mixins/classList.js +73 -0
- package/dist/cjs/mixins/content.js +75 -0
- package/dist/cjs/{define.js → mixins/data.js} +14 -12
- package/dist/cjs/mixins/html.js +35 -0
- package/dist/cjs/{index.js → mixins/index.js} +23 -15
- package/dist/cjs/mixins/registry.js +89 -0
- package/dist/cjs/mixins/state.js +40 -0
- package/dist/cjs/{tree.js → mixins/style.js} +11 -9
- package/dist/cjs/mixins/text.js +60 -0
- package/dist/cjs/props/create.js +77 -0
- package/dist/cjs/props/ignore.js +24 -0
- package/dist/cjs/props/index.js +21 -0
- package/dist/cjs/props/inherit.js +52 -0
- package/dist/cjs/props/update.js +37 -0
- package/dist/cjs/test/create.test.js +51 -0
- package/dist/cjs/test/set.test.js +9 -0
- package/dist/cjs/test/update.test.js +8 -0
- package/dist/cjs/utils/component.js +133 -0
- package/dist/cjs/utils/extendUtils.js +144 -0
- package/dist/cjs/utils/index.js +20 -0
- package/dist/cjs/utils/object.js +142 -0
- package/package.json +4 -4
- package/dist/cjs/applyParam.js +0 -41
- package/dist/cjs/create.js +0 -262
- package/dist/cjs/extend.js +0 -87
- package/dist/cjs/iterate.js +0 -108
- package/dist/cjs/node.js +0 -85
- package/dist/cjs/update.js +0 -223
|
@@ -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-
|
|
@@ -26,19 +27,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
27
|
mod
|
|
27
28
|
));
|
|
28
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
var mixins_exports = {};
|
|
31
|
+
__export(mixins_exports, {
|
|
32
|
+
attr: () => import_attr.default,
|
|
33
|
+
classList: () => import_classList.default,
|
|
34
|
+
content: () => import_content.default,
|
|
35
|
+
data: () => import_data.default,
|
|
36
|
+
html: () => import_html.default,
|
|
37
|
+
registry: () => import_registry.default,
|
|
38
|
+
state: () => import_state.default,
|
|
39
|
+
style: () => import_style.default,
|
|
40
|
+
text: () => import_text.default
|
|
37
41
|
});
|
|
38
|
-
module.exports = __toCommonJS(
|
|
39
|
-
var
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
42
|
+
module.exports = __toCommonJS(mixins_exports);
|
|
43
|
+
var import_attr = __toESM(require("./attr"), 1);
|
|
44
|
+
var import_classList = __toESM(require("./classList"), 1);
|
|
45
|
+
var import_content = __toESM(require("./content"), 1);
|
|
46
|
+
var import_data = __toESM(require("./data"), 1);
|
|
47
|
+
var import_html = __toESM(require("./html"), 1);
|
|
48
|
+
var import_style = __toESM(require("./style"), 1);
|
|
49
|
+
var import_text = __toESM(require("./text"), 1);
|
|
50
|
+
var import_state = __toESM(require("./state"), 1);
|
|
51
|
+
var import_registry = __toESM(require("./registry"), 1);
|
|
52
|
+
__reExport(mixins_exports, require("./registry"), module.exports);
|
|
@@ -0,0 +1,89 @@
|
|
|
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 registry_exports = {};
|
|
20
|
+
__export(registry_exports, {
|
|
21
|
+
default: () => registry_default,
|
|
22
|
+
parseFilters: () => parseFilters
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(registry_exports);
|
|
25
|
+
var import__ = require(".");
|
|
26
|
+
var registry_default = {
|
|
27
|
+
attr: import__.attr,
|
|
28
|
+
style: import__.style,
|
|
29
|
+
text: import__.text,
|
|
30
|
+
html: import__.html,
|
|
31
|
+
content: import__.content,
|
|
32
|
+
data: import__.data,
|
|
33
|
+
class: import__.classList,
|
|
34
|
+
state: import__.state,
|
|
35
|
+
extend: {},
|
|
36
|
+
childExtend: {},
|
|
37
|
+
childExtendRecursive: {},
|
|
38
|
+
props: {},
|
|
39
|
+
path: {},
|
|
40
|
+
if: {},
|
|
41
|
+
define: {},
|
|
42
|
+
transform: {},
|
|
43
|
+
__ref: {},
|
|
44
|
+
__hash: {},
|
|
45
|
+
__text: {},
|
|
46
|
+
nextElement: {},
|
|
47
|
+
previousElement: {},
|
|
48
|
+
key: {},
|
|
49
|
+
tag: {},
|
|
50
|
+
query: {},
|
|
51
|
+
parent: {},
|
|
52
|
+
node: {},
|
|
53
|
+
set: {},
|
|
54
|
+
update: {},
|
|
55
|
+
setProps: {},
|
|
56
|
+
remove: {},
|
|
57
|
+
updateContent: {},
|
|
58
|
+
removeContent: {},
|
|
59
|
+
lookup: {},
|
|
60
|
+
spotByPath: {},
|
|
61
|
+
keys: {},
|
|
62
|
+
log: {},
|
|
63
|
+
parse: {},
|
|
64
|
+
parseDeep: {},
|
|
65
|
+
on: {},
|
|
66
|
+
component: {},
|
|
67
|
+
context: {},
|
|
68
|
+
$setStateCollection: {},
|
|
69
|
+
$setCollection: {},
|
|
70
|
+
$setPropsCollection: {}
|
|
71
|
+
};
|
|
72
|
+
const parseFilters = {
|
|
73
|
+
elementKeys: [
|
|
74
|
+
"tag",
|
|
75
|
+
"text",
|
|
76
|
+
"style",
|
|
77
|
+
"attr",
|
|
78
|
+
"class",
|
|
79
|
+
"state",
|
|
80
|
+
"props",
|
|
81
|
+
"data",
|
|
82
|
+
"content",
|
|
83
|
+
"html",
|
|
84
|
+
"on",
|
|
85
|
+
"key"
|
|
86
|
+
],
|
|
87
|
+
propsKeys: ["__element", "update"],
|
|
88
|
+
stateKeys: []
|
|
89
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
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 state_exports = {};
|
|
20
|
+
__export(state_exports, {
|
|
21
|
+
default: () => state_default,
|
|
22
|
+
state: () => state
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(state_exports);
|
|
25
|
+
var import_state = require("@domql/state");
|
|
26
|
+
var import_utils = require("@domql/utils");
|
|
27
|
+
const state = (params, element, node) => {
|
|
28
|
+
const state2 = (0, import_utils.exec)(params, element);
|
|
29
|
+
if ((0, import_utils.isObject)(state2)) {
|
|
30
|
+
for (const param in state2) {
|
|
31
|
+
if (import_state.IGNORE_STATE_PARAMS.includes(param))
|
|
32
|
+
continue;
|
|
33
|
+
if (!state2.hasOwnProperty(param))
|
|
34
|
+
continue;
|
|
35
|
+
element.state[param] = (0, import_utils.exec)(state2[param], element);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return element;
|
|
39
|
+
};
|
|
40
|
+
var state_default = state;
|
|
@@ -16,16 +16,18 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
22
|
-
TREE: () => TREE
|
|
19
|
+
var style_exports = {};
|
|
20
|
+
__export(style_exports, {
|
|
21
|
+
default: () => style_default
|
|
23
22
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(style_exports);
|
|
25
24
|
var import_utils = require("@domql/utils");
|
|
26
25
|
var import_report = require("@domql/report");
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
var style_default = (params, element, node) => {
|
|
27
|
+
if (params) {
|
|
28
|
+
if ((0, import_utils.isObject)(params))
|
|
29
|
+
(0, import_utils.map)(node.style, params, element);
|
|
30
|
+
else
|
|
31
|
+
(0, import_report.report)("HTMLInvalidStyles", params);
|
|
32
|
+
}
|
|
30
33
|
};
|
|
31
|
-
const TREE = ROOT;
|
|
@@ -0,0 +1,60 @@
|
|
|
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 text_exports = {};
|
|
20
|
+
__export(text_exports, {
|
|
21
|
+
asd: () => asd,
|
|
22
|
+
default: () => text_default
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(text_exports);
|
|
25
|
+
var import__ = require("..");
|
|
26
|
+
var import_utils = require("@domql/utils");
|
|
27
|
+
const asd = (param, element, node) => {
|
|
28
|
+
const prop = (0, import_utils.exec)(param, element);
|
|
29
|
+
if (element.tag === "string") {
|
|
30
|
+
node.nodeValue = prop;
|
|
31
|
+
} else if (param !== void 0 || param !== null) {
|
|
32
|
+
if (element.__text && element.__text.text !== prop)
|
|
33
|
+
return;
|
|
34
|
+
element.__text.text = prop;
|
|
35
|
+
if (element.__text.node)
|
|
36
|
+
element.__text.node.nodeValue = prop;
|
|
37
|
+
else
|
|
38
|
+
(0, import__.create)({ tag: "string", text: prop }, element, "__text");
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var text_default = (param, element, node) => {
|
|
42
|
+
let prop = (0, import_utils.exec)(param, element);
|
|
43
|
+
if ((0, import_utils.isString)(prop) && prop.includes("{{")) {
|
|
44
|
+
prop = (0, import_utils.replaceLiteralsWithObjectFields)(prop, element.state);
|
|
45
|
+
}
|
|
46
|
+
if (element.tag === "string") {
|
|
47
|
+
if (element.text === prop)
|
|
48
|
+
return;
|
|
49
|
+
node.nodeValue = prop;
|
|
50
|
+
} else if (param !== void 0 || param !== null) {
|
|
51
|
+
if (element.__text) {
|
|
52
|
+
if (element.__text.text === prop)
|
|
53
|
+
return;
|
|
54
|
+
element.__text.text = prop;
|
|
55
|
+
if (element.__text.node)
|
|
56
|
+
element.__text.node.nodeValue = prop;
|
|
57
|
+
} else
|
|
58
|
+
(0, import__.create)({ tag: "string", text: prop }, element, "__text");
|
|
59
|
+
}
|
|
60
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
createProps: () => createProps,
|
|
22
|
+
syncProps: () => syncProps
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(create_exports);
|
|
25
|
+
var import_utils = require("@domql/utils");
|
|
26
|
+
var import_ignore = require("./ignore");
|
|
27
|
+
var import_inherit = require("./inherit");
|
|
28
|
+
const createPropsStack = (element, parent) => {
|
|
29
|
+
const { props, __ref } = element;
|
|
30
|
+
const propsStack = __ref.__props = (0, import_inherit.inheritParentProps)(element, parent);
|
|
31
|
+
if ((0, import_utils.isObject)(props))
|
|
32
|
+
propsStack.push(props);
|
|
33
|
+
else if (props === "inherit" && parent.props)
|
|
34
|
+
propsStack.push(parent.props);
|
|
35
|
+
else if (props)
|
|
36
|
+
propsStack.push(props);
|
|
37
|
+
if ((0, import_utils.isArray)(__ref.__extend)) {
|
|
38
|
+
__ref.__extend.forEach((extend) => {
|
|
39
|
+
if (extend.props)
|
|
40
|
+
propsStack.push(extend.props);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
__ref.__props = propsStack;
|
|
44
|
+
return propsStack;
|
|
45
|
+
};
|
|
46
|
+
const syncProps = (props, element) => {
|
|
47
|
+
element.props = {};
|
|
48
|
+
const mergedProps = { update, __element: element };
|
|
49
|
+
props.forEach((v) => {
|
|
50
|
+
if (import_ignore.IGNORE_PROPS_PARAMS.includes(v))
|
|
51
|
+
return;
|
|
52
|
+
const execProps = (0, import_utils.exec)(v, element);
|
|
53
|
+
if ((0, import_utils.isObject)(execProps) && execProps.__element)
|
|
54
|
+
return;
|
|
55
|
+
element.props = (0, import_utils.deepMerge)(
|
|
56
|
+
mergedProps,
|
|
57
|
+
(0, import_utils.deepClone)(execProps, import_ignore.IGNORE_PROPS_PARAMS),
|
|
58
|
+
import_ignore.IGNORE_PROPS_PARAMS
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
element.props = mergedProps;
|
|
62
|
+
return element.props;
|
|
63
|
+
};
|
|
64
|
+
const createProps = function(element, parent, cached) {
|
|
65
|
+
const propsStack = cached || createPropsStack(element, parent);
|
|
66
|
+
const { __ref } = element;
|
|
67
|
+
if (propsStack.length) {
|
|
68
|
+
__ref.__props = propsStack;
|
|
69
|
+
syncProps(propsStack, element);
|
|
70
|
+
element.props.update = update;
|
|
71
|
+
}
|
|
72
|
+
return element;
|
|
73
|
+
};
|
|
74
|
+
function update(props, options) {
|
|
75
|
+
const element = this.__element;
|
|
76
|
+
element.update({ props }, options);
|
|
77
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
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 ignore_exports = {};
|
|
20
|
+
__export(ignore_exports, {
|
|
21
|
+
IGNORE_PROPS_PARAMS: () => IGNORE_PROPS_PARAMS
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(ignore_exports);
|
|
24
|
+
const IGNORE_PROPS_PARAMS = ["update", "__element"];
|
|
@@ -0,0 +1,21 @@
|
|
|
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 props_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(props_exports);
|
|
18
|
+
__reExport(props_exports, require("./ignore"), module.exports);
|
|
19
|
+
__reExport(props_exports, require("./create"), module.exports);
|
|
20
|
+
__reExport(props_exports, require("./inherit"), module.exports);
|
|
21
|
+
__reExport(props_exports, require("./update"), module.exports);
|
|
@@ -0,0 +1,52 @@
|
|
|
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 inherit_exports = {};
|
|
20
|
+
__export(inherit_exports, {
|
|
21
|
+
inheritParentProps: () => inheritParentProps
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(inherit_exports);
|
|
24
|
+
var import_utils = require("@domql/utils");
|
|
25
|
+
const objectizeStringProperty = (propValue) => {
|
|
26
|
+
if ((0, import_utils.is)(propValue)("string", "number")) {
|
|
27
|
+
return { inheritedString: propValue };
|
|
28
|
+
}
|
|
29
|
+
return propValue;
|
|
30
|
+
};
|
|
31
|
+
const inheritParentProps = (element, parent) => {
|
|
32
|
+
let propsStack = [];
|
|
33
|
+
const parentProps = (0, import_utils.exec)(parent, parent.state).props;
|
|
34
|
+
const matchParent = parent.props && parentProps[element.key];
|
|
35
|
+
const matchParentIsString = (0, import_utils.isString)(matchParent);
|
|
36
|
+
const matchParentChildProps = parentProps && parentProps.childProps;
|
|
37
|
+
if (matchParent) {
|
|
38
|
+
if (matchParentIsString) {
|
|
39
|
+
const inheritedStringExists = propsStack.filter((v) => v.inheritedString)[0];
|
|
40
|
+
if (inheritedStringExists)
|
|
41
|
+
inheritedStringExists.inheritedString = matchParent;
|
|
42
|
+
else {
|
|
43
|
+
propsStack = [].concat(objectizeStringProperty(matchParent), propsStack);
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
propsStack.push(objectizeStringProperty(matchParent));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (matchParentChildProps)
|
|
50
|
+
propsStack.push(matchParentChildProps);
|
|
51
|
+
return propsStack;
|
|
52
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
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 update_exports = {};
|
|
20
|
+
__export(update_exports, {
|
|
21
|
+
updateProps: () => updateProps
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(update_exports);
|
|
24
|
+
var import_create = require("./create");
|
|
25
|
+
var import_inherit = require("./inherit");
|
|
26
|
+
const updateProps = (newProps, element, parent) => {
|
|
27
|
+
const { __ref } = element;
|
|
28
|
+
let propsStack = __ref.__props;
|
|
29
|
+
const parentProps = (0, import_inherit.inheritParentProps)(element, parent);
|
|
30
|
+
if (parentProps)
|
|
31
|
+
propsStack = __ref.__props = [].concat(parentProps, propsStack);
|
|
32
|
+
if (newProps)
|
|
33
|
+
propsStack = __ref.__props = [].concat(newProps, propsStack);
|
|
34
|
+
if (propsStack)
|
|
35
|
+
(0, import_create.syncProps)(propsStack, element);
|
|
36
|
+
return element;
|
|
37
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_element = require("../../src/element");
|
|
3
|
+
const dom = (0, import_element.create)({});
|
|
4
|
+
test("should create EMPTY element", () => {
|
|
5
|
+
expect(dom).toHaveProperty("key");
|
|
6
|
+
expect(dom).toHaveProperty("state");
|
|
7
|
+
expect(dom).toHaveProperty("parent");
|
|
8
|
+
expect(dom).toHaveProperty("node");
|
|
9
|
+
expect(dom).toHaveProperty("set");
|
|
10
|
+
expect(dom).toHaveProperty("update");
|
|
11
|
+
expect(dom).toHaveProperty("__ref");
|
|
12
|
+
});
|
|
13
|
+
test("should create valid DOM node", () => {
|
|
14
|
+
expect(dom.node).toBeInstanceOf(window.HTMLDivElement);
|
|
15
|
+
});
|
|
16
|
+
test("must be able to create valid PATH", () => {
|
|
17
|
+
expect(dom.__ref.__path).toStrictEqual([dom.key]);
|
|
18
|
+
});
|
|
19
|
+
test("if it HAS a NODE, don't recreate", () => {
|
|
20
|
+
const node = document.createElement("div");
|
|
21
|
+
const dom2 = (0, import_element.create)({ node });
|
|
22
|
+
expect(dom2.node.parentElement).toBe(document.body);
|
|
23
|
+
});
|
|
24
|
+
test("create with number", () => {
|
|
25
|
+
const numb = (0, import_element.create)(0);
|
|
26
|
+
expect(numb.text).toBe(0);
|
|
27
|
+
expect(numb.tag).toBe("string");
|
|
28
|
+
expect(numb.node.nodeType).toBe(3);
|
|
29
|
+
});
|
|
30
|
+
test("create with string", () => {
|
|
31
|
+
const str = (0, import_element.create)("hello");
|
|
32
|
+
expect(str.text).toBe("hello");
|
|
33
|
+
expect(str.tag).toBe("string");
|
|
34
|
+
expect(str.node.nodeType).toBe(3);
|
|
35
|
+
});
|
|
36
|
+
test("creating conditions", () => {
|
|
37
|
+
const element = (0, import_element.create)({
|
|
38
|
+
data: { visible: true },
|
|
39
|
+
if: (element2) => element2.data.visible
|
|
40
|
+
});
|
|
41
|
+
expect(element.tag).toBe("div");
|
|
42
|
+
});
|
|
43
|
+
test("creating nesting", () => {
|
|
44
|
+
const element = (0, import_element.create)({
|
|
45
|
+
header: {
|
|
46
|
+
h1: {}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
expect(element.header.tag).toBe("header");
|
|
50
|
+
expect(element.header.h1.tag).toBe("h1");
|
|
51
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_element = require("../../src/element");
|
|
3
|
+
const element = (0, import_element.create)({});
|
|
4
|
+
test("should SET element", () => {
|
|
5
|
+
element.set({ text: "test" });
|
|
6
|
+
expect(element.content.text).toBe("test");
|
|
7
|
+
element.set({ text: "test2" });
|
|
8
|
+
expect(element.content.text).toBe("test2");
|
|
9
|
+
});
|