json-renderers-build-table 1.28.1 → 1.36.1

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 (182) hide show
  1. package/package.json +6 -2
  2. package/src/index.js +2 -2
  3. package/src/v32/actions/index.js +28 -0
  4. package/src/{v28/actions/insertOptions/instructions/single.json → v32/actions/instructionsForOptions.json} +22 -26
  5. package/src/{v27/actions/insertSerial/instructions/single.json → v32/actions/instructionsForSerial.json} +22 -26
  6. package/src/{v28 → v32}/builders/simple/index.js +3 -2
  7. package/src/v33/actions/index.js +12 -0
  8. package/src/v33/builders/simple/index.js +41 -0
  9. package/src/v34/actions/index.js +12 -0
  10. package/src/v34/builders/simple/index.js +50 -0
  11. package/src/v34/builders/simpleSearch/instructions/single.json +38 -0
  12. package/src/v34/builders/withFooter/base.json +53 -0
  13. package/src/v34/builders/withFooter/instructions/double.json +19 -0
  14. package/src/v35/builders/bodyOnly/base.json +1 -0
  15. package/src/v35/builders/bodyOnly/double.json +1 -0
  16. package/src/v35/builders/bodyOnly/index.js +37 -0
  17. package/src/v35/builders/bodyOnly/single.json +1 -0
  18. package/src/v35/builders/footerOnly/base.json +1 -0
  19. package/src/v35/builders/footerOnly/double.json +1 -0
  20. package/src/v35/builders/footerOnly/index.js +37 -0
  21. package/src/v35/builders/footerOnly/single.json +1 -0
  22. package/src/v35/builders/headerOnly/base.json +1 -0
  23. package/src/v35/builders/headerOnly/double.json +1 -0
  24. package/src/v35/builders/headerOnly/index.js +37 -0
  25. package/src/v35/builders/headerOnly/single.json +1 -0
  26. package/src/v35/builders/simple/base.json +1 -0
  27. package/src/v35/builders/simple/double.json +1 -0
  28. package/src/v35/builders/simple/index.js +30 -0
  29. package/src/v35/builders/simple/single.json +1 -0
  30. package/src/v35/builders/spec.json +107 -0
  31. package/src/v35/builders/withFooter/base.json +1 -0
  32. package/src/v35/builders/withFooter/double.json +1 -0
  33. package/src/v35/builders/withFooter/index.js +30 -0
  34. package/src/v35/builders/withFooter/single.json +56 -0
  35. package/src/v35/index.js +11 -0
  36. package/src/v35/public.js +2 -0
  37. package/src/v36/builders/bodyOnly/base.json +1 -0
  38. package/src/v36/builders/bodyOnly/double.json +1 -0
  39. package/src/v36/builders/bodyOnly/index.js +37 -0
  40. package/src/v36/builders/bodyOnly/single.json +1 -0
  41. package/src/v36/builders/footerOnly/base.json +1 -0
  42. package/src/v36/builders/footerOnly/double.json +1 -0
  43. package/src/v36/builders/footerOnly/index.js +37 -0
  44. package/src/v36/builders/footerOnly/single.json +1 -0
  45. package/src/v36/builders/headerOnly/base.json +1 -0
  46. package/src/v36/builders/headerOnly/double.json +1 -0
  47. package/src/v36/builders/headerOnly/index.js +37 -0
  48. package/src/v36/builders/headerOnly/single.json +1 -0
  49. package/src/v36/builders/simple/base.json +1 -0
  50. package/src/v36/builders/simple/double.json +1 -0
  51. package/src/v36/builders/simple/index.js +30 -0
  52. package/src/v36/builders/simple/single.json +1 -0
  53. package/src/v36/builders/spec.json +107 -0
  54. package/src/v36/builders/withFooter/base.json +1 -0
  55. package/src/v36/builders/withFooter/double.json +1 -0
  56. package/src/v36/builders/withFooter/index.js +33 -0
  57. package/src/v36/builders/withFooter/single.json +56 -0
  58. package/src/v36/index.js +11 -0
  59. package/src/v36/public.js +2 -0
  60. package/src/v26/actions/index.js +0 -20
  61. package/src/v26/actions/insertOptions/index.js +0 -47
  62. package/src/v26/actions/insertOptions/instructions/footer.json +0 -22
  63. package/src/v26/actions/insertOptions/instructions/single.json +0 -62
  64. package/src/v26/actions/insertSerial/index.js +0 -47
  65. package/src/v26/actions/insertSerial/instructions/footer.json +0 -22
  66. package/src/v26/actions/insertSerial/instructions/single.json +0 -62
  67. package/src/v27/actions/index.js +0 -25
  68. package/src/v27/actions/insertOptions/index.js +0 -47
  69. package/src/v27/actions/insertOptions/instructions/footer.json +0 -22
  70. package/src/v27/actions/insertOptions/instructions/single.json +0 -62
  71. package/src/v27/actions/insertSerial/index.js +0 -47
  72. package/src/v27/actions/insertSerial/instructions/footer.json +0 -22
  73. package/src/v28/actions/index.js +0 -25
  74. package/src/v28/actions/insertOptions/index.js +0 -47
  75. package/src/v28/actions/insertOptions/instructions/footer.json +0 -22
  76. package/src/v28/actions/insertSearch/index.js +0 -7
  77. package/src/v28/actions/insertSearch/instructions/template.json +0 -20
  78. package/src/v28/actions/insertSerial/index.js +0 -47
  79. package/src/v28/actions/insertSerial/instructions/footer.json +0 -22
  80. package/src/v28/actions/insertSerial/instructions/single.json +0 -62
  81. package/src/v28/builders/simpleSearch/index.js +0 -40
  82. /package/src/{v27 → v32}/actions/insertSearch/index.js +0 -0
  83. /package/src/{v27 → v32}/actions/insertSearch/instructions/template.json +0 -0
  84. /package/src/{v26 → v32}/builders/bodyOnly/base.json +0 -0
  85. /package/src/{v26 → v32}/builders/bodyOnly/index.js +0 -0
  86. /package/src/{v26 → v32}/builders/bodyOnly/instructions/double.json +0 -0
  87. /package/src/{v26 → v32}/builders/footerOnly/base.json +0 -0
  88. /package/src/{v26 → v32}/builders/footerOnly/index.js +0 -0
  89. /package/src/{v26 → v32}/builders/footerOnly/instructions/single.json +0 -0
  90. /package/src/{v26 → v32}/builders/headerOnly/base.json +0 -0
  91. /package/src/{v26 → v32}/builders/headerOnly/index.js +0 -0
  92. /package/src/{v26 → v32}/builders/headerOnly/instructions/single.json +0 -0
  93. /package/src/{v26 → v32}/builders/simple/base.json +0 -0
  94. /package/src/{v26 → v32}/builders/simple/instructions/double.json +0 -0
  95. /package/src/{v26 → v32}/builders/simple/instructions/single.json +0 -0
  96. /package/src/{v26/builders/withFooter → v32/builders/simpleSearch}/base.json +0 -0
  97. /package/src/{v26/builders/simple → v32/builders/simpleSearch}/index.js +0 -0
  98. /package/src/{v26/builders/withFooter → v32/builders/simpleSearch}/instructions/double.json +0 -0
  99. /package/src/{v27/builders/headerOnly → v32/builders/simpleSearch}/instructions/single.json +0 -0
  100. /package/src/{v26 → v32}/builders/spec.json +0 -0
  101. /package/src/{v27/builders/headerOnly → v32/builders/withFooter}/base.json +0 -0
  102. /package/src/{v26 → v32}/builders/withFooter/index.js +0 -0
  103. /package/src/{v27/builders/simple → v32/builders/withFooter}/instructions/double.json +0 -0
  104. /package/src/{v26 → v32}/builders/withFooter/instructions/single.json +0 -0
  105. /package/src/{v26 → v32}/doubleInstruction/index.js +0 -0
  106. /package/src/{v26 → v32}/guards/index.js +0 -0
  107. /package/src/{v26 → v32}/guards/references/func/index.js +0 -0
  108. /package/src/{v26 → v32}/guards/references/index.js +0 -0
  109. /package/src/{v26 → v32}/guards/references/templateKey/index.js +0 -0
  110. /package/src/{v26 → v32}/guards/structure/destinationPath/index.js +0 -0
  111. /package/src/{v26 → v32}/guards/structure/func/index.js +0 -0
  112. /package/src/{v26 → v32}/guards/structure/index.js +0 -0
  113. /package/src/{v26 → v32}/guards/structure/sourcePath/index.js +0 -0
  114. /package/src/{v26 → v32}/guards/structure/templateKey/index.js +0 -0
  115. /package/src/{v26 → v32}/index.js +0 -0
  116. /package/src/{v26 → v32}/singleInstruction/index.js +0 -0
  117. /package/src/{v26 → v32}/writePath/index.js +0 -0
  118. /package/src/{v27 → v33}/builders/bodyOnly/base.json +0 -0
  119. /package/src/{v27 → v33}/builders/bodyOnly/index.js +0 -0
  120. /package/src/{v27 → v33}/builders/bodyOnly/instructions/double.json +0 -0
  121. /package/src/{v27 → v33}/builders/footerOnly/base.json +0 -0
  122. /package/src/{v27 → v33}/builders/footerOnly/index.js +0 -0
  123. /package/src/{v27 → v33}/builders/footerOnly/instructions/single.json +0 -0
  124. /package/src/{v27/builders/simple → v33/builders/headerOnly}/base.json +0 -0
  125. /package/src/{v27 → v33}/builders/headerOnly/index.js +0 -0
  126. /package/src/{v27/builders/simple → v33/builders/headerOnly}/instructions/single.json +0 -0
  127. /package/src/{v27/builders/simpleSearch → v33/builders/simple}/base.json +0 -0
  128. /package/src/{v27/builders/simpleSearch → v33/builders/simple}/instructions/double.json +0 -0
  129. /package/src/{v27/builders/simpleSearch → v33/builders/simple}/instructions/single.json +0 -0
  130. /package/src/{v27/builders/withFooter → v33/builders/simpleSearch}/base.json +0 -0
  131. /package/src/{v27/builders/simple → v33/builders/simpleSearch}/index.js +0 -0
  132. /package/src/{v27/builders/withFooter → v33/builders/simpleSearch}/instructions/double.json +0 -0
  133. /package/src/{v28/builders/headerOnly → v33/builders/simpleSearch}/instructions/single.json +0 -0
  134. /package/src/{v27 → v33}/builders/spec.json +0 -0
  135. /package/src/{v28/builders/headerOnly → v33/builders/withFooter}/base.json +0 -0
  136. /package/src/{v27 → v33}/builders/withFooter/index.js +0 -0
  137. /package/src/{v28/builders/simple → v33/builders/withFooter}/instructions/double.json +0 -0
  138. /package/src/{v27 → v33}/builders/withFooter/instructions/single.json +0 -0
  139. /package/src/{v27 → v33}/doubleInstruction/index.js +0 -0
  140. /package/src/{v27 → v33}/guards/index.js +0 -0
  141. /package/src/{v27 → v33}/guards/references/func/index.js +0 -0
  142. /package/src/{v27 → v33}/guards/references/index.js +0 -0
  143. /package/src/{v27 → v33}/guards/references/templateKey/index.js +0 -0
  144. /package/src/{v27 → v33}/guards/structure/destinationPath/index.js +0 -0
  145. /package/src/{v27 → v33}/guards/structure/func/index.js +0 -0
  146. /package/src/{v27 → v33}/guards/structure/index.js +0 -0
  147. /package/src/{v27 → v33}/guards/structure/sourcePath/index.js +0 -0
  148. /package/src/{v27 → v33}/guards/structure/templateKey/index.js +0 -0
  149. /package/src/{v27 → v33}/index.js +0 -0
  150. /package/src/{v27 → v33}/singleInstruction/index.js +0 -0
  151. /package/src/{v27 → v33}/writePath/index.js +0 -0
  152. /package/src/{v28 → v34}/builders/bodyOnly/base.json +0 -0
  153. /package/src/{v28 → v34}/builders/bodyOnly/index.js +0 -0
  154. /package/src/{v28 → v34}/builders/bodyOnly/instructions/double.json +0 -0
  155. /package/src/{v28 → v34}/builders/footerOnly/base.json +0 -0
  156. /package/src/{v28 → v34}/builders/footerOnly/index.js +0 -0
  157. /package/src/{v28 → v34}/builders/footerOnly/instructions/single.json +0 -0
  158. /package/src/{v28/builders/simple → v34/builders/headerOnly}/base.json +0 -0
  159. /package/src/{v28 → v34}/builders/headerOnly/index.js +0 -0
  160. /package/src/{v28/builders/simple → v34/builders/headerOnly}/instructions/single.json +0 -0
  161. /package/src/{v28/builders/simpleSearch → v34/builders/simple}/base.json +0 -0
  162. /package/src/{v28/builders/simpleSearch → v34/builders/simple}/instructions/double.json +0 -0
  163. /package/src/{v28/builders/simpleSearch → v34/builders/simple}/instructions/single.json +0 -0
  164. /package/src/{v28/builders/withFooter → v34/builders/simpleSearch}/base.json +0 -0
  165. /package/src/{v27 → v34}/builders/simpleSearch/index.js +0 -0
  166. /package/src/{v28/builders/withFooter → v34/builders/simpleSearch}/instructions/double.json +0 -0
  167. /package/src/{v28 → v34}/builders/spec.json +0 -0
  168. /package/src/{v28 → v34}/builders/withFooter/index.js +0 -0
  169. /package/src/{v28 → v34}/builders/withFooter/instructions/single.json +0 -0
  170. /package/src/{v28 → v34}/doubleInstruction/index.js +0 -0
  171. /package/src/{v28 → v34}/guards/index.js +0 -0
  172. /package/src/{v28 → v34}/guards/references/func/index.js +0 -0
  173. /package/src/{v28 → v34}/guards/references/index.js +0 -0
  174. /package/src/{v28 → v34}/guards/references/templateKey/index.js +0 -0
  175. /package/src/{v28 → v34}/guards/structure/destinationPath/index.js +0 -0
  176. /package/src/{v28 → v34}/guards/structure/func/index.js +0 -0
  177. /package/src/{v28 → v34}/guards/structure/index.js +0 -0
  178. /package/src/{v28 → v34}/guards/structure/sourcePath/index.js +0 -0
  179. /package/src/{v28 → v34}/guards/structure/templateKey/index.js +0 -0
  180. /package/src/{v28 → v34}/index.js +0 -0
  181. /package/src/{v28 → v34}/singleInstruction/index.js +0 -0
  182. /package/src/{v28 → v34}/writePath/index.js +0 -0
@@ -0,0 +1,107 @@
1
+ {
2
+ "buildBodyTr": {
3
+ "tagName": "tr",
4
+ "attributes": {
5
+ "class": "align-middle"
6
+ },
7
+ "children": []
8
+ },
9
+ "buildColGroup": {
10
+ "tagName": "col",
11
+ "attributes": {
12
+ "width": "${width}"
13
+ }
14
+ },
15
+ "buildHeader": {
16
+ "tagName": "th",
17
+ "textContent": "${columnName}",
18
+ "attributes": {
19
+ "class": "py-3 px-3 fw-semibold text-uppercase small"
20
+ }
21
+ },
22
+ "buildFooter": {
23
+ "tagName": "td",
24
+ "children": [
25
+ {
26
+ "tagName": "input",
27
+ "attributes": {
28
+ "type": "text",
29
+ "placeholder": "enter ${columnName}",
30
+ "name": "${columnName}",
31
+ "id": "${columnName}",
32
+ "list": "${columnName}",
33
+ "class": "form-control"
34
+ }
35
+ }
36
+ ]
37
+ },
38
+ "buildBodyCell": {
39
+ "tagName": "td",
40
+ "textContent": "${rowValue}",
41
+ "attributes": {
42
+ "class": "py-3 px-3 text-secondary"
43
+ }
44
+ },
45
+ "button": {
46
+ "tagName": "button",
47
+ "textContent": "${columnName}",
48
+ "attributes": {
49
+ "class": "btn btn-primary btn-sm"
50
+ }
51
+ },
52
+ "buttonCell": {
53
+ "tagName": "td",
54
+ "attributes": {
55
+ "class": "py-2 px-3 text-center"
56
+ },
57
+ "children": [
58
+ {
59
+ "tagName": "button",
60
+ "textContent": "${agg:count}",
61
+ "attributes": {
62
+ "class": "btn btn-primary btn-sm"
63
+ }
64
+ }
65
+ ]
66
+ },
67
+ "optionsButtonCell": {
68
+ "tagName": "td",
69
+ "attributes": {
70
+ "class": "py-2 px-3 text-center"
71
+ },
72
+ "children": [
73
+ {
74
+ "tagName": "button",
75
+ "textContent": "${columnName}",
76
+ "attributes": {
77
+ "class": "btn btn-primary btn-sm"
78
+ }
79
+ }
80
+ ]
81
+ },
82
+ "buildOption": {
83
+ "tagName": "option",
84
+ "textContent": "${rowValue}",
85
+ "attributes": {
86
+ "value": "${rowValue}"
87
+ }
88
+ },
89
+ "buildSelect": {
90
+ "tagName": "select",
91
+ "attributes": {
92
+ "id": "LedgerName"
93
+ },
94
+ "children": []
95
+ },
96
+ "buildDataList": {
97
+ "tagName": "datalist",
98
+ "attributes": {
99
+ "data-name": "${columnName}"
100
+ },
101
+ "children": []
102
+ },
103
+ "emptyCell": {
104
+ "tagName": "td",
105
+ "children": []
106
+ }
107
+ }
@@ -0,0 +1 @@
1
+ {"tagName":"table","attributes":{"class":"table table-hover table-striped align-middle border mb-0"},"children":[{"tagName":"colgroup","attributes":{"data-role":"table-colgroup"},"children":[]},{"tagName":"thead","attributes":{"class":"table-dark","data-role":"table-header"},"children":[{"tagName":"tr","attributes":{"data-role":"table-header-row"},"children":[]}]},{"tagName":"tbody","attributes":{"data-role":"table-body"},"children":[]},{"tagName":"tfoot","attributes":{"data-role":"table-footer"},"children":[{"tagName":"tr","attributes":{"data-role":"table-footer-row"},"children":[]}]}]}
@@ -0,0 +1 @@
1
+ [{"narration":"Build table body","destinationPath":{"fileName":"base","dataRole":"table-body","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"func":"twoDimensional"}]
@@ -0,0 +1,30 @@
1
+ import fromCollection from "json-transformer-funcs-one-dimension";
2
+ import twoDimensional from "json-transformer-funcs-two-dimensions";
3
+
4
+ import runSingleInstructions from "json-instruction-single";
5
+ import runDoubleInstructions from "json-instruction-double";
6
+
7
+ import spec from "../spec.json" with { type: "json" };
8
+ import base from "./base.json" with { type: "json" };
9
+
10
+ import singleInstructions from "./single.json" with { type: "json" };
11
+ import doubleInstructions from "./double.json" with { type: "json" };
12
+
13
+ const startFunc = ({ data, columns, options }) => {
14
+
15
+ const localBase = structuredClone(base);
16
+
17
+ const registry = {
18
+ data: { columns, data },
19
+ base: localBase,
20
+ spec,
21
+ ...options
22
+ };
23
+
24
+ runSingleInstructions(singleInstructions, registry);
25
+ runDoubleInstructions(doubleInstructions, registry);
26
+
27
+ return localBase;
28
+ };
29
+
30
+ export default startFunc;
@@ -0,0 +1,56 @@
1
+ [
2
+ {
3
+ "narration": "Build column widths",
4
+ "destinationPath": {
5
+ "fileName": "base",
6
+ "dataRole": "table-colgroup",
7
+ "filePath": [
8
+ "children"
9
+ ]
10
+ },
11
+ "sourcePath": {
12
+ "fileName": "data",
13
+ "filePath": [
14
+ "columns"
15
+ ]
16
+ },
17
+ "templateKey": "buildColGroup",
18
+ "func": "fromCollection"
19
+ },
20
+ {
21
+ "narration": "Build table header",
22
+ "destinationPath": {
23
+ "fileName": "base",
24
+ "dataRole": "table-header-row",
25
+ "filePath": [
26
+ "children"
27
+ ]
28
+ },
29
+ "sourcePath": {
30
+ "fileName": "data",
31
+ "filePath": [
32
+ "columns"
33
+ ]
34
+ },
35
+ "templateKey": "buildHeader",
36
+ "func": "fromCollection"
37
+ },
38
+ {
39
+ "narration": "Build footer input cells",
40
+ "destinationPath": {
41
+ "fileName": "base",
42
+ "dataRole": "table-footer-row",
43
+ "filePath": [
44
+ "children"
45
+ ]
46
+ },
47
+ "sourcePath": {
48
+ "fileName": "data",
49
+ "filePath": [
50
+ "columns"
51
+ ]
52
+ },
53
+ "templateKey": "buildFooter",
54
+ "func": "fromCollection"
55
+ }
56
+ ]
@@ -0,0 +1,11 @@
1
+ import simple from "./builders/simple/index.js";
2
+ import withFooter from "./builders/withFooter/index.js";
3
+
4
+ // import headerOnly from "./builders/headerOnly/index.js";
5
+ // import bodyOnly from "./builders/bodyOnly/index.js";
6
+
7
+ // import footerOnly from "./builders/footerOnly/index.js";
8
+
9
+ export { simple, withFooter };
10
+
11
+ export default { simple, withFooter };
@@ -0,0 +1,2 @@
1
+ export * from "./index.js";
2
+ export { default } from "./index.js";
@@ -0,0 +1 @@
1
+ {"tagName":"table","attributes":{"class":"table table-hover table-striped align-middle border mb-0"},"children":[{"tagName":"colgroup","attributes":{"data-role":"table-colgroup"},"children":[]},{"tagName":"thead","attributes":{"class":"table-dark","data-role":"table-header"},"children":[{"tagName":"tr","attributes":{"data-role":"table-header-row"},"children":[]}]},{"tagName":"tbody","attributes":{"data-role":"table-body"},"children":[]},{"tagName":"tfoot","attributes":{"data-role":"table-footer"},"children":[{"tagName":"tr","attributes":{"data-role":"table-footer-row"},"children":[]}]}]}
@@ -0,0 +1 @@
1
+ [{"narration":"Build only the body rows","destinationPath":{"fileName":"base","dataRole":"table-body","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"func":"twoDimensional"}]
@@ -0,0 +1,37 @@
1
+ import fromCollection from "json-transformer-funcs-one-dimension";
2
+ import twoDimensional from "json-transformer-funcs-two-dimensions";
3
+ import { runSingleInstructions } from "json-instruction-single";
4
+ import { runDoubleInstructions } from "json-instruction-double";
5
+ import spec from "../spec.json" with { type: "json" };
6
+ import base from "./base.json" with { type: "json" };
7
+ import singleInstructions from "./single.json" with { type: "json" };
8
+ import doubleInstructions from "./double.json" with { type: "json" };
9
+ import actions from "../../actions/index.js";
10
+
11
+ const functions = { fromCollection, twoDimensional };
12
+
13
+ const startFunc = (config = {}, showLog = false, returnLog = []) => {
14
+ const columns = config.columns || config.inColumns || [];
15
+ const data = config.data || config.inData || [];
16
+ const options = config.options || config.inOptions || {};
17
+ const localBase = structuredClone(base);
18
+ const registry = {
19
+ data: { columns, data },
20
+ base: localBase,
21
+ spec,
22
+ ...options
23
+ };
24
+ const instructionOptions = {
25
+ functions,
26
+ showLog: config.showLog ?? showLog,
27
+ returnLog
28
+ };
29
+
30
+ runSingleInstructions(singleInstructions, registry, instructionOptions);
31
+ runDoubleInstructions(doubleInstructions, registry, instructionOptions);
32
+ actions({ inOptions: options, inBase: localBase });
33
+
34
+ return localBase;
35
+ };
36
+
37
+ export default startFunc;
@@ -0,0 +1 @@
1
+ []
@@ -0,0 +1 @@
1
+ {"tagName":"table","attributes":{"class":"table table-hover table-striped align-middle border mb-0"},"children":[{"tagName":"colgroup","attributes":{"data-role":"table-colgroup"},"children":[]},{"tagName":"thead","attributes":{"class":"table-dark","data-role":"table-header"},"children":[{"tagName":"tr","attributes":{"data-role":"table-header-row"},"children":[]}]},{"tagName":"tbody","attributes":{"data-role":"table-body"},"children":[]},{"tagName":"tfoot","attributes":{"data-role":"table-footer"},"children":[{"tagName":"tr","attributes":{"data-role":"table-footer-row"},"children":[]}]}]}
@@ -0,0 +1,37 @@
1
+ import fromCollection from "json-transformer-funcs-one-dimension";
2
+ import twoDimensional from "json-transformer-funcs-two-dimensions";
3
+ import { runSingleInstructions } from "json-instruction-single";
4
+ import { runDoubleInstructions } from "json-instruction-double";
5
+ import spec from "../spec.json" with { type: "json" };
6
+ import base from "./base.json" with { type: "json" };
7
+ import singleInstructions from "./single.json" with { type: "json" };
8
+ import doubleInstructions from "./double.json" with { type: "json" };
9
+ import actions from "../../actions/index.js";
10
+
11
+ const functions = { fromCollection, twoDimensional };
12
+
13
+ const startFunc = (config = {}, showLog = false, returnLog = []) => {
14
+ const columns = config.columns || config.inColumns || [];
15
+ const data = config.data || config.inData || [];
16
+ const options = config.options || config.inOptions || {};
17
+ const localBase = structuredClone(base);
18
+ const registry = {
19
+ data: { columns, data },
20
+ base: localBase,
21
+ spec,
22
+ ...options
23
+ };
24
+ const instructionOptions = {
25
+ functions,
26
+ showLog: config.showLog ?? showLog,
27
+ returnLog
28
+ };
29
+
30
+ runSingleInstructions(singleInstructions, registry, instructionOptions);
31
+ runDoubleInstructions(doubleInstructions, registry, instructionOptions);
32
+ actions({ inOptions: options, inBase: localBase });
33
+
34
+ return localBase;
35
+ };
36
+
37
+ export default startFunc;
@@ -0,0 +1 @@
1
+ [{"narration":"Build only the footer row","destinationPath":{"fileName":"base","dataRole":"table-footer-row","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"templateKey":"buildFooter","func":"fromCollection"}]
@@ -0,0 +1 @@
1
+ {"tagName":"table","attributes":{"class":"table table-hover table-striped align-middle border mb-0"},"children":[{"tagName":"colgroup","attributes":{"data-role":"table-colgroup"},"children":[]},{"tagName":"thead","attributes":{"class":"table-dark","data-role":"table-header"},"children":[{"tagName":"tr","attributes":{"data-role":"table-header-row"},"children":[]}]},{"tagName":"tbody","attributes":{"data-role":"table-body"},"children":[]},{"tagName":"tfoot","attributes":{"data-role":"table-footer"},"children":[{"tagName":"tr","attributes":{"data-role":"table-footer-row"},"children":[]}]}]}
@@ -0,0 +1,37 @@
1
+ import fromCollection from "json-transformer-funcs-one-dimension";
2
+ import twoDimensional from "json-transformer-funcs-two-dimensions";
3
+ import { runSingleInstructions } from "json-instruction-single";
4
+ import { runDoubleInstructions } from "json-instruction-double";
5
+ import spec from "../spec.json" with { type: "json" };
6
+ import base from "./base.json" with { type: "json" };
7
+ import singleInstructions from "./single.json" with { type: "json" };
8
+ import doubleInstructions from "./double.json" with { type: "json" };
9
+ import actions from "../../actions/index.js";
10
+
11
+ const functions = { fromCollection, twoDimensional };
12
+
13
+ const startFunc = (config = {}, showLog = false, returnLog = []) => {
14
+ const columns = config.columns || config.inColumns || [];
15
+ const data = config.data || config.inData || [];
16
+ const options = config.options || config.inOptions || {};
17
+ const localBase = structuredClone(base);
18
+ const registry = {
19
+ data: { columns, data },
20
+ base: localBase,
21
+ spec,
22
+ ...options
23
+ };
24
+ const instructionOptions = {
25
+ functions,
26
+ showLog: config.showLog ?? showLog,
27
+ returnLog
28
+ };
29
+
30
+ runSingleInstructions(singleInstructions, registry, instructionOptions);
31
+ runDoubleInstructions(doubleInstructions, registry, instructionOptions);
32
+ actions({ inOptions: options, inBase: localBase });
33
+
34
+ return localBase;
35
+ };
36
+
37
+ export default startFunc;
@@ -0,0 +1 @@
1
+ [{"narration":"Build only the header row","destinationPath":{"fileName":"base","dataRole":"table-header-row","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"templateKey":"buildHeader","func":"fromCollection"}]
@@ -0,0 +1 @@
1
+ {"tagName":"table","attributes":{"class":"table table-hover table-striped align-middle border mb-0"},"children":[{"tagName":"colgroup","attributes":{"data-role":"table-colgroup"},"children":[]},{"tagName":"thead","attributes":{"class":"table-dark","data-role":"table-header"},"children":[{"tagName":"tr","attributes":{"data-role":"table-header-row"},"children":[]}]},{"tagName":"tbody","attributes":{"data-role":"table-body"},"children":[]},{"tagName":"tfoot","attributes":{"data-role":"table-footer"},"children":[{"tagName":"tr","attributes":{"data-role":"table-footer-row"},"children":[]}]}]}
@@ -0,0 +1 @@
1
+ [{"narration":"Build table body","destinationPath":{"fileName":"base","dataRole":"table-body","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"func":"twoDimensional"}]
@@ -0,0 +1,30 @@
1
+ import fromCollection from "json-transformer-funcs-one-dimension";
2
+ import twoDimensional from "json-transformer-funcs-two-dimensions";
3
+
4
+ import runSingleInstructions from "json-instruction-single";
5
+ import runDoubleInstructions from "json-instruction-double";
6
+
7
+ import spec from "../spec.json" with { type: "json" };
8
+ import base from "./base.json" with { type: "json" };
9
+
10
+ import singleInstructions from "./single.json" with { type: "json" };
11
+ import doubleInstructions from "./double.json" with { type: "json" };
12
+
13
+ const startFunc = ({ data, columns, options }) => {
14
+
15
+ const localBase = structuredClone(base);
16
+
17
+ const registry = {
18
+ data: { columns, data },
19
+ base: localBase,
20
+ spec,
21
+ ...options
22
+ };
23
+
24
+ runSingleInstructions(singleInstructions, registry);
25
+ runDoubleInstructions(doubleInstructions, registry);
26
+
27
+ return localBase;
28
+ };
29
+
30
+ export default startFunc;
@@ -0,0 +1 @@
1
+ [{"narration":"Build column widths","destinationPath":{"fileName":"base","dataRole":"table-colgroup","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"templateKey":"buildColGroup","func":"fromCollection"},{"narration":"Build table header","destinationPath":{"fileName":"base","dataRole":"table-header-row","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"templateKey":"buildHeader","func":"fromCollection"}]
@@ -0,0 +1,107 @@
1
+ {
2
+ "buildBodyTr": {
3
+ "tagName": "tr",
4
+ "attributes": {
5
+ "class": "align-middle"
6
+ },
7
+ "children": []
8
+ },
9
+ "buildColGroup": {
10
+ "tagName": "col",
11
+ "attributes": {
12
+ "width": "${width}"
13
+ }
14
+ },
15
+ "buildHeader": {
16
+ "tagName": "th",
17
+ "textContent": "${columnName}",
18
+ "attributes": {
19
+ "class": "py-3 px-3 fw-semibold text-uppercase small"
20
+ }
21
+ },
22
+ "buildFooter": {
23
+ "tagName": "td",
24
+ "children": [
25
+ {
26
+ "tagName": "input",
27
+ "attributes": {
28
+ "type": "text",
29
+ "placeholder": "enter ${columnName}",
30
+ "name": "${columnName}",
31
+ "id": "${columnName}",
32
+ "list": "${columnName}",
33
+ "class": "form-control"
34
+ }
35
+ }
36
+ ]
37
+ },
38
+ "buildBodyCell": {
39
+ "tagName": "td",
40
+ "textContent": "${rowValue}",
41
+ "attributes": {
42
+ "class": "py-3 px-3 text-secondary"
43
+ }
44
+ },
45
+ "button": {
46
+ "tagName": "button",
47
+ "textContent": "${columnName}",
48
+ "attributes": {
49
+ "class": "btn btn-primary btn-sm"
50
+ }
51
+ },
52
+ "buttonCell": {
53
+ "tagName": "td",
54
+ "attributes": {
55
+ "class": "py-2 px-3 text-center"
56
+ },
57
+ "children": [
58
+ {
59
+ "tagName": "button",
60
+ "textContent": "${agg:count}",
61
+ "attributes": {
62
+ "class": "btn btn-primary btn-sm"
63
+ }
64
+ }
65
+ ]
66
+ },
67
+ "optionsButtonCell": {
68
+ "tagName": "td",
69
+ "attributes": {
70
+ "class": "py-2 px-3 text-center"
71
+ },
72
+ "children": [
73
+ {
74
+ "tagName": "button",
75
+ "textContent": "${columnName}",
76
+ "attributes": {
77
+ "class": "btn btn-primary btn-sm"
78
+ }
79
+ }
80
+ ]
81
+ },
82
+ "buildOption": {
83
+ "tagName": "option",
84
+ "textContent": "${rowValue}",
85
+ "attributes": {
86
+ "value": "${rowValue}"
87
+ }
88
+ },
89
+ "buildSelect": {
90
+ "tagName": "select",
91
+ "attributes": {
92
+ "id": "LedgerName"
93
+ },
94
+ "children": []
95
+ },
96
+ "buildDataList": {
97
+ "tagName": "datalist",
98
+ "attributes": {
99
+ "data-name": "${columnName}"
100
+ },
101
+ "children": []
102
+ },
103
+ "emptyCell": {
104
+ "tagName": "td",
105
+ "children": []
106
+ }
107
+ }
@@ -0,0 +1 @@
1
+ {"tagName":"table","attributes":{"class":"table table-hover table-striped align-middle border mb-0"},"children":[{"tagName":"colgroup","attributes":{"data-role":"table-colgroup"},"children":[]},{"tagName":"thead","attributes":{"class":"table-dark","data-role":"table-header"},"children":[{"tagName":"tr","attributes":{"data-role":"table-header-row"},"children":[]}]},{"tagName":"tbody","attributes":{"data-role":"table-body"},"children":[]},{"tagName":"tfoot","attributes":{"data-role":"table-footer"},"children":[{"tagName":"tr","attributes":{"data-role":"table-footer-row"},"children":[]}]}]}
@@ -0,0 +1 @@
1
+ [{"narration":"Build table body","destinationPath":{"fileName":"base","dataRole":"table-body","filePath":["children"]},"sourcePath":{"fileName":"data","filePath":["columns"]},"func":"twoDimensional"}]
@@ -0,0 +1,33 @@
1
+ import fromCollection from "json-transformer-funcs-one-dimension";
2
+ import twoDimensional from "json-transformer-funcs-two-dimensions";
3
+ import optionsFunc from "json-renderers-build-table-options";
4
+
5
+ import runSingleInstructions from "json-instruction-single";
6
+ import runDoubleInstructions from "json-instruction-double";
7
+
8
+ import spec from "../spec.json" with { type: "json" };
9
+ import base from "./base.json" with { type: "json" };
10
+
11
+ import singleInstructions from "./single.json" with { type: "json" };
12
+ import doubleInstructions from "./double.json" with { type: "json" };
13
+
14
+ const startFunc = ({ data, columns, options }) => {
15
+
16
+ const localBase = structuredClone(base);
17
+
18
+ const registry = {
19
+ data: { columns, data },
20
+ base: localBase,
21
+ spec,
22
+ ...options
23
+ };
24
+
25
+ runSingleInstructions(singleInstructions, registry);
26
+ runDoubleInstructions(doubleInstructions, registry);
27
+
28
+ optionsFunc({ options, base: localBase, showLog: false, returnLog: [] });
29
+
30
+ return localBase;
31
+ };
32
+
33
+ export default startFunc;
@@ -0,0 +1,56 @@
1
+ [
2
+ {
3
+ "narration": "Build column widths",
4
+ "destinationPath": {
5
+ "fileName": "base",
6
+ "dataRole": "table-colgroup",
7
+ "filePath": [
8
+ "children"
9
+ ]
10
+ },
11
+ "sourcePath": {
12
+ "fileName": "data",
13
+ "filePath": [
14
+ "columns"
15
+ ]
16
+ },
17
+ "templateKey": "buildColGroup",
18
+ "func": "fromCollection"
19
+ },
20
+ {
21
+ "narration": "Build table header",
22
+ "destinationPath": {
23
+ "fileName": "base",
24
+ "dataRole": "table-header-row",
25
+ "filePath": [
26
+ "children"
27
+ ]
28
+ },
29
+ "sourcePath": {
30
+ "fileName": "data",
31
+ "filePath": [
32
+ "columns"
33
+ ]
34
+ },
35
+ "templateKey": "buildHeader",
36
+ "func": "fromCollection"
37
+ },
38
+ {
39
+ "narration": "Build footer input cells",
40
+ "destinationPath": {
41
+ "fileName": "base",
42
+ "dataRole": "table-footer-row",
43
+ "filePath": [
44
+ "children"
45
+ ]
46
+ },
47
+ "sourcePath": {
48
+ "fileName": "data",
49
+ "filePath": [
50
+ "columns"
51
+ ]
52
+ },
53
+ "templateKey": "buildFooter",
54
+ "func": "fromCollection"
55
+ }
56
+ ]
@@ -0,0 +1,11 @@
1
+ import simple from "./builders/simple/index.js";
2
+ import withFooter from "./builders/withFooter/index.js";
3
+
4
+ // import headerOnly from "./builders/headerOnly/index.js";
5
+ // import bodyOnly from "./builders/bodyOnly/index.js";
6
+
7
+ // import footerOnly from "./builders/footerOnly/index.js";
8
+
9
+ export { simple, withFooter };
10
+
11
+ export default { simple, withFooter };
@@ -0,0 +1,2 @@
1
+ export * from "./index.js";
2
+ export { default } from "./index.js";
@@ -1,20 +0,0 @@
1
- import insertSerial from "./insertSerial/index.js";
2
- import insertOptions from "./insertOptions/index.js";
3
-
4
- const startFunc = ({ inOptions = {}, inBase, showLog = false, returnLog = [] }) => {
5
- const localOptions = inOptions;
6
-
7
- const localBase = inBase;
8
-
9
- if (localOptions.showSerial || localOptions.serial) {
10
- insertSerial(localBase, localOptions.serial || {}, showLog, returnLog);
11
- }
12
-
13
- if (localOptions.showOptions || localOptions.options) {
14
- insertOptions(localBase, localOptions.options || {}, showLog, returnLog);
15
- };
16
-
17
- return localBase;
18
- };
19
-
20
- export default startFunc;