@domql/element 3.1.2 → 3.2.7

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 (135) hide show
  1. package/README.md +4 -6
  2. package/children.js +45 -18
  3. package/create.js +58 -46
  4. package/define.js +1 -1
  5. package/dist/cjs/children.js +43 -13
  6. package/dist/cjs/create.js +57 -27
  7. package/dist/cjs/define.js +1 -1
  8. package/dist/cjs/event/animationFrame.js +96 -0
  9. package/dist/cjs/event/can.js +28 -0
  10. package/dist/cjs/event/index.js +20 -0
  11. package/dist/cjs/event/on.js +84 -0
  12. package/dist/cjs/event/store.js +27 -0
  13. package/dist/cjs/extend.js +88 -0
  14. package/dist/cjs/index.js +9 -6
  15. package/dist/cjs/iterate.js +89 -33
  16. package/dist/cjs/methods/set.js +5 -0
  17. package/dist/cjs/methods/v2.js +1 -1
  18. package/dist/cjs/mixins/attr.js +3 -2
  19. package/dist/cjs/mixins/classList.js +11 -1
  20. package/dist/cjs/mixins/content.js +72 -0
  21. package/dist/cjs/mixins/html.js +1 -2
  22. package/dist/cjs/mixins/registry.js +2 -2
  23. package/dist/cjs/mixins/scope.js +1 -1
  24. package/dist/cjs/mixins/state.js +4 -4
  25. package/dist/cjs/mixins/style.js +11 -2
  26. package/dist/cjs/mixins/text.js +9 -5
  27. package/dist/cjs/node.js +22 -19
  28. package/dist/cjs/render/append.js +72 -0
  29. package/dist/cjs/render/cache.js +80 -0
  30. package/dist/cjs/render/create.js +25 -0
  31. package/dist/cjs/render/index.js +20 -0
  32. package/dist/cjs/set.js +33 -40
  33. package/dist/cjs/update.js +100 -69
  34. package/dist/cjs/utils/applyParam.js +7 -7
  35. package/dist/cjs/utils/extendUtils.js +132 -0
  36. package/dist/cjs/utils/index.js +2 -0
  37. package/dist/cjs/utils/propEvents.js +56 -0
  38. package/dist/esm/children.js +44 -14
  39. package/dist/esm/create.js +58 -27
  40. package/dist/esm/define.js +1 -1
  41. package/dist/esm/event/animationFrame.js +76 -0
  42. package/dist/esm/event/can.js +8 -0
  43. package/dist/esm/event/index.js +3 -0
  44. package/dist/esm/event/on.js +64 -0
  45. package/dist/esm/event/store.js +7 -0
  46. package/dist/esm/extend.js +74 -0
  47. package/dist/esm/index.js +8 -6
  48. package/dist/esm/iterate.js +90 -35
  49. package/dist/esm/methods/set.js +10 -0
  50. package/dist/esm/methods/v2.js +1 -1
  51. package/dist/esm/mixins/attr.js +4 -3
  52. package/dist/esm/mixins/classList.js +11 -1
  53. package/dist/esm/mixins/content.js +52 -0
  54. package/dist/esm/mixins/html.js +1 -2
  55. package/dist/esm/mixins/registry.js +1 -1
  56. package/dist/esm/mixins/scope.js +1 -1
  57. package/dist/esm/mixins/state.js +5 -5
  58. package/dist/esm/mixins/style.js +12 -3
  59. package/dist/esm/mixins/text.js +10 -6
  60. package/dist/esm/node.js +22 -19
  61. package/dist/esm/render/append.js +52 -0
  62. package/dist/esm/render/cache.js +60 -0
  63. package/dist/esm/render/create.js +5 -0
  64. package/dist/esm/render/index.js +3 -0
  65. package/dist/esm/set.js +34 -41
  66. package/dist/esm/update.js +100 -71
  67. package/dist/esm/utils/applyParam.js +8 -8
  68. package/dist/esm/utils/extendUtils.js +119 -0
  69. package/dist/esm/utils/index.js +1 -0
  70. package/dist/esm/utils/propEvents.js +36 -0
  71. package/dist/iife/index.js +4718 -0
  72. package/extend.js +95 -0
  73. package/index.js +9 -6
  74. package/iterate.js +100 -38
  75. package/node.js +25 -23
  76. package/package.json +44 -20
  77. package/set.js +28 -32
  78. package/update.js +111 -82
  79. package/__tests__/checkIfOnUpdate.test.js +0 -103
  80. package/__tests__/children.test.js +0 -213
  81. package/__tests__/define.test.js +0 -75
  82. package/__tests__/inheritStateUpdates.test.js +0 -79
  83. package/__tests__/renderElement.test.js +0 -131
  84. package/__tests__/resetElement.test.js +0 -44
  85. package/__tests__/set.test.js +0 -316
  86. package/__tests__/throughExecProps.test.js +0 -86
  87. package/__tests__/throughInitialDefine.test.js +0 -104
  88. package/__tests__/throughInitialExec.test.js +0 -92
  89. package/__tests__/throughUpdatedDefine.test.js +0 -92
  90. package/__tests__/throughUpdatedExec.test.js +0 -110
  91. package/__tests__/tree.test.js +0 -15
  92. package/__tests__/update.test.js +0 -256
  93. package/dist/cjs/__tests__/checkIfOnUpdate.test.js +0 -73
  94. package/dist/cjs/__tests__/children.test.js +0 -177
  95. package/dist/cjs/__tests__/define.test.js +0 -75
  96. package/dist/cjs/__tests__/inheritStateUpdates.test.js +0 -62
  97. package/dist/cjs/__tests__/renderElement.test.js +0 -138
  98. package/dist/cjs/__tests__/resetElement.test.js +0 -35
  99. package/dist/cjs/__tests__/set.test.js +0 -256
  100. package/dist/cjs/__tests__/throughExecProps.test.js +0 -62
  101. package/dist/cjs/__tests__/throughInitialDefine.test.js +0 -79
  102. package/dist/cjs/__tests__/throughInitialExec.test.js +0 -73
  103. package/dist/cjs/__tests__/throughUpdatedDefine.test.js +0 -69
  104. package/dist/cjs/__tests__/throughUpdatedExec.test.js +0 -84
  105. package/dist/cjs/__tests__/tree.test.js +0 -11
  106. package/dist/cjs/__tests__/update.test.js +0 -222
  107. package/dist/cjs/package.json +0 -4
  108. package/dist/esm/__tests__/checkIfOnUpdate.test.js +0 -73
  109. package/dist/esm/__tests__/children.test.js +0 -177
  110. package/dist/esm/__tests__/define.test.js +0 -53
  111. package/dist/esm/__tests__/inheritStateUpdates.test.js +0 -62
  112. package/dist/esm/__tests__/renderElement.test.js +0 -116
  113. package/dist/esm/__tests__/resetElement.test.js +0 -35
  114. package/dist/esm/__tests__/set.test.js +0 -256
  115. package/dist/esm/__tests__/throughExecProps.test.js +0 -62
  116. package/dist/esm/__tests__/throughInitialDefine.test.js +0 -79
  117. package/dist/esm/__tests__/throughInitialExec.test.js +0 -73
  118. package/dist/esm/__tests__/throughUpdatedDefine.test.js +0 -69
  119. package/dist/esm/__tests__/throughUpdatedExec.test.js +0 -84
  120. package/dist/esm/__tests__/tree.test.js +0 -11
  121. package/dist/esm/__tests__/update.test.js +0 -222
  122. package/methods/set.js +0 -63
  123. package/methods/v2.js +0 -83
  124. package/mixins/attr.js +0 -32
  125. package/mixins/classList.js +0 -54
  126. package/mixins/data.js +0 -26
  127. package/mixins/html.js +0 -21
  128. package/mixins/index.js +0 -23
  129. package/mixins/registry.js +0 -46
  130. package/mixins/scope.js +0 -23
  131. package/mixins/state.js +0 -19
  132. package/mixins/style.js +0 -16
  133. package/mixins/text.js +0 -26
  134. package/utils/applyParam.js +0 -34
  135. package/utils/index.js +0 -3
@@ -0,0 +1,72 @@
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 content_exports = {};
20
+ __export(content_exports, {
21
+ default: () => content_default,
22
+ removeContent: () => removeContent,
23
+ setContent: () => setContent,
24
+ updateContent: () => updateContent
25
+ });
26
+ module.exports = __toCommonJS(content_exports);
27
+ var import_utils = require("@domql/utils");
28
+ var import_set = require("../set.js");
29
+ const updateContent = function(params, options) {
30
+ const element = this;
31
+ const ref = element.__ref;
32
+ const contentKey = ref.contentElementKey;
33
+ if (!element[contentKey]) return;
34
+ if (element[contentKey].update) element[contentKey].update(params, options);
35
+ };
36
+ const removeContent = function(el, opts = {}) {
37
+ const element = el || this;
38
+ const { __ref: ref } = element;
39
+ const contentElementKey = (0, import_utils.setContentKey)(element, opts);
40
+ if (opts.contentElementKey !== "content") opts.contentElementKey = "content";
41
+ if (element[contentElementKey]) {
42
+ if (element[contentElementKey].node && element.node) {
43
+ if (element[contentElementKey].tag === "fragment")
44
+ element.node.innerHTML = "";
45
+ else {
46
+ const contentNode = element[contentElementKey].node;
47
+ if (contentNode.parentNode === element.node)
48
+ element.node.removeChild(element[contentElementKey].node);
49
+ }
50
+ }
51
+ const { __cached } = ref;
52
+ if (__cached && __cached[contentElementKey]) {
53
+ if (__cached[contentElementKey].tag === "fragment")
54
+ __cached[contentElementKey].parent.node.innerHTML = "";
55
+ else if (__cached[contentElementKey] && (0, import_utils.isFunction)(__cached[contentElementKey].remove))
56
+ __cached[contentElementKey].remove();
57
+ }
58
+ ref.__children.splice(ref.__children.indexOf(element[contentElementKey]), 1);
59
+ delete element[contentElementKey];
60
+ }
61
+ };
62
+ function setContent(param, element, node, opts) {
63
+ const contentElementKey = (0, import_utils.setContentKey)(element, opts);
64
+ if (param && element) {
65
+ if (element[contentElementKey]?.update) {
66
+ element[contentElementKey].update({}, opts);
67
+ } else {
68
+ import_set.set.call(element, param, opts);
69
+ }
70
+ }
71
+ }
72
+ var content_default = setContent;
@@ -24,8 +24,7 @@ __export(html_exports, {
24
24
  module.exports = __toCommonJS(html_exports);
25
25
  var import_utils = require("@domql/utils");
26
26
  function html(param, element, node) {
27
- var _a;
28
- const prop = (0, import_utils.exec)(param, element) || (0, import_utils.exec)((_a = element == null ? void 0 : element.props) == null ? void 0 : _a.html, element);
27
+ const prop = (0, import_utils.exec)(element?.props?.html || param, element);
29
28
  const { __ref } = element;
30
29
  if (prop !== __ref.__html) {
31
30
  if (node.nodeName === "SVG") node.textContent = prop;
@@ -32,7 +32,7 @@ __export(registry_exports, {
32
32
  default: () => registry_default
33
33
  });
34
34
  module.exports = __toCommonJS(registry_exports);
35
- var import_attr = __toESM(require("./attr.js"), 1);
35
+ var import_attr = require("./attr.js");
36
36
  var import_classList = require("./classList.js");
37
37
  var import_data = __toESM(require("./data.js"), 1);
38
38
  var import_html = __toESM(require("./html.js"), 1);
@@ -41,7 +41,7 @@ var import_state = __toESM(require("./state.js"), 1);
41
41
  var import_style = __toESM(require("./style.js"), 1);
42
42
  var import_text = __toESM(require("./text.js"), 1);
43
43
  const REGISTRY = {
44
- attr: import_attr.default,
44
+ attr: import_attr.attr,
45
45
  style: import_style.default,
46
46
  text: import_text.default,
47
47
  html: import_html.default,
@@ -23,7 +23,7 @@ __export(scope_exports, {
23
23
  });
24
24
  module.exports = __toCommonJS(scope_exports);
25
25
  var import_utils = require("@domql/utils");
26
- async function scope(params, element, node) {
26
+ function scope(params, element, node) {
27
27
  if (!(0, import_utils.isObject)(params)) return;
28
28
  for (const scopeItem in params) {
29
29
  const value = params[scopeItem];
@@ -23,12 +23,12 @@ __export(state_exports, {
23
23
  });
24
24
  module.exports = __toCommonJS(state_exports);
25
25
  var import_utils = require("@domql/utils");
26
- async function state(params, element, node) {
27
- const state2 = await (0, import_utils.execPromise)(params, element);
26
+ function state(params, element, node) {
27
+ const state2 = (0, import_utils.exec)(params, element);
28
28
  if ((0, import_utils.isObject)(state2)) {
29
29
  for (const param in state2) {
30
- if (import_utils.STATE_METHODS.includes(param)) continue;
31
- if (!Object.hasOwnProperty.call(state2, param)) continue;
30
+ if (import_utils.STATE_METHODS.has(param)) continue;
31
+ if (!Object.prototype.hasOwnProperty.call(state2, param)) continue;
32
32
  }
33
33
  }
34
34
  return element;
@@ -26,8 +26,17 @@ var import_utils = require("@domql/utils");
26
26
  var import_report = require("@domql/report");
27
27
  function style(params, element, node) {
28
28
  if (params) {
29
- if ((0, import_utils.isObject)(params)) (0, import_utils.map)(node.style, params, element);
30
- else (0, import_report.report)("HTMLInvalidStyles", params);
29
+ if ((0, import_utils.isObject)(params)) {
30
+ const { __ref } = element;
31
+ if (!__ref.__style) __ref.__style = {};
32
+ const cache = __ref.__style;
33
+ for (const prop in params) {
34
+ const val = (0, import_utils.exec)(params[prop], element);
35
+ if (val === cache[prop]) continue;
36
+ cache[prop] = val;
37
+ node.style[prop] = val;
38
+ }
39
+ } else (0, import_report.report)("HTMLInvalidStyles", params);
31
40
  }
32
41
  }
33
42
  var style_default = style;
@@ -24,19 +24,23 @@ __export(text_exports, {
24
24
  module.exports = __toCommonJS(text_exports);
25
25
  var import_create = require("../create.js");
26
26
  var import_utils = require("@domql/utils");
27
- async function text(param, element, node) {
28
- let prop = (0, import_utils.exec)(param || element.props.text, element);
27
+ function text(param, element, node) {
28
+ let prop = (0, import_utils.exec)(element.props.text || param, element);
29
29
  if ((0, import_utils.isString)(prop) && prop.includes("{{")) {
30
- prop = element.call("replaceLiteralsWithObjectFields", prop);
30
+ prop = element.call("replaceLiteralsWithObjectFields", prop, element.state);
31
31
  }
32
32
  if (element.tag === "string") {
33
33
  node.nodeValue = prop;
34
- } else if (param !== void 0 || param !== null) {
34
+ } else if (param !== void 0 && param !== null) {
35
+ if (import_utils.SVG_TAGS.has(element.tag)) {
36
+ if (node) node.textContent = prop;
37
+ return;
38
+ }
35
39
  if (element.__text) {
36
40
  if (element.__text.text === prop) return;
37
41
  element.__text.text = prop;
38
42
  if (element.__text.node) element.__text.node.nodeValue = prop;
39
- } else await (0, import_create.create)({ tag: "string", text: prop }, element, "__text");
43
+ } else (0, import_create.create)({ tag: "string", text: prop }, element, "__text");
40
44
  }
41
45
  }
42
46
  var text_default = text;
package/dist/cjs/node.js CHANGED
@@ -33,16 +33,17 @@ __export(node_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(node_exports);
35
35
  var import_utils = require("@domql/utils");
36
- var import_event = require("@domql/event");
37
- var import_render = require("@domql/render");
36
+ var import_event = require("./event/index.js");
37
+ var import_propEvents = require("./utils/propEvents.js");
38
+ var import_render = require("./render/index.js");
38
39
  var import_create = require("./create.js");
39
40
  var import_iterate = require("./iterate.js");
40
41
  var import_mixins = require("./mixins/index.js");
41
42
  var import_applyParam = require("./utils/applyParam.js");
42
43
  var import_children = __toESM(require("./children.js"), 1);
43
44
  var import_set = require("./set.js");
44
- const ENV = "development";
45
- const createNode = async (element, opts) => {
45
+ const ENV = process.env.NODE_ENV;
46
+ const createNode = (element, opts) => {
46
47
  let { node, tag, __ref: ref } = element;
47
48
  if (!ref.__if) return element;
48
49
  let isNewNode;
@@ -51,42 +52,44 @@ const createNode = async (element, opts) => {
51
52
  if (tag === "shadow") {
52
53
  node = element.node = element.parent.node.attachShadow({ mode: "open" });
53
54
  } else node = element.node = (0, import_render.cacheNode)(element);
54
- await (0, import_event.triggerEventOn)("attachNode", element, opts);
55
+ (0, import_event.triggerEventOn)("attachNode", element, opts);
55
56
  }
56
57
  if (ENV === "test" || ENV === "development" || opts.alowRefReference) {
57
58
  node.ref = element;
58
59
  if ((0, import_utils.isFunction)(node.setAttribute)) node.setAttribute("key", element.key);
59
60
  }
60
- await (0, import_iterate.throughExecProps)(element);
61
- await (0, import_iterate.throughInitialDefine)(element);
62
- await (0, import_iterate.throughInitialExec)(element);
63
- await (0, import_event.applyEventsOnNode)(element, { isNewNode, ...opts });
61
+ (0, import_iterate.throughExecProps)(element);
62
+ (0, import_iterate.throughInitialDefine)(element);
63
+ (0, import_iterate.throughInitialExec)(element);
64
+ (0, import_propEvents.propagateEventsFromProps)(element);
65
+ (0, import_propEvents.propagateEventsFromElement)(element);
66
+ (0, import_event.applyEventsOnNode)(element, { isNewNode, ...opts });
64
67
  for (const param in element) {
65
68
  const value = element[param];
66
- if (!Object.hasOwnProperty.call(element, param) || (0, import_utils.isUndefined)(value) || (0, import_utils.isMethod)(param, element) || (0, import_utils.isObject)(import_mixins.REGISTRY[param])) {
69
+ if (!Object.prototype.hasOwnProperty.call(element, param) || value === void 0 || (0, import_utils.isMethod)(param, element) || (0, import_utils.isObject)(import_mixins.REGISTRY[param]) || param.length > 2 && param.charCodeAt(0) === 111 && param.charCodeAt(1) === 110 && param.charCodeAt(2) >= 65 && param.charCodeAt(2) <= 90) {
67
70
  continue;
68
71
  }
69
- const isElement = await (0, import_applyParam.applyParam)(param, element, opts);
72
+ const isElement = (0, import_applyParam.applyParam)(param, element, opts);
70
73
  if (isElement) {
71
74
  const { hasDefine, hasContextDefine } = isElement;
72
75
  if (element[param] && !hasDefine && !hasContextDefine) {
73
- const createAsync = async () => {
74
- await (0, import_create.create)(value, element, param, opts);
76
+ const createAsync = () => {
77
+ (0, import_create.create)(value, element, param, opts);
75
78
  };
76
79
  if (element.props && element.props.lazyLoad || opts.lazyLoad) {
77
- window.requestAnimationFrame(async () => {
78
- await createAsync();
80
+ window.requestAnimationFrame(() => {
81
+ createAsync();
79
82
  if (!opts.preventUpdateListener) {
80
- await (0, import_event.triggerEventOn)("lazyLoad", element, opts);
83
+ (0, import_event.triggerEventOn)("lazyLoad", element, opts);
81
84
  }
82
85
  });
83
- } else await createAsync();
86
+ } else createAsync();
84
87
  }
85
88
  }
86
89
  }
87
- const content = element.children ? await (0, import_children.default)(element.children, element, opts) : element.content || element.content;
90
+ const content = element.children ? (0, import_children.default)(element.children, element, opts) : element.children || element.content;
88
91
  if (content) {
89
- await (0, import_set.setContent)(content, element, opts);
92
+ (0, import_set.setContent)(content, element, opts);
90
93
  }
91
94
  return element;
92
95
  };
@@ -0,0 +1,72 @@
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 append_exports = {};
20
+ __export(append_exports, {
21
+ appendNode: () => appendNode,
22
+ assignNode: () => assignNode,
23
+ insertNodeAfter: () => insertNodeAfter,
24
+ insertNodeBefore: () => insertNodeBefore
25
+ });
26
+ module.exports = __toCommonJS(append_exports);
27
+ const appendNode = (node, parentNode) => {
28
+ try {
29
+ parentNode.appendChild(node);
30
+ return node;
31
+ } catch (e) {
32
+ console.error("Does not support to append", parentNode, node);
33
+ }
34
+ };
35
+ const insertNodeAfter = (node, siblingNode, parentNode) => {
36
+ if (!node) {
37
+ throw new Error("Node is required");
38
+ }
39
+ const parent = parentNode || siblingNode?.parentNode;
40
+ if (siblingNode?.nextSibling) {
41
+ parent?.insertBefore(node, siblingNode.nextSibling);
42
+ } else if (siblingNode?.insertAdjacentElement) {
43
+ siblingNode.insertAdjacentElement("afterend", node);
44
+ } else {
45
+ parent?.insertBefore(node, siblingNode);
46
+ }
47
+ };
48
+ const insertNodeBefore = (node, siblingNode, parentNode) => {
49
+ if (!node) {
50
+ throw new Error("Node is required");
51
+ }
52
+ const parent = parentNode || siblingNode.parentNode;
53
+ parent?.insertBefore(node, siblingNode);
54
+ };
55
+ const assignNode = (element, parent, key, attachOptions) => {
56
+ if (!element) {
57
+ throw new Error("Element is required");
58
+ }
59
+ if (!parent) {
60
+ throw new Error("Parent is required");
61
+ }
62
+ parent[key || element.key] = element;
63
+ if (element.tag !== "shadow") {
64
+ if (attachOptions && attachOptions.position) {
65
+ ;
66
+ (attachOptions.position === "before" ? insertNodeBefore : insertNodeAfter)(element.node, attachOptions.node || parent.node);
67
+ } else {
68
+ appendNode(element.node, parent.node, element);
69
+ }
70
+ }
71
+ return element;
72
+ };
@@ -0,0 +1,80 @@
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 cache_exports = {};
20
+ __export(cache_exports, {
21
+ cacheNode: () => cacheNode,
22
+ createHTMLNode: () => createHTMLNode,
23
+ detectTag: () => detectTag
24
+ });
25
+ module.exports = __toCommonJS(cache_exports);
26
+ var import_report = require("@domql/report");
27
+ var import_event = require("../event/index.js");
28
+ var import_utils = require("@domql/utils");
29
+ const SVG_NS = "http://www.w3.org/2000/svg";
30
+ const createHTMLNode = (element) => {
31
+ const { tag, context } = element;
32
+ const doc = context.document || import_utils.document;
33
+ if (tag) {
34
+ if (tag === "string") return doc.createTextNode(element.text);
35
+ else if (tag === "fragment") {
36
+ return doc.createDocumentFragment();
37
+ } else if (import_utils.SVG_TAGS.has(tag)) {
38
+ if (tag === "svg" || element.parent?.node?.namespaceURI === SVG_NS) {
39
+ return doc.createElementNS(SVG_NS, tag);
40
+ }
41
+ return doc.createElement(tag);
42
+ } else return doc.createElement(tag);
43
+ } else {
44
+ return doc.createElement("div");
45
+ }
46
+ };
47
+ const detectTag = (element) => {
48
+ let { tag, key, props } = element;
49
+ tag = (0, import_utils.exec)(tag, element);
50
+ if (tag === true) tag = key;
51
+ if ((0, import_utils.isObject)(props) && (0, import_utils.isString)(props.tag)) {
52
+ const tagExists = (0, import_utils.isValidHtmlTag)(props.tag);
53
+ if (tagExists) return props.tag;
54
+ }
55
+ if ((0, import_utils.isString)(tag)) {
56
+ if ((0, import_utils.isValidHtmlTag)(tag)) return tag;
57
+ } else {
58
+ let keyAsTag = key.toLowerCase();
59
+ if (keyAsTag.includes(".")) keyAsTag = keyAsTag.split(".")[0];
60
+ if (keyAsTag.includes("_")) keyAsTag = keyAsTag.split("_")[0];
61
+ if ((0, import_utils.isValidHtmlTag)(keyAsTag)) return keyAsTag;
62
+ }
63
+ return "div";
64
+ };
65
+ const cacheNode = (element) => {
66
+ const { context } = element;
67
+ const win = context.window || window;
68
+ const tag = element.tag = detectTag(element);
69
+ if (!(0, import_event.canRenderTag)(tag)) {
70
+ return (0, import_report.report)("HTMLInvalidTag", element.tag, element);
71
+ }
72
+ if (!win.nodeCaches) win.nodeCaches = {};
73
+ const isSvgContext = import_utils.SVG_TAGS.has(tag) && (tag === "svg" || element.parent?.node?.namespaceURI === SVG_NS);
74
+ const cacheKey = isSvgContext ? "svg:" + tag : tag;
75
+ let cachedTag = win.nodeCaches[cacheKey];
76
+ if (!cachedTag) cachedTag = win.nodeCaches[cacheKey] = createHTMLNode(element);
77
+ const clonedNode = cachedTag.cloneNode(true);
78
+ if (tag === "string") clonedNode.nodeValue = element.text;
79
+ return clonedNode;
80
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var create_exports = {};
20
+ __export(create_exports, {
21
+ createNode: () => createNode
22
+ });
23
+ module.exports = __toCommonJS(create_exports);
24
+ const createNode = (element) => {
25
+ };
@@ -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 render_exports = {};
17
+ module.exports = __toCommonJS(render_exports);
18
+ __reExport(render_exports, require("./create.js"), module.exports);
19
+ __reExport(render_exports, require("./cache.js"), module.exports);
20
+ __reExport(render_exports, require("./append.js"), module.exports);
package/dist/cjs/set.js CHANGED
@@ -30,7 +30,7 @@ __export(set_exports, {
30
30
  module.exports = __toCommonJS(set_exports);
31
31
  var import_utils = require("@domql/utils");
32
32
  var import_create = require("./create.js");
33
- var import_event = require("@domql/event");
33
+ var import_event = require("./event/index.js");
34
34
  const setContentKey = (element, opts = {}) => {
35
35
  const { __ref: ref } = element;
36
36
  const contentElementKey = opts.contentElementKey;
@@ -39,49 +39,42 @@ const setContentKey = (element, opts = {}) => {
39
39
  }
40
40
  return ref.contentElementKey;
41
41
  };
42
- const reset = async (options) => {
43
- const element = void 0;
44
- await (0, import_create.create)(element, element.parent, void 0, {
42
+ function reset(options) {
43
+ const element = this;
44
+ (0, import_create.create)(element, element.parent, void 0, {
45
45
  ignoreChildExtends: true,
46
46
  ...import_utils.OPTIONS.defaultOptions,
47
47
  ...import_utils.OPTIONS.create,
48
48
  ...options
49
49
  });
50
- };
51
- const resetContent = async (params, element, opts) => {
52
- var _a;
50
+ }
51
+ const resetContent = (params, element, opts) => {
53
52
  const contentElementKey = setContentKey(element, opts);
54
- if ((_a = element[contentElementKey]) == null ? void 0 : _a.node) removeContent(element, opts);
55
- const contentElem = await (0, import_create.create)(
56
- params,
57
- element,
58
- contentElementKey || "content",
59
- {
60
- ignoreChildExtends: true,
61
- ...import_utils.OPTIONS.defaultOptions,
62
- ...import_utils.OPTIONS.create,
63
- ...opts
64
- }
65
- );
53
+ if (element[contentElementKey]?.node) removeContent(element, opts);
54
+ const contentElem = (0, import_create.create)(params, element, contentElementKey || "content", {
55
+ ignoreChildExtends: true,
56
+ ...import_utils.OPTIONS.defaultOptions,
57
+ ...import_utils.OPTIONS.create,
58
+ ...opts
59
+ });
66
60
  if (contentElementKey !== "content") opts.contentElementKey = "content";
67
61
  return contentElem;
68
62
  };
69
- const updateContent = async function(params, opts) {
63
+ const updateContent = function(params, opts) {
70
64
  const element = this;
71
65
  const contentElementKey = setContentKey(element, opts);
72
66
  if (!element[contentElementKey]) return;
73
67
  if (element[contentElementKey].update) {
74
- await element[contentElementKey].update(params, opts);
68
+ element[contentElementKey].update(params, opts);
75
69
  }
76
70
  };
77
- async function setContent(param, element, opts) {
78
- const content = await (0, import_utils.execPromise)(param, element);
71
+ function setContent(param, element, opts) {
72
+ const content = (0, import_utils.exec)(param, element);
79
73
  if (content && element) {
80
- await set.call(element, content, opts);
74
+ set.call(element, content, opts);
81
75
  }
82
76
  }
83
77
  const removeContent = function(el, opts = {}) {
84
- var _a;
85
78
  const element = el || this;
86
79
  const contentElementKey = setContentKey(element, opts);
87
80
  if (opts.contentElementKey !== "content") {
@@ -89,16 +82,17 @@ const removeContent = function(el, opts = {}) {
89
82
  }
90
83
  const content = element[contentElementKey];
91
84
  if (!content) return;
92
- if (content.tag === "fragment" && ((_a = content.__ref) == null ? void 0 : _a.__children)) {
93
- content.__ref.__children.forEach((key) => {
94
- const child = content[key];
85
+ if (content.tag === "fragment" && content.__ref?.__children) {
86
+ const __children = content.__ref.__children;
87
+ for (let i = 0; i < __children.length; i++) {
88
+ const child = content[__children[i]];
95
89
  if (child.node && child.node.parentNode) {
96
90
  child.node.parentNode.removeChild(child.node);
97
91
  }
98
92
  if ((0, import_utils.isFunction)(child.remove)) {
99
93
  child.remove();
100
94
  }
101
- });
95
+ }
102
96
  } else {
103
97
  if (content.node && content.node.parentNode) {
104
98
  content.node.parentNode.removeChild(content.node);
@@ -109,8 +103,7 @@ const removeContent = function(el, opts = {}) {
109
103
  }
110
104
  delete element[contentElementKey];
111
105
  };
112
- const set = async function(params, options = {}, el) {
113
- var _a;
106
+ const set = function(params, options = {}, el) {
114
107
  const element = el || this;
115
108
  const { __ref: ref } = element;
116
109
  const contentElementKey = setContentKey(element, options);
@@ -121,9 +114,9 @@ const set = async function(params, options = {}, el) {
121
114
  if (options.preventContentUpdate === true && !hasChildren) return;
122
115
  const childHasChanged = !ref.__noChildrenDifference;
123
116
  const childrenIsDifferentFromCache = childHasChanged && __contentRef && Object.keys(params).length === Object.keys(content).length && (0, import_utils.deepContains)(params, content);
124
- if ((content == null ? void 0 : content.update) && !childHasChanged && !childrenIsDifferentFromCache) {
117
+ if (content?.update && !childHasChanged && !childrenIsDifferentFromCache) {
125
118
  if (!options.preventBeforeUpdateListener && !options.preventListeners) {
126
- const beforeUpdateReturns = await (0, import_event.triggerEventOnUpdate)(
119
+ const beforeUpdateReturns = (0, import_event.triggerEventOnUpdate)(
127
120
  "beforeUpdate",
128
121
  params,
129
122
  element,
@@ -131,9 +124,9 @@ const set = async function(params, options = {}, el) {
131
124
  );
132
125
  if (beforeUpdateReturns === false) return element;
133
126
  }
134
- await content.update(params);
127
+ content.update(params);
135
128
  if (!options.preventUpdateListener && !options.preventListeners) {
136
- await (0, import_event.triggerEventOn)("update", element, options);
129
+ (0, import_event.triggerEventOn)("update", element, options);
137
130
  }
138
131
  return;
139
132
  }
@@ -145,20 +138,20 @@ const set = async function(params, options = {}, el) {
145
138
  params.childExtends = element.childExtends;
146
139
  props.ignoreChildExtends = true;
147
140
  }
148
- if (!(props == null ? void 0 : props.childProps) && ((_a = element.props) == null ? void 0 : _a.childProps)) {
141
+ if (!props?.childProps && element.props?.childProps) {
149
142
  props.childProps = element.props.childProps;
150
143
  props.ignoreChildProps = true;
151
144
  }
152
145
  }
153
146
  if (lazyLoad) {
154
- window.requestAnimationFrame(async () => {
155
- await resetContent(params, element, options);
147
+ window.requestAnimationFrame(() => {
148
+ resetContent(params, element, options);
156
149
  if (!options.preventUpdateListener) {
157
- await (0, import_event.triggerEventOn)("lazyLoad", element, options);
150
+ (0, import_event.triggerEventOn)("lazyLoad", element, options);
158
151
  }
159
152
  });
160
153
  } else {
161
- await resetContent(params, element, options);
154
+ resetContent(params, element, options);
162
155
  }
163
156
  };
164
157
  var set_default = set;