@domql/element 2.5.137 → 2.5.139

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.
package/create.js CHANGED
@@ -17,7 +17,8 @@ import {
17
17
  applyComponentFromContext,
18
18
  applyKeyComponentAsExtend,
19
19
  isVariant,
20
- detectInfiniteLoop
20
+ detectInfiniteLoop,
21
+ addChildrenIfNotInOriginal
21
22
  } from '@domql/utils'
22
23
  import { triggerEventOn } from '@domql/event'
23
24
  import { assignNode } from '@domql/render'
@@ -57,23 +58,18 @@ const create = (element, parent, key, options = OPTIONS.create || {}, attachOpti
57
58
 
58
59
  const ref = addRef(element, parent, key)
59
60
 
60
- // assign initial props
61
61
  ref.__initialProps = deepCloneWithExtend(element.props, [])
62
62
 
63
- // assign context
64
63
  applyContext(element, parent, options)
65
64
 
66
65
  applyComponentFromContext(element, parent, options)
67
66
 
68
67
  if (!ref.__skipCreate) {
69
- // create EXTEND inheritance
70
68
  applyExtend(element, parent, options)
71
69
  }
72
70
 
73
- // create and assign a KEY
74
71
  element.key = key
75
72
 
76
- // Only resolve extends, skip everything else
77
73
  if (options.onlyResolveExtends) {
78
74
  return onlyResolveExtends(element, parent, key, options)
79
75
  }
@@ -114,6 +110,8 @@ const create = (element, parent, key, options = OPTIONS.create || {}, attachOpti
114
110
  // generate a CLASS name
115
111
  assignKeyAsClassname(element)
116
112
 
113
+ addChildrenIfNotInOriginal(element, parent, key)
114
+
117
115
  renderElement(element, parent, options, attachOptions)
118
116
 
119
117
  addElementIntoParentChildren(element, parent)
@@ -286,7 +284,7 @@ const createScope = (element, parent) => {
286
284
  const createIfConditionFlag = (element, parent) => {
287
285
  const { __ref: ref } = element
288
286
 
289
- if (isFunction(element.if) && !element.if(element, element.state)) {
287
+ if (isFunction(element.if) && !element.if(element, element.state, element.context)) {
290
288
  delete ref.__if
291
289
  } else ref.__if = true
292
290
  }
@@ -87,6 +87,7 @@ const create = (element, parent, key, options = import_options.default.create ||
87
87
  return element;
88
88
  (0, import_event.triggerEventOn)("beforeClassAssign", element, options);
89
89
  (0, import_classList.assignKeyAsClassname)(element);
90
+ (0, import_utils.addChildrenIfNotInOriginal)(element, parent, key);
90
91
  renderElement(element, parent, options, attachOptions);
91
92
  addElementIntoParentChildren(element, parent);
92
93
  (0, import_event.triggerEventOn)("complete", element, options);
@@ -227,7 +228,7 @@ const createScope = (element, parent) => {
227
228
  };
228
229
  const createIfConditionFlag = (element, parent) => {
229
230
  const { __ref: ref } = element;
230
- if ((0, import_utils.isFunction)(element.if) && !element.if(element, element.state)) {
231
+ if ((0, import_utils.isFunction)(element.if) && !element.if(element, element.state, element.context)) {
231
232
  delete ref.__if;
232
233
  } else
233
234
  ref.__if = true;
@@ -23,12 +23,15 @@ __export(attr_exports, {
23
23
  module.exports = __toCommonJS(attr_exports);
24
24
  var import_utils = require("@domql/utils");
25
25
  var import_report = require("@domql/report");
26
+ var import_utils2 = require("../utils");
26
27
  var attr_default = (params, element, node) => {
27
28
  const { __ref } = element;
28
29
  const { __attr } = __ref;
29
30
  if ((0, import_utils.isNot)("object"))
30
31
  (0, import_report.report)("HTMLInvalidAttr", params);
31
32
  if (params) {
33
+ if (element.props.attr)
34
+ (0, import_utils2.deepMerge)(params, element.props.attr);
32
35
  for (const attr in params) {
33
36
  const val = (0, import_utils.exec)(params[attr], element);
34
37
  if (val !== false && !(0, import_utils.isUndefined)(val) && !(0, import_utils.isNull)(val) && node.setAttribute)
@@ -38,5 +41,4 @@ var attr_default = (params, element, node) => {
38
41
  __attr[attr] = val;
39
42
  }
40
43
  }
41
- console.groupEnd(params, __attr);
42
44
  };
@@ -24,12 +24,16 @@ module.exports = __toCommonJS(data_exports);
24
24
  var import_utils = require("@domql/utils");
25
25
  var import_report = require("@domql/report");
26
26
  var data_default = (params, element, node) => {
27
- if (params && params.showOnNode) {
28
- if (!(0, import_utils.isObject)(params))
29
- (0, import_report.report)("HTMLInvalidData", params);
30
- for (const dataset in params) {
31
- if (dataset !== "showOnNode") {
32
- node.dataset[dataset] = (0, import_utils.exec)(params[dataset], element);
27
+ if (params) {
28
+ if (element.props.attr)
29
+ (0, import_utils.deepMerge)(params, element.props.attr);
30
+ if (params.showOnNode) {
31
+ if (!(0, import_utils.isObject)(params))
32
+ (0, import_report.report)("HTMLInvalidData", params);
33
+ for (const dataset in params) {
34
+ if (dataset !== "showOnNode") {
35
+ node.dataset[dataset] = (0, import_utils.exec)(params[dataset], element);
36
+ }
33
37
  }
34
38
  }
35
39
  }
@@ -174,11 +174,11 @@ const captureSnapshot = (element, options) => {
174
174
  return [snapshotOnCallee, calleeElement];
175
175
  };
176
176
  const checkIfOnUpdate = (element, parent, options) => {
177
- var _a;
178
- if (!(0, import_utils.isFunction)(element.if) || !parent)
177
+ var _a, _b;
178
+ if (!(0, import_utils.isFunction)(element.if) && !(0, import_utils.isFunction)(element.props.if) || !parent)
179
179
  return;
180
180
  const ref = element.__ref;
181
- const ifPassed = element.if(element, element.state, element.context, options);
181
+ const ifPassed = (element.if || ((_a = element.props) == null ? void 0 : _a.if))(element, element.state, element.context, options);
182
182
  const itWasFalse = ref.__if !== true;
183
183
  if (ifPassed) {
184
184
  ref.__if = true;
@@ -200,7 +200,7 @@ const checkIfOnUpdate = (element, parent, options) => {
200
200
  }
201
201
  if (element.$collection || element.$stateCollection || element.$propsCollection) {
202
202
  element.removeContent();
203
- } else if ((_a = element.content) == null ? void 0 : _a.parseDeep)
203
+ } else if ((_b = element.content) == null ? void 0 : _b.parseDeep)
204
204
  element.content = element.content.parseDeep();
205
205
  const previousElement = element.previousElement();
206
206
  const previousNode = previousElement == null ? void 0 : previousElement.node;
@@ -57,7 +57,7 @@ const onlyResolveExtends = (element, parent, key, options) => {
57
57
  (0, import_state.createState)(element, parent);
58
58
  const ref = __ref;
59
59
  if ((0, import_utils.isFunction)(element.if)) {
60
- const ifPassed = element.if(element, element.state);
60
+ const ifPassed = element.if(element, element.state, element.context);
61
61
  if (!ifPassed) {
62
62
  delete ref.__if;
63
63
  } else
package/mixins/attr.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { exec, isNot, isNull, isUndefined } from '@domql/utils'
4
4
  import { report } from '@domql/report'
5
+ import { deepMerge } from '../utils'
5
6
 
6
7
  /**
7
8
  * Recursively add attributes to a DOM node
@@ -11,6 +12,7 @@ export default (params, element, node) => {
11
12
  const { __attr } = __ref
12
13
  if (isNot('object')) report('HTMLInvalidAttr', params)
13
14
  if (params) {
15
+ if (element.props.attr) deepMerge(params, element.props.attr)
14
16
  for (const attr in params) {
15
17
  const val = exec(params[attr], element)
16
18
  // if (__attr[attr] === val) return
@@ -19,5 +21,4 @@ export default (params, element, node) => {
19
21
  __attr[attr] = val
20
22
  }
21
23
  }
22
- console.groupEnd(params, __attr)
23
24
  }
package/mixins/data.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { exec, isObject } from '@domql/utils'
3
+ import { exec, isObject, deepMerge } from '@domql/utils'
4
4
  import { report } from '@domql/report'
5
5
 
6
6
  /**
@@ -8,13 +8,16 @@ import { report } from '@domql/report'
8
8
  * this should only work if `showOnNode: true` is passed
9
9
  */
10
10
  export default (params, element, node) => {
11
- if (params && params.showOnNode) {
12
- if (!isObject(params)) report('HTMLInvalidData', params)
11
+ if (params) {
12
+ if (element.props.attr) deepMerge(params, element.props.attr)
13
+ if (params.showOnNode) {
14
+ if (!isObject(params)) report('HTMLInvalidData', params)
13
15
 
14
- // Apply data params on node
15
- for (const dataset in params) {
16
- if (dataset !== 'showOnNode') {
17
- node.dataset[dataset] = exec(params[dataset], element)
16
+ // Apply data params on node
17
+ for (const dataset in params) {
18
+ if (dataset !== 'showOnNode') {
19
+ node.dataset[dataset] = exec(params[dataset], element)
20
+ }
18
21
  }
19
22
  }
20
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/element",
3
- "version": "2.5.137",
3
+ "version": "2.5.139",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "index.js",
@@ -26,12 +26,12 @@
26
26
  "prepublish": "rimraf -I dist && yarn build && yarn copy:package:cjs"
27
27
  },
28
28
  "dependencies": {
29
- "@domql/event": "^2.5.134",
30
- "@domql/render": "^2.5.134",
31
- "@domql/state": "^2.5.134",
32
- "@domql/utils": "^2.5.134"
29
+ "@domql/event": "^2.5.139",
30
+ "@domql/render": "^2.5.139",
31
+ "@domql/state": "^2.5.139",
32
+ "@domql/utils": "^2.5.139"
33
33
  },
34
- "gitHead": "304066eb30aef4652bc42aba6a97f4013118dab1",
34
+ "gitHead": "db49c6131a93bd7e9c1f1c95bc5de7752a8f48d1",
35
35
  "devDependencies": {
36
36
  "@babel/core": "^7.12.0"
37
37
  }
package/update.js CHANGED
@@ -180,10 +180,10 @@ const captureSnapshot = (element, options) => {
180
180
  }
181
181
 
182
182
  const checkIfOnUpdate = (element, parent, options) => {
183
- if (!isFunction(element.if) || !parent) return
183
+ if ((!isFunction(element.if) && !isFunction(element.props.if)) || !parent) return
184
184
 
185
185
  const ref = element.__ref
186
- const ifPassed = element.if(element, element.state, element.context, options)
186
+ const ifPassed = (element.if || element.props?.if)(element, element.state, element.context, options)
187
187
  const itWasFalse = ref.__if !== true
188
188
 
189
189
  if (ifPassed) {
@@ -58,7 +58,7 @@ export const onlyResolveExtends = (element, parent, key, options) => {
58
58
  // Borrowed from createIfConditionFlag()
59
59
  const ref = __ref
60
60
  if (isFunction(element.if)) {
61
- const ifPassed = element.if(element, element.state)
61
+ const ifPassed = element.if(element, element.state, element.context)
62
62
  if (!ifPassed) {
63
63
  // const ifFragment = cacheNode({ tag: 'fragment' })
64
64
  // ref.__ifFragment = appendNode(ifFragment, parent.node)