@domql/element 2.5.111 → 2.5.113

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
@@ -24,7 +24,7 @@ import {
24
24
  isNode,
25
25
  isUndefined,
26
26
  generateKey,
27
- deepClone
27
+ deepCloneWithExtend
28
28
  } from '@domql/utils'
29
29
 
30
30
  import OPTIONS from './cache/options'
@@ -60,7 +60,7 @@ const create = (element, parent, key, options = OPTIONS.create || {}, attachOpti
60
60
  const ref = addRef(element, parent, key)
61
61
 
62
62
  // assign initial props
63
- ref.__initialProps = deepClone(element.props, [])
63
+ ref.__initialProps = deepCloneWithExtend(element.props, [])
64
64
 
65
65
  // assign context
66
66
  applyContext(element, parent, options)
@@ -57,7 +57,7 @@ const create = (element, parent, key, options = import_options.default.create ||
57
57
  parent = redefineParent(element, parent, key);
58
58
  key = createKey(element, parent, key);
59
59
  const ref = addRef(element, parent, key);
60
- ref.__initialProps = (0, import_utils.deepClone)(element.props, []);
60
+ ref.__initialProps = (0, import_utils.deepCloneWithExtend)(element.props, []);
61
61
  applyContext(element, parent, options);
62
62
  (0, import_component.applyComponentFromContext)(element, parent, options);
63
63
  if (!ref.__skipCreate) {
@@ -141,6 +141,8 @@ const remove = function() {
141
141
  element.log();
142
142
  }
143
143
  delete element.parent[element.key];
144
+ if (element.parent.__ref)
145
+ element.parent.__ref.__children = (0, import_utils.removeValueFromArray)(element.parent.__ref.__children, element.key);
144
146
  };
145
147
  const get = function(param) {
146
148
  const element = this;
@@ -43,22 +43,26 @@ const updateContent = function(params, options) {
43
43
  if (element.content.update)
44
44
  element.content.update(params, options);
45
45
  };
46
- const removeContent = function(el) {
46
+ const removeContent = function(el, opts = {}) {
47
47
  const element = el || this;
48
48
  const { __ref } = element;
49
- if (element.content) {
50
- if (element.content.node && element.node) {
51
- if (element.content.tag === "fragment")
49
+ const contentElementKey = opts.contentElementKey || "content";
50
+ if (element[contentElementKey]) {
51
+ if (element[contentElementKey].node && element.node) {
52
+ if (element[contentElementKey].tag === "fragment")
52
53
  element.node.innerHTML = "";
53
- else
54
- element.node.removeChild(element.content.node);
54
+ else {
55
+ const contentNode = element[contentElementKey].node;
56
+ if (contentNode.parentNode === element.node)
57
+ element.node.removeChild(element[contentElementKey].node);
58
+ }
55
59
  }
56
60
  const { __cached } = __ref;
57
- if (__cached && __cached.content) {
58
- if (__cached.content.tag === "fragment")
59
- __cached.content.parent.node.innerHTML = "";
60
- else if (__cached.content && (0, import_utils.isFunction)(__cached.content.remove))
61
- __cached.content.remove();
61
+ if (__cached && __cached[contentElementKey]) {
62
+ if (__cached[contentElementKey].tag === "fragment")
63
+ __cached[contentElementKey].parent.node.innerHTML = "";
64
+ else if (__cached[contentElementKey] && (0, import_utils.isFunction)(__cached[contentElementKey].remove))
65
+ __cached[contentElementKey].remove();
62
66
  }
63
67
  delete element.content;
64
68
  }
@@ -52,7 +52,7 @@ const syncProps = (props, element) => {
52
52
  const execProps = (0, import_utils.exec)(v, element);
53
53
  element.props = (0, import_utils.deepMerge)(
54
54
  mergedProps,
55
- (0, import_utils.deepClone)(execProps, import_ignore.IGNORE_PROPS_PARAMS),
55
+ (0, import_utils.deepCloneWithExtend)(execProps, import_ignore.IGNORE_PROPS_PARAMS),
56
56
  import_ignore.IGNORE_PROPS_PARAMS
57
57
  );
58
58
  });
@@ -213,11 +213,11 @@ const checkIfOnUpdate = (element, parent, options) => {
213
213
  };
214
214
  delete element.__ref;
215
215
  delete element.parent;
216
- const created = (0, import_create.default)(element, parent, element.key, import_options.default.create, attachOptions);
216
+ const createdElement = (0, import_create.default)(element, parent, element.key, import_options.default.create, attachOptions);
217
217
  if (options.preventUpdate !== true && element.on && (0, import_utils.isFunction)(element.on.update)) {
218
- (0, import_event.applyEvent)(element.on.update, created, created.state);
218
+ (0, import_event.applyEvent)(element.on.update, createdElement, createdElement.state);
219
219
  }
220
- return created;
220
+ return createdElement;
221
221
  }
222
222
  } else if (element.node && !ifPassed) {
223
223
  element.node.remove();
@@ -126,10 +126,10 @@ const mergeIfExisted = (a, b) => {
126
126
  return a || b;
127
127
  };
128
128
  const mergeArray = (arr, exclude = ["parent", "node", "__element", "state", "context", "__ref"]) => {
129
- return arr.reduce((a, c) => deepMerge(a, deepClone(c, exclude)), {});
129
+ return arr.reduce((a, c) => deepMerge(a, (0, import_utils.deepCloneWithExtend)(c, exclude)), {});
130
130
  };
131
131
  const mergeAndCloneIfArray = (obj) => {
132
- return (0, import_utils.isArray)(obj) ? mergeArray(obj) : deepClone(obj);
132
+ return (0, import_utils.isArray)(obj) ? mergeArray(obj) : (0, import_utils.deepCloneWithExtend)(obj);
133
133
  };
134
134
  const flattenRecursive = (param, prop, stack = []) => {
135
135
  const objectized = mergeAndCloneIfArray(param);
package/methods/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { isDefined, isObject, isFunction, isObjectLike, isProduction } from '@domql/utils'
3
+ import { isDefined, isObject, isFunction, isObjectLike, isProduction, removeValueFromArray } from '@domql/utils'
4
4
  import { TREE } from '../tree'
5
5
  import { parseFilters, registry } from '../mixins'
6
6
 
@@ -107,6 +107,7 @@ export const remove = function () {
107
107
  element.log()
108
108
  }
109
109
  delete element.parent[element.key]
110
+ if (element.parent.__ref) element.parent.__ref.__children = removeValueFromArray(element.parent.__ref.__children, element.key)
110
111
  }
111
112
 
112
113
  export const get = function (param) {
package/mixins/content.js CHANGED
@@ -10,20 +10,24 @@ export const updateContent = function (params, options) {
10
10
  if (element.content.update) element.content.update(params, options)
11
11
  }
12
12
 
13
- export const removeContent = function (el) {
13
+ export const removeContent = function (el, opts = {}) {
14
14
  const element = el || this
15
15
  const { __ref } = element
16
-
17
- if (element.content) {
18
- if (element.content.node && element.node) {
19
- if (element.content.tag === 'fragment') element.node.innerHTML = ''
20
- else element.node.removeChild(element.content.node)
16
+ const contentElementKey = opts.contentElementKey || 'content'
17
+
18
+ if (element[contentElementKey]) {
19
+ if (element[contentElementKey].node && element.node) {
20
+ if (element[contentElementKey].tag === 'fragment') element.node.innerHTML = ''
21
+ else {
22
+ const contentNode = element[contentElementKey].node
23
+ if (contentNode.parentNode === element.node) element.node.removeChild(element[contentElementKey].node)
24
+ }
21
25
  }
22
26
 
23
27
  const { __cached } = __ref
24
- if (__cached && __cached.content) {
25
- if (__cached.content.tag === 'fragment') __cached.content.parent.node.innerHTML = ''
26
- else if (__cached.content && isFunction(__cached.content.remove)) __cached.content.remove()
28
+ if (__cached && __cached[contentElementKey]) {
29
+ if (__cached[contentElementKey].tag === 'fragment') __cached[contentElementKey].parent.node.innerHTML = ''
30
+ else if (__cached[contentElementKey] && isFunction(__cached[contentElementKey].remove)) __cached[contentElementKey].remove()
27
31
  }
28
32
 
29
33
  delete element.content
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/element",
3
- "version": "2.5.111",
3
+ "version": "2.5.113",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "index.js",
@@ -31,7 +31,7 @@
31
31
  "@domql/state": "latest",
32
32
  "@domql/utils": "latest"
33
33
  },
34
- "gitHead": "ec0f20662c99a27fa314328fc20e4c2ac2650cde",
34
+ "gitHead": "8436abbfa2752c4659982516ff9ad1db80862e42",
35
35
  "devDependencies": {
36
36
  "@babel/core": "^7.12.0"
37
37
  }
package/props/create.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { exec, isArray, isObject, deepClone, deepMerge } from '@domql/utils'
3
+ import { exec, isArray, isObject, deepCloneWithExtend, deepMerge } from '@domql/utils'
4
4
  import { IGNORE_PROPS_PARAMS } from './ignore'
5
5
 
6
6
  import { inheritParentProps } from './inherit'
@@ -36,7 +36,7 @@ export const syncProps = (props, element) => {
36
36
  // it was causing infinite loop at early days
37
37
  element.props = deepMerge(
38
38
  mergedProps,
39
- deepClone(execProps, IGNORE_PROPS_PARAMS),
39
+ deepCloneWithExtend(execProps, IGNORE_PROPS_PARAMS),
40
40
  IGNORE_PROPS_PARAMS
41
41
  )
42
42
  })
package/update.js CHANGED
@@ -223,12 +223,12 @@ const checkIfOnUpdate = (element, parent, options) => {
223
223
 
224
224
  delete element.__ref
225
225
  delete element.parent
226
- const created = create(element, parent, element.key, OPTIONS.create, attachOptions)
226
+ const createdElement = create(element, parent, element.key, OPTIONS.create, attachOptions)
227
227
  // check preventUpdate for an array (Line: 87)
228
228
  if (options.preventUpdate !== true && element.on && isFunction(element.on.update)) {
229
- applyEvent(element.on.update, created, created.state)
229
+ applyEvent(element.on.update, createdElement, createdElement.state)
230
230
  }
231
- return created
231
+ return createdElement
232
232
  }
233
233
  } else if (element.node && !ifPassed) {
234
234
  element.node.remove()
package/utils/object.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { isArray, isObject, isObjectLike, joinArrays } from '@domql/utils'
3
+ import { isArray, isObject, isObjectLike, joinArrays, deepCloneWithExtend } from '@domql/utils'
4
4
  import { IGNORE_STATE_PARAMS } from '@domql/state'
5
5
  import { IGNORE_PROPS_PARAMS } from '../props'
6
6
  import { METHODS } from '../methods'
@@ -115,14 +115,14 @@ export const mergeIfExisted = (a, b) => {
115
115
  * Merges array extends
116
116
  */
117
117
  export const mergeArray = (arr, exclude = ['parent', 'node', '__element', 'state', 'context', '__ref']) => {
118
- return arr.reduce((a, c) => deepMerge(a, deepClone(c, exclude)), {})
118
+ return arr.reduce((a, c) => deepMerge(a, deepCloneWithExtend(c, exclude)), {})
119
119
  }
120
120
 
121
121
  /**
122
122
  * Merges array extends
123
123
  */
124
124
  export const mergeAndCloneIfArray = obj => {
125
- return isArray(obj) ? mergeArray(obj) : deepClone(obj)
125
+ return isArray(obj) ? mergeArray(obj) : deepCloneWithExtend(obj)
126
126
  }
127
127
 
128
128
  /**