@domql/element 2.5.198 → 3.0.0

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 (150) hide show
  1. package/README.md +1 -1
  2. package/__tests__/checkIfOnUpdate.test.js +103 -0
  3. package/__tests__/children.test.js +213 -0
  4. package/__tests__/define.test.js +75 -0
  5. package/__tests__/inheritStateUpdates.test.js +79 -0
  6. package/__tests__/renderElement.test.js +131 -0
  7. package/__tests__/resetElement.test.js +44 -0
  8. package/__tests__/set.test.js +316 -0
  9. package/__tests__/throughExecProps.test.js +86 -0
  10. package/__tests__/throughInitialDefine.test.js +104 -0
  11. package/__tests__/throughInitialExec.test.js +92 -0
  12. package/__tests__/throughUpdatedDefine.test.js +92 -0
  13. package/__tests__/throughUpdatedExec.test.js +110 -0
  14. package/__tests__/tree.test.js +15 -0
  15. package/__tests__/update.test.js +253 -0
  16. package/children.js +105 -0
  17. package/create.js +125 -255
  18. package/dist/cjs/__tests__/checkIfOnUpdate.test.js +73 -0
  19. package/dist/cjs/__tests__/children.test.js +177 -0
  20. package/dist/cjs/__tests__/define.test.js +75 -0
  21. package/dist/cjs/__tests__/inheritStateUpdates.test.js +62 -0
  22. package/dist/cjs/__tests__/renderElement.test.js +138 -0
  23. package/dist/cjs/__tests__/resetElement.test.js +35 -0
  24. package/dist/cjs/__tests__/set.test.js +256 -0
  25. package/dist/cjs/__tests__/throughExecProps.test.js +62 -0
  26. package/dist/cjs/__tests__/throughInitialDefine.test.js +79 -0
  27. package/dist/cjs/__tests__/throughInitialExec.test.js +73 -0
  28. package/dist/cjs/__tests__/throughUpdatedDefine.test.js +69 -0
  29. package/dist/cjs/__tests__/throughUpdatedExec.test.js +84 -0
  30. package/dist/cjs/__tests__/tree.test.js +11 -0
  31. package/dist/cjs/__tests__/update.test.js +219 -0
  32. package/dist/cjs/children.js +87 -0
  33. package/dist/cjs/create.js +74 -215
  34. package/dist/cjs/define.js +1 -2
  35. package/dist/cjs/index.js +3 -3
  36. package/dist/cjs/iterate.js +37 -30
  37. package/dist/cjs/methods/set.js +26 -25
  38. package/dist/cjs/methods/v2.js +7 -17
  39. package/dist/cjs/mixins/attr.js +7 -10
  40. package/dist/cjs/mixins/classList.js +8 -16
  41. package/dist/cjs/mixins/data.js +2 -4
  42. package/dist/cjs/mixins/html.js +2 -4
  43. package/dist/cjs/mixins/index.js +0 -4
  44. package/dist/cjs/mixins/registry.js +7 -67
  45. package/dist/cjs/mixins/scope.js +2 -3
  46. package/dist/cjs/mixins/state.js +4 -7
  47. package/dist/cjs/mixins/style.js +2 -4
  48. package/dist/cjs/mixins/text.js +5 -8
  49. package/dist/cjs/node.js +34 -30
  50. package/dist/cjs/set.js +112 -47
  51. package/dist/cjs/update.js +123 -92
  52. package/dist/cjs/utils/applyParam.js +3 -4
  53. package/dist/cjs/utils/index.js +8 -4
  54. package/dist/cjs/utils/onlyResolveExtends.js +14 -30
  55. package/dist/esm/__tests__/checkIfOnUpdate.test.js +73 -0
  56. package/dist/esm/__tests__/children.test.js +177 -0
  57. package/dist/esm/__tests__/define.test.js +53 -0
  58. package/dist/esm/__tests__/inheritStateUpdates.test.js +62 -0
  59. package/dist/esm/__tests__/renderElement.test.js +116 -0
  60. package/dist/esm/__tests__/resetElement.test.js +35 -0
  61. package/dist/esm/__tests__/set.test.js +256 -0
  62. package/dist/esm/__tests__/throughExecProps.test.js +62 -0
  63. package/dist/esm/__tests__/throughInitialDefine.test.js +79 -0
  64. package/dist/esm/__tests__/throughInitialExec.test.js +73 -0
  65. package/dist/esm/__tests__/throughUpdatedDefine.test.js +69 -0
  66. package/dist/esm/__tests__/throughUpdatedExec.test.js +84 -0
  67. package/dist/esm/__tests__/tree.test.js +11 -0
  68. package/dist/esm/__tests__/update.test.js +219 -0
  69. package/dist/esm/children.js +81 -0
  70. package/dist/esm/create.js +79 -226
  71. package/dist/esm/define.js +1 -2
  72. package/dist/esm/iterate.js +41 -33
  73. package/dist/esm/methods/set.js +5 -4
  74. package/dist/esm/methods/v2.js +7 -17
  75. package/dist/esm/mixins/attr.js +8 -11
  76. package/dist/esm/mixins/classList.js +8 -16
  77. package/dist/esm/mixins/data.js +3 -5
  78. package/dist/esm/mixins/html.js +2 -4
  79. package/dist/esm/mixins/index.js +0 -4
  80. package/dist/esm/mixins/registry.js +7 -67
  81. package/dist/esm/mixins/scope.js +2 -3
  82. package/dist/esm/mixins/state.js +5 -8
  83. package/dist/esm/mixins/style.js +2 -4
  84. package/dist/esm/mixins/text.js +6 -12
  85. package/dist/esm/node.js +25 -31
  86. package/dist/esm/set.js +112 -47
  87. package/dist/esm/update.js +127 -97
  88. package/dist/esm/utils/applyParam.js +3 -4
  89. package/dist/esm/utils/index.js +4 -3
  90. package/dist/esm/utils/onlyResolveExtends.js +22 -31
  91. package/iterate.js +44 -26
  92. package/methods/set.js +5 -4
  93. package/methods/v2.js +5 -4
  94. package/mixins/attr.js +13 -7
  95. package/mixins/classList.js +7 -2
  96. package/mixins/data.js +1 -1
  97. package/mixins/index.js +1 -6
  98. package/mixins/registry.js +6 -53
  99. package/mixins/scope.js +1 -1
  100. package/mixins/state.js +4 -5
  101. package/mixins/text.js +4 -7
  102. package/node.js +31 -28
  103. package/package.json +7 -6
  104. package/set.js +129 -41
  105. package/update.js +169 -89
  106. package/utils/applyParam.js +7 -4
  107. package/utils/index.js +1 -3
  108. package/utils/onlyResolveExtends.js +27 -16
  109. package/cache/index.js +0 -3
  110. package/cache/options.js +0 -4
  111. package/dist/cjs/cache/index.js +0 -24
  112. package/dist/cjs/cache/options.js +0 -26
  113. package/dist/cjs/extend.js +0 -85
  114. package/dist/cjs/methods/index.js +0 -353
  115. package/dist/cjs/mixins/content.js +0 -74
  116. package/dist/cjs/props/create.js +0 -98
  117. package/dist/cjs/props/ignore.js +0 -24
  118. package/dist/cjs/props/index.js +0 -21
  119. package/dist/cjs/props/inherit.js +0 -53
  120. package/dist/cjs/props/update.js +0 -37
  121. package/dist/cjs/utils/component.js +0 -77
  122. package/dist/cjs/utils/extendUtils.js +0 -142
  123. package/dist/cjs/utils/object.js +0 -179
  124. package/dist/cjs/utils/propEvents.js +0 -41
  125. package/dist/esm/cache/index.js +0 -4
  126. package/dist/esm/cache/options.js +0 -6
  127. package/dist/esm/extend.js +0 -71
  128. package/dist/esm/methods/index.js +0 -333
  129. package/dist/esm/mixins/content.js +0 -54
  130. package/dist/esm/props/create.js +0 -78
  131. package/dist/esm/props/ignore.js +0 -4
  132. package/dist/esm/props/index.js +0 -4
  133. package/dist/esm/props/inherit.js +0 -33
  134. package/dist/esm/props/update.js +0 -17
  135. package/dist/esm/utils/component.js +0 -65
  136. package/dist/esm/utils/extendUtils.js +0 -122
  137. package/dist/esm/utils/object.js +0 -159
  138. package/dist/esm/utils/propEvents.js +0 -21
  139. package/extend.js +0 -90
  140. package/methods/index.js +0 -317
  141. package/mixins/content.js +0 -55
  142. package/props/create.js +0 -87
  143. package/props/ignore.js +0 -3
  144. package/props/index.js +0 -6
  145. package/props/inherit.js +0 -35
  146. package/props/update.js +0 -17
  147. package/utils/component.js +0 -68
  148. package/utils/extendUtils.js +0 -134
  149. package/utils/object.js +0 -172
  150. package/utils/propEvents.js +0 -19
@@ -5,8 +5,7 @@ var define_default = (params, options = {}) => {
5
5
  for (const param in params) {
6
6
  if (REGISTRY[param] && !overwrite) {
7
7
  report("OverwriteToBuiltin", param);
8
- } else
9
- REGISTRY[param] = params[param];
8
+ } else REGISTRY[param] = params[param];
10
9
  }
11
10
  };
12
11
  export {
@@ -4,42 +4,43 @@ import {
4
4
  isFunction,
5
5
  isNumber,
6
6
  isString,
7
- checkIfKeyIsComponent,
8
- extendizeByKey,
9
- isVariant
7
+ matchesComponentNaming,
8
+ isContextComponent,
9
+ isMethod,
10
+ overwrite
10
11
  } from "@domql/utils";
11
- import { METHODS_EXL, overwrite } from "./utils/index.js";
12
- import { isMethod } from "./methods/index.js";
13
12
  const throughInitialExec = (element, exclude = {}) => {
14
13
  const { __ref: ref } = element;
15
14
  for (const param in element) {
16
- if (exclude[param])
17
- continue;
15
+ if (exclude[param]) continue;
18
16
  const prop = element[param];
19
- if (isFunction(prop) && !isMethod(param, element) && !isVariant(param)) {
17
+ if (isFunction(prop) && !isMethod(param, element)) {
20
18
  ref.__exec[param] = prop;
21
19
  element[param] = prop(element, element.state, element.context);
22
20
  }
23
21
  }
24
22
  };
25
- const throughUpdatedExec = (element, options = { excludes: METHODS_EXL }) => {
23
+ const throughUpdatedExec = (element, options = {}) => {
26
24
  const { __ref: ref } = element;
27
25
  const changes = {};
28
26
  for (const param in ref.__exec) {
29
27
  const prop = element[param];
30
28
  const isDefinedParam = ref.__defineCache[param];
31
- if (isDefinedParam)
32
- continue;
29
+ if (isDefinedParam) continue;
33
30
  const newExec = ref.__exec[param](element, element.state, element.context);
34
31
  const execReturnsString = isString(newExec) || isNumber(newExec);
35
32
  if (prop && prop.node && execReturnsString) {
36
- overwrite(prop, { text: newExec }, options);
33
+ overwrite(prop, { text: newExec });
37
34
  } else if (newExec !== prop) {
38
- if (checkIfKeyIsComponent(param)) {
39
- const { extend, ...newElem } = extendizeByKey(newExec, element, param);
40
- overwrite(prop, newElem, options);
35
+ if (matchesComponentNaming(param)) {
36
+ const { extends: extend, ...newElem } = isContextComponent(
37
+ newExec,
38
+ element,
39
+ param
40
+ );
41
+ overwrite(prop, newElem);
41
42
  } else {
42
- ref.__cached[param] = changes[param] = prop;
43
+ changes[param] = prop;
43
44
  element[param] = newExec;
44
45
  }
45
46
  }
@@ -60,17 +61,17 @@ const throughExecProps = (element) => {
60
61
  }
61
62
  }
62
63
  };
64
+ const isPropertyInDefines = (key, element) => {
65
+ };
63
66
  const throughInitialDefine = (element) => {
64
67
  const { define, context, __ref: ref } = element;
65
68
  let defineObj = {};
66
69
  const hasGlobalDefine = context && isObject(context.define);
67
- if (isObject(define))
68
- defineObj = { ...define };
69
- if (hasGlobalDefine)
70
- defineObj = { ...defineObj, ...context.define };
70
+ if (isObject(define)) defineObj = { ...define };
71
+ if (hasGlobalDefine) defineObj = { ...defineObj, ...context.define };
71
72
  for (const param in defineObj) {
72
73
  let elementProp = element[param];
73
- if (isFunction(elementProp) && !isMethod(param, element) && !isVariant(param)) {
74
+ if (isFunction(elementProp) && !isMethod(param, element)) {
74
75
  ref.__exec[param] = elementProp;
75
76
  const execParam2 = elementProp = exec(elementProp, element);
76
77
  if (execParam2) {
@@ -78,9 +79,13 @@ const throughInitialDefine = (element) => {
78
79
  ref.__defineCache[param] = elementProp;
79
80
  }
80
81
  }
81
- const execParam = defineObj[param](elementProp, element, element.state, element.context);
82
- if (execParam)
83
- element[param] = execParam;
82
+ const execParam = defineObj[param](
83
+ elementProp,
84
+ element,
85
+ element.state,
86
+ element.context
87
+ );
88
+ if (execParam) element[param] = execParam;
84
89
  }
85
90
  return element;
86
91
  };
@@ -88,22 +93,25 @@ const throughUpdatedDefine = (element) => {
88
93
  const { context, define, __ref: ref } = element;
89
94
  const changes = {};
90
95
  let obj = {};
91
- if (isObject(define))
92
- obj = { ...define };
93
- if (isObject(context && context.define))
94
- obj = { ...obj, ...context.define };
96
+ if (isObject(define)) obj = { ...define };
97
+ if (isObject(context && context.define)) obj = { ...obj, ...context.define };
95
98
  for (const param in obj) {
96
99
  const execParam = ref.__exec[param];
97
- if (execParam)
98
- ref.__defineCache[param] = execParam(element, element.state, element.context);
100
+ if (execParam) {
101
+ ref.__defineCache[param] = execParam(
102
+ element,
103
+ element.state,
104
+ element.context
105
+ );
106
+ }
99
107
  const cached = exec(ref.__defineCache[param], element);
100
- const newExecParam = obj[param](cached, element, element.state, element.context);
101
- if (newExecParam)
102
- element[param] = newExecParam;
108
+ const newExecParam = typeof obj[param] === "function" ? obj[param](cached, element, element.state, element.context) : void 0;
109
+ if (newExecParam) element[param] = newExecParam;
103
110
  }
104
111
  return changes;
105
112
  };
106
113
  export {
114
+ isPropertyInDefines,
107
115
  throughExecProps,
108
116
  throughInitialDefine,
109
117
  throughInitialExec,
@@ -1,7 +1,6 @@
1
1
  import { merge, overwrite } from "@domql/utils";
2
- import { set, reset } from "../set.js";
2
+ import { set, reset, updateContent, removeContent } from "../set.js";
3
3
  import { update } from "../update.js";
4
- import { removeContent, updateContent } from "../mixins/content.js";
5
4
  import {
6
5
  call,
7
6
  error,
@@ -23,7 +22,7 @@ import {
23
22
  variables,
24
23
  verbose,
25
24
  warn
26
- } from "./index.js";
25
+ } from "@domql/utils/methods";
27
26
  const addMethods = (element, parent, options = {}) => {
28
27
  const proto = {
29
28
  set,
@@ -52,8 +51,10 @@ const addMethods = (element, parent, options = {}) => {
52
51
  error,
53
52
  call
54
53
  };
55
- if (element.context.methods)
54
+ if (element.context.methods) {
55
+ ;
56
56
  (options.strict ? merge : overwrite)(proto, element.context.methods);
57
+ }
57
58
  Object.setPrototypeOf(element, proto);
58
59
  };
59
60
  export {
@@ -1,13 +1,9 @@
1
1
  import { isDefined, isFunction, isObjectLike } from "@domql/utils";
2
- import { parseFilters, REGISTRY } from "../mixins/index.js";
3
2
  const defineSetter = (element, key, get, set) => Object.defineProperty(element, key, { get, set });
4
3
  const keys = function() {
5
4
  const element = this;
6
5
  const keys2 = [];
7
6
  for (const param in element) {
8
- if (REGISTRY[param] && !parseFilters.elementKeys.includes(param)) {
9
- continue;
10
- }
11
7
  keys2.push(param);
12
8
  }
13
9
  return keys2;
@@ -17,19 +13,15 @@ const parse = function(excl = []) {
17
13
  const obj = {};
18
14
  const keyList = keys.call(element);
19
15
  keyList.forEach((v) => {
20
- if (excl.includes(v))
21
- return;
16
+ if (excl.includes(v)) return;
22
17
  let val = element[v];
23
18
  if (v === "state") {
24
- if (element.__ref && element.__ref.__hasRootState)
25
- return;
26
- if (isFunction(val && val.parse))
27
- val = val.parse();
19
+ if (element.__ref && element.__ref.__hasRootState) return;
20
+ if (isFunction(val && val.parse)) val = val.parse();
28
21
  } else if (v === "props") {
29
22
  const { __element, update, ...props } = element[v];
30
23
  obj[v] = props;
31
- } else if (isDefined(val))
32
- obj[v] = val;
24
+ } else if (isDefined(val)) obj[v] = val;
33
25
  });
34
26
  return obj;
35
27
  };
@@ -37,8 +29,7 @@ const parseDeep = function(excl = []) {
37
29
  const element = this;
38
30
  const obj = parse.call(element, excl);
39
31
  for (const v in obj) {
40
- if (excl.includes(v))
41
- return;
32
+ if (excl.includes(v)) return;
42
33
  if (isObjectLike(obj[v])) {
43
34
  obj[v] = parseDeep.call(obj[v], excl);
44
35
  }
@@ -53,7 +44,7 @@ const log = function(...args) {
53
44
  args.forEach((v) => console.log(`%c${v}:
54
45
  `, "font-weight: bold", element[v]));
55
46
  } else {
56
- console.log(__ref.path);
47
+ console.log(__ref == null ? void 0 : __ref.path);
57
48
  const keys2 = element.keys();
58
49
  keys2.forEach((v) => console.log(`%c${v}:
59
50
  `, "font-weight: bold", element[v]));
@@ -73,8 +64,7 @@ const previousElement = function(el) {
73
64
  const element = el || this;
74
65
  const { key, parent } = element;
75
66
  const { __children } = parent.__ref;
76
- if (!__children)
77
- return;
67
+ if (!__children) return;
78
68
  const currentIndex = __children.indexOf(key);
79
69
  return parent[__children[currentIndex - 1]];
80
70
  };
@@ -1,20 +1,17 @@
1
- import { exec, isNot, isNull, isUndefined } from "@domql/utils";
1
+ import { deepMerge, exec, isNot, isNull, isUndefined } from "@domql/utils";
2
2
  import { report } from "@domql/report";
3
- import { deepMerge } from "../utils/index.js";
4
3
  function attr(params, element, node) {
5
4
  const { __ref: ref, props } = element;
6
5
  const { __attr } = ref;
7
- if (isNot("object"))
8
- report("HTMLInvalidAttr", params);
6
+ if (isNot("object")) report("HTMLInvalidAttr", params);
9
7
  if (params) {
10
- if (props.attr)
11
- deepMerge(params, props.attr);
12
- for (const attr2 in params) {
13
- const val = exec(params[attr2], element);
14
- if (val !== false && !isUndefined(val) && !isNull(val) && node.setAttribute)
8
+ const attrs = exec(params, element);
9
+ if (props.attr) deepMerge(attrs, props.attr);
10
+ for (const attr2 in attrs) {
11
+ const val = exec(attrs[attr2], element);
12
+ if (val !== false && !isUndefined(val) && !isNull(val) && node.setAttribute) {
15
13
  node.setAttribute(attr2, val);
16
- else if (node.removeAttribute)
17
- node.removeAttribute(attr2);
14
+ } else if (node.removeAttribute) node.removeAttribute(attr2);
18
15
  __attr[attr2] = val;
19
16
  }
20
17
  }
@@ -1,8 +1,7 @@
1
1
  import { exec, isObject, isString } from "@domql/utils";
2
2
  const assignKeyAsClassname = (element) => {
3
3
  const { key } = element;
4
- if (element.class === true)
5
- element.class = key;
4
+ if (element.class === true) element.class = key;
6
5
  else if (!element.class && typeof key === "string" && key.charAt(0) === "_" && key.charAt(1) !== "_") {
7
6
  element.class = key.slice(1);
8
7
  }
@@ -11,10 +10,8 @@ const classify = (obj, element) => {
11
10
  let className = "";
12
11
  for (const item in obj) {
13
12
  const param = obj[item];
14
- if (typeof param === "boolean" && param)
15
- className += ` ${item}`;
16
- else if (typeof param === "string")
17
- className += ` ${param}`;
13
+ if (typeof param === "boolean" && param) className += ` ${item}`;
14
+ else if (typeof param === "string") className += ` ${param}`;
18
15
  else if (typeof param === "function") {
19
16
  className += ` ${exec(param, element)}`;
20
17
  }
@@ -22,18 +19,13 @@ const classify = (obj, element) => {
22
19
  return className;
23
20
  };
24
21
  const classList = (params, element) => {
25
- if (!params)
26
- return;
22
+ if (!params) return;
27
23
  const { key } = element;
28
- if (params === true)
29
- params = element.class = { key };
30
- if (isString(params))
31
- params = element.class = { default: params };
32
- if (isObject(params))
33
- params = classify(params, element);
24
+ if (params === true) params = element.class = { key };
25
+ if (isString(params)) params = element.class = { default: params };
26
+ if (isObject(params)) params = classify(params, element);
34
27
  const className = params.replace(/\s+/g, " ").trim();
35
- if (element.ref)
36
- element.ref.class = className;
28
+ if (element.ref) element.ref.class = className;
37
29
  return className;
38
30
  };
39
31
  const applyClassListOnNode = (params, element, node) => {
@@ -1,12 +1,10 @@
1
- import { exec, isObject, deepMerge } from "@domql/utils";
1
+ import { isObject, deepMerge, exec } from "@domql/utils";
2
2
  import { report } from "@domql/report";
3
3
  function data(params, element, node) {
4
4
  if (params) {
5
- if (element.props.data)
6
- deepMerge(params, element.props.data);
5
+ if (element.props.data) deepMerge(params, element.props.data);
7
6
  if (params.showOnNode) {
8
- if (!isObject(params))
9
- report("HTMLInvalidData", params);
7
+ if (!isObject(params)) report("HTMLInvalidData", params);
10
8
  for (const dataset in params) {
11
9
  if (dataset !== "showOnNode") {
12
10
  node.dataset[dataset] = exec(params[dataset], element);
@@ -4,10 +4,8 @@ function html(param, element, node) {
4
4
  const prop = exec(param, element) || exec((_a = element == null ? void 0 : element.props) == null ? void 0 : _a.html, element);
5
5
  const { __ref } = element;
6
6
  if (prop !== __ref.__html) {
7
- if (node.nodeName === "SVG")
8
- node.textContent = prop;
9
- else
10
- node.innerHTML = prop;
7
+ if (node.nodeName === "SVG") node.textContent = prop;
8
+ else node.innerHTML = prop;
11
9
  __ref.__html = prop;
12
10
  }
13
11
  }
@@ -1,21 +1,17 @@
1
1
  import { attr } from "./attr.js";
2
2
  import { applyClasslist } from "./classList.js";
3
- import { setContent } from "./content.js";
4
3
  import { data } from "./data.js";
5
4
  import { html } from "./html.js";
6
5
  import { style } from "./style.js";
7
6
  import { text } from "./text.js";
8
7
  import { state } from "./state.js";
9
8
  import { scope } from "./scope.js";
10
- import { REGISTRY } from "./registry.js";
11
9
  export * from "./registry.js";
12
10
  export {
13
11
  attr,
14
12
  applyClasslist as classList,
15
- setContent as content,
16
13
  data,
17
14
  html,
18
- REGISTRY as registry,
19
15
  scope,
20
16
  state,
21
17
  style,
@@ -1,6 +1,5 @@
1
1
  import attr from "./attr.js";
2
2
  import { classList } from "./classList.js";
3
- import content from "./content.js";
4
3
  import data from "./data.js";
5
4
  import html from "./html.js";
6
5
  import scope from "./scope.js";
@@ -12,94 +11,35 @@ const REGISTRY = {
12
11
  style,
13
12
  text,
14
13
  html,
15
- content,
16
14
  data,
17
15
  class: classList,
18
16
  state,
19
17
  scope,
20
18
  deps: (param, el) => param || el.parent.deps,
21
- extend: {},
22
- childExtend: {},
23
- childExtendRecursive: {},
19
+ extends: {},
20
+ children: {},
21
+ content: {},
22
+ childExtends: {},
23
+ childExtendsRecursive: {},
24
24
  props: {},
25
- path: {},
26
25
  if: {},
27
26
  define: {},
28
- transform: {},
29
27
  __name: {},
30
28
  __ref: {},
31
29
  __hash: {},
32
30
  __text: {},
33
- nextElement: {},
34
- previousElement: {},
35
31
  key: {},
36
32
  tag: {},
37
33
  query: {},
38
34
  parent: {},
39
35
  node: {},
40
- set: {},
41
- reset: {},
42
- update: {},
43
- error: {},
44
- warn: {},
45
- call: {},
46
- setProps: {},
47
- remove: {},
48
- updateContent: {},
49
- removeContent: {},
50
36
  variables: {},
51
- lookup: {},
52
- lookdown: {},
53
- getRef: {},
54
- getPath: {},
55
- lookdownAll: {},
56
- setNodeStyles: {},
57
- spotByPath: {},
58
- keys: {},
59
- log: {},
60
- parse: {},
61
- parseDeep: {},
62
37
  on: {},
63
38
  component: {},
64
- context: {},
65
- $collection: {},
66
- $stateCollection: {},
67
- $propsCollection: {},
68
- $setCollection: {},
69
- $setStateCollection: {},
70
- $setPropsCollection: {}
39
+ context: {}
71
40
  };
72
41
  var registry_default = REGISTRY;
73
- const parseFilters = {
74
- elementKeys: [
75
- "tag",
76
- "text",
77
- "style",
78
- "attr",
79
- "class",
80
- "state",
81
- "props",
82
- "data",
83
- "content",
84
- "html",
85
- "on",
86
- "key",
87
- "extend",
88
- "childExtend",
89
- "childExtendRecursive",
90
- "scope",
91
- "query",
92
- "$collection",
93
- "$stateCollection",
94
- "$propsCollection"
95
- ],
96
- propsKeys: ["__element", "update"],
97
- stateKeys: []
98
- };
99
- const collectionFilters = ["$collection", "$stateCollection", "$propsCollection"];
100
42
  export {
101
43
  REGISTRY,
102
- collectionFilters,
103
- registry_default as default,
104
- parseFilters
44
+ registry_default as default
105
45
  };
@@ -1,7 +1,6 @@
1
1
  import { isFunction, isObject } from "@domql/utils";
2
- function scope(params, element, node) {
3
- if (!isObject(params))
4
- return;
2
+ async function scope(params, element, node) {
3
+ if (!isObject(params)) return;
5
4
  for (const scopeItem in params) {
6
5
  const value = params[scopeItem];
7
6
  if (isFunction(value)) {
@@ -1,13 +1,10 @@
1
- import { IGNORE_STATE_PARAMS } from "@domql/state";
2
- import { exec, isObject } from "@domql/utils";
3
- function state(params, element, node) {
4
- const state2 = exec(params, element);
1
+ import { execPromise, isObject, STATE_METHODS } from "@domql/utils";
2
+ async function state(params, element, node) {
3
+ const state2 = await execPromise(params, element);
5
4
  if (isObject(state2)) {
6
5
  for (const param in state2) {
7
- if (IGNORE_STATE_PARAMS.includes(param))
8
- continue;
9
- if (!Object.hasOwnProperty.call(state2, param))
10
- continue;
6
+ if (STATE_METHODS.includes(param)) continue;
7
+ if (!Object.hasOwnProperty.call(state2, param)) continue;
11
8
  }
12
9
  }
13
10
  return element;
@@ -2,10 +2,8 @@ import { isObject, map } from "@domql/utils";
2
2
  import { report } from "@domql/report";
3
3
  function style(params, element, node) {
4
4
  if (params) {
5
- if (isObject(params))
6
- map(node.style, params, element);
7
- else
8
- report("HTMLInvalidStyles", params);
5
+ if (isObject(params)) map(node.style, params, element);
6
+ else report("HTMLInvalidStyles", params);
9
7
  }
10
8
  }
11
9
  var style_default = style;
@@ -1,10 +1,7 @@
1
1
  import { create } from "../create.js";
2
- import {
3
- exec,
4
- isString
5
- } from "@domql/utils";
6
- function text(param, element, node) {
7
- let prop = exec(param, element);
2
+ import { exec, isString } from "@domql/utils";
3
+ async function text(param, element, node) {
4
+ let prop = exec(param || element.props.text, element);
8
5
  if (isString(prop) && prop.includes("{{")) {
9
6
  prop = element.call("replaceLiteralsWithObjectFields", prop);
10
7
  }
@@ -12,13 +9,10 @@ function text(param, element, node) {
12
9
  node.nodeValue = prop;
13
10
  } else if (param !== void 0 || param !== null) {
14
11
  if (element.__text) {
15
- if (element.__text.text === prop)
16
- return;
12
+ if (element.__text.text === prop) return;
17
13
  element.__text.text = prop;
18
- if (element.__text.node)
19
- element.__text.node.nodeValue = prop;
20
- } else
21
- create({ tag: "string", text: prop }, element, "__text");
14
+ if (element.__text.node) element.__text.node.nodeValue = prop;
15
+ } else await create({ tag: "string", text: prop }, element, "__text");
22
16
  }
23
17
  }
24
18
  var text_default = text;
package/dist/esm/node.js CHANGED
@@ -1,7 +1,6 @@
1
- import { exec, isFunction, isObject, isUndefined, isVariant } from "@domql/utils";
1
+ import { isFunction, isMethod, isObject, isUndefined } from "@domql/utils";
2
2
  import { applyEventsOnNode, triggerEventOn } from "@domql/event";
3
3
  import { cacheNode } from "@domql/render";
4
- import { isMethod } from "./methods/index.js";
5
4
  import { create } from "./create.js";
6
5
  import {
7
6
  throughExecProps,
@@ -10,60 +9,55 @@ import {
10
9
  } from "./iterate.js";
11
10
  import { REGISTRY } from "./mixins/index.js";
12
11
  import { applyParam } from "./utils/applyParam.js";
13
- import { propagateEventsFromProps } from "./utils/propEvents.js";
12
+ import setChildren from "./children.js";
13
+ import { setContent } from "./set.js";
14
14
  const ENV = "development";
15
- const createNode = async (element, options) => {
15
+ const createNode = async (element, opts) => {
16
16
  let { node, tag, __ref: ref } = element;
17
+ if (!ref.__if) return element;
17
18
  let isNewNode;
18
19
  if (!node) {
19
20
  isNewNode = true;
20
- if (!ref.__if)
21
- return element;
22
21
  if (tag === "shadow") {
23
22
  node = element.node = element.parent.node.attachShadow({ mode: "open" });
24
- } else
25
- node = element.node = cacheNode(element);
26
- triggerEventOn("attachNode", element, options);
23
+ } else node = element.node = cacheNode(element);
24
+ await triggerEventOn("attachNode", element, opts);
27
25
  }
28
- if (ENV === "test" || ENV === "development" || options.alowRefReference) {
26
+ if (ENV === "test" || ENV === "development" || opts.alowRefReference) {
29
27
  node.ref = element;
30
- if (isFunction(node.setAttribute))
31
- node.setAttribute("key", element.key);
32
- }
33
- throughExecProps(element);
34
- throughInitialDefine(element);
35
- throughInitialExec(element);
36
- if (element.tag !== "string" && element.tag !== "fragment") {
37
- propagateEventsFromProps(element);
38
- if (isNewNode && isObject(element.on)) {
39
- applyEventsOnNode(element, options);
40
- }
28
+ if (isFunction(node.setAttribute)) node.setAttribute("key", element.key);
41
29
  }
30
+ await throughExecProps(element);
31
+ await throughInitialDefine(element);
32
+ await throughInitialExec(element);
33
+ await applyEventsOnNode(element, { isNewNode, ...opts });
42
34
  for (const param in element) {
43
35
  const value = element[param];
44
- if (!Object.hasOwnProperty.call(element, param))
45
- continue;
46
- if (isUndefined(value) || isMethod(param, element) || isVariant(param) || isObject(REGISTRY[param]))
36
+ if (!Object.hasOwnProperty.call(element, param) || isUndefined(value) || isMethod(param, element) || isObject(REGISTRY[param])) {
47
37
  continue;
48
- const isElement = applyParam(param, element, options);
38
+ }
39
+ const isElement = await applyParam(param, element, opts);
49
40
  if (isElement) {
50
41
  const { hasDefine, hasContextDefine } = isElement;
51
42
  if (element[param] && !hasDefine && !hasContextDefine) {
52
43
  const createAsync = async () => {
53
- await create(exec(value, element), element, param, options);
44
+ await create(value, element, param, opts);
54
45
  };
55
- if (element.props && element.props.lazyLoad || options.lazyLoad) {
46
+ if (element.props && element.props.lazyLoad || opts.lazyLoad) {
56
47
  window.requestAnimationFrame(async () => {
57
48
  await createAsync();
58
- if (!options.preventUpdateListener) {
59
- triggerEventOn("lazyLoad", element, options);
49
+ if (!opts.preventUpdateListener) {
50
+ await triggerEventOn("lazyLoad", element, opts);
60
51
  }
61
52
  });
62
- } else
63
- await createAsync();
53
+ } else await createAsync();
64
54
  }
65
55
  }
66
56
  }
57
+ const content = element.children ? await setChildren(element.children, element, opts) : element.content || element.content;
58
+ if (content) {
59
+ await setContent(content, element, opts);
60
+ }
67
61
  return element;
68
62
  };
69
63
  var node_default = createNode;