tutuca 0.9.52 → 0.9.53

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.
@@ -13630,9 +13630,6 @@ class Renderer {
13630
13630
  this.comps = comps;
13631
13631
  this.cache = new WeakMapDomCache;
13632
13632
  }
13633
- getSeqInfo(seq) {
13634
- return isIndexed(seq) ? imIndexedIter : isKeyed(seq) ? imKeyedIter : seq?.[SEQ_INFO] ?? unkIter;
13635
- }
13636
13633
  renderTag(tag, attrs, childs) {
13637
13634
  return h(tag, attrs, childs);
13638
13635
  }
@@ -13690,7 +13687,7 @@ class Renderer {
13690
13687
  const { seq, filter, loopWith } = iterInfo.eval(stack);
13691
13688
  const r = [];
13692
13689
  const iterData = loopWith.call(stack.it, seq);
13693
- this.getSeqInfo(seq)(seq, (key, value, attrName) => {
13690
+ getSeqInfo(seq)(seq, (key, value, attrName) => {
13694
13691
  if (filter.call(stack.it, key, value, iterData)) {
13695
13692
  const dom = this.renderIt(stack.enter(value, { key }, true), nodeId, key, viewName);
13696
13693
  this.pushEachEntry(r, nodeId, attrName, key, dom);
@@ -13703,7 +13700,7 @@ class Renderer {
13703
13700
  const r = [];
13704
13701
  const it = stack.it;
13705
13702
  const iterData = loopWith.call(it, seq);
13706
- this.getSeqInfo(seq)(seq, (key, value, attrName) => {
13703
+ getSeqInfo(seq)(seq, (key, value, attrName) => {
13707
13704
  if (filter.call(it, key, value, iterData)) {
13708
13705
  const cachePath = enricher ? [it, value] : [value];
13709
13706
  const binds = { key, value };
@@ -13740,7 +13737,7 @@ class Renderer {
13740
13737
  return new VComment(`§${JSON.stringify(info)}§`);
13741
13738
  }
13742
13739
  }
13743
- var DATASET_ATTRS, imIndexedIter = (seq, visit) => {
13740
+ var DATASET_ATTRS, getSeqInfo = (seq) => isIndexed(seq) ? imIndexedIter : isKeyed(seq) ? imKeyedIter : seq?.[SEQ_INFO] ?? unkIter, imIndexedIter = (seq, visit) => {
13744
13741
  let i = 0;
13745
13742
  for (const v of seq)
13746
13743
  visit(i++, v, "si");
@@ -14601,9 +14601,6 @@ class Renderer {
14601
14601
  this.comps = comps;
14602
14602
  this.cache = new WeakMapDomCache;
14603
14603
  }
14604
- getSeqInfo(seq) {
14605
- return isIndexed(seq) ? imIndexedIter : isKeyed(seq) ? imKeyedIter : seq?.[SEQ_INFO] ?? unkIter;
14606
- }
14607
14604
  renderTag(tag, attrs, childs) {
14608
14605
  return h(tag, attrs, childs);
14609
14606
  }
@@ -14661,7 +14658,7 @@ class Renderer {
14661
14658
  const { seq, filter, loopWith } = iterInfo.eval(stack);
14662
14659
  const r = [];
14663
14660
  const iterData = loopWith.call(stack.it, seq);
14664
- this.getSeqInfo(seq)(seq, (key, value, attrName) => {
14661
+ getSeqInfo(seq)(seq, (key, value, attrName) => {
14665
14662
  if (filter.call(stack.it, key, value, iterData)) {
14666
14663
  const dom = this.renderIt(stack.enter(value, { key }, true), nodeId, key, viewName);
14667
14664
  this.pushEachEntry(r, nodeId, attrName, key, dom);
@@ -14674,7 +14671,7 @@ class Renderer {
14674
14671
  const r = [];
14675
14672
  const it = stack.it;
14676
14673
  const iterData = loopWith.call(it, seq);
14677
- this.getSeqInfo(seq)(seq, (key, value, attrName) => {
14674
+ getSeqInfo(seq)(seq, (key, value, attrName) => {
14678
14675
  if (filter.call(it, key, value, iterData)) {
14679
14676
  const cachePath = enricher ? [it, value] : [value];
14680
14677
  const binds = { key, value };
@@ -14711,6 +14708,7 @@ class Renderer {
14711
14708
  return new VComment(`§${JSON.stringify(info)}§`);
14712
14709
  }
14713
14710
  }
14711
+ var getSeqInfo = (seq) => isIndexed(seq) ? imIndexedIter : isKeyed(seq) ? imKeyedIter : seq?.[SEQ_INFO] ?? unkIter;
14714
14712
  var imIndexedIter = (seq, visit) => {
14715
14713
  let i = 0;
14716
14714
  for (const v of seq)
@@ -15036,6 +15034,51 @@ function docComponents(normalized, { name = null } = {}) {
15036
15034
  const picked = name === null ? comps : comps.filter((c) => c.name === name);
15037
15035
  return new ComponentDocs({ items: getComponentsDocs(picked) });
15038
15036
  }
15037
+ // src/util/testing.js
15038
+ var filterAlwaysTrue2 = () => true;
15039
+ var nullLoopWith2 = (seq) => ({ seq });
15040
+ var plainArrayIter = (seq, visit) => {
15041
+ for (let i = 0;i < seq.length; i++)
15042
+ visit(i, seq[i]);
15043
+ };
15044
+ var plainMapIter = (seq, visit) => {
15045
+ for (const [k, v] of seq.entries())
15046
+ visit(k, v);
15047
+ };
15048
+ function pickIter(seq) {
15049
+ if (Array.isArray(seq))
15050
+ return plainArrayIter;
15051
+ if (seq instanceof Map)
15052
+ return plainMapIter;
15053
+ return getSeqInfo(seq);
15054
+ }
15055
+ function resolveAlter(Comp, name) {
15056
+ if (name == null)
15057
+ return null;
15058
+ const fn = Comp.alter?.[name];
15059
+ if (typeof fn !== "function") {
15060
+ throw new Error(`alter handler '${name}' not found on component '${Comp.name}'`);
15061
+ }
15062
+ return fn;
15063
+ }
15064
+ function collectIterBindings(Comp, compInstance, seq, opts = {}) {
15065
+ const whenFn = resolveAlter(Comp, opts.when) ?? filterAlwaysTrue2;
15066
+ const loopWithFn = resolveAlter(Comp, opts.loopWith) ?? nullLoopWith2;
15067
+ const enrichFn = resolveAlter(Comp, opts.enrichWith);
15068
+ const it = compInstance;
15069
+ const iterData = loopWithFn.call(it, seq);
15070
+ const out = [];
15071
+ const iter = pickIter(seq);
15072
+ iter(seq, (key, value) => {
15073
+ if (!whenFn.call(it, key, value, iterData))
15074
+ return;
15075
+ const binds = { key, value };
15076
+ if (enrichFn)
15077
+ enrichFn.call(it, binds, key, value, iterData);
15078
+ out.push(binds);
15079
+ });
15080
+ return out;
15081
+ }
15039
15082
 
15040
15083
  // dev.js
15041
15084
  async function test3(opts = {}) {
@@ -15156,6 +15199,7 @@ export {
15156
15199
  component,
15157
15200
  compileClassesToStyleText,
15158
15201
  compileClassesToStyle,
15202
+ collectIterBindings,
15159
15203
  checkComponent,
15160
15204
  check,
15161
15205
  UNSUPPORTED_EXPR_SYNTAX,