domql 1.6.3 → 1.6.5

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 (56) hide show
  1. package/dist/cjs/element/create.js +30 -28
  2. package/dist/cjs/element/index.js +6 -12
  3. package/dist/cjs/element/iterate.js +10 -16
  4. package/dist/cjs/element/methods.js +24 -74
  5. package/dist/cjs/element/node.js +4 -4
  6. package/dist/cjs/element/parse.js +2 -2
  7. package/dist/cjs/element/props.js +3 -1
  8. package/dist/cjs/element/state.js +157 -86
  9. package/dist/cjs/element/update.js +95 -71
  10. package/dist/cjs/index.js +6 -5
  11. package/dist/cjs/utils/component.js +0 -1
  12. package/dist/cjs/utils/object.js +30 -24
  13. package/dist/esm/element/applyParam.js +3328 -1298
  14. package/dist/esm/element/create.js +3284 -1256
  15. package/dist/esm/element/define.js +3336 -1306
  16. package/dist/esm/element/extend.js +2749 -338
  17. package/dist/esm/element/index.js +3394 -1386
  18. package/dist/esm/element/iterate.js +2556 -332
  19. package/dist/esm/element/methods.js +3277 -1255
  20. package/dist/esm/element/node.js +3513 -1485
  21. package/dist/esm/element/parse.js +3286 -1258
  22. package/dist/esm/element/props.js +2741 -329
  23. package/dist/esm/element/remove.js +293 -144
  24. package/dist/esm/element/set.js +3297 -1269
  25. package/dist/esm/element/state.js +3875 -428
  26. package/dist/esm/element/update.js +3326 -1300
  27. package/dist/esm/index.js +3363 -1345
  28. package/dist/esm/utils/component.js +293 -145
  29. package/dist/esm/utils/extendUtils.js +301 -152
  30. package/dist/esm/utils/index.js +2839 -563
  31. package/dist/esm/utils/object.js +2697 -414
  32. package/dist/iife/index.js +3363 -1345
  33. package/package.json +2 -2
  34. package/dist/cjs/element/assign.js +0 -35
  35. package/dist/cjs/element/cache.js +0 -74
  36. package/dist/cjs/element/nodes.js +0 -158
  37. package/dist/cjs/element/root.js +0 -30
  38. package/dist/cjs/element/tree.js +0 -31
  39. package/dist/cjs/event/can.js +0 -30
  40. package/dist/cjs/event/index.js +0 -34
  41. package/dist/cjs/event/is.js +0 -28
  42. package/dist/cjs/event/on.js +0 -34
  43. package/dist/cjs/event/store.js +0 -27
  44. package/dist/cjs/event/wrappers.js +0 -36
  45. package/dist/cjs/package.json +0 -4
  46. package/dist/esm/element/assign.js +0 -16
  47. package/dist/esm/element/cache.js +0 -1134
  48. package/dist/esm/element/nodes.js +0 -139
  49. package/dist/esm/element/root.js +0 -162
  50. package/dist/esm/element/tree.js +0 -165
  51. package/dist/esm/event/can.js +0 -1058
  52. package/dist/esm/event/index.js +0 -1098
  53. package/dist/esm/event/is.js +0 -67
  54. package/dist/esm/event/on.js +0 -15
  55. package/dist/esm/event/store.js +0 -8
  56. package/dist/esm/event/wrappers.js +0 -75
@@ -28,19 +28,21 @@ __export(create_exports, {
28
28
  });
29
29
  module.exports = __toCommonJS(create_exports);
30
30
  var import_utils = require("@domql/utils");
31
+ var import_tree = require("@domql/tree");
32
+ var import_key = require("@domql/key");
31
33
  var import_registry = require("@domql/registry");
32
34
  var import_event = require("@domql/event");
33
- var import_root = __toESM(require("./root"));
34
- var import_node = __toESM(require("./node"));
35
- var import_assign = require("./assign");
35
+ var import_render = require("@domql/render");
36
+ var import_methods = require("@domql/methods");
37
+ var import_classlist = require("@domql/classlist");
38
+ var import_node = require("@domql/node");
39
+ var import_node2 = __toESM(require("./node"));
36
40
  var import_extend = require("./extend");
37
41
  var import_set = __toESM(require("./set"));
38
42
  var import_state = __toESM(require("./state"));
39
43
  var import_props = __toESM(require("./props"));
40
44
  var import_update = __toESM(require("./update"));
41
- var import_classList = require("./mixins/classList");
42
- var import_methods = require("./methods");
43
- var import_cache = __toESM(require("./cache"));
45
+ var import_methods2 = require("./methods");
44
46
  var import_mixins = require("./mixins");
45
47
  var import_iterate = require("./iterate");
46
48
  var import_options = __toESM(require("./options"));
@@ -69,13 +71,14 @@ const create = (element, parent, key, options = import_options.default.create ||
69
71
  element = { extend: element };
70
72
  }
71
73
  if (!parent)
72
- parent = import_root.default;
73
- if ((0, import_utils.isNode)(parent))
74
- parent = import_root.default[`${key}_parent`] = { key: ":root", node: parent };
74
+ parent = import_tree.ROOT;
75
+ if ((0, import_utils.isNode)(parent)) {
76
+ parent = import_tree.ROOT[`${key}_parent`] = { key: ":root", node: parent };
77
+ }
75
78
  if (checkIfPrimitive(element)) {
76
79
  element = applyValueAsText(element, parent, key);
77
80
  }
78
- const assignedKey = (element.key || key || (0, import_utils.createID)()).toString();
81
+ const assignedKey = (element.key || key || (0, import_key.createKey)()).toString();
79
82
  if ((0, import_component.checkIfKeyIsComponent)(assignedKey)) {
80
83
  element = (0, import_component.applyKeyComponentAsExtend)(element, parent, assignedKey);
81
84
  }
@@ -105,7 +108,7 @@ const create = (element, parent, key, options = import_options.default.create ||
105
108
  element.state = (0, import_state.default)(element, parent);
106
109
  checkIf(element, parent);
107
110
  if (element.node && __ref.__if) {
108
- return (0, import_assign.assignNode)(element, parent, assignedKey);
111
+ return (0, import_render.assignNode)(element, parent, assignedKey);
109
112
  }
110
113
  if (__ref.__if)
111
114
  (0, import_props.default)(element, parent);
@@ -113,12 +116,11 @@ const create = (element, parent, key, options = import_options.default.create ||
113
116
  if (initReturns === false)
114
117
  return element;
115
118
  (0, import_event.triggerEventOn)("beforeClassAssign", element);
116
- (0, import_classList.assignClass)(element);
117
- console.log(element);
118
- (0, import_node.default)(element, options);
119
+ (0, import_classlist.assignClass)(element);
120
+ (0, import_node2.default)(element, options);
119
121
  if (!__ref.__if)
120
122
  return element;
121
- (0, import_assign.assignNode)(element, parent, key);
123
+ (0, import_render.assignNode)(element, parent, key);
122
124
  (0, import_event.triggerEventOn)("renderRouter", element);
123
125
  (0, import_event.triggerEventOn)("render", element);
124
126
  if (parent.__ref && parent.__ref.__children)
@@ -145,28 +147,28 @@ const addMethods = (element, parent) => {
145
147
  element.setProps = import_methods.setProps;
146
148
  element.lookup = import_methods.lookup;
147
149
  element.spotByPath = import_methods.spotByPath;
148
- element.parse = import_methods.parse;
149
- element.parseDeep = import_methods.parseDeep;
150
- element.keys = import_methods.keys;
151
- element.nextElement = import_methods.nextElement;
152
- element.previousElement = import_methods.previousElement;
150
+ element.parse = import_methods2.parse;
151
+ element.parseDeep = import_methods2.parseDeep;
152
+ element.keys = import_methods2.keys;
153
+ element.nextElement = import_methods2.nextElement;
154
+ element.previousElement = import_methods2.previousElement;
153
155
  if (ENV === "test" || ENV === "development") {
154
- element.log = import_methods.log;
156
+ element.log = import_methods2.log;
155
157
  }
156
158
  };
157
159
  const applyContext = (element, parent, options) => {
158
- if (options.context && !import_root.default.context && !element.context)
159
- import_root.default.context = options.context;
160
+ if (options.context && !import_tree.ROOT.context && !element.context)
161
+ import_tree.ROOT.context = options.context;
160
162
  if (!element.context)
161
- element.context = parent.context || options.context || import_root.default.context;
163
+ element.context = parent.context || options.context || import_tree.ROOT.context;
162
164
  };
163
165
  const checkIf = (element, parent) => {
164
166
  const { __ref } = element;
165
167
  if ((0, import_utils.isFunction)(element.if)) {
166
168
  const ifPassed = element.if(element, element.state);
167
169
  if (!ifPassed) {
168
- const ifFragment = (0, import_cache.default)({ tag: "fragment" });
169
- __ref.__ifFragment = (0, import_assign.appendNode)(ifFragment, parent.node);
170
+ const ifFragment = (0, import_node.cacheNode)({ tag: "fragment" });
171
+ __ref.__ifFragment = (0, import_render.appendNode)(ifFragment, parent.node);
170
172
  delete __ref.__if;
171
173
  } else
172
174
  __ref.__if = true;
@@ -194,7 +196,7 @@ const addCaching = (element, parent) => {
194
196
  __ref.__children = [];
195
197
  const hasRoot = parent && parent.key === ":root";
196
198
  if (!__ref.__root)
197
- __ref.__root = hasRoot ? element : parent.__ref.__root;
199
+ __ref.__root = hasRoot ? element : __parentRef.__root;
198
200
  if (ENV === "test" || ENV === "development") {
199
201
  if (!__parentRef)
200
202
  __parentRef = parent.__ref = {};
@@ -205,7 +207,7 @@ const addCaching = (element, parent) => {
205
207
  };
206
208
  const resolveExtends = (element, parent, options) => {
207
209
  const { __ref } = element;
208
- element.tag = (0, import_cache.detectTag)(element);
210
+ element.tag = (0, import_node.detectTag)(element);
209
211
  if (!__ref.__exec)
210
212
  __ref.__exec = {};
211
213
  if (!__ref.__attr)
@@ -24,32 +24,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
25
  var element_exports = {};
26
26
  __export(element_exports, {
27
- assign: () => assign,
28
- cache: () => import_cache.default,
27
+ TREE: () => import_tree.TREE,
29
28
  create: () => import_create.default,
30
29
  createNode: () => import_node.default,
31
30
  define: () => import_define.default,
32
- get: () => import_methods.get,
31
+ get: () => import_methods2.get,
33
32
  keys: () => import_methods.keys,
34
33
  log: () => import_methods.log,
35
- lookup: () => import_methods.lookup,
34
+ lookup: () => import_methods2.lookup,
36
35
  parse: () => import_parse.default,
37
- remove: () => import_methods.remove,
38
- root: () => import_root.default,
36
+ remove: () => import_methods2.remove,
39
37
  set: () => import_set.default,
40
- setProps: () => import_methods.setProps,
41
- tree: () => import_tree.default,
42
38
  update: () => import_update.default
43
39
  });
44
40
  module.exports = __toCommonJS(element_exports);
45
- var import_root = __toESM(require("./root"));
46
- var import_tree = __toESM(require("./tree"));
47
- var import_cache = __toESM(require("./cache"));
41
+ var import_tree = require("@domql/tree");
48
42
  var import_create = __toESM(require("./create"));
49
43
  var import_node = __toESM(require("./node"));
50
- var assign = __toESM(require("./assign"));
51
44
  var import_define = __toESM(require("./define"));
52
45
  var import_update = __toESM(require("./update"));
53
46
  var import_parse = __toESM(require("./parse"));
54
47
  var import_set = __toESM(require("./set"));
55
48
  var import_methods = require("./methods");
49
+ var import_methods2 = require("@domql/methods");
@@ -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
- applyEvents: () => applyEvents,
22
21
  throughInitialDefine: () => throughInitialDefine,
23
22
  throughInitialExec: () => throughInitialExec,
24
23
  throughUpdatedDefine: () => throughUpdatedDefine,
@@ -27,18 +26,7 @@ __export(iterate_exports, {
27
26
  module.exports = __toCommonJS(iterate_exports);
28
27
  var import_utils = require("@domql/utils");
29
28
  var import_utils2 = require("../utils");
30
- var import_methods = require("./methods");
31
- const applyEvents = (element) => {
32
- const { node, on } = element;
33
- for (const param in on) {
34
- if (param === "init" || param === "beforeClassAssign" || param === "render" || param === "renderRouter" || param === "attachNode" || param === "stateInit" || param === "stateCreated" || param === "initStateUpdated" || param === "stateUpdated" || param === "initUpdate" || param === "update")
35
- continue;
36
- const appliedFunction = element.on[param];
37
- if ((0, import_utils.isFunction)(appliedFunction)) {
38
- node.addEventListener(param, (event) => appliedFunction(event, element, element.state, element.context));
39
- }
40
- }
41
- };
29
+ var import_methods = require("@domql/methods");
42
30
  const throughInitialExec = (element) => {
43
31
  const { __ref } = element;
44
32
  const { __exec } = __ref;
@@ -78,10 +66,14 @@ const throughInitialDefine = (element) => {
78
66
  let prop = element[param];
79
67
  if ((0, import_utils.isFunction)(prop) && !(0, import_methods.isMethod)(param)) {
80
68
  __exec[param] = prop;
81
- element[param] = prop = (0, import_utils.exec)(prop, element);
69
+ const execParam2 = prop = (0, import_utils.exec)(prop, element);
70
+ if (execParam2)
71
+ element[param] = execParam2;
82
72
  }
83
73
  __cached[param] = prop;
84
- element[param] = obj[param](prop, element, element.state);
74
+ const execParam = obj[param](prop, element, element.state);
75
+ if (execParam)
76
+ element[param] = execParam;
85
77
  }
86
78
  return element;
87
79
  };
@@ -99,7 +91,9 @@ const throughUpdatedDefine = (element) => {
99
91
  if (execParam)
100
92
  __cached[param] = execParam(element, element.state);
101
93
  const cached = (0, import_utils.exec)(__cached[param], element);
102
- element[param] = obj[param](cached, element, element.state);
94
+ const newExecParam = obj[param](cached, element, element.state);
95
+ if (newExecParam)
96
+ element[param] = newExecParam;
103
97
  }
104
98
  return changes;
105
99
  };
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,88 +15,27 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
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
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
19
  var methods_exports = {};
26
20
  __export(methods_exports, {
27
21
  defineSetter: () => defineSetter,
28
- get: () => get,
29
- isMethod: () => isMethod,
30
22
  keys: () => keys,
31
23
  log: () => log,
32
- lookup: () => lookup,
33
24
  nextElement: () => nextElement,
34
25
  parse: () => parse,
35
26
  parseDeep: () => parseDeep,
36
27
  previousElement: () => previousElement,
37
- remove: () => remove,
38
28
  set: () => set,
39
- setProps: () => setProps,
40
- spotByPath: () => spotByPath,
41
29
  update: () => update
42
30
  });
43
31
  module.exports = __toCommonJS(methods_exports);
44
32
  var import_utils = require("@domql/utils");
45
33
  var import_mixins = require("./mixins");
46
- var import_root = __toESM(require("./root"));
47
- const ENV = "development";
48
- const lookup = function(key) {
49
- const element = this;
50
- let { parent } = element;
51
- while (parent.key !== key) {
52
- if (parent[key])
53
- return parent[key];
54
- parent = parent.parent;
55
- if (!parent)
56
- return;
57
- }
58
- return parent;
59
- };
60
- const spotByPath = function(path) {
61
- const element = this;
62
- const arr = [].concat(path);
63
- let active = import_root.default[arr[0]];
64
- if (!arr || !arr.length)
65
- return console.log(arr, "on", element.key, "is undefined");
66
- while (active.key === arr[0]) {
67
- arr.shift();
68
- if (!arr.length)
69
- break;
70
- active = active[arr[0]];
71
- if (!active)
72
- return;
73
- }
74
- return active;
75
- };
76
- const remove = function(params) {
77
- const element = this;
78
- if ((0, import_utils.isFunction)(element.node.remove))
79
- element.node.remove();
80
- else if (ENV === "test" || ENV === "development") {
81
- console.warn("This item cant be removed");
82
- element.log();
83
- }
84
- delete element.parent[element.key];
85
- };
86
- const get = function(param) {
87
- const element = this;
88
- return element[param];
89
- };
90
34
  const set = function() {
91
35
  };
92
36
  const update = function() {
93
37
  };
94
- const setProps = function(param, options) {
95
- const element = this;
96
- if (!param || !element.props)
97
- return;
98
- element.update({ props: param }, options);
99
- return element;
100
- };
101
- const defineSetter = (element, key, get2, set2) => Object.defineProperty(element, key, { get: get2, set: set2 });
38
+ const defineSetter = (element, key, get, set2) => Object.defineProperty(element, key, { get, set: set2 });
102
39
  const keys = function() {
103
40
  const element = this;
104
41
  const keys2 = [];
@@ -110,19 +47,35 @@ const keys = function() {
110
47
  }
111
48
  return keys2;
112
49
  };
113
- const parse = function() {
50
+ const parse = function(excl = []) {
114
51
  const element = this;
115
52
  const obj = {};
116
53
  const keyList = keys.call(element);
117
- keyList.forEach((v) => obj[v] = element[v]);
54
+ keyList.forEach((v) => {
55
+ if (excl.includes(v))
56
+ return;
57
+ let val = element[v];
58
+ if (v === "state") {
59
+ if (element.__ref && element.__ref.__hasRootState)
60
+ return;
61
+ if ((0, import_utils.isFunction)(val == null ? void 0 : val.parse))
62
+ val = val.parse();
63
+ } else if (v === "props") {
64
+ const { __element, update: update2, ...props } = element[v];
65
+ obj[v] = props;
66
+ } else if ((0, import_utils.isDefined)(val))
67
+ obj[v] = val;
68
+ });
118
69
  return obj;
119
70
  };
120
- const parseDeep = function() {
71
+ const parseDeep = function(excl = []) {
121
72
  const element = this;
122
- const obj = parse.call(element);
123
- for (const k in obj) {
124
- if ((0, import_utils.isObjectLike)(obj[k])) {
125
- obj[k] = parseDeep.call(obj[k]);
73
+ const obj = parse.call(element, excl);
74
+ for (const v in obj) {
75
+ if (excl.includes(v))
76
+ return;
77
+ if ((0, import_utils.isObjectLike)(obj[v])) {
78
+ obj[v] = parseDeep.call(obj[v], excl);
126
79
  }
127
80
  }
128
81
  return obj;
@@ -143,9 +96,6 @@ const log = function(...args) {
143
96
  console.groupEnd(element.key);
144
97
  return element;
145
98
  };
146
- const isMethod = function(param) {
147
- return param === "set" || param === "update" || param === "remove" || param === "removeContent" || param === "lookup" || param === "spotByPath" || param === "keys" || param === "parse" || param === "setProps" || param === "parseDeep" || param === "if" || param === "log" || param === "nextElement" || param === "previousElement";
148
- };
149
99
  const nextElement = function() {
150
100
  const element = this;
151
101
  const { key, parent } = element;
@@ -30,11 +30,11 @@ __export(node_exports, {
30
30
  module.exports = __toCommonJS(node_exports);
31
31
  var import_utils = require("@domql/utils");
32
32
  var import_event = require("@domql/event");
33
+ var import_methods = require("@domql/methods");
34
+ var import_node = require("@domql/node");
33
35
  var import_create = __toESM(require("./create"));
34
- var import_cache = __toESM(require("./cache"));
35
36
  var import_iterate = require("./iterate");
36
37
  var import_mixins = require("./mixins");
37
- var import_methods = require("./methods");
38
38
  var import_applyParam = require("./applyParam");
39
39
  const ENV = "development";
40
40
  const createNode = (element, options) => {
@@ -47,7 +47,7 @@ const createNode = (element, options) => {
47
47
  if (tag === "shadow") {
48
48
  node = element.node = element.parent.node.attachShadow({ mode: "open" });
49
49
  } else
50
- node = element.node = (0, import_cache.default)(element);
50
+ node = element.node = (0, import_node.cacheNode)(element);
51
51
  (0, import_event.triggerEventOn)("attachNode", element);
52
52
  }
53
53
  if (ENV === "test" || ENV === "development" || options.alowRefReference) {
@@ -61,7 +61,7 @@ const createNode = (element, options) => {
61
61
  (0, import_iterate.throughInitialDefine)(element);
62
62
  (0, import_iterate.throughInitialExec)(element);
63
63
  if (isNewNode && (0, import_utils.isObject)(element.on))
64
- (0, import_iterate.applyEvents)(element);
64
+ (0, import_event.applyEventsOnNode)(element);
65
65
  for (const param in element) {
66
66
  const prop = element[param];
67
67
  if ((0, import_methods.isMethod)(param) || (0, import_utils.isObject)(import_mixins.registry[param]) || prop === void 0)
@@ -27,14 +27,14 @@ __export(parse_exports, {
27
27
  default: () => parse_default
28
28
  });
29
29
  module.exports = __toCommonJS(parse_exports);
30
+ var import_render = require("@domql/render");
30
31
  var import_create = __toESM(require("./create"));
31
- var import_assign = require("./assign");
32
32
  const parse = (element) => {
33
33
  const virtualTree = {
34
34
  node: document.createElement("div")
35
35
  };
36
36
  if (element && element.node)
37
- (0, import_assign.assignNode)(element, virtualTree);
37
+ (0, import_render.assignNode)(element, virtualTree);
38
38
  else
39
39
  (0, import_create.default)(element, virtualTree);
40
40
  return virtualTree.node.innerHTML;
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var props_exports = {};
20
20
  __export(props_exports, {
21
+ IGNORE_PROPS_PARAMS: () => IGNORE_PROPS_PARAMS,
21
22
  default: () => props_default,
22
23
  syncProps: () => syncProps,
23
24
  updateProps: () => updateProps
@@ -25,6 +26,7 @@ __export(props_exports, {
25
26
  module.exports = __toCommonJS(props_exports);
26
27
  var import_utils = require("@domql/utils");
27
28
  var import_utils2 = require("../utils");
29
+ const IGNORE_PROPS_PARAMS = ["update", "__element"];
28
30
  const objectizeStringProperty = (propValue) => {
29
31
  if ((0, import_utils.is)(propValue)("string", "number"))
30
32
  return { inheritedString: propValue };
@@ -75,7 +77,7 @@ const syncProps = (props, element) => {
75
77
  element.props = {};
76
78
  const mergedProps = { update, __element: element };
77
79
  props.forEach((v) => {
78
- if (v === "update" || v === "__element")
80
+ if (IGNORE_PROPS_PARAMS.includes(v))
79
81
  return;
80
82
  const execProps = (0, import_utils.exec)(v, element);
81
83
  if ((0, import_utils.isObject)(execProps) && execProps.__element)