bobe 0.0.27 → 0.0.28
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/dist/bobe.cjs.js +16 -7
- package/dist/bobe.cjs.js.map +1 -1
- package/dist/bobe.esm.js +16 -7
- package/dist/bobe.esm.js.map +1 -1
- package/dist/index.umd.js +16 -7
- package/dist/index.umd.js.map +1 -1
- package/package.json +3 -3
package/dist/bobe.esm.js
CHANGED
|
@@ -195,6 +195,8 @@ function macInc(arr) {
|
|
|
195
195
|
return candyLast;
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
const KEY_INDEX = '__BOBE_KEY_INDEX';
|
|
199
|
+
|
|
198
200
|
const _excluded = ["dentStack", "isFirstToken"];
|
|
199
201
|
class Interpreter {
|
|
200
202
|
constructor(tokenizer) {
|
|
@@ -539,9 +541,9 @@ class Interpreter {
|
|
|
539
541
|
}
|
|
540
542
|
if (s > e1) {
|
|
541
543
|
if (s <= e2) {
|
|
542
|
-
const
|
|
544
|
+
const firstBefore = s > 0 ? children.at(-1)?.realAfter || forNode.realBefore : forNode.realBefore;
|
|
543
545
|
for (let i = e2; i >= s; i--) {
|
|
544
|
-
this.insertForItem(forNode, i, data, newChildren,
|
|
546
|
+
this.insertForItem(forNode, i, data, newChildren, firstBefore, snapshotForUpdate);
|
|
545
547
|
}
|
|
546
548
|
}
|
|
547
549
|
} else if (s > e2) {
|
|
@@ -664,6 +666,9 @@ class Interpreter {
|
|
|
664
666
|
if (indexName) {
|
|
665
667
|
child.data[indexName] = i;
|
|
666
668
|
}
|
|
669
|
+
} else {
|
|
670
|
+
indexName = indexName || KEY_INDEX;
|
|
671
|
+
child.data[indexName] = i;
|
|
667
672
|
}
|
|
668
673
|
}
|
|
669
674
|
forItemId = 0;
|
|
@@ -693,9 +698,10 @@ class Interpreter {
|
|
|
693
698
|
getItemData(forNode, i, parentData) {
|
|
694
699
|
const arr = forNode.arr,
|
|
695
700
|
itemExp = forNode.itemExp,
|
|
696
|
-
indexName = forNode.indexName,
|
|
697
701
|
vars = forNode.vars,
|
|
698
|
-
arrSignal = forNode.arrSignal
|
|
702
|
+
arrSignal = forNode.arrSignal,
|
|
703
|
+
getKey = forNode.getKey;
|
|
704
|
+
let indexName = forNode.indexName;
|
|
699
705
|
let data;
|
|
700
706
|
if (typeof itemExp === 'string') {
|
|
701
707
|
data = deepSignal(indexName ? {
|
|
@@ -705,13 +711,16 @@ class Interpreter {
|
|
|
705
711
|
[itemExp]: arr[i]
|
|
706
712
|
}, getPulling());
|
|
707
713
|
} else {
|
|
708
|
-
|
|
714
|
+
indexName = indexName ?? KEY_INDEX;
|
|
715
|
+
const rawData = {
|
|
709
716
|
[indexName]: i
|
|
710
|
-
}
|
|
711
|
-
|
|
717
|
+
};
|
|
718
|
+
data = deepSignal(rawData, getPulling());
|
|
719
|
+
const computedData = new Computed(() => itemExp(arrSignal.get()[getKey ? data[indexName] : i]));
|
|
712
720
|
const cells = data[Keys.Meta].cells;
|
|
713
721
|
for (let i = 0; i < vars.length; i++) {
|
|
714
722
|
const name = vars[i];
|
|
723
|
+
rawData[name] = undefined;
|
|
715
724
|
cells.set(name, new Computed(() => computedData.get()[name]));
|
|
716
725
|
}
|
|
717
726
|
}
|