@symbo.ls/create 2.11.447 → 2.11.450

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.
@@ -607,6 +607,7 @@ var require_object = __commonJS({
607
607
  exec: () => exec6,
608
608
  flattenRecursive: () => flattenRecursive,
609
609
  hasOwnProperty: () => hasOwnProperty,
610
+ isCyclic: () => isCyclic,
610
611
  isEmpty: () => isEmpty,
611
612
  isEmptyObject: () => isEmptyObject,
612
613
  isEqualDeep: () => isEqualDeep2,
@@ -732,20 +733,28 @@ var require_object = __commonJS({
732
733
  }
733
734
  return clone2;
734
735
  };
735
- var deepCloneWithExtend3 = (obj, excludeFrom = ["node"], options = {}) => {
736
+ var deepCloneWithExtend3 = (obj, excludeFrom = ["node"], options = {}, visited = /* @__PURE__ */ new WeakSet()) => {
737
+ if ((0, import_types.isObjectLike)(obj)) {
738
+ if (visited.has(obj)) {
739
+ return obj;
740
+ }
741
+ visited.add(obj);
742
+ }
736
743
  const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
737
744
  for (const prop in obj) {
738
745
  if (!Object.prototype.hasOwnProperty.call(obj, prop))
739
746
  continue;
740
747
  const objProp = obj[prop];
741
- if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp))
748
+ if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp)) {
742
749
  continue;
750
+ }
743
751
  if ((0, import_types.isObjectLike)(objProp)) {
744
- o[prop] = deepCloneWithExtend3(objProp, excludeFrom, options);
752
+ o[prop] = deepCloneWithExtend3(objProp, excludeFrom, options, visited);
745
753
  } else if ((0, import_types.isFunction)(objProp) && options.window) {
746
754
  o[prop] = (options.window || import_globals2.window).eval("(" + objProp.toString() + ")");
747
- } else
755
+ } else {
748
756
  o[prop] = objProp;
757
+ }
749
758
  }
750
759
  return o;
751
760
  };
@@ -1204,6 +1213,25 @@ var require_object = __commonJS({
1204
1213
  }
1205
1214
  }
1206
1215
  };
1216
+ var isCyclic = (obj) => {
1217
+ const seenObjects = [];
1218
+ function detect(obj2) {
1219
+ if (obj2 && typeof obj2 === "object") {
1220
+ if (seenObjects.indexOf(obj2) !== -1) {
1221
+ return true;
1222
+ }
1223
+ seenObjects.push(obj2);
1224
+ for (const key in obj2) {
1225
+ if (Object.hasOwnProperty.call(obj2, key) && detect(obj2[key])) {
1226
+ console.log(obj2, "cycle at " + key);
1227
+ return true;
1228
+ }
1229
+ }
1230
+ }
1231
+ return false;
1232
+ }
1233
+ return detect(obj);
1234
+ };
1207
1235
  }
1208
1236
  });
1209
1237
 
@@ -2452,6 +2480,7 @@ var require_cjs2 = __commonJS({
2452
2480
  exec: () => exec6,
2453
2481
  flattenRecursive: () => flattenRecursive,
2454
2482
  hasOwnProperty: () => hasOwnProperty,
2483
+ isCyclic: () => isCyclic,
2455
2484
  isEmpty: () => isEmpty,
2456
2485
  isEmptyObject: () => isEmptyObject,
2457
2486
  isEqualDeep: () => isEqualDeep2,
@@ -2577,20 +2606,28 @@ var require_cjs2 = __commonJS({
2577
2606
  }
2578
2607
  return clone2;
2579
2608
  };
2580
- var deepCloneWithExtend3 = (obj, excludeFrom = ["node"], options = {}) => {
2609
+ var deepCloneWithExtend3 = (obj, excludeFrom = ["node"], options = {}, visited = /* @__PURE__ */ new WeakSet()) => {
2610
+ if ((0, import_types.isObjectLike)(obj)) {
2611
+ if (visited.has(obj)) {
2612
+ return obj;
2613
+ }
2614
+ visited.add(obj);
2615
+ }
2581
2616
  const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
2582
2617
  for (const prop in obj) {
2583
2618
  if (!Object.prototype.hasOwnProperty.call(obj, prop))
2584
2619
  continue;
2585
2620
  const objProp = obj[prop];
2586
- if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp))
2621
+ if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp)) {
2587
2622
  continue;
2623
+ }
2588
2624
  if ((0, import_types.isObjectLike)(objProp)) {
2589
- o[prop] = deepCloneWithExtend3(objProp, excludeFrom, options);
2625
+ o[prop] = deepCloneWithExtend3(objProp, excludeFrom, options, visited);
2590
2626
  } else if ((0, import_types.isFunction)(objProp) && options.window) {
2591
2627
  o[prop] = (options.window || import_globals3.window).eval("(" + objProp.toString() + ")");
2592
- } else
2628
+ } else {
2593
2629
  o[prop] = objProp;
2630
+ }
2594
2631
  }
2595
2632
  return o;
2596
2633
  };
@@ -3049,6 +3086,25 @@ var require_cjs2 = __commonJS({
3049
3086
  }
3050
3087
  }
3051
3088
  };
3089
+ var isCyclic = (obj) => {
3090
+ const seenObjects = [];
3091
+ function detect(obj2) {
3092
+ if (obj2 && typeof obj2 === "object") {
3093
+ if (seenObjects.indexOf(obj2) !== -1) {
3094
+ return true;
3095
+ }
3096
+ seenObjects.push(obj2);
3097
+ for (const key in obj2) {
3098
+ if (Object.hasOwnProperty.call(obj2, key) && detect(obj2[key])) {
3099
+ console.log(obj2, "cycle at " + key);
3100
+ return true;
3101
+ }
3102
+ }
3103
+ }
3104
+ return false;
3105
+ }
3106
+ return detect(obj);
3107
+ };
3052
3108
  }
3053
3109
  });
3054
3110
  var require_function3 = __commonJS2({
@@ -13173,6 +13229,7 @@ var require_iterate = __commonJS({
13173
13229
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
13174
13230
  var iterate_exports = {};
13175
13231
  __export2(iterate_exports, {
13232
+ throughExecProps: () => throughExecProps,
13176
13233
  throughInitialDefine: () => throughInitialDefine,
13177
13234
  throughInitialExec: () => throughInitialExec,
13178
13235
  throughUpdatedDefine: () => throughUpdatedDefine,
@@ -13218,6 +13275,20 @@ var require_iterate = __commonJS({
13218
13275
  }
13219
13276
  return changes;
13220
13277
  };
13278
+ var throughExecProps = (element) => {
13279
+ const { __ref: ref } = element;
13280
+ const { props: props2 } = element;
13281
+ for (const k in props2) {
13282
+ const isDefine = k.startsWith("is") || k.startsWith("has") || k.startsWith("use");
13283
+ const cachedExecProp = ref.__execProps[k];
13284
+ if ((0, import_utils32.isFunction)(cachedExecProp)) {
13285
+ props2[k] = (0, import_utils32.exec)(cachedExecProp, element);
13286
+ } else if (isDefine && (0, import_utils32.isFunction)(props2[k])) {
13287
+ ref.__execProps[k] = props2[k];
13288
+ props2[k] = (0, import_utils32.exec)(props2[k], element);
13289
+ }
13290
+ }
13291
+ };
13221
13292
  var throughInitialDefine = (element) => {
13222
13293
  const { define, context, __ref: ref } = element;
13223
13294
  let defineObj = {};
@@ -13427,6 +13498,7 @@ var require_node2 = __commonJS({
13427
13498
  if ((0, import_utils32.isFunction)(node3.setAttribute))
13428
13499
  node3.setAttribute("key", element.key);
13429
13500
  }
13501
+ (0, import_iterate.throughExecProps)(element);
13430
13502
  (0, import_iterate.throughInitialDefine)(element);
13431
13503
  (0, import_iterate.throughInitialExec)(element);
13432
13504
  if (element.tag !== "string" && element.tag !== "fragment") {
@@ -13560,16 +13632,13 @@ var require_update2 = __commonJS({
13560
13632
  if (beforeUpdateReturns === false)
13561
13633
  return element;
13562
13634
  }
13563
- const overwriteChanges = (0, import_utils32.overwriteDeep)(element, params, import_utils210.METHODS_EXL);
13564
- const execChanges = (0, import_iterate.throughUpdatedExec)(element, { ignore: UPDATE_DEFAULT_OPTIONS });
13565
- const definedChanges = (0, import_iterate.throughUpdatedDefine)(element);
13635
+ (0, import_utils32.overwriteDeep)(element, params, import_utils210.METHODS_EXL);
13636
+ (0, import_iterate.throughExecProps)(element);
13637
+ (0, import_iterate.throughUpdatedExec)(element, { ignore: UPDATE_DEFAULT_OPTIONS });
13638
+ (0, import_iterate.throughUpdatedDefine)(element);
13566
13639
  if (!options.isForced && !options.preventListeners) {
13567
13640
  (0, import_event.triggerEventOn)("beforeClassAssign", element, options);
13568
13641
  }
13569
- if (options.stackChanges && element.__stackChanges) {
13570
- const stackChanges = (0, import_utils32.merge)(definedChanges, (0, import_utils32.merge)(execChanges, overwriteChanges));
13571
- element.__stackChanges.push(stackChanges);
13572
- }
13573
13642
  if (!ref.__if)
13574
13643
  return false;
13575
13644
  if (!node3) {
@@ -13614,6 +13683,9 @@ var require_update2 = __commonJS({
13614
13683
  if (!canUpdate)
13615
13684
  continue;
13616
13685
  const lazyLoad = element.props.lazyLoad || options.lazyLoad;
13686
+ if (options.onEachUpdate) {
13687
+ options.onEachUpdate(param, element, element.state, element.context);
13688
+ }
13617
13689
  const childUpdateCall = () => update.call(prop, params[prop], {
13618
13690
  ...options,
13619
13691
  currentSnapshot: snapshotOnCallee,
@@ -13779,31 +13851,31 @@ var require_set2 = __commonJS({
13779
13851
  var import_update = __toESM2(require_update2(), 1);
13780
13852
  var import__ = require_methods2();
13781
13853
  var import_content = require_content();
13782
- var addMethods = (element, parent) => {
13854
+ var addMethods = (element, parent, options) => {
13783
13855
  const proto = {
13784
- set: import_set.default.bind(element),
13785
- reset: import_set.reset.bind(element),
13786
- update: import_update.default.bind(element),
13787
- variables: import__.variables.bind(element),
13788
- remove: import__.remove.bind(element),
13789
- updateContent: import_content.updateContent.bind(element),
13790
- removeContent: import_content.removeContent.bind(element),
13791
- setProps: import__.setProps.bind(element),
13792
- lookup: import__.lookup.bind(element),
13793
- lookdown: import__.lookdown.bind(element),
13794
- lookdownAll: import__.lookdownAll.bind(element),
13795
- setNodeStyles: import__.setNodeStyles.bind(element),
13796
- spotByPath: import__.spotByPath.bind(element),
13797
- parse: import__.parse.bind(element),
13798
- parseDeep: import__.parseDeep.bind(element),
13799
- keys: import__.keys.bind(element),
13800
- nextElement: import__.nextElement.bind(element),
13801
- previousElement: import__.previousElement.bind(element)
13856
+ set: import_set.default,
13857
+ reset: import_set.reset,
13858
+ update: import_update.default,
13859
+ variables: import__.variables,
13860
+ remove: import__.remove,
13861
+ updateContent: import_content.updateContent,
13862
+ removeContent: import_content.removeContent,
13863
+ setProps: import__.setProps,
13864
+ lookup: import__.lookup,
13865
+ lookdown: import__.lookdown,
13866
+ lookdownAll: import__.lookdownAll,
13867
+ setNodeStyles: import__.setNodeStyles,
13868
+ spotByPath: import__.spotByPath,
13869
+ parse: import__.parse,
13870
+ parseDeep: import__.parseDeep,
13871
+ keys: import__.keys,
13872
+ nextElement: import__.nextElement,
13873
+ previousElement: import__.previousElement
13802
13874
  };
13803
13875
  if (element.context.methods)
13804
13876
  (0, import_utils32.merge)(proto, element.context.methods);
13805
13877
  if ((0, import_utils32.isDevelopment)())
13806
- proto.log = import__.log.bind(element);
13878
+ proto.log = import__.log;
13807
13879
  Object.setPrototypeOf(element, proto);
13808
13880
  };
13809
13881
  }
@@ -14060,6 +14132,8 @@ var require_create4 = __commonJS({
14060
14132
  ref.__defineCache = {};
14061
14133
  if (!ref.__exec)
14062
14134
  ref.__exec = {};
14135
+ if (!ref.__execProps)
14136
+ ref.__execProps = {};
14063
14137
  if (!ref.__class)
14064
14138
  ref.__class = {};
14065
14139
  if (!ref.__classNames)
@@ -14268,7 +14342,7 @@ var require_cjs13 = __commonJS({
14268
14342
  module2.exports = __toCommonJS2(domql_exports);
14269
14343
  var import_element = require_cjs12();
14270
14344
  var create2 = (element, parent, key, options) => {
14271
- var _a, _b, _c;
14345
+ var _a, _b, _c, _d, _e;
14272
14346
  const domqlElement = (0, import_element.create)(element, parent, key, options);
14273
14347
  const complete = (_a = domqlElement.on) == null ? void 0 : _a.complete;
14274
14348
  if (complete)
@@ -14276,6 +14350,12 @@ var require_cjs13 = __commonJS({
14276
14350
  const onComplete = (_b = domqlElement.props) == null ? void 0 : _b.onComplete;
14277
14351
  if (onComplete)
14278
14352
  (_c = domqlElement.props) == null ? void 0 : _c.onComplete(element, element.state, element.context, options);
14353
+ const initInspect = (_d = domqlElement.on) == null ? void 0 : _d.initInspect;
14354
+ if (initInspect)
14355
+ domqlElement.on.initInspect(element, element.state, element.context, options);
14356
+ const initSync = (_e = domqlElement.on) == null ? void 0 : _e.initSync;
14357
+ if (initSync)
14358
+ domqlElement.on.initSync(element, element.state, element.context, options);
14279
14359
  return domqlElement;
14280
14360
  };
14281
14361
  var domql_default = {
@@ -17310,10 +17390,10 @@ var Block = {
17310
17390
  display: ({ props: props2, deps }) => !deps.isUndefined(props2.display) && {
17311
17391
  display: props2.display
17312
17392
  },
17313
- show: (el, s, ctx) => ctx.utils.exec(el.props.show, el, s) === false && {
17393
+ show: (el, s, ctx) => !!(ctx.utils.exec(el.props.show, el, s) === false) && {
17314
17394
  display: "none !important"
17315
17395
  },
17316
- hide: (el, s, ctx) => ctx.utils.exec(el.props.hide, el, s) && {
17396
+ hide: (el, s, ctx) => !!ctx.utils.exec(el.props.hide, el, s) && {
17317
17397
  display: "none !important"
17318
17398
  },
17319
17399
  height: ({ props: props2, deps }) => deps.transformSizeRatio("height", props2),
@@ -18222,14 +18302,14 @@ var applyVariableProps = (key, props2, result, element) => {
18222
18302
  };
18223
18303
  var applyConditionalCaseProps = (key, props2, result, element) => {
18224
18304
  const caseKey = key.slice(1);
18225
- const isPropTrue = element.props[caseKey] || element.state[caseKey] || element[caseKey];
18305
+ const isPropTrue = element.props[caseKey] === true || element.state[caseKey] || element[caseKey];
18226
18306
  if (!isPropTrue)
18227
18307
  return;
18228
18308
  return (0, import_utils7.overwriteDeep)(result, convertPropsToClass(props2, result, element));
18229
18309
  };
18230
18310
  var applyConditionalFalsyProps = (key, props2, result, element) => {
18231
18311
  const caseKey = key.slice(1);
18232
- const isPropTrue = element.props[caseKey] || element.state[caseKey] || element[caseKey];
18312
+ const isPropTrue = element.props[caseKey] === true || element.state[caseKey] || element[caseKey];
18233
18313
  if (!isPropTrue)
18234
18314
  return (0, import_utils7.overwriteDeep)(result, convertPropsToClass(props2, result, element));
18235
18315
  };
@@ -20758,8 +20838,8 @@ var Pills = {
20758
20838
  boxSize: "Y2",
20759
20839
  round: "A",
20760
20840
  background: "currentColor",
20761
- active: parseInt(key) === parseInt(state.active || parent.props.active),
20762
- "!active": { opacity: 0.35 }
20841
+ isActive: parseInt(key) === parseInt(state.active || parent.props.active),
20842
+ "!isActive": { opacity: 0.35 }
20763
20843
  })
20764
20844
  },
20765
20845
  on: {
@@ -21507,6 +21587,8 @@ var DropdownList = {
21507
21587
  style: { listStyleType: "none" },
21508
21588
  transition: "B defaultBezier",
21509
21589
  transitionProperty: "transform, opacity, visibility",
21590
+ children: ({ props: props2 }) => props2.options || [],
21591
+ childrenAs: "props",
21510
21592
  ".hidden": {
21511
21593
  transform: "translate3d(0,10%,0)",
21512
21594
  opacity: 0,
@@ -21516,8 +21598,8 @@ var DropdownList = {
21516
21598
  childExtend: {
21517
21599
  extend: "Button",
21518
21600
  state: {},
21519
- props: ({ key, state }) => ({
21520
- active: state.active === key,
21601
+ props: {
21602
+ isActive: ({ key, state }) => state.active === key,
21521
21603
  position: "relative",
21522
21604
  round: "0",
21523
21605
  align: "center flex-end",
@@ -21532,7 +21614,7 @@ var DropdownList = {
21532
21614
  }
21533
21615
  },
21534
21616
  Icon: {
21535
- active: state.active === key,
21617
+ isActive: ({ key, state }) => state.active === key,
21536
21618
  name: "checkmark",
21537
21619
  opacity: "0.1",
21538
21620
  ".active": { opacity: "1" }
@@ -21542,9 +21624,8 @@ var DropdownList = {
21542
21624
  "@light": { border: "gray11, solid" },
21543
21625
  borderWidth: "1px 0 0"
21544
21626
  }
21545
- })
21546
- },
21547
- $propsCollection: ({ props: props2 }) => props2.options
21627
+ }
21628
+ }
21548
21629
  };
21549
21630
  var DropdownParent = {
21550
21631
  props: {
@@ -27909,7 +27990,8 @@ var prepareMethods = (context) => {
27909
27990
  require: context.utils.require,
27910
27991
  requireOnDemand: context.utils.requireOnDemand,
27911
27992
  call: function(fnKey, ...args) {
27912
- return (context.utils[fnKey] || context.methods[fnKey]).call(this, ...args);
27993
+ var _a;
27994
+ return (_a = context.utils[fnKey] || context.methods[fnKey]) == null ? void 0 : _a.call(this, ...args);
27913
27995
  }
27914
27996
  };
27915
27997
  };
@@ -85,7 +85,8 @@ const prepareMethods = (context) => {
85
85
  require: context.utils.require,
86
86
  requireOnDemand: context.utils.requireOnDemand,
87
87
  call: function(fnKey, ...args) {
88
- return (context.utils[fnKey] || context.methods[fnKey]).call(this, ...args);
88
+ var _a;
89
+ return (_a = context.utils[fnKey] || context.methods[fnKey]) == null ? void 0 : _a.call(this, ...args);
89
90
  }
90
91
  };
91
92
  };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@symbo.ls/create",
3
- "version": "2.11.447",
3
+ "version": "2.11.450",
4
4
  "license": "MIT",
5
- "gitHead": "e59d0443eec7f94e5737a916d49daf00d1ee9c47",
5
+ "gitHead": "4153a92a328d62db727ee4c99cd53f389ee6e05b",
6
6
  "files": [
7
7
  "src",
8
8
  "dist"
@@ -34,11 +34,11 @@
34
34
  "@domql/emotion": "^2.5.0",
35
35
  "@domql/report": "^2.5.0",
36
36
  "@domql/router": "^2.5.0",
37
- "@symbo.ls/fetch": "^2.11.446",
38
- "@symbo.ls/init": "^2.11.446",
39
- "@symbo.ls/scratch": "^2.11.446",
40
- "@symbo.ls/sync": "^2.11.447",
41
- "@symbo.ls/uikit": "^2.11.447",
37
+ "@symbo.ls/fetch": "^2.11.450",
38
+ "@symbo.ls/init": "^2.11.450",
39
+ "@symbo.ls/scratch": "^2.11.450",
40
+ "@symbo.ls/sync": "^2.11.450",
41
+ "@symbo.ls/uikit": "^2.11.450",
42
42
  "@symbo.ls/utils": "^2.11.446",
43
43
  "domql": "^2.5.0"
44
44
  },
package/src/prepare.js CHANGED
@@ -56,7 +56,7 @@ export const prepareMethods = (context) => {
56
56
  require: context.utils.require,
57
57
  requireOnDemand: context.utils.requireOnDemand,
58
58
  call: function (fnKey, ...args) {
59
- return (context.utils[fnKey] || context.methods[fnKey]).call(this, ...args)
59
+ return (context.utils[fnKey] || context.methods[fnKey])?.call(this, ...args)
60
60
  }
61
61
  }
62
62
  }