Skip to content

Commit

Permalink
version 3.2.0-alpha.37
Browse files Browse the repository at this point in the history
  • Loading branch information
antonmak1 committed Apr 5, 2024
1 parent 361e83e commit 78b924b
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 38 deletions.
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "cample",
"version": "3.2.0-alpha.36",
"version": "3.2.0-alpha.37",
"description": "Cample.js - fast modern javascript framework. Reactivity without virtual DOM!",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
42 changes: 29 additions & 13 deletions src/core/components/each/each.ts
Expand Up @@ -173,11 +173,18 @@ export class Each extends DataComponent {
currentNode: NodeType,
indexData: any,
eachIndex: number,
importData: any
importData: any,
oldData: any
) => {
const { values, nodes, stack } = currentNode;
for (let i = 0; i < values.length; i++) {
const value = values[i];
const { values, nodes, stack, valuesImport } = currentNode;
if (oldData[eachIndex] !== indexData) {
for (let i = 0; i < values.length; i++) {
const value = values[i];
value(nodes, stack, indexData, importData, eachIndex, value);
}
}
for (let i = 0; i < (valuesImport as any).length; i++) {
const value = (valuesImport as any)[i];
value(nodes, stack, indexData, importData, eachIndex, value);
}
};
Expand Down Expand Up @@ -303,7 +310,8 @@ export class Each extends DataComponent {
oldNodes[oldFirstIndex],
data[newFirstIndex],
newFirstIndex,
importData
importData,
oldData
);
newData[newFirstIndex++] = oldNodes[oldFirstIndex++];
continue;
Expand All @@ -323,7 +331,8 @@ export class Each extends DataComponent {
oldNodes[currentOldLastIndex],
data[currentNewLastIndex],
currentNewLastIndex,
importData
importData,
oldData
);
newData[currentNewLastIndex] = oldNodes[currentOldLastIndex];
if (
Expand All @@ -344,13 +353,15 @@ export class Each extends DataComponent {
oldNodes[currentOldLastIndex],
data[newFirstIndex],
newFirstIndex,
importData
importData,
oldData
);
renderValuesNode(
oldNodes[oldFirstIndex],
data[currentNewLastIndex],
currentNewLastIndex,
importData
importData,
oldData
);
const el1 = (newData[newFirstIndex] =
oldNodes[currentOldLastIndex]).el as Element;
Expand Down Expand Up @@ -460,7 +471,8 @@ export class Each extends DataComponent {
oldNodes[oldFirstIndex],
data[newFirstIndex],
newFirstIndex,
importData
importData,
oldData
);
newData[newFirstIndex] = oldNodes[oldFirstIndex++];
if (
Expand All @@ -486,7 +498,8 @@ export class Each extends DataComponent {
oldNodes[currentOldLastIndex],
data[currentNewLastIndex],
currentNewLastIndex,
importData
importData,
oldData
);
newData[currentNewLastIndex] =
oldNodes[currentOldLastIndex];
Expand All @@ -508,13 +521,15 @@ export class Each extends DataComponent {
oldNodes[currentOldLastIndex],
data[newFirstIndex],
newFirstIndex,
importData
importData,
oldData
);
renderValuesNode(
oldNodes[oldFirstIndex],
data[currentNewLastIndex],
currentNewLastIndex,
importData
importData,
oldData
);
const el1 = (newData[newFirstIndex] =
oldNodes[currentOldLastIndex]).el as Element;
Expand All @@ -541,7 +556,8 @@ export class Each extends DataComponent {
newData[newFirstIndex],
data[newFirstIndex],
newFirstIndex++,
importData
importData,
oldData
);
oldNodes[currentIndex] = undefined as unknown as NodeType;
continue;
Expand Down
6 changes: 4 additions & 2 deletions src/core/functions/data/create-element.ts
Expand Up @@ -28,13 +28,14 @@ export const createElement = (
nodes: templateNodes,
el: templateElemenet,
render: templateRender,
values: newValues
values: newValues,
valuesImport,
valuesLength: lengthValues
} = templateEl;
const el = (templateElemenet as Element).cloneNode(true);
el[EACH_INDEX_NAME] = eachIndex;
const length = templateNodes.length;
const nodes: NodeNodesType = new Array(length + 1);
const lengthValues = newValues.length;
const stack: StackType = new Array(lengthValues);
const newNodes = new Array(lengthValues);
nodes[0] = el as ChildNode;
Expand Down Expand Up @@ -74,6 +75,7 @@ export const createElement = (
}
const currentNode: NodeType = {
values: newValues,
valuesImport,
dataId,
nodes: newNodes,
stack,
Expand Down
6 changes: 6 additions & 0 deletions src/core/functions/parse/parse-key.ts
Expand Up @@ -96,6 +96,12 @@ export const parseKey = (
key: isValue ? (renderedKey as string) : key,
originType
};
if (val) {
const isValKey = val.some((e) => {
return e.isValueImport;
});
keyObj.isValueImport = isValKey;
}
if (isValue) {
keyObj.isValue = isValue;
}
Expand Down

0 comments on commit 78b924b

Please sign in to comment.