json-renderers 1.12.2 → 1.13.2
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/docs/dist/v12/min.js +646 -646
- package/docs/dist/v13/min.js +691 -0
- package/docs/index.html +14 -0
- package/package.json +3 -3
- package/src/index.js +2 -2
- package/src/v13/index.js +46 -0
- package/src/{v10 → v13}/meta.js +1 -1
- package/src/{v9/table → v13/select}/index.js +4 -7
- package/src/v13/select/skeleton.json +18 -0
- package/src/v13/table/index.js +39 -0
- package/src/v10/dataLists/fragments.json +0 -1
- package/src/v10/dataLists/index.js +0 -32
- package/src/v10/dataLists/skeleton.json +0 -38
- package/src/v10/index.js +0 -142
- package/src/v10/select/fragments.json +0 -1
- package/src/v10/select/index.js +0 -34
- package/src/v10/select/skeleton.json +0 -23
- package/src/v10/table/index.js +0 -35
- package/src/v5/dataLists/fragments.json +0 -1
- package/src/v5/dataLists/index.js +0 -26
- package/src/v5/dataLists/skeleton.json +0 -20
- package/src/v5/form/attachFormClickEventListener.js +0 -27
- package/src/v5/form/clickFunc/extractFormData.js +0 -27
- package/src/v5/form/clickFunc/handleNew.js +0 -24
- package/src/v5/form/clickFunc/handleSave.js +0 -33
- package/src/v5/form/clickFunc/index.js +0 -32
- package/src/v5/form/index.js +0 -87
- package/src/v5/form/structure.json +0 -410
- package/src/v5/index.js +0 -150
- package/src/v5/meta.js +0 -6
- package/src/v5/navTabs/fragments.json +0 -59
- package/src/v5/navTabs/index.js +0 -82
- package/src/v5/navTabs/skeleton.json +0 -18
- package/src/v5/registerGlobal.js +0 -14
- package/src/v5/select/fragments.json +0 -1
- package/src/v5/select/index.js +0 -31
- package/src/v5/select/skeleton.json +0 -21
- package/src/v5/table/attachTableClickEventListener.js +0 -22
- package/src/v5/table/buildTableDataAsJson.js +0 -19
- package/src/v5/table/buildTableDomElement.js +0 -21
- package/src/v5/table/buildTableStructureSpec.js +0 -28
- package/src/v5/table/clickFunc/v3/createTable.js +0 -16
- package/src/v5/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -23
- package/src/v5/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -21
- package/src/v5/table/clickFunc/v3/getContainer/index.js +0 -39
- package/src/v5/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -14
- package/src/v5/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -12
- package/src/v5/table/clickFunc/v3/index.js +0 -21
- package/src/v5/table/fragments.json +0 -112
- package/src/v5/table/index.js +0 -72
- package/src/v5/table/resolveTargetContainer.js +0 -9
- package/src/v5/table/skeleton.json +0 -371
- package/src/v6/dataLists/fragments.json +0 -1
- package/src/v6/dataLists/index.js +0 -32
- package/src/v6/dataLists/skeleton.json +0 -38
- package/src/v6/form/attachFormClickEventListener.js +0 -27
- package/src/v6/form/clickFunc/extractFormData.js +0 -27
- package/src/v6/form/clickFunc/handleNew.js +0 -24
- package/src/v6/form/clickFunc/handleSave.js +0 -33
- package/src/v6/form/clickFunc/index.js +0 -32
- package/src/v6/form/index.js +0 -87
- package/src/v6/form/structure.json +0 -410
- package/src/v6/index.js +0 -150
- package/src/v6/meta.js +0 -6
- package/src/v6/navTabs/fragments.json +0 -59
- package/src/v6/navTabs/index.js +0 -82
- package/src/v6/navTabs/skeleton.json +0 -18
- package/src/v6/registerGlobal.js +0 -14
- package/src/v6/select/fragments.json +0 -1
- package/src/v6/select/index.js +0 -34
- package/src/v6/select/skeleton.json +0 -23
- package/src/v6/table/attachTableClickEventListener.js +0 -22
- package/src/v6/table/buildTableDataAsJson.js +0 -19
- package/src/v6/table/buildTableDomElement.js +0 -21
- package/src/v6/table/buildTableStructureSpec.js +0 -28
- package/src/v6/table/clickFunc/v3/createTable.js +0 -16
- package/src/v6/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -23
- package/src/v6/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -21
- package/src/v6/table/clickFunc/v3/getContainer/index.js +0 -39
- package/src/v6/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -14
- package/src/v6/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -12
- package/src/v6/table/clickFunc/v3/index.js +0 -21
- package/src/v6/table/fragments.json +0 -112
- package/src/v6/table/index.js +0 -72
- package/src/v6/table/resolveTargetContainer.js +0 -9
- package/src/v6/table/skeleton.json +0 -371
- package/src/v7/common/deriveColumnsFromData.js +0 -20
- package/src/v7/dataLists/fragments.json +0 -1
- package/src/v7/dataLists/index.js +0 -32
- package/src/v7/dataLists/skeleton.json +0 -38
- package/src/v7/form/attachFormClickEventListener.js +0 -27
- package/src/v7/form/clickFunc/extractFormData.js +0 -27
- package/src/v7/form/clickFunc/handleNew.js +0 -24
- package/src/v7/form/clickFunc/handleSave.js +0 -33
- package/src/v7/form/clickFunc/index.js +0 -32
- package/src/v7/form/index.js +0 -87
- package/src/v7/form/structure.json +0 -410
- package/src/v7/index.js +0 -141
- package/src/v7/meta.js +0 -6
- package/src/v7/navTabs/fragments.json +0 -59
- package/src/v7/navTabs/index.js +0 -82
- package/src/v7/navTabs/skeleton.json +0 -18
- package/src/v7/registerGlobal.js +0 -14
- package/src/v7/select/fragments.json +0 -1
- package/src/v7/select/index.js +0 -34
- package/src/v7/select/skeleton.json +0 -23
- package/src/v7/table/attachTableClickEventListener.js +0 -28
- package/src/v7/table/buildTableDataAsJson.js +0 -25
- package/src/v7/table/buildTableDomElement.js +0 -25
- package/src/v7/table/buildTableStructureSpec.js +0 -33
- package/src/v7/table/clickFunc/v3/createTable.js +0 -20
- package/src/v7/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -27
- package/src/v7/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -24
- package/src/v7/table/clickFunc/v3/getContainer/index.js +0 -44
- package/src/v7/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -17
- package/src/v7/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -15
- package/src/v7/table/clickFunc/v3/index.js +0 -35
- package/src/v7/table/fragments.json +0 -112
- package/src/v7/table/index.js +0 -82
- package/src/v7/table/resolveTargetContainer.js +0 -11
- package/src/v7/table/skeleton.json +0 -371
- package/src/v8/common/deriveColumnsFromData.js +0 -20
- package/src/v8/dataLists/fragments.json +0 -1
- package/src/v8/dataLists/index.js +0 -32
- package/src/v8/dataLists/skeleton.json +0 -38
- package/src/v8/form/attachFormClickEventListener.js +0 -27
- package/src/v8/form/clickFunc/extractFormData.js +0 -27
- package/src/v8/form/clickFunc/handleNew.js +0 -24
- package/src/v8/form/clickFunc/handleSave.js +0 -33
- package/src/v8/form/clickFunc/index.js +0 -32
- package/src/v8/form/index.js +0 -87
- package/src/v8/form/structure.json +0 -410
- package/src/v8/index.js +0 -141
- package/src/v8/meta.js +0 -6
- package/src/v8/navTabs/fragments.json +0 -59
- package/src/v8/navTabs/index.js +0 -82
- package/src/v8/navTabs/skeleton.json +0 -18
- package/src/v8/registerGlobal.js +0 -14
- package/src/v8/select/fragments.json +0 -1
- package/src/v8/select/index.js +0 -34
- package/src/v8/select/skeleton.json +0 -23
- package/src/v8/table/attachTableClickEventListener.js +0 -28
- package/src/v8/table/buildTableDataAsJson.js +0 -25
- package/src/v8/table/buildTableDomElement.js +0 -25
- package/src/v8/table/buildTableStructureSpec.js +0 -33
- package/src/v8/table/clickFunc/v3/createTable.js +0 -20
- package/src/v8/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -27
- package/src/v8/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -24
- package/src/v8/table/clickFunc/v3/getContainer/index.js +0 -44
- package/src/v8/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -17
- package/src/v8/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -15
- package/src/v8/table/clickFunc/v3/index.js +0 -35
- package/src/v8/table/fragments.json +0 -112
- package/src/v8/table/index.js +0 -82
- package/src/v8/table/resolveTargetContainer.js +0 -11
- package/src/v8/table/skeleton.json +0 -371
- package/src/v9/common/deriveColumnsFromData.js +0 -20
- package/src/v9/dataLists/fragments.json +0 -1
- package/src/v9/dataLists/index.js +0 -32
- package/src/v9/dataLists/skeleton.json +0 -38
- package/src/v9/form/attachFormClickEventListener.js +0 -27
- package/src/v9/form/clickFunc/extractFormData.js +0 -27
- package/src/v9/form/clickFunc/handleNew.js +0 -24
- package/src/v9/form/clickFunc/handleSave.js +0 -33
- package/src/v9/form/clickFunc/index.js +0 -32
- package/src/v9/form/index.js +0 -87
- package/src/v9/form/structure.json +0 -410
- package/src/v9/index.js +0 -141
- package/src/v9/meta.js +0 -6
- package/src/v9/navTabs/fragments.json +0 -59
- package/src/v9/navTabs/index.js +0 -82
- package/src/v9/navTabs/skeleton.json +0 -18
- package/src/v9/registerGlobal.js +0 -14
- package/src/v9/select/fragments.json +0 -1
- package/src/v9/select/index.js +0 -34
- package/src/v9/select/skeleton.json +0 -23
- package/src/v9/table/skeleton.json +0 -47
- /package/src/{v10 → v13}/common/deriveColumnsFromData.js +0 -0
- /package/src/{v10 → v13}/registerGlobal.js +0 -0
- /package/src/{v10 → v13}/table/skeleton.json +0 -0
package/src/v13/index.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import registerGlobal from "./registerGlobal.js";
|
|
2
|
+
|
|
3
|
+
import renderTable from "./table/index.js";
|
|
4
|
+
|
|
5
|
+
const RENDERER_MAP = {
|
|
6
|
+
table: renderTable
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const render = ({
|
|
10
|
+
type = "table",
|
|
11
|
+
targetHtmlId,
|
|
12
|
+
data,
|
|
13
|
+
classToApply,
|
|
14
|
+
inTargetHtmlId,
|
|
15
|
+
inData,
|
|
16
|
+
columns,
|
|
17
|
+
inColumns,
|
|
18
|
+
appendPosition
|
|
19
|
+
} = {}) => {
|
|
20
|
+
const rawType = type;
|
|
21
|
+
const resolvedType = typeof rawType === "string" ? rawType.toLowerCase() : "table";
|
|
22
|
+
const renderer = RENDERER_MAP[resolvedType];
|
|
23
|
+
|
|
24
|
+
if (!renderer) {
|
|
25
|
+
console.error(
|
|
26
|
+
`[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
|
|
27
|
+
);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
|
|
32
|
+
const localData = inData ?? data;
|
|
33
|
+
const localColumns = inColumns ?? columns;
|
|
34
|
+
|
|
35
|
+
// Default to table renderer
|
|
36
|
+
return renderer({
|
|
37
|
+
inTargetHtmlId: localTargetHtmlId,
|
|
38
|
+
inColumns: localColumns,
|
|
39
|
+
inData: localData,
|
|
40
|
+
inAppendPosition: appendPosition
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
registerGlobal(render);
|
|
45
|
+
|
|
46
|
+
export default render;
|
package/src/{v10 → v13}/meta.js
RENAMED
|
@@ -5,21 +5,17 @@ import skeletonJson from './skeleton.json' with { type: 'json' };
|
|
|
5
5
|
|
|
6
6
|
// --- Story of Table Render ---
|
|
7
7
|
const startFunc = ({
|
|
8
|
-
targetHtmlId,
|
|
9
8
|
inTargetHtmlId,
|
|
10
|
-
|
|
11
|
-
inData,
|
|
9
|
+
inData
|
|
12
10
|
} = {}) => {
|
|
13
11
|
const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
|
|
14
12
|
const localData = inData ?? [];
|
|
15
13
|
const localColumns = inColumns;
|
|
16
14
|
|
|
17
|
-
let specAsJsonToDom = jsonToSpec(skeletonJson
|
|
18
|
-
|
|
15
|
+
let specAsJsonToDom = jsonToSpec(skeletonJson, {
|
|
16
|
+
arrayOfStrings: localData
|
|
19
17
|
});
|
|
20
18
|
|
|
21
|
-
// console.log("specAsJsonToDom : ", specAsJsonToDom);
|
|
22
|
-
|
|
23
19
|
if (!("tagName" in specAsJsonToDom)) {
|
|
24
20
|
specAsJsonToDom = specAsJsonToDom.children;
|
|
25
21
|
};
|
|
@@ -29,6 +25,7 @@ const startFunc = ({
|
|
|
29
25
|
if (container) container.innerHTML = "";
|
|
30
26
|
|
|
31
27
|
const content = jsonToTag(specAsJsonToDom);
|
|
28
|
+
|
|
32
29
|
container.append(content);
|
|
33
30
|
};
|
|
34
31
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tagName": "select",
|
|
3
|
+
"attributes": {
|
|
4
|
+
"id": "arrayOfStrings"
|
|
5
|
+
},
|
|
6
|
+
"jsonToSpec": {
|
|
7
|
+
"operation": "loopArray",
|
|
8
|
+
"source": "arrayOfStrings",
|
|
9
|
+
"template": {
|
|
10
|
+
"tagName": "option",
|
|
11
|
+
"attributes": {
|
|
12
|
+
"value": "${}"
|
|
13
|
+
},
|
|
14
|
+
"textContent": "${}"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"children": []
|
|
18
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import jsonRenderBuild from "json-renderers-build";
|
|
2
|
+
import jsonToTag from "@keshavsoft/json-to-tag";
|
|
3
|
+
|
|
4
|
+
import skeletonJson from './skeleton.json' with { type: 'json' };
|
|
5
|
+
|
|
6
|
+
// --- Story of Table Render ---
|
|
7
|
+
const startFunc = ({
|
|
8
|
+
inTargetHtmlId,
|
|
9
|
+
inColumns,
|
|
10
|
+
inData, inAppendPosition
|
|
11
|
+
} = {}) => {
|
|
12
|
+
debugger
|
|
13
|
+
const localTargetHtmlId = inTargetHtmlId;
|
|
14
|
+
const localData = inData ?? [];
|
|
15
|
+
const localColumns = inColumns;
|
|
16
|
+
|
|
17
|
+
let specAsJsonToDom = jsonRenderBuild({
|
|
18
|
+
type: "table",
|
|
19
|
+
targetHtmlId: localTargetHtmlId,
|
|
20
|
+
data: localData,
|
|
21
|
+
columns: localColumns
|
|
22
|
+
});
|
|
23
|
+
console.log("specAsJsonToDom : ", inAppendPosition, specAsJsonToDom);
|
|
24
|
+
|
|
25
|
+
const container = document.getElementById(localTargetHtmlId);
|
|
26
|
+
|
|
27
|
+
const content = jsonToTag(specAsJsonToDom);
|
|
28
|
+
|
|
29
|
+
if (inAppendPosition === "prepend") {
|
|
30
|
+
container.prepend(content);
|
|
31
|
+
} else {
|
|
32
|
+
|
|
33
|
+
if (container) container.innerHTML = "";
|
|
34
|
+
|
|
35
|
+
container.append(content);
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export default startFunc;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// import jsonToSpec from "../../../node_modules/json-to-spec/index.js";
|
|
2
|
-
import jsonToTag from "@keshavsoft/json-to-tag";
|
|
3
|
-
import jsonTraversal from "../../../node_modules/json-traversal/index.js";
|
|
4
|
-
|
|
5
|
-
import skeletonJson from "./skeleton.json" with { type: "json" };
|
|
6
|
-
|
|
7
|
-
const startFunc = ({ targetHtmlId, inData, inSkeletonType = "default" } = {}) => {
|
|
8
|
-
|
|
9
|
-
// const specAsJsonToDom = jsonToSpec({
|
|
10
|
-
// specJson: skeletonJson[inSkeletonType],
|
|
11
|
-
// dataJson: inData
|
|
12
|
-
// });
|
|
13
|
-
const skeletonNeeded = skeletonJson[inSkeletonType];
|
|
14
|
-
|
|
15
|
-
const specAsJsonToDom = jsonTraversal.transform(inData, skeletonNeeded);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const container = document.getElementById(targetHtmlId);
|
|
19
|
-
|
|
20
|
-
if (container) container.innerHTML = "";
|
|
21
|
-
|
|
22
|
-
const createdElement = jsonToTag(specAsJsonToDom);
|
|
23
|
-
|
|
24
|
-
if (Array.isArray(createdElement)) {
|
|
25
|
-
// container.appendChild(createdElement)
|
|
26
|
-
createdElement.forEach(element => container.append(element));
|
|
27
|
-
} else {
|
|
28
|
-
container.append(createdElement);
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export default startFunc;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"old": {
|
|
3
|
-
"tagName": "datalist",
|
|
4
|
-
"attributes": {
|
|
5
|
-
"id": "LedgerName"
|
|
6
|
-
},
|
|
7
|
-
"jsonToSpec": {
|
|
8
|
-
"operation": "loopArray",
|
|
9
|
-
"source": "LedgerName",
|
|
10
|
-
"template": {
|
|
11
|
-
"tagName": "option",
|
|
12
|
-
"attributes": {
|
|
13
|
-
"value": "${}"
|
|
14
|
-
},
|
|
15
|
-
"textContent": "${}"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"children": []
|
|
19
|
-
},
|
|
20
|
-
"default": {
|
|
21
|
-
"mapping": {
|
|
22
|
-
"tagName": "$datalist",
|
|
23
|
-
"attributes": {
|
|
24
|
-
"id": "$LedgerName"
|
|
25
|
-
},
|
|
26
|
-
"children": {
|
|
27
|
-
"list": "LedgerName",
|
|
28
|
-
"item": {
|
|
29
|
-
"tagName": "$option",
|
|
30
|
-
"attributes": {
|
|
31
|
-
"value": ""
|
|
32
|
-
},
|
|
33
|
-
"textContent": ""
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
package/src/v10/index.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import registerGlobal from "./registerGlobal.js";
|
|
2
|
-
|
|
3
|
-
import renderTable from "./table/index.js";
|
|
4
|
-
|
|
5
|
-
// import renderDataList from "./dataLists/index.js";
|
|
6
|
-
// import renderSelect from "./select/index.js";
|
|
7
|
-
|
|
8
|
-
const RENDERER_MAP = {
|
|
9
|
-
table: renderTable
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
// const RENDERER_MAP = {
|
|
13
|
-
// table: renderTable,
|
|
14
|
-
// datalist: renderDataList,
|
|
15
|
-
// select: renderSelect
|
|
16
|
-
// };
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Unified Renderer
|
|
20
|
-
* Dispatches to the corresponding renderer strategy (table, navTabs, form)
|
|
21
|
-
* based on the provided type.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
// render({ type: "select", data, targetHtmlId: "dom-render-container" });
|
|
25
|
-
|
|
26
|
-
const render = ({
|
|
27
|
-
type = "table",
|
|
28
|
-
targetHtmlId,
|
|
29
|
-
data,
|
|
30
|
-
classToApply,
|
|
31
|
-
inTargetHtmlId,
|
|
32
|
-
inData,
|
|
33
|
-
columns,
|
|
34
|
-
inColumns,
|
|
35
|
-
fields,
|
|
36
|
-
inFields,
|
|
37
|
-
tabs,
|
|
38
|
-
inTabs,
|
|
39
|
-
options,
|
|
40
|
-
inOptions,
|
|
41
|
-
datalistId,
|
|
42
|
-
inDatalistId,
|
|
43
|
-
listId,
|
|
44
|
-
inListId,
|
|
45
|
-
id,
|
|
46
|
-
valueField,
|
|
47
|
-
inValueField,
|
|
48
|
-
labelField,
|
|
49
|
-
inLabelField,
|
|
50
|
-
colGroup,
|
|
51
|
-
inColGroup,
|
|
52
|
-
footerData,
|
|
53
|
-
inFooterData,
|
|
54
|
-
config,
|
|
55
|
-
inConfig,
|
|
56
|
-
variant,
|
|
57
|
-
skeletonType,
|
|
58
|
-
inSkeletonType,
|
|
59
|
-
showLog = false,
|
|
60
|
-
inShowLog,
|
|
61
|
-
...restProps
|
|
62
|
-
} = {}) => {
|
|
63
|
-
const rawType = type;
|
|
64
|
-
const resolvedType = typeof rawType === "string" ? rawType.toLowerCase() : "table";
|
|
65
|
-
const renderer = RENDERER_MAP[resolvedType];
|
|
66
|
-
|
|
67
|
-
if (!renderer) {
|
|
68
|
-
console.error(
|
|
69
|
-
`[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
|
|
70
|
-
);
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
|
|
75
|
-
const localData = inData ?? data;
|
|
76
|
-
const localColumns = inColumns ?? columns;
|
|
77
|
-
const localFields = inFields ?? fields;
|
|
78
|
-
const localTabs = inTabs ?? tabs;
|
|
79
|
-
const localOptions = inOptions ?? options ?? localData;
|
|
80
|
-
const localSkeletonType = inSkeletonType ?? skeletonType ?? variant ?? "default";
|
|
81
|
-
const localShowLog = inShowLog ?? showLog ?? false;
|
|
82
|
-
|
|
83
|
-
if (resolvedType === "form") {
|
|
84
|
-
return renderer({
|
|
85
|
-
targetHtmlId: localTargetHtmlId,
|
|
86
|
-
inFields: localFields,
|
|
87
|
-
inData: localData,
|
|
88
|
-
inColumns: localColumns,
|
|
89
|
-
inVariant: localSkeletonType,
|
|
90
|
-
inSkeletonType: localSkeletonType,
|
|
91
|
-
inShowLog: localShowLog,
|
|
92
|
-
onSave: restProps?.onSave,
|
|
93
|
-
afterSave: restProps?.afterSave,
|
|
94
|
-
onNew: restProps?.onNew
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (resolvedType === "navtabs" || resolvedType === "nav" || resolvedType === "tabs") {
|
|
99
|
-
return renderer({
|
|
100
|
-
targetHtmlId: localTargetHtmlId,
|
|
101
|
-
inTabs: localTabs,
|
|
102
|
-
inData: localData,
|
|
103
|
-
inSkeletonType: localSkeletonType,
|
|
104
|
-
inShowLog: localShowLog
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
if (resolvedType === "datalist" || resolvedType === "data-list") {
|
|
109
|
-
return renderer({
|
|
110
|
-
targetHtmlId: localTargetHtmlId,
|
|
111
|
-
inData: localData,
|
|
112
|
-
inSkeletonType: localSkeletonType,
|
|
113
|
-
inShowLog: localShowLog
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (resolvedType === "select") {
|
|
118
|
-
return renderer({
|
|
119
|
-
targetHtmlId: localTargetHtmlId,
|
|
120
|
-
inData: localData,
|
|
121
|
-
inSkeletonType: localSkeletonType,
|
|
122
|
-
inShowLog: localShowLog,
|
|
123
|
-
inClassToApply: classToApply
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
// Default to table renderer
|
|
128
|
-
return renderer({
|
|
129
|
-
targetHtmlId: localTargetHtmlId,
|
|
130
|
-
inColumns: localColumns,
|
|
131
|
-
inData: localData,
|
|
132
|
-
inColGroup: inColGroup ?? colGroup,
|
|
133
|
-
inFooterData: inFooterData ?? footerData ?? [],
|
|
134
|
-
inConfig: inConfig ?? config ?? {},
|
|
135
|
-
inSkeletonType: localSkeletonType,
|
|
136
|
-
inShowLog: localShowLog
|
|
137
|
-
});
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
registerGlobal(render);
|
|
141
|
-
|
|
142
|
-
export default render;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|
package/src/v10/select/index.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import jsonTraversal from "../../../node_modules/json-traversal/index.js";
|
|
2
|
-
|
|
3
|
-
// import jsonToSpec from "../../../node_modules/json-to-spec/index.js";
|
|
4
|
-
// import jsonToTag from "@keshavsoft/json-to-tag";
|
|
5
|
-
import jsonToTag from "@keshavsoft/json-to-tag";
|
|
6
|
-
|
|
7
|
-
import skeletonJson from "./skeleton.json" with { type: "json" };
|
|
8
|
-
|
|
9
|
-
const startFunc = ({ targetHtmlId, inData,
|
|
10
|
-
inSkeletonType = "default", inClassToApply } = {}) => {
|
|
11
|
-
|
|
12
|
-
console.log("aaaaaaaaaa");
|
|
13
|
-
|
|
14
|
-
const skeletonNeeded = skeletonJson[inSkeletonType];
|
|
15
|
-
skeletonNeeded.mapping.attributes.class = `$${inClassToApply}`;
|
|
16
|
-
// skeletonNeeded.mapping.attributes.class = inClassToApply;
|
|
17
|
-
debugger;
|
|
18
|
-
|
|
19
|
-
const specAsJsonToDom = jsonTraversal.transform(inData, skeletonNeeded);
|
|
20
|
-
|
|
21
|
-
const container = document.getElementById(targetHtmlId);
|
|
22
|
-
if (container) container.innerHTML = "";
|
|
23
|
-
|
|
24
|
-
const createdElement = jsonToTag(specAsJsonToDom);
|
|
25
|
-
|
|
26
|
-
if (Array.isArray(createdElement)) {
|
|
27
|
-
// container.appendChild(createdElement)
|
|
28
|
-
createdElement.forEach(element => container.append(element));
|
|
29
|
-
} else {
|
|
30
|
-
container.append(createdElement);
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default startFunc;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"default": {
|
|
3
|
-
"mapping": {
|
|
4
|
-
"tagName": "$select",
|
|
5
|
-
"attributes": {
|
|
6
|
-
"id": "$LedgerName",
|
|
7
|
-
"class": "$keshav"
|
|
8
|
-
},
|
|
9
|
-
"children": [
|
|
10
|
-
{
|
|
11
|
-
"list": "LedgerName",
|
|
12
|
-
"item": {
|
|
13
|
-
"tagName": "$option",
|
|
14
|
-
"attributes": {
|
|
15
|
-
"value": ""
|
|
16
|
-
},
|
|
17
|
-
"textContent": ""
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
package/src/v10/table/index.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import jsonToSpec from "json-to-spec";
|
|
2
|
-
import jsonToTag from "@keshavsoft/json-to-tag";
|
|
3
|
-
|
|
4
|
-
import skeletonJson from './skeleton.json' with { type: 'json' };
|
|
5
|
-
|
|
6
|
-
// --- Story of Table Render ---
|
|
7
|
-
const startFunc = ({
|
|
8
|
-
targetHtmlId,
|
|
9
|
-
inTargetHtmlId,
|
|
10
|
-
inColumns,
|
|
11
|
-
inData,
|
|
12
|
-
} = {}) => {
|
|
13
|
-
const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
|
|
14
|
-
const localData = inData ?? [];
|
|
15
|
-
const localColumns = inColumns;
|
|
16
|
-
|
|
17
|
-
let specAsJsonToDom = jsonToSpec(skeletonJson.default, {
|
|
18
|
-
columns: localColumns, data: localData
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
// console.log("specAsJsonToDom : ", specAsJsonToDom);
|
|
22
|
-
|
|
23
|
-
if (!("tagName" in specAsJsonToDom)) {
|
|
24
|
-
specAsJsonToDom = specAsJsonToDom.children;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const container = document.getElementById(localTargetHtmlId);
|
|
28
|
-
|
|
29
|
-
if (container) container.innerHTML = "";
|
|
30
|
-
|
|
31
|
-
const content = jsonToTag(specAsJsonToDom);
|
|
32
|
-
container.append(content);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export default startFunc;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import jsonToSpec from "../../../node_modules/json-to-spec/index.js";
|
|
2
|
-
import jsonToTag from "../../../node_modules/@keshavsoft/json-to-tag/index.js";
|
|
3
|
-
|
|
4
|
-
import skeletonJson from "./skeleton.json" with { type: "json" };
|
|
5
|
-
|
|
6
|
-
const startFunc = ({ targetHtmlId, inData, inSkeletonType = "default" } = {}) => {
|
|
7
|
-
|
|
8
|
-
const specAsJsonToDom = jsonToSpec({
|
|
9
|
-
specJson: skeletonJson[inSkeletonType],
|
|
10
|
-
dataJson: inData
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const container = document.getElementById(targetHtmlId);
|
|
14
|
-
if (container) container.innerHTML = "";
|
|
15
|
-
|
|
16
|
-
const createdElement = jsonToTag(specAsJsonToDom);
|
|
17
|
-
|
|
18
|
-
if (Array.isArray(createdElement)) {
|
|
19
|
-
// container.appendChild(createdElement)
|
|
20
|
-
createdElement.forEach(element => container.append(element));
|
|
21
|
-
} else {
|
|
22
|
-
container.append(createdElement);
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export default startFunc;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"default": {
|
|
3
|
-
"tagName": "datalist",
|
|
4
|
-
"attributes": {
|
|
5
|
-
"id": "LedgerName"
|
|
6
|
-
},
|
|
7
|
-
"jsonToSpec": {
|
|
8
|
-
"operation": "loopArray",
|
|
9
|
-
"source": "LedgerName",
|
|
10
|
-
"template": {
|
|
11
|
-
"tagName": "option",
|
|
12
|
-
"attributes": {
|
|
13
|
-
"value": "${}"
|
|
14
|
-
},
|
|
15
|
-
"textContent": "${}"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"children": []
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import clickFunc from "./clickFunc/index.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Story: Attach click event listener for Form action buttons
|
|
5
|
-
*/
|
|
6
|
-
const startFunc = ({
|
|
7
|
-
inTargetContainer,
|
|
8
|
-
onSave,
|
|
9
|
-
afterSave,
|
|
10
|
-
onNew,
|
|
11
|
-
onClear
|
|
12
|
-
} = {}) => {
|
|
13
|
-
if (!inTargetContainer) return;
|
|
14
|
-
|
|
15
|
-
inTargetContainer.addEventListener("click", (event) => {
|
|
16
|
-
clickFunc({
|
|
17
|
-
inEvent: event,
|
|
18
|
-
inFormContainer: inTargetContainer,
|
|
19
|
-
onSave,
|
|
20
|
-
afterSave,
|
|
21
|
-
onNew,
|
|
22
|
-
onClear
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export default startFunc;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Step 1: Convert Form DOM inputs to clean JavaScript Object
|
|
3
|
-
*/
|
|
4
|
-
const extractFormData = ({ inFormContainer } = {}) => {
|
|
5
|
-
if (!inFormContainer) return {};
|
|
6
|
-
|
|
7
|
-
const inputs = inFormContainer.querySelectorAll("input[name], select[name], textarea[name]");
|
|
8
|
-
const data = {};
|
|
9
|
-
|
|
10
|
-
inputs.forEach(input => {
|
|
11
|
-
const key = input.name || input.getAttribute("name");
|
|
12
|
-
if (!key) return;
|
|
13
|
-
|
|
14
|
-
if (input.type === "checkbox") {
|
|
15
|
-
data[key] = input.checked;
|
|
16
|
-
} else if (input.type === "radio") {
|
|
17
|
-
if (input.checked) data[key] = input.value;
|
|
18
|
-
} else {
|
|
19
|
-
data[key] = input.value;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
return data;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export { extractFormData };
|
|
27
|
-
export default extractFormData;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Step 3: Handle New / Clear button action - reset inputs and trigger callbacks
|
|
3
|
-
*/
|
|
4
|
-
const handleNew = ({ inEvent, inFormContainer, onNew, onClear } = {}) => {
|
|
5
|
-
if (inFormContainer) {
|
|
6
|
-
const inputs = inFormContainer.querySelectorAll("input[name], textarea[name]");
|
|
7
|
-
inputs.forEach(input => {
|
|
8
|
-
if (input.type === "checkbox" || input.type === "radio") {
|
|
9
|
-
input.checked = false;
|
|
10
|
-
} else {
|
|
11
|
-
input.value = "";
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
if (typeof onNew === "function") {
|
|
17
|
-
onNew({ inEvent });
|
|
18
|
-
} else if (typeof onClear === "function") {
|
|
19
|
-
onClear({ inEvent });
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export { handleNew };
|
|
24
|
-
export default handleNew;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import extractFormData from "./extractFormData.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Step 2: Handle Save button action - serialize form DOM and dispatch callbacks
|
|
5
|
-
*/
|
|
6
|
-
const handleSave = ({ inEvent, inFormContainer, onSave, afterSave } = {}) => {
|
|
7
|
-
const clickedButton = inEvent?.target?.closest("button");
|
|
8
|
-
const formData = extractFormData({ inFormContainer });
|
|
9
|
-
|
|
10
|
-
// Visual button feedback
|
|
11
|
-
if (clickedButton) {
|
|
12
|
-
const originalText = clickedButton.textContent;
|
|
13
|
-
clickedButton.textContent = "Saved!";
|
|
14
|
-
clickedButton.classList.replace("btn-primary", "btn-success");
|
|
15
|
-
setTimeout(() => {
|
|
16
|
-
clickedButton.textContent = originalText;
|
|
17
|
-
clickedButton.classList.replace("btn-success", "btn-primary");
|
|
18
|
-
}, 1000);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (typeof onSave === "function") {
|
|
22
|
-
onSave({ inData: formData, inEvent });
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (typeof afterSave === "function") {
|
|
26
|
-
afterSave({ inData: formData, inEvent });
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return formData;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export { handleSave };
|
|
33
|
-
export default handleSave;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import handleSave from "./handleSave.js";
|
|
2
|
-
import handleNew from "./handleNew.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Main form click router: identifies button action and routes to dedicated handlers
|
|
6
|
-
*/
|
|
7
|
-
const clickFunc = ({
|
|
8
|
-
inEvent,
|
|
9
|
-
inFormContainer,
|
|
10
|
-
onSave,
|
|
11
|
-
afterSave,
|
|
12
|
-
onNew,
|
|
13
|
-
onClear
|
|
14
|
-
} = {}) => {
|
|
15
|
-
const clickedButton = inEvent?.target?.closest("button");
|
|
16
|
-
if (!clickedButton) return;
|
|
17
|
-
|
|
18
|
-
const buttonId = clickedButton.id || "";
|
|
19
|
-
const buttonAction = clickedButton.dataset.action || "";
|
|
20
|
-
const buttonText = clickedButton.textContent.trim().toLowerCase();
|
|
21
|
-
|
|
22
|
-
if (buttonId === "btn-form-save" || buttonAction === "save" || buttonText === "save") {
|
|
23
|
-
return handleSave({ inEvent, inFormContainer, onSave, afterSave });
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (buttonId === "btn-form-new" || buttonAction === "new" || buttonText === "new" || buttonText === "clear") {
|
|
27
|
-
return handleNew({ inEvent, inFormContainer, onNew, onClear });
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export { clickFunc };
|
|
32
|
-
export default clickFunc;
|