Skip to content

Commit 4b59c23

Browse files
committed
version 3.2.0-alpha.43
1 parent 0e37796 commit 4b59c23

File tree

2 files changed

+82
-3
lines changed

2 files changed

+82
-3
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cample",
3-
"version": "3.2.0-alpha.42",
3+
"version": "3.2.0-alpha.43",
44
"description": "Cample.js - fast modern javascript framework. Reactivity without virtual DOM!",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/core/functions/render/render-el.ts

+81-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ import {
2020
EventEachGetDataType,
2121
EventEachGetFunctionType,
2222
EventGetDataType,
23+
ImportDataType,
2324
IndexObjNode,
25+
ValueItemType,
2426
ValueItemsType,
2527
ValueType,
2628
ValueValueType,
@@ -341,8 +343,85 @@ export const renderEl = (
341343
};
342344
const keyArr = [...e.value.matchAll(TEXT_REGEX)];
343345
if (keyArr.length === 1) {
344-
keyTemplate.value = createValItem(getVal(keyArr[0]));
345-
keyTemplate.render = valueFunctions[1];
346+
const val = getVal(keyArr[0]);
347+
keyTemplate.value = createValItem(val);
348+
if (typeof val === "string") {
349+
keyTemplate.render = valueFunctions[1];
350+
} else {
351+
const { render: renderVal } = val;
352+
if (val.properties?.length === 1 && !val.isValue) {
353+
const prop = (val.properties as any)[0];
354+
switch (val.originType) {
355+
case 1:
356+
keyTemplate.render = (
357+
indexData: any,
358+
value: ValueItemType,
359+
importData: ImportDataType | undefined,
360+
eachIndex?: number
361+
) => indexData[prop];
362+
break;
363+
case 2:
364+
keyTemplate.render = (
365+
indexData: any,
366+
value: ValueItemType,
367+
importData: ImportDataType | undefined,
368+
eachIndex?: number
369+
) => importData?.[prop];
370+
break;
371+
case 3:
372+
keyTemplate.render = ((
373+
indexData: any,
374+
value: ValueItemType,
375+
importData: ImportDataType | undefined,
376+
eachIndex?: number
377+
) => eachIndex) as any;
378+
break;
379+
default:
380+
keyTemplate.render = ((
381+
indexData: any,
382+
value: ValueItemType,
383+
importData: ImportDataType | undefined,
384+
eachIndex?: number
385+
) => undefined) as any;
386+
break;
387+
}
388+
} else {
389+
switch (val.originType) {
390+
case 1:
391+
keyTemplate.render = (
392+
indexData: any,
393+
value: ValueItemType,
394+
importData: ImportDataType | undefined,
395+
eachIndex?: number
396+
) => (renderVal as any)(indexData);
397+
break;
398+
case 2:
399+
keyTemplate.render = (
400+
indexData: any,
401+
value: ValueItemType,
402+
importData: ImportDataType | undefined,
403+
eachIndex?: number
404+
) => (renderVal as any)(importData);
405+
break;
406+
case 3:
407+
keyTemplate.render = ((
408+
indexData: any,
409+
value: ValueItemType,
410+
importData: ImportDataType | undefined,
411+
eachIndex?: number
412+
) => eachIndex) as any;
413+
break;
414+
default:
415+
keyTemplate.render = ((
416+
indexData: any,
417+
value: ValueItemType,
418+
importData: ImportDataType | undefined,
419+
eachIndex?: number
420+
) => undefined) as any;
421+
break;
422+
}
423+
}
424+
}
346425
} else {
347426
for (const txt of keyArr) {
348427
const val = createValItem(getVal(txt));

0 commit comments

Comments
 (0)