json-renderers-build 1.9.1 → 1.10.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.
Files changed (164) hide show
  1. package/package.json +2 -2
  2. package/src/index.js +2 -2
  3. package/src/v10/index.js +42 -0
  4. package/src/{v2 → v10}/meta.js +1 -1
  5. package/src/v10/select/index.js +21 -0
  6. package/src/{v6/selectOptionsOnly → v10/select/options}/index.js +2 -4
  7. package/src/{v4/selectOptionsOnly → v10/select/options}/skeleton.json +1 -1
  8. package/src/v10/table/footer/empty/cell/index.js +5 -0
  9. package/src/v10/table/footer/empty/cell/tag.json +6 -0
  10. package/src/v10/table/footer/empty/index.js +6 -0
  11. package/src/v10/table/footer/empty/row/index.js +10 -0
  12. package/src/v10/table/footer/empty/row/tag.json +7 -0
  13. package/src/v10/table/footer/index.js +28 -0
  14. package/src/v10/table/footer/inputs/cell/index.js +15 -0
  15. package/src/v10/table/footer/inputs/cell/tag.json +7 -0
  16. package/src/v10/table/footer/inputs/index.js +6 -0
  17. package/src/v10/table/footer/inputs/input/tag.json +9 -0
  18. package/src/v10/table/footer/inputs/row/index.js +10 -0
  19. package/src/v10/table/footer/inputs/row/tag.json +7 -0
  20. package/src/v10/table/footer/inputsWithSave/button/tag.json +8 -0
  21. package/src/v10/table/footer/inputsWithSave/cell/index.js +20 -0
  22. package/src/v10/table/footer/inputsWithSave/cell/tag.json +7 -0
  23. package/src/v10/table/footer/inputsWithSave/index.js +6 -0
  24. package/src/v10/table/footer/inputsWithSave/input/tag.json +9 -0
  25. package/src/v10/table/footer/inputsWithSave/row/index.js +13 -0
  26. package/src/v10/table/footer/inputsWithSave/row/tag.json +7 -0
  27. package/src/v10/table/footer/tag.json +7 -0
  28. package/src/v10/table/footer/totals/cell/index.js +21 -0
  29. package/src/v10/table/footer/totals/cell/tag.json +7 -0
  30. package/src/v10/table/footer/totals/index.js +6 -0
  31. package/src/v10/table/footer/totals/row/index.js +12 -0
  32. package/src/v10/table/footer/totals/row/tag.json +7 -0
  33. package/src/v10/table/index.js +33 -0
  34. package/src/v10/table/options/index.js +16 -0
  35. package/src/v10/table/options/showOptions/index.js +39 -0
  36. package/src/v10/table/options/showSerial/index.js +19 -0
  37. package/src/v10/table/render-requests.json +107 -0
  38. package/src/v10/table/table/body/cell/index.js +12 -0
  39. package/src/v10/table/table/body/cell/tag.json +7 -0
  40. package/src/v10/table/table/body/index.js +17 -0
  41. package/src/v10/table/table/body/row/index.js +18 -0
  42. package/src/v10/table/table/body/row/tag.json +4 -0
  43. package/src/v10/table/table/body/tag.json +4 -0
  44. package/src/v10/table/table/head/cell/index.js +12 -0
  45. package/src/v10/table/table/head/cell/tag.json +7 -0
  46. package/src/v10/table/table/head/index.js +16 -0
  47. package/src/v10/table/table/head/row/index.js +14 -0
  48. package/src/v10/table/table/head/row/tag.json +4 -0
  49. package/src/v10/table/table/head/tag.json +4 -0
  50. package/src/v10/table/table/index.js +36 -0
  51. package/src/v10/table/table/tag.json +7 -0
  52. package/src/v10/tableFromSpec/footer/empty/cell/index.js +5 -0
  53. package/src/v10/tableFromSpec/footer/empty/cell/tag.json +6 -0
  54. package/src/v10/tableFromSpec/footer/empty/index.js +6 -0
  55. package/src/v10/tableFromSpec/footer/empty/row/index.js +10 -0
  56. package/src/v10/tableFromSpec/footer/empty/row/tag.json +7 -0
  57. package/src/v10/tableFromSpec/footer/index.js +28 -0
  58. package/src/v10/tableFromSpec/footer/inputs/cell/index.js +15 -0
  59. package/src/v10/tableFromSpec/footer/inputs/cell/tag.json +7 -0
  60. package/src/v10/tableFromSpec/footer/inputs/index.js +6 -0
  61. package/src/v10/tableFromSpec/footer/inputs/input/tag.json +9 -0
  62. package/src/v10/tableFromSpec/footer/inputs/row/index.js +10 -0
  63. package/src/v10/tableFromSpec/footer/inputs/row/tag.json +7 -0
  64. package/src/v10/tableFromSpec/footer/inputsWithSave/button/tag.json +8 -0
  65. package/src/v10/tableFromSpec/footer/inputsWithSave/cell/index.js +20 -0
  66. package/src/v10/tableFromSpec/footer/inputsWithSave/cell/tag.json +7 -0
  67. package/src/v10/tableFromSpec/footer/inputsWithSave/index.js +6 -0
  68. package/src/v10/tableFromSpec/footer/inputsWithSave/input/tag.json +9 -0
  69. package/src/v10/tableFromSpec/footer/inputsWithSave/row/index.js +13 -0
  70. package/src/v10/tableFromSpec/footer/inputsWithSave/row/tag.json +7 -0
  71. package/src/v10/tableFromSpec/footer/tag.json +7 -0
  72. package/src/v10/tableFromSpec/footer/totals/cell/index.js +21 -0
  73. package/src/v10/tableFromSpec/footer/totals/cell/tag.json +7 -0
  74. package/src/v10/tableFromSpec/footer/totals/index.js +6 -0
  75. package/src/v10/tableFromSpec/footer/totals/row/index.js +12 -0
  76. package/src/v10/tableFromSpec/footer/totals/row/tag.json +7 -0
  77. package/src/v10/tableFromSpec/index.js +32 -0
  78. package/src/v10/tableFromSpec/options/index.js +18 -0
  79. package/src/v10/tableFromSpec/options/showOptions/index.js +39 -0
  80. package/src/v10/tableFromSpec/options/showSerial/index.js +20 -0
  81. package/src/v10/tableFromSpec/render-requests.json +107 -0
  82. package/src/v10/tableFromSpec/table/body/index.js +16 -0
  83. package/src/v10/tableFromSpec/table/body/spec.json +16 -0
  84. package/src/v10/tableFromSpec/table/body/tag.json +4 -0
  85. package/src/v10/tableFromSpec/table/findKey.js +17 -0
  86. package/src/v10/tableFromSpec/table/head/index.js +19 -0
  87. package/src/v10/tableFromSpec/table/head/spec.json +13 -0
  88. package/src/v10/tableFromSpec/table/index.js +22 -0
  89. package/src/v10/tableFromSpec/table/tag.json +24 -0
  90. package/src/v9/table/index.js +33 -33
  91. package/src/v9/table/options/index.js +18 -18
  92. package/src/v9/table/options/showOptions/index.js +39 -39
  93. package/src/v9/table/options/showSerial/index.js +19 -19
  94. package/src/v9/table/table/body/cell/index.js +12 -12
  95. package/src/v9/table/table/body/cell/tag.json +7 -7
  96. package/src/v9/table/table/body/index.js +17 -17
  97. package/src/v9/table/table/body/row/index.js +18 -18
  98. package/src/v9/table/table/body/row/tag.json +4 -4
  99. package/src/v9/table/table/body/tag.json +4 -4
  100. package/src/v9/table/table/head/cell/index.js +12 -12
  101. package/src/v9/table/table/head/cell/tag.json +7 -7
  102. package/src/v9/table/table/head/index.js +16 -16
  103. package/src/v9/table/table/head/row/index.js +14 -14
  104. package/src/v9/table/table/head/row/tag.json +4 -4
  105. package/src/v9/table/table/head/tag.json +4 -4
  106. package/src/v9/table/table/index.js +36 -36
  107. package/src/v9/table/table/tag.json +7 -7
  108. package/src/v1/index.js +0 -62
  109. package/src/v1/meta.js +0 -6
  110. package/src/v1/registerGlobal.js +0 -14
  111. package/src/v1/select/index.js +0 -32
  112. package/src/v1/select/skeleton.json +0 -18
  113. package/src/v1/table/index.js +0 -36
  114. package/src/v1/table/skeleton.json +0 -47
  115. package/src/v2/common/deriveColumnsFromData.js +0 -20
  116. package/src/v2/index.js +0 -62
  117. package/src/v2/select/index.js +0 -32
  118. package/src/v2/select/skeleton.json +0 -18
  119. package/src/v2/table/index.js +0 -23
  120. package/src/v2/table/skeleton.json +0 -47
  121. package/src/v3/common/deriveColumnsFromData.js +0 -20
  122. package/src/v3/index.js +0 -40
  123. package/src/v3/meta.js +0 -6
  124. package/src/v3/registerGlobal.js +0 -14
  125. package/src/v3/select/index.js +0 -18
  126. package/src/v3/select/skeleton.json +0 -18
  127. package/src/v3/selectOptionsOnly/index.js +0 -18
  128. package/src/v3/selectOptionsOnly/skeleton.json +0 -14
  129. package/src/v3/table/index.js +0 -20
  130. package/src/v3/table/skeleton.json +0 -47
  131. package/src/v4/common/deriveColumnsFromData.js +0 -20
  132. package/src/v4/index.js +0 -40
  133. package/src/v4/meta.js +0 -6
  134. package/src/v4/registerGlobal.js +0 -14
  135. package/src/v4/select/index.js +0 -20
  136. package/src/v4/selectOptionsOnly/index.js +0 -19
  137. package/src/v4/table/index.js +0 -20
  138. package/src/v4/table/skeleton.json +0 -47
  139. package/src/v5/common/deriveColumnsFromData.js +0 -20
  140. package/src/v5/index.js +0 -40
  141. package/src/v5/meta.js +0 -6
  142. package/src/v5/registerGlobal.js +0 -14
  143. package/src/v5/select/index.js +0 -20
  144. package/src/v5/select/skeleton.json +0 -7
  145. package/src/v5/selectOptionsOnly/index.js +0 -19
  146. package/src/v5/selectOptionsOnly/skeleton.json +0 -17
  147. package/src/v5/table/index.js +0 -20
  148. package/src/v5/table/skeleton.json +0 -47
  149. package/src/v5/tableHeadCells/index.js +0 -19
  150. package/src/v5/tableHeadCells/skeleton.json +0 -17
  151. package/src/v6/common/deriveColumnsFromData.js +0 -20
  152. package/src/v6/index.js +0 -40
  153. package/src/v6/meta.js +0 -6
  154. package/src/v6/registerGlobal.js +0 -14
  155. package/src/v6/select/index.js +0 -20
  156. package/src/v6/select/skeleton.json +0 -7
  157. package/src/v6/selectOptionsOnly/skeleton.json +0 -17
  158. package/src/v6/table/index.js +0 -20
  159. package/src/v6/table/skeleton.json +0 -47
  160. package/src/v6/tableHeadCells/index.js +0 -19
  161. package/src/v6/tableHeadCells/skeleton.json +0 -17
  162. /package/src/{v1 → v10}/common/deriveColumnsFromData.js +0 -0
  163. /package/src/{v2 → v10}/registerGlobal.js +0 -0
  164. /package/src/{v4 → v10}/select/skeleton.json +0 -0
@@ -1,16 +1,16 @@
1
- import tagJson from "./tag.json" with { type: "json" };
2
- import buildHeadRow from "./row/index.js";
3
-
4
- const renderTableHead = ({ inColumns = [] } = {}) => {
5
- const thead = structuredClone(tagJson);
6
-
7
- const children = [
8
- buildHeadRow({ inColumns })
9
- ];
10
-
11
- thead.children = children;
12
-
13
- return thead;
14
- };
15
-
16
- export default renderTableHead;
1
+ import tagJson from "./tag.json" with { type: "json" };
2
+ import buildHeadRow from "./row/index.js";
3
+
4
+ const renderTableHead = ({ inColumns = [] } = {}) => {
5
+ const thead = structuredClone(tagJson);
6
+
7
+ const children = [
8
+ buildHeadRow({ inColumns })
9
+ ];
10
+
11
+ thead.children = children;
12
+
13
+ return thead;
14
+ };
15
+
16
+ export default renderTableHead;
@@ -1,14 +1,14 @@
1
- import tagJson from "./tag.json" with { type: "json" };
2
- import buildHeadCell from "../cell/index.js";
3
-
4
- const buildHeadRow = ({ inColumns = [] } = {}) => {
5
- const tr = structuredClone(tagJson);
6
-
7
- const children = inColumns.map(column => buildHeadCell({ inColumn: column }));
8
-
9
- tr.children = children;
10
-
11
- return tr;
12
- };
13
-
14
- export default buildHeadRow;
1
+ import tagJson from "./tag.json" with { type: "json" };
2
+ import buildHeadCell from "../cell/index.js";
3
+
4
+ const buildHeadRow = ({ inColumns = [] } = {}) => {
5
+ const tr = structuredClone(tagJson);
6
+
7
+ const children = inColumns.map(column => buildHeadCell({ inColumn: column }));
8
+
9
+ tr.children = children;
10
+
11
+ return tr;
12
+ };
13
+
14
+ export default buildHeadRow;
@@ -1,4 +1,4 @@
1
- {
2
- "tagName": "tr",
3
- "children": []
4
- }
1
+ {
2
+ "tagName": "tr",
3
+ "children": []
4
+ }
@@ -1,4 +1,4 @@
1
- {
2
- "tagName": "thead",
3
- "children": []
4
- }
1
+ {
2
+ "tagName": "thead",
3
+ "children": []
4
+ }
@@ -1,36 +1,36 @@
1
- import tagJson from "./tag.json" with { type: "json" };
2
- import renderTableHead from "./head/index.js";
3
- import renderTableBody from "./body/index.js";
4
- import renderTableFooter from "../footer/index.js";
5
-
6
- const renderTable = ({
7
- inColumns = [],
8
- inData = [],
9
- inFooter = []
10
- } = {}) => {
11
- const table = structuredClone(tagJson);
12
-
13
- const children = [
14
- renderTableHead({ inColumns }),
15
- renderTableBody({ inData, inColumns })
16
- ];
17
-
18
- if (!Array.isArray(inFooter)) {
19
- throw new TypeError("The footer property must be an array of footer names.");
20
- }
21
-
22
- if (inFooter.length > 0) {
23
- children.push(renderTableFooter({
24
- inFooter,
25
- inColumns,
26
- inData
27
- }));
28
- }
29
-
30
- table.children = children;
31
-
32
- return table;
33
- };
34
-
35
- export { renderTableHead, renderTableBody };
36
- export default renderTable;
1
+ import tagJson from "./tag.json" with { type: "json" };
2
+ import renderTableHead from "./head/index.js";
3
+ import renderTableBody from "./body/index.js";
4
+ import renderTableFooter from "../footer/index.js";
5
+
6
+ const renderTable = ({
7
+ inColumns = [],
8
+ inData = [],
9
+ inFooter = []
10
+ } = {}) => {
11
+ const table = structuredClone(tagJson);
12
+
13
+ const children = [
14
+ renderTableHead({ inColumns }),
15
+ renderTableBody({ inData, inColumns })
16
+ ];
17
+
18
+ if (!Array.isArray(inFooter)) {
19
+ throw new TypeError("The footer property must be an array of footer names.");
20
+ }
21
+
22
+ if (inFooter.length > 0) {
23
+ children.push(renderTableFooter({
24
+ inFooter,
25
+ inColumns,
26
+ inData
27
+ }));
28
+ }
29
+
30
+ table.children = children;
31
+
32
+ return table;
33
+ };
34
+
35
+ export { renderTableHead, renderTableBody };
36
+ export default renderTable;
@@ -1,7 +1,7 @@
1
- {
2
- "tagName": "table",
3
- "attributes": {
4
- "class": "table table-hover table-striped mb-0"
5
- },
6
- "children": []
7
- }
1
+ {
2
+ "tagName": "table",
3
+ "attributes": {
4
+ "class": "table table-hover table-striped mb-0"
5
+ },
6
+ "children": []
7
+ }
package/src/v1/index.js DELETED
@@ -1,62 +0,0 @@
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
- colGroup,
19
- inColGroup,
20
- footerData,
21
- inFooterData,
22
- config,
23
- inConfig,
24
- variant,
25
- skeletonType,
26
- inSkeletonType,
27
- showLog = false,
28
- inShowLog
29
- } = {}) => {
30
- const rawType = type;
31
- const resolvedType = typeof rawType === "string" ? rawType.toLowerCase() : "table";
32
- const renderer = RENDERER_MAP[resolvedType];
33
-
34
- if (!renderer) {
35
- console.error(
36
- `[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
37
- );
38
- return null;
39
- }
40
-
41
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
42
- const localData = inData ?? data;
43
- const localColumns = inColumns ?? columns;
44
- const localSkeletonType = inSkeletonType ?? skeletonType ?? variant ?? "default";
45
- const localShowLog = inShowLog ?? showLog ?? false;
46
-
47
- // Default to table renderer
48
- return renderer({
49
- targetHtmlId: localTargetHtmlId,
50
- inColumns: localColumns,
51
- inData: localData,
52
- inColGroup: inColGroup ?? colGroup,
53
- inFooterData: inFooterData ?? footerData ?? [],
54
- inConfig: inConfig ?? config ?? {},
55
- inSkeletonType: localSkeletonType,
56
- inShowLog: localShowLog
57
- });
58
- };
59
-
60
- registerGlobal(render);
61
-
62
- export default render;
package/src/v1/meta.js DELETED
@@ -1,6 +0,0 @@
1
- export const meta = {
2
- version: "v12.0.0",
3
- description: "build table from store data and render to DOM uses json-to-spec, json-to-dom under the hood"
4
- };
5
-
6
- export default meta;
@@ -1,14 +0,0 @@
1
- import meta from "./meta.js";
2
-
3
- export const registerGlobal = (inFuncDefinition) => {
4
- if (typeof globalThis === "undefined" || !inFuncDefinition) return;
5
-
6
- globalThis.ks ??= {};
7
-
8
- globalThis.ks.jsonRenderers ??= {
9
- meta,
10
- renderToDom: inFuncDefinition
11
- };
12
- };
13
-
14
- export default registerGlobal;
@@ -1,32 +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
- inTargetHtmlId,
9
- inData
10
- } = {}) => {
11
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
12
- const localData = inData ?? [];
13
- const localColumns = inColumns;
14
-
15
- let specAsJsonToDom = jsonToSpec(skeletonJson, {
16
- arrayOfStrings: localData
17
- });
18
-
19
- if (!("tagName" in specAsJsonToDom)) {
20
- specAsJsonToDom = specAsJsonToDom.children;
21
- };
22
-
23
- const container = document.getElementById(localTargetHtmlId);
24
-
25
- if (container) container.innerHTML = "";
26
-
27
- const content = jsonToTag(specAsJsonToDom);
28
-
29
- container.append(content);
30
- };
31
-
32
- export default startFunc;
@@ -1,18 +0,0 @@
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
- }
@@ -1,36 +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
-
33
- container.append(content);
34
- };
35
-
36
- export default startFunc;
@@ -1,47 +0,0 @@
1
- {
2
- "default": {
3
- "tagName": "table",
4
- "attributes": {
5
- "class": "table table-hover table-striped mb-0"
6
- },
7
- "children": [
8
- {
9
- "tagName": "thead",
10
- "children": [
11
- {
12
- "tagName": "tr",
13
- "jsonToSpec": {
14
- "operation": "loopCollection",
15
- "source": "columns",
16
- "template": {
17
- "tagName": "th",
18
- "textContent": "${title}"
19
- }
20
- },
21
- "children": []
22
- }
23
- ]
24
- },
25
- {
26
- "tagName": "tbody",
27
- "jsonToSpec": {
28
- "operation": "loopCollection",
29
- "source": "data",
30
- "template": {
31
- "tagName": "tr",
32
- "jsonToSpec": {
33
- "operation": "loopObject",
34
- "source": "data",
35
- "template": {
36
- "tagName": "td",
37
- "textContent": "${value}"
38
- }
39
- },
40
- "children": []
41
- }
42
- },
43
- "children": []
44
- }
45
- ]
46
- }
47
- }
@@ -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;
package/src/v2/index.js DELETED
@@ -1,62 +0,0 @@
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
- colGroup,
19
- inColGroup,
20
- footerData,
21
- inFooterData,
22
- config,
23
- inConfig,
24
- variant,
25
- skeletonType,
26
- inSkeletonType,
27
- showLog = false,
28
- inShowLog
29
- } = {}) => {
30
- const rawType = type;
31
- const resolvedType = typeof rawType === "string" ? rawType.toLowerCase() : "table";
32
- const renderer = RENDERER_MAP[resolvedType];
33
-
34
- if (!renderer) {
35
- console.error(
36
- `[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
37
- );
38
- return null;
39
- }
40
-
41
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
42
- const localData = inData ?? data;
43
- const localColumns = inColumns ?? columns;
44
- const localSkeletonType = inSkeletonType ?? skeletonType ?? variant ?? "default";
45
- const localShowLog = inShowLog ?? showLog ?? false;
46
-
47
- // Default to table renderer
48
- return renderer({
49
- targetHtmlId: localTargetHtmlId,
50
- inColumns: localColumns,
51
- inData: localData,
52
- inColGroup: inColGroup ?? colGroup,
53
- inFooterData: inFooterData ?? footerData ?? [],
54
- inConfig: inConfig ?? config ?? {},
55
- inSkeletonType: localSkeletonType,
56
- inShowLog: localShowLog
57
- });
58
- };
59
-
60
- registerGlobal(render);
61
-
62
- export default render;
@@ -1,32 +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
- inTargetHtmlId,
9
- inData
10
- } = {}) => {
11
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
12
- const localData = inData ?? [];
13
- const localColumns = inColumns;
14
-
15
- let specAsJsonToDom = jsonToSpec(skeletonJson, {
16
- arrayOfStrings: localData
17
- });
18
-
19
- if (!("tagName" in specAsJsonToDom)) {
20
- specAsJsonToDom = specAsJsonToDom.children;
21
- };
22
-
23
- const container = document.getElementById(localTargetHtmlId);
24
-
25
- if (container) container.innerHTML = "";
26
-
27
- const content = jsonToTag(specAsJsonToDom);
28
-
29
- container.append(content);
30
- };
31
-
32
- export default startFunc;
@@ -1,18 +0,0 @@
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
- }
@@ -1,23 +0,0 @@
1
- import jsonToSpec from "json-to-spec";
2
-
3
- import skeletonJson from './skeleton.json' with { type: 'json' };
4
-
5
- // --- Story of Table Render ---
6
- const startFunc = ({
7
- targetHtmlId,
8
- inTargetHtmlId,
9
- inColumns,
10
- inData,
11
- } = {}) => {
12
- const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
13
- const localData = inData ?? [];
14
- const localColumns = inColumns;
15
-
16
- let specAsJsonToDom = jsonToSpec(skeletonJson.default, {
17
- columns: localColumns, data: localData
18
- });
19
-
20
- return specAsJsonToDom;
21
- };
22
-
23
- export default startFunc;
@@ -1,47 +0,0 @@
1
- {
2
- "default": {
3
- "tagName": "table",
4
- "attributes": {
5
- "class": "table table-hover table-striped mb-0"
6
- },
7
- "children": [
8
- {
9
- "tagName": "thead",
10
- "children": [
11
- {
12
- "tagName": "tr",
13
- "jsonToSpec": {
14
- "operation": "loopCollection",
15
- "source": "columns",
16
- "template": {
17
- "tagName": "th",
18
- "textContent": "${title}"
19
- }
20
- },
21
- "children": []
22
- }
23
- ]
24
- },
25
- {
26
- "tagName": "tbody",
27
- "jsonToSpec": {
28
- "operation": "loopCollection",
29
- "source": "data",
30
- "template": {
31
- "tagName": "tr",
32
- "jsonToSpec": {
33
- "operation": "loopObject",
34
- "source": "data",
35
- "template": {
36
- "tagName": "td",
37
- "textContent": "${value}"
38
- }
39
- },
40
- "children": []
41
- }
42
- },
43
- "children": []
44
- }
45
- ]
46
- }
47
- }
@@ -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;
package/src/v3/index.js DELETED
@@ -1,40 +0,0 @@
1
- import registerGlobal from "./registerGlobal.js";
2
-
3
- import renderTable from "./table/index.js";
4
- import renderSelect from "./select/index.js";
5
- import renderSelectOptionsOnly from "./selectOptionsOnly/index.js";
6
-
7
- const RENDERER_MAP = {
8
- table: renderTable,
9
- select: renderSelect,
10
- selectOptionsOnly: renderSelectOptionsOnly
11
- };
12
-
13
- const render = ({
14
- type = "table",
15
- data,
16
- columns
17
- } = {}) => {
18
- const rawType = type;
19
- const renderer = RENDERER_MAP[rawType];
20
-
21
- if (!renderer) {
22
- console.error(
23
- `[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
24
- );
25
- return null;
26
- }
27
-
28
- const localData = data;
29
- const localColumns = columns;
30
-
31
- // Default to table renderer
32
- return renderer({
33
- inColumns: localColumns,
34
- inData: localData
35
- });
36
- };
37
-
38
- registerGlobal(render);
39
-
40
- export default render;
package/src/v3/meta.js DELETED
@@ -1,6 +0,0 @@
1
- export const meta = {
2
- version: "v3.0.0",
3
- description: "build table from store data and render to DOM uses json-to-spec, json-to-dom under the hood"
4
- };
5
-
6
- export default meta;