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.
Files changed (43) hide show
  1. package/dist/cjs/element/applyParam.js +41 -0
  2. package/dist/cjs/element/create.js +266 -0
  3. package/dist/cjs/element/define.js +34 -0
  4. package/dist/cjs/element/extend.js +75 -0
  5. package/dist/cjs/element/index.js +49 -0
  6. package/dist/cjs/element/iterate.js +99 -0
  7. package/dist/cjs/element/methods.js +116 -0
  8. package/dist/cjs/element/node.js +80 -0
  9. package/dist/cjs/element/options.js +24 -0
  10. package/dist/cjs/element/parse.js +42 -0
  11. package/dist/cjs/element/props.js +116 -0
  12. package/dist/cjs/element/remove.js +44 -0
  13. package/dist/cjs/element/set.js +55 -0
  14. package/dist/cjs/element/state.js +279 -0
  15. package/dist/cjs/element/update.js +182 -0
  16. package/dist/cjs/index.js +36 -0
  17. package/dist/cjs/utils/component.js +76 -0
  18. package/dist/cjs/utils/extendUtils.js +142 -0
  19. package/dist/cjs/utils/index.js +20 -0
  20. package/dist/cjs/utils/object.js +152 -0
  21. package/dist/esm/element/applyParam.js +4644 -0
  22. package/dist/esm/element/create.js +4644 -0
  23. package/dist/esm/element/define.js +4653 -0
  24. package/dist/esm/element/extend.js +3395 -0
  25. package/dist/esm/element/index.js +4675 -0
  26. package/dist/esm/element/iterate.js +3338 -0
  27. package/dist/esm/element/methods.js +4657 -0
  28. package/dist/esm/element/node.js +4645 -0
  29. package/dist/esm/element/options.js +5 -0
  30. package/dist/esm/element/parse.js +4657 -0
  31. package/dist/esm/element/props.js +3370 -0
  32. package/dist/esm/element/remove.js +991 -0
  33. package/dist/esm/element/set.js +4644 -0
  34. package/dist/esm/element/state.js +4656 -0
  35. package/dist/esm/element/update.js +4642 -0
  36. package/dist/esm/index.js +4676 -0
  37. package/dist/esm/utils/component.js +1023 -0
  38. package/dist/esm/utils/extendUtils.js +1089 -0
  39. package/dist/esm/utils/index.js +3536 -0
  40. package/dist/esm/utils/object.js +3364 -0
  41. package/dist/iife/index.js +4676 -0
  42. package/package.json +1 -1
  43. 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
+ };