json-renderers 1.12.3 → 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/v8/table/index.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import buildTableDataAsJson from "./buildTableDataAsJson.js";
|
|
2
|
-
import buildTableStructureSpec from "./buildTableStructureSpec.js";
|
|
3
|
-
import buildTableDomElement from "./buildTableDomElement.js";
|
|
4
|
-
import resolveTargetContainer from "./resolveTargetContainer.js";
|
|
5
|
-
import attachTableClickEventListener from "./attachTableClickEventListener.js";
|
|
6
|
-
import deriveColumnsFromData from "../common/deriveColumnsFromData.js";
|
|
7
|
-
|
|
8
|
-
import skeletonJson from './skeleton.json' with { type: 'json' };
|
|
9
|
-
import fragmentsJson from './fragments.json' with { type: 'json' };
|
|
10
|
-
|
|
11
|
-
// --- Story of Table Render ---
|
|
12
|
-
const startFunc = ({
|
|
13
|
-
targetHtmlId,
|
|
14
|
-
inTargetHtmlId,
|
|
15
|
-
inColumns,
|
|
16
|
-
inData,
|
|
17
|
-
inColGroup,
|
|
18
|
-
inFooterData = [],
|
|
19
|
-
inConfig = {},
|
|
20
|
-
inSkeletonType = "default",
|
|
21
|
-
inShowLog = false
|
|
22
|
-
} = {}) => {
|
|
23
|
-
const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
|
|
24
|
-
const localData = inData ?? [];
|
|
25
|
-
const localColumns = inColumns ?? deriveColumnsFromData({ inData: localData });
|
|
26
|
-
const localColGroup = inColGroup;
|
|
27
|
-
const localFooterData = inFooterData;
|
|
28
|
-
const localConfig = inConfig;
|
|
29
|
-
const localSkeletonType = inSkeletonType;
|
|
30
|
-
const localShowLog = inShowLog;
|
|
31
|
-
|
|
32
|
-
try {
|
|
33
|
-
// Story 1: Prepare table data payload as JSON
|
|
34
|
-
const tableDataAsJson = buildTableDataAsJson({
|
|
35
|
-
inColumns: localColumns,
|
|
36
|
-
inData: localData,
|
|
37
|
-
inColGroup: localColGroup,
|
|
38
|
-
inFooterData: localFooterData,
|
|
39
|
-
inConfig: localConfig
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
// Story 2: Build table structure specification from skeleton and fragments
|
|
43
|
-
const tableStructureSpec = buildTableStructureSpec({
|
|
44
|
-
inSkeletonType: localSkeletonType,
|
|
45
|
-
inSkeletonJson: skeletonJson,
|
|
46
|
-
inFragmentsJson: fragmentsJson,
|
|
47
|
-
inShowLog: localShowLog
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// Story 3: Generate table DOM element from structure and data
|
|
51
|
-
const renderedTableElement = buildTableDomElement({
|
|
52
|
-
inStructureJson: tableStructureSpec,
|
|
53
|
-
inDataAsJson: tableDataAsJson,
|
|
54
|
-
inShowLog: localShowLog
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
// Story 4: Resolve target HTML container
|
|
58
|
-
const targetContainer = resolveTargetContainer({
|
|
59
|
-
inTargetHtmlId: localTargetHtmlId
|
|
60
|
-
});
|
|
61
|
-
if (!targetContainer) return;
|
|
62
|
-
|
|
63
|
-
targetContainer.innerHTML = "";
|
|
64
|
-
|
|
65
|
-
// Story 5: Attach click event listener for child table rendering
|
|
66
|
-
attachTableClickEventListener({
|
|
67
|
-
inTargetContainer: targetContainer,
|
|
68
|
-
inData: localData,
|
|
69
|
-
inColumns: localColumns,
|
|
70
|
-
inRenderFunc: startFunc,
|
|
71
|
-
inTargetHtmlId: localTargetHtmlId
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
// Story 6: Append rendered table into target container
|
|
75
|
-
targetContainer.append(renderedTableElement);
|
|
76
|
-
|
|
77
|
-
} catch (error) {
|
|
78
|
-
console.log("error : ", error);
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export default startFunc;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// Story 4: Resolve target HTML container element
|
|
2
|
-
const startFunc = ({ inTargetHtmlId } = {}) => {
|
|
3
|
-
const localTargetHtmlId = inTargetHtmlId;
|
|
4
|
-
|
|
5
|
-
if (typeof localTargetHtmlId === "string") {
|
|
6
|
-
return document.getElementById(localTargetHtmlId);
|
|
7
|
-
}
|
|
8
|
-
return localTargetHtmlId ?? null;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export default startFunc;
|
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tableSimple": {
|
|
3
|
-
"tagName": "table",
|
|
4
|
-
"attributes": {
|
|
5
|
-
"class": "table table-hover table-striped mb-0"
|
|
6
|
-
},
|
|
7
|
-
"slots": [
|
|
8
|
-
"colGroup",
|
|
9
|
-
"thead",
|
|
10
|
-
"tbody",
|
|
11
|
-
"tfoot"
|
|
12
|
-
]
|
|
13
|
-
},
|
|
14
|
-
"bodyOnly": {
|
|
15
|
-
"tagName": "table",
|
|
16
|
-
"attributes": {
|
|
17
|
-
"class": "table table-hover table-striped mb-0"
|
|
18
|
-
},
|
|
19
|
-
"slots": [
|
|
20
|
-
"tbody"
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
"default": {
|
|
24
|
-
"tagName": "div",
|
|
25
|
-
"attributes": {
|
|
26
|
-
"class": "card shadow-sm"
|
|
27
|
-
},
|
|
28
|
-
"children": [
|
|
29
|
-
{
|
|
30
|
-
"tagName": "div",
|
|
31
|
-
"attributes": {
|
|
32
|
-
"class": "table-responsive"
|
|
33
|
-
},
|
|
34
|
-
"children": [
|
|
35
|
-
{
|
|
36
|
-
"tagName": "table",
|
|
37
|
-
"attributes": {
|
|
38
|
-
"class": "table table-hover table-striped mb-0"
|
|
39
|
-
},
|
|
40
|
-
"slots": [
|
|
41
|
-
"colGroup",
|
|
42
|
-
"thead",
|
|
43
|
-
"tbody",
|
|
44
|
-
"tfoot"
|
|
45
|
-
]
|
|
46
|
-
}
|
|
47
|
-
]
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
"tableOnly": {
|
|
52
|
-
"tagName": "table",
|
|
53
|
-
"attributes": {
|
|
54
|
-
"class": "table table-hover table-striped mb-0"
|
|
55
|
-
},
|
|
56
|
-
"slots": [
|
|
57
|
-
"colGroup",
|
|
58
|
-
"thead",
|
|
59
|
-
"tbody",
|
|
60
|
-
"tfoot"
|
|
61
|
-
]
|
|
62
|
-
},
|
|
63
|
-
"tableResponsive": {
|
|
64
|
-
"tagName": "div",
|
|
65
|
-
"attributes": {
|
|
66
|
-
"class": "table-responsive"
|
|
67
|
-
},
|
|
68
|
-
"children": [
|
|
69
|
-
{
|
|
70
|
-
"tagName": "table",
|
|
71
|
-
"attributes": {
|
|
72
|
-
"class": "table table-hover table-striped mb-0"
|
|
73
|
-
},
|
|
74
|
-
"slots": [
|
|
75
|
-
"colGroup",
|
|
76
|
-
"thead",
|
|
77
|
-
"tbody",
|
|
78
|
-
"tfoot"
|
|
79
|
-
]
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
|
-
"cardWithHeader": {
|
|
84
|
-
"tagName": "div",
|
|
85
|
-
"attributes": {
|
|
86
|
-
"class": "card shadow-sm"
|
|
87
|
-
},
|
|
88
|
-
"children": [
|
|
89
|
-
{
|
|
90
|
-
"tagName": "div",
|
|
91
|
-
"attributes": {
|
|
92
|
-
"class": "card-header bg-white py-3"
|
|
93
|
-
},
|
|
94
|
-
"slots": [
|
|
95
|
-
"cardHeader"
|
|
96
|
-
]
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"tagName": "div",
|
|
100
|
-
"attributes": {
|
|
101
|
-
"class": "table-responsive"
|
|
102
|
-
},
|
|
103
|
-
"children": [
|
|
104
|
-
{
|
|
105
|
-
"tagName": "table",
|
|
106
|
-
"attributes": {
|
|
107
|
-
"class": "table table-hover table-striped mb-0"
|
|
108
|
-
},
|
|
109
|
-
"slots": [
|
|
110
|
-
"colGroup",
|
|
111
|
-
"thead",
|
|
112
|
-
"tbody",
|
|
113
|
-
"tfoot"
|
|
114
|
-
]
|
|
115
|
-
}
|
|
116
|
-
]
|
|
117
|
-
}
|
|
118
|
-
]
|
|
119
|
-
},
|
|
120
|
-
"cardWithFooter": {
|
|
121
|
-
"tagName": "div",
|
|
122
|
-
"attributes": {
|
|
123
|
-
"class": "card shadow-sm"
|
|
124
|
-
},
|
|
125
|
-
"children": [
|
|
126
|
-
{
|
|
127
|
-
"tagName": "div",
|
|
128
|
-
"attributes": {
|
|
129
|
-
"class": "table-responsive"
|
|
130
|
-
},
|
|
131
|
-
"children": [
|
|
132
|
-
{
|
|
133
|
-
"tagName": "table",
|
|
134
|
-
"attributes": {
|
|
135
|
-
"class": "table table-hover table-striped mb-0"
|
|
136
|
-
},
|
|
137
|
-
"slots": [
|
|
138
|
-
"colGroup",
|
|
139
|
-
"thead",
|
|
140
|
-
"tbody",
|
|
141
|
-
"tfoot"
|
|
142
|
-
]
|
|
143
|
-
}
|
|
144
|
-
]
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"tagName": "div",
|
|
148
|
-
"attributes": {
|
|
149
|
-
"class": "card-footer bg-white py-2"
|
|
150
|
-
},
|
|
151
|
-
"slots": [
|
|
152
|
-
"cardFooter"
|
|
153
|
-
]
|
|
154
|
-
}
|
|
155
|
-
]
|
|
156
|
-
},
|
|
157
|
-
"cardWithHeaderAndFooter": {
|
|
158
|
-
"tagName": "div",
|
|
159
|
-
"attributes": {
|
|
160
|
-
"class": "card shadow-sm"
|
|
161
|
-
},
|
|
162
|
-
"children": [
|
|
163
|
-
{
|
|
164
|
-
"tagName": "div",
|
|
165
|
-
"attributes": {
|
|
166
|
-
"class": "card-header bg-white py-3"
|
|
167
|
-
},
|
|
168
|
-
"slots": [
|
|
169
|
-
"cardHeader"
|
|
170
|
-
]
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
"tagName": "div",
|
|
174
|
-
"attributes": {
|
|
175
|
-
"class": "table-responsive"
|
|
176
|
-
},
|
|
177
|
-
"children": [
|
|
178
|
-
{
|
|
179
|
-
"tagName": "table",
|
|
180
|
-
"attributes": {
|
|
181
|
-
"class": "table table-hover table-striped mb-0"
|
|
182
|
-
},
|
|
183
|
-
"slots": [
|
|
184
|
-
"colGroup",
|
|
185
|
-
"thead",
|
|
186
|
-
"tbody",
|
|
187
|
-
"tfoot"
|
|
188
|
-
]
|
|
189
|
-
}
|
|
190
|
-
]
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
"tagName": "div",
|
|
194
|
-
"attributes": {
|
|
195
|
-
"class": "card-footer bg-white py-2"
|
|
196
|
-
},
|
|
197
|
-
"slots": [
|
|
198
|
-
"cardFooter"
|
|
199
|
-
]
|
|
200
|
-
}
|
|
201
|
-
]
|
|
202
|
-
},
|
|
203
|
-
"bordered": {
|
|
204
|
-
"tagName": "div",
|
|
205
|
-
"attributes": {
|
|
206
|
-
"class": "card shadow-sm"
|
|
207
|
-
},
|
|
208
|
-
"children": [
|
|
209
|
-
{
|
|
210
|
-
"tagName": "div",
|
|
211
|
-
"attributes": {
|
|
212
|
-
"class": "table-responsive"
|
|
213
|
-
},
|
|
214
|
-
"children": [
|
|
215
|
-
{
|
|
216
|
-
"tagName": "table",
|
|
217
|
-
"attributes": {
|
|
218
|
-
"class": "table table-bordered table-hover mb-0"
|
|
219
|
-
},
|
|
220
|
-
"slots": [
|
|
221
|
-
"colGroup",
|
|
222
|
-
"thead",
|
|
223
|
-
"tbody",
|
|
224
|
-
"tfoot"
|
|
225
|
-
]
|
|
226
|
-
}
|
|
227
|
-
]
|
|
228
|
-
}
|
|
229
|
-
]
|
|
230
|
-
},
|
|
231
|
-
"borderless": {
|
|
232
|
-
"tagName": "div",
|
|
233
|
-
"attributes": {
|
|
234
|
-
"class": "card shadow-sm"
|
|
235
|
-
},
|
|
236
|
-
"children": [
|
|
237
|
-
{
|
|
238
|
-
"tagName": "div",
|
|
239
|
-
"attributes": {
|
|
240
|
-
"class": "table-responsive"
|
|
241
|
-
},
|
|
242
|
-
"children": [
|
|
243
|
-
{
|
|
244
|
-
"tagName": "table",
|
|
245
|
-
"attributes": {
|
|
246
|
-
"class": "table table-borderless table-hover mb-0"
|
|
247
|
-
},
|
|
248
|
-
"slots": [
|
|
249
|
-
"colGroup",
|
|
250
|
-
"thead",
|
|
251
|
-
"tbody",
|
|
252
|
-
"tfoot"
|
|
253
|
-
]
|
|
254
|
-
}
|
|
255
|
-
]
|
|
256
|
-
}
|
|
257
|
-
]
|
|
258
|
-
},
|
|
259
|
-
"compact": {
|
|
260
|
-
"tagName": "div",
|
|
261
|
-
"attributes": {
|
|
262
|
-
"class": "card shadow-sm"
|
|
263
|
-
},
|
|
264
|
-
"children": [
|
|
265
|
-
{
|
|
266
|
-
"tagName": "div",
|
|
267
|
-
"attributes": {
|
|
268
|
-
"class": "table-responsive"
|
|
269
|
-
},
|
|
270
|
-
"children": [
|
|
271
|
-
{
|
|
272
|
-
"tagName": "table",
|
|
273
|
-
"attributes": {
|
|
274
|
-
"class": "table table-sm table-hover table-striped mb-0"
|
|
275
|
-
},
|
|
276
|
-
"slots": [
|
|
277
|
-
"colGroup",
|
|
278
|
-
"thead",
|
|
279
|
-
"tbody",
|
|
280
|
-
"tfoot"
|
|
281
|
-
]
|
|
282
|
-
}
|
|
283
|
-
]
|
|
284
|
-
}
|
|
285
|
-
]
|
|
286
|
-
},
|
|
287
|
-
"dark": {
|
|
288
|
-
"tagName": "div",
|
|
289
|
-
"attributes": {
|
|
290
|
-
"class": "card shadow-sm bg-dark text-white border-secondary"
|
|
291
|
-
},
|
|
292
|
-
"children": [
|
|
293
|
-
{
|
|
294
|
-
"tagName": "div",
|
|
295
|
-
"attributes": {
|
|
296
|
-
"class": "table-responsive"
|
|
297
|
-
},
|
|
298
|
-
"children": [
|
|
299
|
-
{
|
|
300
|
-
"tagName": "table",
|
|
301
|
-
"attributes": {
|
|
302
|
-
"class": "table table-dark table-hover mb-0"
|
|
303
|
-
},
|
|
304
|
-
"slots": [
|
|
305
|
-
"colGroup",
|
|
306
|
-
"thead",
|
|
307
|
-
"tbody",
|
|
308
|
-
"tfoot"
|
|
309
|
-
]
|
|
310
|
-
}
|
|
311
|
-
]
|
|
312
|
-
}
|
|
313
|
-
]
|
|
314
|
-
},
|
|
315
|
-
"striped": {
|
|
316
|
-
"tagName": "div",
|
|
317
|
-
"attributes": {
|
|
318
|
-
"class": "card shadow-sm"
|
|
319
|
-
},
|
|
320
|
-
"children": [
|
|
321
|
-
{
|
|
322
|
-
"tagName": "div",
|
|
323
|
-
"attributes": {
|
|
324
|
-
"class": "table-responsive"
|
|
325
|
-
},
|
|
326
|
-
"children": [
|
|
327
|
-
{
|
|
328
|
-
"tagName": "table",
|
|
329
|
-
"attributes": {
|
|
330
|
-
"class": "table table-striped mb-0"
|
|
331
|
-
},
|
|
332
|
-
"slots": [
|
|
333
|
-
"colGroup",
|
|
334
|
-
"thead",
|
|
335
|
-
"tbody",
|
|
336
|
-
"tfoot"
|
|
337
|
-
]
|
|
338
|
-
}
|
|
339
|
-
]
|
|
340
|
-
}
|
|
341
|
-
]
|
|
342
|
-
},
|
|
343
|
-
"flush": {
|
|
344
|
-
"tagName": "div",
|
|
345
|
-
"attributes": {
|
|
346
|
-
"class": "card border-0 shadow-none"
|
|
347
|
-
},
|
|
348
|
-
"children": [
|
|
349
|
-
{
|
|
350
|
-
"tagName": "div",
|
|
351
|
-
"attributes": {
|
|
352
|
-
"class": "table-responsive"
|
|
353
|
-
},
|
|
354
|
-
"children": [
|
|
355
|
-
{
|
|
356
|
-
"tagName": "table",
|
|
357
|
-
"attributes": {
|
|
358
|
-
"class": "table table-hover table-striped mb-0"
|
|
359
|
-
},
|
|
360
|
-
"slots": [
|
|
361
|
-
"colGroup",
|
|
362
|
-
"thead",
|
|
363
|
-
"tbody",
|
|
364
|
-
"tfoot"
|
|
365
|
-
]
|
|
366
|
-
}
|
|
367
|
-
]
|
|
368
|
-
}
|
|
369
|
-
]
|
|
370
|
-
}
|
|
371
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const deriveColumnsFromData = ({ inData = [] } = {}) => {
|
|
2
|
-
const localData = inData;
|
|
3
|
-
|
|
4
|
-
if (!Array.isArray(localData) || localData.length === 0) {
|
|
5
|
-
return [];
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const firstRow = localData[0];
|
|
9
|
-
if (!firstRow || typeof firstRow !== "object") {
|
|
10
|
-
return [];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return Object.keys(firstRow).map(key => ({
|
|
14
|
-
key,
|
|
15
|
-
label: key
|
|
16
|
-
}));
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { deriveColumnsFromData };
|
|
20
|
-
export default deriveColumnsFromData;
|
|
@@ -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
|
-
}
|
|
@@ -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;
|