@domql/element 3.2.3 → 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 (105) hide show
  1. package/children.js +40 -12
  2. package/create.js +40 -26
  3. package/define.js +1 -1
  4. package/dist/cjs/children.js +39 -11
  5. package/dist/cjs/create.js +41 -11
  6. package/dist/cjs/define.js +1 -1
  7. package/dist/cjs/event/animationFrame.js +96 -0
  8. package/dist/cjs/event/can.js +28 -0
  9. package/dist/cjs/event/index.js +20 -0
  10. package/dist/cjs/event/on.js +84 -0
  11. package/dist/cjs/event/store.js +27 -0
  12. package/dist/cjs/extend.js +6 -6
  13. package/dist/cjs/index.js +9 -6
  14. package/dist/cjs/iterate.js +13 -13
  15. package/dist/cjs/methods/set.js +5 -0
  16. package/dist/cjs/methods/v2.js +1 -1
  17. package/dist/cjs/mixins/attr.js +3 -2
  18. package/dist/cjs/mixins/classList.js +11 -1
  19. package/dist/cjs/mixins/content.js +1 -2
  20. package/dist/cjs/mixins/html.js +1 -2
  21. package/dist/cjs/mixins/state.js +2 -2
  22. package/dist/cjs/mixins/style.js +11 -2
  23. package/dist/cjs/mixins/text.js +5 -1
  24. package/dist/cjs/node.js +8 -5
  25. package/dist/cjs/render/append.js +72 -0
  26. package/dist/cjs/render/cache.js +80 -0
  27. package/dist/cjs/render/create.js +25 -0
  28. package/dist/cjs/render/index.js +20 -0
  29. package/dist/cjs/set.js +12 -14
  30. package/dist/cjs/update.js +80 -40
  31. package/dist/cjs/utils/applyParam.js +3 -3
  32. package/dist/cjs/utils/extendUtils.js +5 -5
  33. package/dist/cjs/utils/index.js +2 -0
  34. package/dist/cjs/utils/propEvents.js +21 -4
  35. package/dist/esm/children.js +39 -11
  36. package/dist/esm/create.js +42 -11
  37. package/dist/esm/define.js +1 -1
  38. package/dist/esm/event/animationFrame.js +76 -0
  39. package/dist/esm/event/can.js +8 -0
  40. package/dist/esm/event/index.js +3 -0
  41. package/dist/esm/event/on.js +64 -0
  42. package/dist/esm/event/store.js +7 -0
  43. package/dist/esm/extend.js +7 -7
  44. package/dist/esm/index.js +8 -6
  45. package/dist/esm/iterate.js +13 -13
  46. package/dist/esm/methods/set.js +10 -0
  47. package/dist/esm/methods/v2.js +1 -1
  48. package/dist/esm/mixins/attr.js +4 -3
  49. package/dist/esm/mixins/classList.js +11 -1
  50. package/dist/esm/mixins/content.js +1 -2
  51. package/dist/esm/mixins/html.js +1 -2
  52. package/dist/esm/mixins/state.js +2 -2
  53. package/dist/esm/mixins/style.js +12 -3
  54. package/dist/esm/mixins/text.js +6 -2
  55. package/dist/esm/node.js +8 -5
  56. package/dist/esm/render/append.js +52 -0
  57. package/dist/esm/render/cache.js +60 -0
  58. package/dist/esm/render/create.js +5 -0
  59. package/dist/esm/render/index.js +3 -0
  60. package/dist/esm/set.js +12 -14
  61. package/dist/esm/update.js +80 -42
  62. package/dist/esm/utils/applyParam.js +3 -3
  63. package/dist/esm/utils/extendUtils.js +5 -5
  64. package/dist/esm/utils/index.js +1 -0
  65. package/dist/esm/utils/propEvents.js +21 -4
  66. package/dist/iife/index.js +4718 -0
  67. package/extend.js +7 -10
  68. package/index.js +9 -6
  69. package/iterate.js +20 -13
  70. package/node.js +10 -8
  71. package/package.json +42 -18
  72. package/set.js +6 -5
  73. package/update.js +90 -52
  74. package/__tests__/checkIfOnUpdate.test.js +0 -103
  75. package/__tests__/children.test.js +0 -209
  76. package/__tests__/define.test.js +0 -75
  77. package/__tests__/inheritStateUpdates.test.js +0 -79
  78. package/__tests__/renderElement.test.js +0 -131
  79. package/__tests__/resetElement.test.js +0 -44
  80. package/__tests__/set.test.js +0 -312
  81. package/__tests__/throughExecProps.test.js +0 -86
  82. package/__tests__/throughInitialDefine.test.js +0 -104
  83. package/__tests__/throughInitialExec.test.js +0 -92
  84. package/__tests__/throughUpdatedDefine.test.js +0 -92
  85. package/__tests__/throughUpdatedExec.test.js +0 -111
  86. package/__tests__/tree.test.js +0 -15
  87. package/__tests__/update.test.js +0 -256
  88. package/dist/cjs/package.json +0 -4
  89. package/methods/set.js +0 -63
  90. package/methods/v2.js +0 -83
  91. package/mixins/attr.js +0 -32
  92. package/mixins/classList.js +0 -54
  93. package/mixins/content.js +0 -65
  94. package/mixins/data.js +0 -26
  95. package/mixins/html.js +0 -21
  96. package/mixins/index.js +0 -23
  97. package/mixins/registry.js +0 -46
  98. package/mixins/scope.js +0 -23
  99. package/mixins/state.js +0 -19
  100. package/mixins/style.js +0 -16
  101. package/mixins/text.js +0 -26
  102. package/utils/applyParam.js +0 -34
  103. package/utils/extendUtils.js +0 -149
  104. package/utils/index.js +0 -3
  105. package/utils/propEvents.js +0 -19
@@ -0,0 +1,27 @@
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 store_exports = {};
20
+ __export(store_exports, {
21
+ default: () => store_default
22
+ });
23
+ module.exports = __toCommonJS(store_exports);
24
+ var store_default = {
25
+ click: [],
26
+ render: []
27
+ };
@@ -27,8 +27,8 @@ let mainExtend;
27
27
  const applyExtend = (element, parent, options = {}) => {
28
28
  if ((0, import_utils.isFunction)(element)) element = (0, import_utils.exec)(element, parent);
29
29
  const { props, __ref } = element;
30
- let extend = (props == null ? void 0 : props.extends) || element.extends || element.extend;
31
- const variant = props == null ? void 0 : props.variant;
30
+ let extend = props?.extends || element.extends || element.extend;
31
+ const variant = props?.variant;
32
32
  const context = element.context || parent.context;
33
33
  extend = (0, import_utils2.fallbackStringExtend)(extend, context, options, variant);
34
34
  const extendStack = (0, import_utils2.getExtendStack)(extend, context);
@@ -36,9 +36,9 @@ const applyExtend = (element, parent, options = {}) => {
36
36
  let childExtendStack = [];
37
37
  if (parent) {
38
38
  element.parent = parent;
39
- if (!options.ignoreChildExtend && !(props && props.ignoreChildExtend)) {
39
+ if (!options.ignoreChildExtend && !props?.ignoreChildExtend) {
40
40
  childExtendStack = (0, import_utils2.getExtendStack)(parent.childExtend, context);
41
- const ignoreChildExtendRecursive = props && props.ignoreChildExtendRecursive;
41
+ const ignoreChildExtendRecursive = props?.ignoreChildExtendRecursive;
42
42
  if (parent.childExtendRecursive && !ignoreChildExtendRecursive) {
43
43
  const canExtendRecursive = element.key !== "__text";
44
44
  if (canExtendRecursive) {
@@ -75,9 +75,9 @@ const applyExtend = (element, parent, options = {}) => {
75
75
  }
76
76
  if (__ref) __ref.__extend = stack;
77
77
  let mergedExtend = (0, import_utils2.cloneAndMergeArrayExtend)(stack);
78
- const COMPONENTS = context && context.components || options.components;
78
+ const COMPONENTS = context?.components || options.components;
79
79
  const component = (0, import_utils.exec)(element.component || mergedExtend.component, element);
80
- if (component && COMPONENTS && COMPONENTS[component]) {
80
+ if (component && COMPONENTS?.[component]) {
81
81
  const componentExtend = (0, import_utils2.cloneAndMergeArrayExtend)(
82
82
  (0, import_utils2.getExtendStack)(COMPONENTS[component])
83
83
  );
package/dist/cjs/index.js CHANGED
@@ -17,6 +17,7 @@ var __copyProps = (to, from, except, desc) => {
17
17
  }
18
18
  return to;
19
19
  };
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
20
21
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
22
  // If the importer is in node compatibility mode or this is not an ESM
22
23
  // file that has been converted to a CommonJS file using a Babel-
@@ -36,9 +37,11 @@ __export(index_exports, {
36
37
  update: () => import_update.default
37
38
  });
38
39
  module.exports = __toCommonJS(index_exports);
39
- var import_tree = require("./tree");
40
- var import_create = __toESM(require("./create"), 1);
41
- var import_node = __toESM(require("./node"), 1);
42
- var import_define = __toESM(require("./define"), 1);
43
- var import_update = __toESM(require("./update"), 1);
44
- var import_set = __toESM(require("./set"), 1);
40
+ var import_tree = require("./tree.js");
41
+ var import_create = __toESM(require("./create.js"), 1);
42
+ var import_node = __toESM(require("./node.js"), 1);
43
+ var import_define = __toESM(require("./define.js"), 1);
44
+ var import_update = __toESM(require("./update.js"), 1);
45
+ var import_set = __toESM(require("./set.js"), 1);
46
+ __reExport(index_exports, require("./event/index.js"), module.exports);
47
+ __reExport(index_exports, require("./render/index.js"), module.exports);
@@ -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
- isPropertyInDefines: () => isPropertyInDefines,
22
21
  throughExecProps: () => throughExecProps,
23
22
  throughInitialDefine: () => throughInitialDefine,
24
23
  throughInitialExec: () => throughInitialExec,
@@ -60,7 +59,7 @@ const throughUpdatedExec = (element, options = {}) => {
60
59
  continue;
61
60
  }
62
61
  const execReturnsString = (0, import_utils.isString)(newExec) || (0, import_utils.isNumber)(newExec);
63
- if (prop && prop.node && execReturnsString) {
62
+ if (prop?.node && execReturnsString) {
64
63
  (0, import_utils.overwrite)(prop, { text: newExec });
65
64
  } else if (newExec !== prop) {
66
65
  if ((0, import_utils.matchesComponentNaming)(param)) {
@@ -82,7 +81,11 @@ const throughExecProps = (element) => {
82
81
  const { __ref: ref } = element;
83
82
  const { props } = element;
84
83
  for (const k in props) {
85
- const isDefine = k.startsWith("is") || k.startsWith("has") || k.startsWith("use");
84
+ const c0 = k.charCodeAt(0);
85
+ const c1 = k.charCodeAt(1);
86
+ const isDefine = c0 === 105 && c1 === 115 || // 'is'
87
+ c0 === 104 && c1 === 97 && k.charCodeAt(2) === 115 || // 'has'
88
+ c0 === 117 && c1 === 115 && k.charCodeAt(2) === 101;
86
89
  const cachedExecProp = ref.__execProps[k];
87
90
  if ((0, import_utils.isFunction)(cachedExecProp)) {
88
91
  const result = (0, import_utils.exec)(cachedExecProp, element);
@@ -106,14 +109,12 @@ const throughExecProps = (element) => {
106
109
  }
107
110
  }
108
111
  };
109
- const isPropertyInDefines = (key, element) => {
110
- };
111
112
  const throughInitialDefine = (element) => {
112
113
  const { define, context, __ref: ref } = element;
113
- let defineObj = {};
114
+ const hasLocalDefine = (0, import_utils.isObject)(define);
114
115
  const hasGlobalDefine = context && (0, import_utils.isObject)(context.define);
115
- if ((0, import_utils.isObject)(define)) defineObj = { ...define };
116
- if (hasGlobalDefine) defineObj = { ...defineObj, ...context.define };
116
+ if (!hasLocalDefine && !hasGlobalDefine) return element;
117
+ const defineObj = hasLocalDefine && hasGlobalDefine ? { ...define, ...context.define } : hasLocalDefine ? define : context.define;
117
118
  for (const param in defineObj) {
118
119
  let elementProp = element[param];
119
120
  if ((0, import_utils.isFunction)(elementProp) && !(0, import_utils.isMethod)(param, element)) {
@@ -151,10 +152,10 @@ const throughInitialDefine = (element) => {
151
152
  };
152
153
  const throughUpdatedDefine = (element) => {
153
154
  const { context, define, __ref: ref } = element;
154
- const changes = {};
155
- let obj = {};
156
- if ((0, import_utils.isObject)(define)) obj = { ...define };
157
- if ((0, import_utils.isObject)(context && context.define)) obj = { ...obj, ...context.define };
155
+ const hasLocalDefine = (0, import_utils.isObject)(define);
156
+ const hasGlobalDefine = (0, import_utils.isObject)(context?.define);
157
+ if (!hasLocalDefine && !hasGlobalDefine) return;
158
+ const obj = hasLocalDefine && hasGlobalDefine ? { ...define, ...context.define } : hasLocalDefine ? define : context.define;
158
159
  for (const param in obj) {
159
160
  const execParam = ref.__exec[param];
160
161
  if (execParam) {
@@ -182,5 +183,4 @@ const throughUpdatedDefine = (element) => {
182
183
  element[param] = newExecParam;
183
184
  }
184
185
  }
185
- return changes;
186
186
  };
@@ -40,6 +40,11 @@ const addMethods = (element, parent, options = {}) => {
40
40
  lookdownAll: import_methods.lookdownAll,
41
41
  getRef: import_methods.getRef,
42
42
  getPath: import_methods.getPath,
43
+ getRootState: import_methods.getRootState,
44
+ getRoot: import_methods.getRoot,
45
+ getRootData: import_methods.getRootData,
46
+ getRootContext: import_methods.getRootContext,
47
+ getContext: import_methods.getContext,
43
48
  setNodeStyles: import_methods.setNodeStyles,
44
49
  spotByPath: import_methods.spotByPath,
45
50
  parse: import_methods.parse,
@@ -73,7 +73,7 @@ const log = function(...args) {
73
73
  args.forEach((v) => console.log(`%c${v}:
74
74
  `, "font-weight: bold", element[v]));
75
75
  } else {
76
- console.log(__ref == null ? void 0 : __ref.path);
76
+ console.log(__ref?.path);
77
77
  const keys2 = element.keys();
78
78
  keys2.forEach((v) => console.log(`%c${v}:
79
79
  `, "font-weight: bold", element[v]));
@@ -27,13 +27,14 @@ var import_report = require("@domql/report");
27
27
  function attr(params, element, node) {
28
28
  const { __ref: ref, props } = element;
29
29
  const { __attr } = ref;
30
- if ((0, import_utils.isNot)("object")) (0, import_report.report)("HTMLInvalidAttr", params);
30
+ if ((0, import_utils.isNot)(params)("object")) (0, import_report.report)("HTMLInvalidAttr", params);
31
31
  if (params) {
32
32
  const attrs = (0, import_utils.exec)(params, element);
33
33
  if (props.attr) (0, import_utils.deepMerge)(attrs, props.attr);
34
34
  for (const attr2 in attrs) {
35
35
  const val = (0, import_utils.exec)(attrs[attr2], element);
36
- if (val !== false && !(0, import_utils.isUndefined)(val) && !(0, import_utils.isNull)(val) && node.setAttribute) {
36
+ if (val === __attr[attr2]) continue;
37
+ if (val !== false && val !== void 0 && val !== null && node.setAttribute) {
37
38
  node.setAttribute(attr2, val);
38
39
  } else if (node.removeAttribute) node.removeAttribute(attr2);
39
40
  __attr[attr2] = val;
@@ -57,7 +57,17 @@ const classList = (params, element) => {
57
57
  };
58
58
  const applyClassListOnNode = (params, element, node) => {
59
59
  const className = classList(params, element);
60
- node.classList = className;
60
+ const { __ref } = element;
61
+ if (className === __ref.__className) return className;
62
+ __ref.__className = className;
63
+ if (node && typeof node.setAttribute === "function") {
64
+ node.setAttribute("class", className);
65
+ } else if (node) {
66
+ try {
67
+ node.className = className;
68
+ } catch (e) {
69
+ }
70
+ }
61
71
  return className;
62
72
  };
63
73
  function applyClasslist(params, element, node) {
@@ -60,10 +60,9 @@ const removeContent = function(el, opts = {}) {
60
60
  }
61
61
  };
62
62
  function setContent(param, element, node, opts) {
63
- var _a;
64
63
  const contentElementKey = (0, import_utils.setContentKey)(element, opts);
65
64
  if (param && element) {
66
- if ((_a = element[contentElementKey]) == null ? void 0 : _a.update) {
65
+ if (element[contentElementKey]?.update) {
67
66
  element[contentElementKey].update({}, opts);
68
67
  } else {
69
68
  import_set.set.call(element, param, opts);
@@ -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)(((_a = element == null ? void 0 : element.props) == null ? void 0 : _a.html) || param, 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;
@@ -27,8 +27,8 @@ function state(params, element, node) {
27
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;
@@ -31,7 +31,11 @@ function text(param, element, node) {
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;
package/dist/cjs/node.js CHANGED
@@ -33,15 +33,16 @@ __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 ENV = process.env.NODE_ENV;
45
46
  const createNode = (element, opts) => {
46
47
  let { node, tag, __ref: ref } = element;
47
48
  if (!ref.__if) return element;
@@ -60,10 +61,12 @@ const createNode = (element, opts) => {
60
61
  (0, import_iterate.throughExecProps)(element);
61
62
  (0, import_iterate.throughInitialDefine)(element);
62
63
  (0, import_iterate.throughInitialExec)(element);
64
+ (0, import_propEvents.propagateEventsFromProps)(element);
65
+ (0, import_propEvents.propagateEventsFromElement)(element);
63
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
72
  const isElement = (0, import_applyParam.applyParam)(param, element, opts);
@@ -84,7 +87,7 @@ const createNode = (element, opts) => {
84
87
  }
85
88
  }
86
89
  }
87
- const content = element.children ? (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
92
  (0, import_set.setContent)(content, element, opts);
90
93
  }
@@ -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,19 +39,18 @@ const setContentKey = (element, opts = {}) => {
39
39
  }
40
40
  return ref.contentElementKey;
41
41
  };
42
- const reset = (options) => {
43
- const element = void 0;
42
+ function reset(options) {
43
+ const element = this;
44
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
- };
50
+ }
51
51
  const resetContent = (params, element, opts) => {
52
- var _a;
53
52
  const contentElementKey = setContentKey(element, opts);
54
- if ((_a = element[contentElementKey]) == null ? void 0 : _a.node) removeContent(element, opts);
53
+ if (element[contentElementKey]?.node) removeContent(element, opts);
55
54
  const contentElem = (0, import_create.create)(params, element, contentElementKey || "content", {
56
55
  ignoreChildExtends: true,
57
56
  ...import_utils.OPTIONS.defaultOptions,
@@ -76,7 +75,6 @@ function setContent(param, element, opts) {
76
75
  }
77
76
  }
78
77
  const removeContent = function(el, opts = {}) {
79
- var _a;
80
78
  const element = el || this;
81
79
  const contentElementKey = setContentKey(element, opts);
82
80
  if (opts.contentElementKey !== "content") {
@@ -84,16 +82,17 @@ const removeContent = function(el, opts = {}) {
84
82
  }
85
83
  const content = element[contentElementKey];
86
84
  if (!content) return;
87
- if (content.tag === "fragment" && ((_a = content.__ref) == null ? void 0 : _a.__children)) {
88
- content.__ref.__children.forEach((key) => {
89
- 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]];
90
89
  if (child.node && child.node.parentNode) {
91
90
  child.node.parentNode.removeChild(child.node);
92
91
  }
93
92
  if ((0, import_utils.isFunction)(child.remove)) {
94
93
  child.remove();
95
94
  }
96
- });
95
+ }
97
96
  } else {
98
97
  if (content.node && content.node.parentNode) {
99
98
  content.node.parentNode.removeChild(content.node);
@@ -105,7 +104,6 @@ const removeContent = function(el, opts = {}) {
105
104
  delete element[contentElementKey];
106
105
  };
107
106
  const set = function(params, options = {}, el) {
108
- var _a;
109
107
  const element = el || this;
110
108
  const { __ref: ref } = element;
111
109
  const contentElementKey = setContentKey(element, options);
@@ -116,7 +114,7 @@ const set = function(params, options = {}, el) {
116
114
  if (options.preventContentUpdate === true && !hasChildren) return;
117
115
  const childHasChanged = !ref.__noChildrenDifference;
118
116
  const childrenIsDifferentFromCache = childHasChanged && __contentRef && Object.keys(params).length === Object.keys(content).length && (0, import_utils.deepContains)(params, content);
119
- if ((content == null ? void 0 : content.update) && !childHasChanged && !childrenIsDifferentFromCache) {
117
+ if (content?.update && !childHasChanged && !childrenIsDifferentFromCache) {
120
118
  if (!options.preventBeforeUpdateListener && !options.preventListeners) {
121
119
  const beforeUpdateReturns = (0, import_event.triggerEventOnUpdate)(
122
120
  "beforeUpdate",
@@ -140,7 +138,7 @@ const set = function(params, options = {}, el) {
140
138
  params.childExtends = element.childExtends;
141
139
  props.ignoreChildExtends = true;
142
140
  }
143
- if (!(props == null ? void 0 : props.childProps) && ((_a = element.props) == null ? void 0 : _a.childProps)) {
141
+ if (!props?.childProps && element.props?.childProps) {
144
142
  props.childProps = element.props.childProps;
145
143
  props.ignoreChildProps = true;
146
144
  }