domql 1.6.4 → 1.6.6
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/element/applyParam.js +41 -0
- package/dist/cjs/element/create.js +266 -0
- package/dist/cjs/element/define.js +34 -0
- package/dist/cjs/element/extend.js +75 -0
- package/dist/cjs/element/index.js +49 -0
- package/dist/cjs/element/iterate.js +99 -0
- package/dist/cjs/element/methods.js +116 -0
- package/dist/cjs/element/node.js +80 -0
- package/dist/cjs/element/options.js +24 -0
- package/dist/cjs/element/parse.js +42 -0
- package/dist/cjs/element/props.js +116 -0
- package/dist/cjs/element/remove.js +44 -0
- package/dist/cjs/element/set.js +55 -0
- package/dist/cjs/element/state.js +279 -0
- package/dist/cjs/element/update.js +182 -0
- package/dist/cjs/index.js +36 -0
- package/dist/cjs/utils/component.js +76 -0
- package/dist/cjs/utils/extendUtils.js +142 -0
- package/dist/cjs/utils/index.js +20 -0
- package/dist/cjs/utils/object.js +152 -0
- package/dist/esm/element/applyParam.js +4644 -0
- package/dist/esm/element/create.js +4644 -0
- package/dist/esm/element/define.js +4653 -0
- package/dist/esm/element/extend.js +3395 -0
- package/dist/esm/element/index.js +4675 -0
- package/dist/esm/element/iterate.js +3338 -0
- package/dist/esm/element/methods.js +4657 -0
- package/dist/esm/element/node.js +4645 -0
- package/dist/esm/element/options.js +5 -0
- package/dist/esm/element/parse.js +4657 -0
- package/dist/esm/element/props.js +3370 -0
- package/dist/esm/element/remove.js +991 -0
- package/dist/esm/element/set.js +4644 -0
- package/dist/esm/element/state.js +4656 -0
- package/dist/esm/element/update.js +4642 -0
- package/dist/esm/index.js +4676 -0
- package/dist/esm/utils/component.js +1023 -0
- package/dist/esm/utils/extendUtils.js +1089 -0
- package/dist/esm/utils/index.js +3536 -0
- package/dist/esm/utils/object.js +3364 -0
- package/dist/iife/index.js +4676 -0
- package/package.json +1 -1
- package/src/element/methods.js +1 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var update_exports = {};
|
|
26
|
+
__export(update_exports, {
|
|
27
|
+
default: () => update_default
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(update_exports);
|
|
30
|
+
var import_globals = require("@domql/globals");
|
|
31
|
+
var import_utils = require("@domql/utils");
|
|
32
|
+
var import_event = require("@domql/event");
|
|
33
|
+
var import_methods = require("@domql/methods");
|
|
34
|
+
var import_key = require("@domql/key");
|
|
35
|
+
var import_utils2 = require("../utils");
|
|
36
|
+
var import_create = __toESM(require("./create"));
|
|
37
|
+
var import_iterate = require("./iterate");
|
|
38
|
+
var import_mixins = require("./mixins");
|
|
39
|
+
var import_props = require("./props");
|
|
40
|
+
var import_state = __toESM(require("./state"));
|
|
41
|
+
var import_applyParam = require("./applyParam");
|
|
42
|
+
const snapshot = {
|
|
43
|
+
snapshotId: import_key.createSnapshotId
|
|
44
|
+
};
|
|
45
|
+
const UPDATE_DEFAULT_OPTIONS = {
|
|
46
|
+
stackChanges: false,
|
|
47
|
+
cleanExec: true,
|
|
48
|
+
preventRecursive: false,
|
|
49
|
+
currentSnapshot: false,
|
|
50
|
+
calleeElement: false
|
|
51
|
+
};
|
|
52
|
+
const update = function(params = {}, options = UPDATE_DEFAULT_OPTIONS) {
|
|
53
|
+
const element = this;
|
|
54
|
+
const { parent, node, key } = element;
|
|
55
|
+
let __ref = element.__ref;
|
|
56
|
+
if (!__ref)
|
|
57
|
+
__ref = element.__ref = {};
|
|
58
|
+
const [snapshotOnCallee, calleeElement, snapshotHasUpdated] = captureSnapshot(element, options);
|
|
59
|
+
if (snapshotHasUpdated)
|
|
60
|
+
return;
|
|
61
|
+
if ((0, import_utils.isString)(params) || (0, import_utils.isNumber)(params)) {
|
|
62
|
+
params = { text: params };
|
|
63
|
+
}
|
|
64
|
+
const ifFails = checkIfOnUpdate(element, options);
|
|
65
|
+
if (ifFails)
|
|
66
|
+
return;
|
|
67
|
+
const inheritState = inheritStateUpdates(element, options);
|
|
68
|
+
if (inheritState === false)
|
|
69
|
+
return;
|
|
70
|
+
if (__ref.__if && !options.preventPropsUpdate) {
|
|
71
|
+
const hasParentProps = parent.props && (parent.props[key] || parent.props.childProps);
|
|
72
|
+
const hasFunctionInProps = element.__ref.__props.filter((v) => (0, import_utils.isFunction)(v));
|
|
73
|
+
const props = params.props || hasParentProps || hasFunctionInProps.length;
|
|
74
|
+
if (props)
|
|
75
|
+
(0, import_props.updateProps)(props, element, parent);
|
|
76
|
+
}
|
|
77
|
+
if (!options.preventInitUpdateListener) {
|
|
78
|
+
const initUpdateReturns = (0, import_event.triggerEventOn)("initUpdate", element, params);
|
|
79
|
+
if (initUpdateReturns === false)
|
|
80
|
+
return element;
|
|
81
|
+
}
|
|
82
|
+
const overwriteChanges = (0, import_utils2.overwriteDeep)(params, element);
|
|
83
|
+
const execChanges = (0, import_iterate.throughUpdatedExec)(element, UPDATE_DEFAULT_OPTIONS);
|
|
84
|
+
const definedChanges = (0, import_iterate.throughUpdatedDefine)(element);
|
|
85
|
+
if (options.stackChanges && element.__stackChanges) {
|
|
86
|
+
const stackChanges = (0, import_utils2.merge)(definedChanges, (0, import_utils2.merge)(execChanges, overwriteChanges));
|
|
87
|
+
element.__stackChanges.push(stackChanges);
|
|
88
|
+
}
|
|
89
|
+
if (!__ref.__if)
|
|
90
|
+
return false;
|
|
91
|
+
if (!node) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
for (const param in element) {
|
|
95
|
+
const prop = element[param];
|
|
96
|
+
if (options.preventDefineUpdate === true || options.preventDefineUpdate === param || options.preventContentUpdate && param === "content" || (options.preventStateUpdate && param) === "state" || (0, import_methods.isMethod)(param) || (0, import_utils.isObject)(import_mixins.registry[param]) || prop === void 0)
|
|
97
|
+
continue;
|
|
98
|
+
if (options.preventStateUpdate === "once")
|
|
99
|
+
options.preventStateUpdate = false;
|
|
100
|
+
const isElement = (0, import_applyParam.applyParam)(param, element, options);
|
|
101
|
+
if (isElement) {
|
|
102
|
+
const { hasDefine, hasContextDefine } = isElement;
|
|
103
|
+
const canUpdate = (0, import_utils.isObject)(prop) && !hasDefine && !hasContextDefine && !options.preventRecursive;
|
|
104
|
+
if (!canUpdate)
|
|
105
|
+
continue;
|
|
106
|
+
const childUpdateCall = () => update.call(prop, params[prop], {
|
|
107
|
+
...options,
|
|
108
|
+
currentSnapshot: snapshotOnCallee,
|
|
109
|
+
calleeElement
|
|
110
|
+
});
|
|
111
|
+
if (element.props && element.props.lazyLoad || options.lazyLoad) {
|
|
112
|
+
import_globals.window.requestAnimationFrame(() => childUpdateCall());
|
|
113
|
+
} else
|
|
114
|
+
childUpdateCall();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (!options.preventUpdateListener)
|
|
118
|
+
(0, import_event.triggerEventOn)("update", element);
|
|
119
|
+
};
|
|
120
|
+
const captureSnapshot = (element, options) => {
|
|
121
|
+
const __ref = element.__ref;
|
|
122
|
+
const { currentSnapshot, calleeElement } = options;
|
|
123
|
+
const isCallee = calleeElement === element;
|
|
124
|
+
if (!calleeElement || isCallee) {
|
|
125
|
+
const createdStanpshot = snapshot.snapshotId();
|
|
126
|
+
__ref.__currentSnapshot = createdStanpshot;
|
|
127
|
+
return [createdStanpshot, element];
|
|
128
|
+
}
|
|
129
|
+
const snapshotOnCallee = calleeElement.__ref.__currentSnapshot;
|
|
130
|
+
if (currentSnapshot < snapshotOnCallee) {
|
|
131
|
+
return [snapshotOnCallee, calleeElement, true];
|
|
132
|
+
}
|
|
133
|
+
return [snapshotOnCallee, calleeElement];
|
|
134
|
+
};
|
|
135
|
+
const checkIfOnUpdate = (element, options) => {
|
|
136
|
+
if (!(0, import_utils.isFunction)(element.if))
|
|
137
|
+
return;
|
|
138
|
+
const __ref = element.__ref;
|
|
139
|
+
const ifPassed = element.if(element, element.state);
|
|
140
|
+
const itWasFalse = __ref.__if !== true;
|
|
141
|
+
if (ifPassed) {
|
|
142
|
+
__ref.__if = true;
|
|
143
|
+
if (itWasFalse) {
|
|
144
|
+
delete element.__hash;
|
|
145
|
+
delete element.extend;
|
|
146
|
+
if (!__ref.__hasRootState) {
|
|
147
|
+
delete element.state;
|
|
148
|
+
}
|
|
149
|
+
if (__ref.__state) {
|
|
150
|
+
element.state = __ref.__state;
|
|
151
|
+
}
|
|
152
|
+
const created = (0, import_create.default)(element, element.parent, element.key);
|
|
153
|
+
if (!options.preventUpdate && element.on && (0, import_utils.isFunction)(element.on.update)) {
|
|
154
|
+
(0, import_event.applyEvent)(element.on.update, created, created.state);
|
|
155
|
+
}
|
|
156
|
+
return created;
|
|
157
|
+
}
|
|
158
|
+
} else if (element.node && !ifPassed) {
|
|
159
|
+
element.node.remove();
|
|
160
|
+
delete __ref.__if;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const inheritStateUpdates = (element, options) => {
|
|
164
|
+
const { __ref } = element;
|
|
165
|
+
const stateKey = __ref.__state;
|
|
166
|
+
const { parent } = element;
|
|
167
|
+
if (!stateKey && !__ref.__hasRootState) {
|
|
168
|
+
element.state = (parent == null ? void 0 : parent.state) || {};
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const parentState = (parent == null ? void 0 : parent.state) || {};
|
|
172
|
+
const keyInParentState = parentState[stateKey];
|
|
173
|
+
if (!keyInParentState)
|
|
174
|
+
return;
|
|
175
|
+
const initStateReturns = (0, import_event.triggerEventOn)("initStateUpdated", element, keyInParentState);
|
|
176
|
+
if (initStateReturns === false)
|
|
177
|
+
return element;
|
|
178
|
+
const newState = (0, import_state.default)(element, parent);
|
|
179
|
+
element.state = newState;
|
|
180
|
+
(0, import_event.triggerEventOn)("stateUpdated", element, newState.parse());
|
|
181
|
+
};
|
|
182
|
+
var update_default = update;
|
|
@@ -0,0 +1,36 @@
|
|
|
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 src_exports = {};
|
|
20
|
+
__export(src_exports, {
|
|
21
|
+
default: () => src_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(src_exports);
|
|
24
|
+
var import_globals = require("@domql/globals");
|
|
25
|
+
var import_tree = require("@domql/tree");
|
|
26
|
+
var import_element = require("./element");
|
|
27
|
+
var import_env = require("@domql/env");
|
|
28
|
+
if ((0, import_env.isTest)() || (0, import_env.isDevelopment)())
|
|
29
|
+
import_globals.window.tree = import_tree.TREE;
|
|
30
|
+
var src_default = {
|
|
31
|
+
TREE: import_tree.TREE,
|
|
32
|
+
create: import_element.create,
|
|
33
|
+
parse: import_element.parse,
|
|
34
|
+
set: import_element.set,
|
|
35
|
+
define: import_element.define
|
|
36
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
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 component_exports = {};
|
|
20
|
+
__export(component_exports, {
|
|
21
|
+
applyComponentFromContext: () => applyComponentFromContext,
|
|
22
|
+
applyKeyComponentAsExtend: () => applyKeyComponentAsExtend,
|
|
23
|
+
checkIfKeyIsComponent: () => checkIfKeyIsComponent,
|
|
24
|
+
extendizeByKey: () => extendizeByKey
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(component_exports);
|
|
27
|
+
var import_utils = require("@domql/utils");
|
|
28
|
+
const ENV = "development";
|
|
29
|
+
const checkIfKeyIsComponent = (key) => {
|
|
30
|
+
const isFirstKeyString = (0, import_utils.isString)(key);
|
|
31
|
+
if (!isFirstKeyString)
|
|
32
|
+
return;
|
|
33
|
+
const firstCharKey = key.slice(0, 1);
|
|
34
|
+
return /^[A-Z]*$/.test(firstCharKey);
|
|
35
|
+
};
|
|
36
|
+
const extendizeByKey = (element, parent, key) => {
|
|
37
|
+
const { extend, props, state, childExtend, childProps } = element;
|
|
38
|
+
const hasComponentAttrs = extend || childExtend || props || state || element.on;
|
|
39
|
+
const componentKey = key.split("_")[0];
|
|
40
|
+
if (!hasComponentAttrs || childProps) {
|
|
41
|
+
return {
|
|
42
|
+
extend: componentKey || key,
|
|
43
|
+
props: { ...element }
|
|
44
|
+
};
|
|
45
|
+
} else if (!extend || extend === true) {
|
|
46
|
+
return {
|
|
47
|
+
...element,
|
|
48
|
+
extend: componentKey || key
|
|
49
|
+
};
|
|
50
|
+
} else if ((0, import_utils.isFunction)(element)) {
|
|
51
|
+
return {
|
|
52
|
+
extend: componentKey || key,
|
|
53
|
+
props: { ...element }
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const applyKeyComponentAsExtend = (element, parent, key) => {
|
|
58
|
+
return extendizeByKey(element, parent, key) || element;
|
|
59
|
+
};
|
|
60
|
+
const applyComponentFromContext = (element, parent, options) => {
|
|
61
|
+
const { context } = element;
|
|
62
|
+
const { components } = context;
|
|
63
|
+
const { extend } = element;
|
|
64
|
+
const execExtend = (0, import_utils.exec)(extend, element);
|
|
65
|
+
if ((0, import_utils.isString)(execExtend)) {
|
|
66
|
+
if (components[execExtend])
|
|
67
|
+
element.extend = components[execExtend];
|
|
68
|
+
else {
|
|
69
|
+
if ((ENV === "test" || ENV === "development") && options.verbose) {
|
|
70
|
+
console.warn(execExtend, "is not in library", components, element);
|
|
71
|
+
console.warn("replacing with ", {});
|
|
72
|
+
}
|
|
73
|
+
element.extend = {};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
@@ -0,0 +1,142 @@
|
|
|
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 extendUtils_exports = {};
|
|
20
|
+
__export(extendUtils_exports, {
|
|
21
|
+
cloneAndMergeArrayExtend: () => cloneAndMergeArrayExtend,
|
|
22
|
+
deepCloneExtend: () => deepCloneExtend,
|
|
23
|
+
deepExtend: () => deepExtend,
|
|
24
|
+
deepMergeExtend: () => deepMergeExtend,
|
|
25
|
+
extendCachedRegistry: () => extendCachedRegistry,
|
|
26
|
+
extendStackRegistry: () => extendStackRegistry,
|
|
27
|
+
extractArrayExtend: () => extractArrayExtend,
|
|
28
|
+
flattenExtend: () => flattenExtend,
|
|
29
|
+
generateHash: () => generateHash,
|
|
30
|
+
getExtendMerged: () => getExtendMerged,
|
|
31
|
+
getExtendStack: () => getExtendStack,
|
|
32
|
+
getExtendStackRegistry: () => getExtendStackRegistry,
|
|
33
|
+
getHashedExtend: () => getHashedExtend,
|
|
34
|
+
jointStacks: () => jointStacks,
|
|
35
|
+
replaceStringsWithComponents: () => replaceStringsWithComponents,
|
|
36
|
+
setHashedExtend: () => setHashedExtend
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(extendUtils_exports);
|
|
39
|
+
var import_utils = require("@domql/utils");
|
|
40
|
+
const generateHash = () => Math.random().toString(36).substring(2);
|
|
41
|
+
const extendStackRegistry = {};
|
|
42
|
+
const extendCachedRegistry = {};
|
|
43
|
+
const getHashedExtend = (extend) => {
|
|
44
|
+
return extendStackRegistry[extend.__hash];
|
|
45
|
+
};
|
|
46
|
+
const setHashedExtend = (extend, stack) => {
|
|
47
|
+
const hash = generateHash();
|
|
48
|
+
extend.__hash = hash;
|
|
49
|
+
extendStackRegistry[hash] = stack;
|
|
50
|
+
return stack;
|
|
51
|
+
};
|
|
52
|
+
const getExtendStackRegistry = (extend, stack) => {
|
|
53
|
+
if (extend.__hash) {
|
|
54
|
+
return stack.concat(getHashedExtend(extend));
|
|
55
|
+
}
|
|
56
|
+
return setHashedExtend(extend, stack);
|
|
57
|
+
};
|
|
58
|
+
const extractArrayExtend = (extend, stack) => {
|
|
59
|
+
extend.forEach((each) => flattenExtend(each, stack));
|
|
60
|
+
return stack;
|
|
61
|
+
};
|
|
62
|
+
const deepExtend = (extend, stack) => {
|
|
63
|
+
const extendOflattenExtend = extend.extend;
|
|
64
|
+
if (extendOflattenExtend) {
|
|
65
|
+
flattenExtend(extendOflattenExtend, stack);
|
|
66
|
+
}
|
|
67
|
+
return stack;
|
|
68
|
+
};
|
|
69
|
+
const flattenExtend = (extend, stack) => {
|
|
70
|
+
if (!extend)
|
|
71
|
+
return stack;
|
|
72
|
+
if ((0, import_utils.isArray)(extend))
|
|
73
|
+
return extractArrayExtend(extend, stack);
|
|
74
|
+
stack.push(extend);
|
|
75
|
+
if (extend.extend)
|
|
76
|
+
deepExtend(extend, stack);
|
|
77
|
+
return stack;
|
|
78
|
+
};
|
|
79
|
+
const deepCloneExtend = (obj) => {
|
|
80
|
+
const o = {};
|
|
81
|
+
for (const prop in obj) {
|
|
82
|
+
if (["parent", "node", "__element"].indexOf(prop) > -1)
|
|
83
|
+
continue;
|
|
84
|
+
const objProp = obj[prop];
|
|
85
|
+
if ((0, import_utils.isObject)(objProp)) {
|
|
86
|
+
o[prop] = deepCloneExtend(objProp);
|
|
87
|
+
} else if ((0, import_utils.isArray)(objProp)) {
|
|
88
|
+
o[prop] = objProp.map((x) => x);
|
|
89
|
+
} else
|
|
90
|
+
o[prop] = objProp;
|
|
91
|
+
}
|
|
92
|
+
return o;
|
|
93
|
+
};
|
|
94
|
+
const deepMergeExtend = (element, extend) => {
|
|
95
|
+
for (const e in extend) {
|
|
96
|
+
if (["parent", "node", "__element"].indexOf(e) > -1)
|
|
97
|
+
continue;
|
|
98
|
+
const elementProp = element[e];
|
|
99
|
+
const extendProp = extend[e];
|
|
100
|
+
if (elementProp === void 0) {
|
|
101
|
+
element[e] = extendProp;
|
|
102
|
+
} else if ((0, import_utils.isObject)(elementProp) && (0, import_utils.isObject)(extendProp)) {
|
|
103
|
+
deepMergeExtend(elementProp, extendProp);
|
|
104
|
+
} else if ((0, import_utils.isArray)(elementProp) && (0, import_utils.isArray)(extendProp)) {
|
|
105
|
+
element[e] = elementProp.concat(extendProp);
|
|
106
|
+
} else if ((0, import_utils.isArray)(elementProp) && (0, import_utils.isObject)(extendProp)) {
|
|
107
|
+
const obj = deepMergeExtend({}, elementProp);
|
|
108
|
+
element[e] = deepMergeExtend(obj, extendProp);
|
|
109
|
+
} else if (elementProp === void 0 && (0, import_utils.isFunction)(extendProp)) {
|
|
110
|
+
element[e] = extendProp;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return element;
|
|
114
|
+
};
|
|
115
|
+
const cloneAndMergeArrayExtend = (stack) => {
|
|
116
|
+
return stack.reduce((a, c) => {
|
|
117
|
+
return deepMergeExtend(a, deepCloneExtend(c));
|
|
118
|
+
}, {});
|
|
119
|
+
};
|
|
120
|
+
const replaceStringsWithComponents = (stack, components) => {
|
|
121
|
+
return stack.map((v) => {
|
|
122
|
+
if ((0, import_utils.isString)(v))
|
|
123
|
+
return components[v];
|
|
124
|
+
else
|
|
125
|
+
return v;
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
const jointStacks = (extendStack, childExtendStack) => {
|
|
129
|
+
return [].concat(extendStack.slice(0, 1)).concat(childExtendStack.slice(0, 1)).concat(extendStack.slice(1)).concat(childExtendStack.slice(1));
|
|
130
|
+
};
|
|
131
|
+
const getExtendStack = (extend) => {
|
|
132
|
+
if (!extend)
|
|
133
|
+
return [];
|
|
134
|
+
if (extend.__hash)
|
|
135
|
+
return getHashedExtend(extend) || [];
|
|
136
|
+
const stack = flattenExtend(extend, []);
|
|
137
|
+
return getExtendStackRegistry(extend, stack);
|
|
138
|
+
};
|
|
139
|
+
const getExtendMerged = (extend) => {
|
|
140
|
+
const stack = getExtendStack(extend);
|
|
141
|
+
return cloneAndMergeArrayExtend(stack);
|
|
142
|
+
};
|
|
@@ -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 utils_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(utils_exports);
|
|
18
|
+
__reExport(utils_exports, require("./object"), module.exports);
|
|
19
|
+
__reExport(utils_exports, require("./extendUtils"), module.exports);
|
|
20
|
+
__reExport(utils_exports, require("./component"), module.exports);
|
|
@@ -0,0 +1,152 @@
|
|
|
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 object_exports = {};
|
|
20
|
+
__export(object_exports, {
|
|
21
|
+
clone: () => clone,
|
|
22
|
+
deepClone: () => deepClone,
|
|
23
|
+
deepMerge: () => deepMerge,
|
|
24
|
+
flattenRecursive: () => flattenRecursive,
|
|
25
|
+
merge: () => merge,
|
|
26
|
+
mergeAndCloneIfArray: () => mergeAndCloneIfArray,
|
|
27
|
+
mergeArray: () => mergeArray,
|
|
28
|
+
mergeIfExisted: () => mergeIfExisted,
|
|
29
|
+
overwrite: () => overwrite,
|
|
30
|
+
overwriteDeep: () => overwriteDeep,
|
|
31
|
+
overwriteShallow: () => overwriteShallow
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(object_exports);
|
|
34
|
+
var import_utils = require("@domql/utils");
|
|
35
|
+
var import_state = require("../element/state");
|
|
36
|
+
var import_props = require("../element/props");
|
|
37
|
+
var import_methods = require("@domql/methods");
|
|
38
|
+
const METHODS_EXL = (0, import_utils.joinArrays)(
|
|
39
|
+
["node", "state", "context", "extend"],
|
|
40
|
+
import_methods.METHODS,
|
|
41
|
+
import_state.IGNORE_STATE_PARAMS,
|
|
42
|
+
import_props.IGNORE_PROPS_PARAMS
|
|
43
|
+
);
|
|
44
|
+
const merge = (element, obj) => {
|
|
45
|
+
for (const e in obj) {
|
|
46
|
+
const elementProp = element[e];
|
|
47
|
+
const objProp = obj[e];
|
|
48
|
+
if (elementProp === void 0) {
|
|
49
|
+
element[e] = objProp;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return element;
|
|
53
|
+
};
|
|
54
|
+
const deepMerge = (element, extend, exclude = METHODS_EXL) => {
|
|
55
|
+
for (const e in extend) {
|
|
56
|
+
if (exclude.includes(e))
|
|
57
|
+
continue;
|
|
58
|
+
const elementProp = element[e];
|
|
59
|
+
const extendProp = extend[e];
|
|
60
|
+
if (elementProp === void 0) {
|
|
61
|
+
element[e] = extendProp;
|
|
62
|
+
} else if ((0, import_utils.isObjectLike)(elementProp) && (0, import_utils.isObject)(extendProp)) {
|
|
63
|
+
deepMerge(elementProp, extendProp);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return element;
|
|
67
|
+
};
|
|
68
|
+
const clone = (obj, exclude = METHODS_EXL) => {
|
|
69
|
+
const o = {};
|
|
70
|
+
for (const e in obj) {
|
|
71
|
+
if (exclude.includes(e))
|
|
72
|
+
continue;
|
|
73
|
+
o[e] = obj[e];
|
|
74
|
+
}
|
|
75
|
+
return o;
|
|
76
|
+
};
|
|
77
|
+
const deepClone = (obj, exclude = METHODS_EXL) => {
|
|
78
|
+
const o = (0, import_utils.isArray)(obj) ? [] : {};
|
|
79
|
+
for (const e in obj) {
|
|
80
|
+
if (exclude.includes(e))
|
|
81
|
+
continue;
|
|
82
|
+
let objProp = obj[e];
|
|
83
|
+
if (e === "extend" && (0, import_utils.isArray)(objProp)) {
|
|
84
|
+
objProp = mergeArray(objProp, exclude);
|
|
85
|
+
}
|
|
86
|
+
if ((0, import_utils.isObjectLike)(objProp)) {
|
|
87
|
+
o[e] = deepClone(objProp, exclude);
|
|
88
|
+
} else
|
|
89
|
+
o[e] = objProp;
|
|
90
|
+
}
|
|
91
|
+
return o;
|
|
92
|
+
};
|
|
93
|
+
const overwrite = (element, params, options) => {
|
|
94
|
+
const changes = {};
|
|
95
|
+
const { __ref } = element;
|
|
96
|
+
const { __exec, __cached } = __ref;
|
|
97
|
+
for (const e in params) {
|
|
98
|
+
if (e === "props" || e === "state" || e === "__ref")
|
|
99
|
+
continue;
|
|
100
|
+
const elementProp = element[e];
|
|
101
|
+
const paramsProp = params[e];
|
|
102
|
+
if (paramsProp !== void 0) {
|
|
103
|
+
__cached[e] = changes[e] = elementProp;
|
|
104
|
+
element[e] = paramsProp;
|
|
105
|
+
}
|
|
106
|
+
if (options.cleanExec)
|
|
107
|
+
delete __exec[e];
|
|
108
|
+
}
|
|
109
|
+
return changes;
|
|
110
|
+
};
|
|
111
|
+
const overwriteShallow = (obj, params, exclude = METHODS_EXL) => {
|
|
112
|
+
for (const e in params) {
|
|
113
|
+
if (exclude.includes(e))
|
|
114
|
+
continue;
|
|
115
|
+
obj[e] = params[e];
|
|
116
|
+
}
|
|
117
|
+
return obj;
|
|
118
|
+
};
|
|
119
|
+
const overwriteDeep = (obj, params, exclude = METHODS_EXL) => {
|
|
120
|
+
for (const e in params) {
|
|
121
|
+
if (exclude.includes(e))
|
|
122
|
+
continue;
|
|
123
|
+
const objProp = obj[e];
|
|
124
|
+
const paramsProp = params[e];
|
|
125
|
+
if ((0, import_utils.isObjectLike)(objProp) && (0, import_utils.isObjectLike)(paramsProp)) {
|
|
126
|
+
overwriteDeep(objProp, paramsProp);
|
|
127
|
+
} else if (paramsProp !== void 0) {
|
|
128
|
+
obj[e] = paramsProp;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return obj;
|
|
132
|
+
};
|
|
133
|
+
const mergeIfExisted = (a, b) => {
|
|
134
|
+
if ((0, import_utils.isObjectLike)(a) && (0, import_utils.isObjectLike)(b))
|
|
135
|
+
return deepMerge(a, b);
|
|
136
|
+
return a || b;
|
|
137
|
+
};
|
|
138
|
+
const mergeArray = (arr, exclude = ["parent", "node", "__element", "state", "context", "__ref"]) => {
|
|
139
|
+
return arr.reduce((a, c) => deepMerge(a, deepClone(c, exclude)), {});
|
|
140
|
+
};
|
|
141
|
+
const mergeAndCloneIfArray = (obj) => {
|
|
142
|
+
return (0, import_utils.isArray)(obj) ? mergeArray(obj) : deepClone(obj);
|
|
143
|
+
};
|
|
144
|
+
const flattenRecursive = (param, prop, stack = []) => {
|
|
145
|
+
const objectized = mergeAndCloneIfArray(param);
|
|
146
|
+
stack.push(objectized);
|
|
147
|
+
const extendOfExtend = objectized[prop];
|
|
148
|
+
if (extendOfExtend)
|
|
149
|
+
flattenRecursive(extendOfExtend, prop, stack);
|
|
150
|
+
delete objectized[prop];
|
|
151
|
+
return stack;
|
|
152
|
+
};
|