@domql/element 2.5.113 → 2.5.115

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.
@@ -34,7 +34,8 @@ __export(methods_exports, {
34
34
  remove: () => remove,
35
35
  setNodeStyles: () => setNodeStyles,
36
36
  setProps: () => setProps,
37
- spotByPath: () => spotByPath
37
+ spotByPath: () => spotByPath,
38
+ variables: () => variables
38
39
  });
39
40
  module.exports = __toCommonJS(methods_exports);
40
41
  var import_utils = require("@domql/utils");
@@ -237,6 +238,41 @@ const previousElement = function(el) {
237
238
  const currentIndex = __children.indexOf(key);
238
239
  return parent[__children[currentIndex - 1]];
239
240
  };
241
+ const variables = function(obj = {}) {
242
+ const element = this;
243
+ if (!element.data)
244
+ element.data = {};
245
+ if (!element.data.varCaches)
246
+ element.data.varCaches = {};
247
+ const varCaches = element.data.varCaches;
248
+ const changes = {};
249
+ let changed;
250
+ for (const key in obj) {
251
+ if (obj[key] !== varCaches[key]) {
252
+ changed = true;
253
+ changes[key] = obj[key];
254
+ }
255
+ }
256
+ return {
257
+ changed: (cb) => {
258
+ if (!changed)
259
+ return;
260
+ const returns = cb(changes, (0, import_utils.deepClone)(varCaches));
261
+ for (const key in changes) {
262
+ varCaches[key] = changes[key];
263
+ }
264
+ return returns;
265
+ },
266
+ timeout: (cb, timeout) => {
267
+ if (!changed)
268
+ return;
269
+ const t = setTimeout(() => {
270
+ cb(changes);
271
+ clearTimeout(t);
272
+ }, timeout);
273
+ }
274
+ };
275
+ };
240
276
  const METHODS = [
241
277
  "set",
242
278
  "reset",
@@ -253,6 +289,7 @@ const METHODS = [
253
289
  "parse",
254
290
  "setProps",
255
291
  "parseDeep",
292
+ "variables",
256
293
  "if",
257
294
  "log",
258
295
  "nextElement",
@@ -41,6 +41,7 @@ const addMethods = (element, parent) => {
41
41
  set: import_set.default.bind(element),
42
42
  reset: import_set.reset.bind(element),
43
43
  update: import_update.default.bind(element),
44
+ variables: import__.variables.bind(element),
44
45
  remove: import__.remove.bind(element),
45
46
  updateContent: import_content.updateContent.bind(element),
46
47
  removeContent: import_content.removeContent.bind(element),
@@ -61,6 +61,7 @@ var registry_default = {
61
61
  remove: {},
62
62
  updateContent: {},
63
63
  removeContent: {},
64
+ variables: {},
64
65
  lookup: {},
65
66
  lookdown: {},
66
67
  lookdownAll: {},
package/dist/cjs/set.js CHANGED
@@ -66,6 +66,7 @@ const set = function(params, options = {}, el) {
66
66
  if (options.preventContentUpdate === true && !hasCollection)
67
67
  return;
68
68
  if (ref.__noCollectionDifference || __contentRef && __contentRef.__cached && (0, import_utils.deepContains)(params, content)) {
69
+ console.log((0, import_utils.deepContains)(params, content));
69
70
  if (content == null ? void 0 : content.update)
70
71
  content.update();
71
72
  return;
package/methods/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { isDefined, isObject, isFunction, isObjectLike, isProduction, removeValueFromArray } from '@domql/utils'
3
+ import { isDefined, isObject, isFunction, isObjectLike, isProduction, removeValueFromArray, deepClone } from '@domql/utils'
4
4
  import { TREE } from '../tree'
5
5
  import { parseFilters, registry } from '../mixins'
6
6
 
@@ -210,6 +210,38 @@ export const previousElement = function (el) {
210
210
  return parent[__children[currentIndex - 1]]
211
211
  }
212
212
 
213
+ export const variables = function (obj = {}) {
214
+ const element = this
215
+ if (!element.data) element.data = {}
216
+ if (!element.data.varCaches) element.data.varCaches = {}
217
+ const varCaches = element.data.varCaches
218
+ const changes = {}
219
+ let changed
220
+ for (const key in obj) {
221
+ if (obj[key] !== varCaches[key]) {
222
+ changed = true
223
+ changes[key] = obj[key]
224
+ }
225
+ }
226
+ return {
227
+ changed: (cb) => {
228
+ if (!changed) return
229
+ const returns = cb(changes, deepClone(varCaches))
230
+ for (const key in changes) {
231
+ varCaches[key] = changes[key]
232
+ }
233
+ return returns
234
+ },
235
+ timeout: (cb, timeout) => {
236
+ if (!changed) return
237
+ const t = setTimeout(() => {
238
+ cb(changes)
239
+ clearTimeout(t)
240
+ }, timeout)
241
+ }
242
+ }
243
+ }
244
+
213
245
  export const METHODS = [
214
246
  'set',
215
247
  'reset',
@@ -226,6 +258,7 @@ export const METHODS = [
226
258
  'parse',
227
259
  'setProps',
228
260
  'parseDeep',
261
+ 'variables',
229
262
  'if',
230
263
  'log',
231
264
  'nextElement',
package/methods/set.js CHANGED
@@ -14,6 +14,7 @@ import {
14
14
  remove,
15
15
  spotByPath,
16
16
  log,
17
+ variables,
17
18
  keys,
18
19
  parse,
19
20
  parseDeep,
@@ -28,6 +29,7 @@ export const addMethods = (element, parent) => {
28
29
  set: set.bind(element),
29
30
  reset: reset.bind(element),
30
31
  update: update.bind(element),
32
+ variables: variables.bind(element),
31
33
  remove: remove.bind(element),
32
34
  updateContent: updateContent.bind(element),
33
35
  removeContent: removeContent.bind(element),
@@ -45,6 +45,7 @@ export default {
45
45
  remove: {},
46
46
  updateContent: {},
47
47
  removeContent: {},
48
+ variables: {},
48
49
  lookup: {},
49
50
  lookdown: {},
50
51
  lookdownAll: {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/element",
3
- "version": "2.5.113",
3
+ "version": "2.5.115",
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": "8436abbfa2752c4659982516ff9ad1db80862e42",
34
+ "gitHead": "9a5b056f557d5dca04d5fd0908411a53e5bad2f2",
35
35
  "devDependencies": {
36
36
  "@babel/core": "^7.12.0"
37
37
  }
package/set.js CHANGED
@@ -37,6 +37,7 @@ const set = function (params, options = {}, el) {
37
37
  if (options.preventContentUpdate === true && !hasCollection) return
38
38
 
39
39
  if (ref.__noCollectionDifference || (__contentRef && __contentRef.__cached && deepContains(params, content))) {
40
+ console.log(deepContains(params, content))
40
41
  if (content?.update) content.update()
41
42
  return
42
43
  }