@domql/element 2.5.113 → 2.5.114

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,40 @@ 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
+ cb(changes, (0, import_utils.deepClone)(varCaches));
261
+ for (const key in changes) {
262
+ varCaches[key] = changes[key];
263
+ }
264
+ },
265
+ timeout: (cb, timeout) => {
266
+ if (!changed)
267
+ return;
268
+ const t = setTimeout(() => {
269
+ cb(changes);
270
+ clearTimeout(t);
271
+ }, timeout);
272
+ }
273
+ };
274
+ };
240
275
  const METHODS = [
241
276
  "set",
242
277
  "reset",
@@ -253,6 +288,7 @@ const METHODS = [
253
288
  "parse",
254
289
  "setProps",
255
290
  "parseDeep",
291
+ "variables",
256
292
  "if",
257
293
  "log",
258
294
  "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,37 @@ 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
+ cb(changes, deepClone(varCaches))
230
+ for (const key in changes) {
231
+ varCaches[key] = changes[key]
232
+ }
233
+ },
234
+ timeout: (cb, timeout) => {
235
+ if (!changed) return
236
+ const t = setTimeout(() => {
237
+ cb(changes)
238
+ clearTimeout(t)
239
+ }, timeout)
240
+ }
241
+ }
242
+ }
243
+
213
244
  export const METHODS = [
214
245
  'set',
215
246
  'reset',
@@ -226,6 +257,7 @@ export const METHODS = [
226
257
  'parse',
227
258
  'setProps',
228
259
  'parseDeep',
260
+ 'variables',
229
261
  'if',
230
262
  'log',
231
263
  '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.114",
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": "61b7ecee05aaf0d6682e5f3cdb11f0091e880f3d",
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
  }