json-renderers 1.9.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 (168) hide show
  1. package/README.md +128 -0
  2. package/docs/dist/v4/min.js +791 -0
  3. package/docs/dist/v5/min.js +800 -0
  4. package/docs/dist/v6/min.js +854 -0
  5. package/docs/dist/v8/min.js +1787 -0
  6. package/docs/dist/v9/min.js +1032 -0
  7. package/package.json +36 -0
  8. package/src/index.js +2 -0
  9. package/src/v5/dataLists/fragments.json +1 -0
  10. package/src/v5/dataLists/index.js +26 -0
  11. package/src/v5/dataLists/skeleton.json +20 -0
  12. package/src/v5/form/attachFormClickEventListener.js +27 -0
  13. package/src/v5/form/clickFunc/extractFormData.js +27 -0
  14. package/src/v5/form/clickFunc/handleNew.js +24 -0
  15. package/src/v5/form/clickFunc/handleSave.js +33 -0
  16. package/src/v5/form/clickFunc/index.js +32 -0
  17. package/src/v5/form/index.js +87 -0
  18. package/src/v5/form/structure.json +410 -0
  19. package/src/v5/index.js +150 -0
  20. package/src/v5/meta.js +6 -0
  21. package/src/v5/navTabs/fragments.json +59 -0
  22. package/src/v5/navTabs/index.js +82 -0
  23. package/src/v5/navTabs/skeleton.json +18 -0
  24. package/src/v5/registerGlobal.js +14 -0
  25. package/src/v5/select/fragments.json +1 -0
  26. package/src/v5/select/index.js +31 -0
  27. package/src/v5/select/skeleton.json +21 -0
  28. package/src/v5/table/attachTableClickEventListener.js +22 -0
  29. package/src/v5/table/buildTableDataAsJson.js +19 -0
  30. package/src/v5/table/buildTableDomElement.js +21 -0
  31. package/src/v5/table/buildTableStructureSpec.js +28 -0
  32. package/src/v5/table/clickFunc/v3/createTable.js +16 -0
  33. package/src/v5/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +23 -0
  34. package/src/v5/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +21 -0
  35. package/src/v5/table/clickFunc/v3/getContainer/index.js +39 -0
  36. package/src/v5/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +14 -0
  37. package/src/v5/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +12 -0
  38. package/src/v5/table/clickFunc/v3/index.js +21 -0
  39. package/src/v5/table/fragments.json +112 -0
  40. package/src/v5/table/index.js +72 -0
  41. package/src/v5/table/resolveTargetContainer.js +9 -0
  42. package/src/v5/table/skeleton.json +371 -0
  43. package/src/v6/dataLists/fragments.json +1 -0
  44. package/src/v6/dataLists/index.js +32 -0
  45. package/src/v6/dataLists/skeleton.json +38 -0
  46. package/src/v6/form/attachFormClickEventListener.js +27 -0
  47. package/src/v6/form/clickFunc/extractFormData.js +27 -0
  48. package/src/v6/form/clickFunc/handleNew.js +24 -0
  49. package/src/v6/form/clickFunc/handleSave.js +33 -0
  50. package/src/v6/form/clickFunc/index.js +32 -0
  51. package/src/v6/form/index.js +87 -0
  52. package/src/v6/form/structure.json +410 -0
  53. package/src/v6/index.js +150 -0
  54. package/src/v6/meta.js +6 -0
  55. package/src/v6/navTabs/fragments.json +59 -0
  56. package/src/v6/navTabs/index.js +82 -0
  57. package/src/v6/navTabs/skeleton.json +18 -0
  58. package/src/v6/registerGlobal.js +14 -0
  59. package/src/v6/select/fragments.json +1 -0
  60. package/src/v6/select/index.js +34 -0
  61. package/src/v6/select/skeleton.json +23 -0
  62. package/src/v6/table/attachTableClickEventListener.js +22 -0
  63. package/src/v6/table/buildTableDataAsJson.js +19 -0
  64. package/src/v6/table/buildTableDomElement.js +21 -0
  65. package/src/v6/table/buildTableStructureSpec.js +28 -0
  66. package/src/v6/table/clickFunc/v3/createTable.js +16 -0
  67. package/src/v6/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +23 -0
  68. package/src/v6/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +21 -0
  69. package/src/v6/table/clickFunc/v3/getContainer/index.js +39 -0
  70. package/src/v6/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +14 -0
  71. package/src/v6/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +12 -0
  72. package/src/v6/table/clickFunc/v3/index.js +21 -0
  73. package/src/v6/table/fragments.json +112 -0
  74. package/src/v6/table/index.js +72 -0
  75. package/src/v6/table/resolveTargetContainer.js +9 -0
  76. package/src/v6/table/skeleton.json +371 -0
  77. package/src/v7/common/deriveColumnsFromData.js +20 -0
  78. package/src/v7/dataLists/fragments.json +1 -0
  79. package/src/v7/dataLists/index.js +32 -0
  80. package/src/v7/dataLists/skeleton.json +38 -0
  81. package/src/v7/form/attachFormClickEventListener.js +27 -0
  82. package/src/v7/form/clickFunc/extractFormData.js +27 -0
  83. package/src/v7/form/clickFunc/handleNew.js +24 -0
  84. package/src/v7/form/clickFunc/handleSave.js +33 -0
  85. package/src/v7/form/clickFunc/index.js +32 -0
  86. package/src/v7/form/index.js +87 -0
  87. package/src/v7/form/structure.json +410 -0
  88. package/src/v7/index.js +141 -0
  89. package/src/v7/meta.js +6 -0
  90. package/src/v7/navTabs/fragments.json +59 -0
  91. package/src/v7/navTabs/index.js +82 -0
  92. package/src/v7/navTabs/skeleton.json +18 -0
  93. package/src/v7/registerGlobal.js +14 -0
  94. package/src/v7/select/fragments.json +1 -0
  95. package/src/v7/select/index.js +34 -0
  96. package/src/v7/select/skeleton.json +23 -0
  97. package/src/v7/table/attachTableClickEventListener.js +28 -0
  98. package/src/v7/table/buildTableDataAsJson.js +25 -0
  99. package/src/v7/table/buildTableDomElement.js +25 -0
  100. package/src/v7/table/buildTableStructureSpec.js +33 -0
  101. package/src/v7/table/clickFunc/v3/createTable.js +20 -0
  102. package/src/v7/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +27 -0
  103. package/src/v7/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +24 -0
  104. package/src/v7/table/clickFunc/v3/getContainer/index.js +44 -0
  105. package/src/v7/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +17 -0
  106. package/src/v7/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +15 -0
  107. package/src/v7/table/clickFunc/v3/index.js +35 -0
  108. package/src/v7/table/fragments.json +112 -0
  109. package/src/v7/table/index.js +82 -0
  110. package/src/v7/table/resolveTargetContainer.js +11 -0
  111. package/src/v7/table/skeleton.json +371 -0
  112. package/src/v8/common/deriveColumnsFromData.js +20 -0
  113. package/src/v8/dataLists/fragments.json +1 -0
  114. package/src/v8/dataLists/index.js +32 -0
  115. package/src/v8/dataLists/skeleton.json +38 -0
  116. package/src/v8/form/attachFormClickEventListener.js +27 -0
  117. package/src/v8/form/clickFunc/extractFormData.js +27 -0
  118. package/src/v8/form/clickFunc/handleNew.js +24 -0
  119. package/src/v8/form/clickFunc/handleSave.js +33 -0
  120. package/src/v8/form/clickFunc/index.js +32 -0
  121. package/src/v8/form/index.js +87 -0
  122. package/src/v8/form/structure.json +410 -0
  123. package/src/v8/index.js +141 -0
  124. package/src/v8/meta.js +6 -0
  125. package/src/v8/navTabs/fragments.json +59 -0
  126. package/src/v8/navTabs/index.js +82 -0
  127. package/src/v8/navTabs/skeleton.json +18 -0
  128. package/src/v8/registerGlobal.js +14 -0
  129. package/src/v8/select/fragments.json +1 -0
  130. package/src/v8/select/index.js +34 -0
  131. package/src/v8/select/skeleton.json +23 -0
  132. package/src/v8/table/attachTableClickEventListener.js +28 -0
  133. package/src/v8/table/buildTableDataAsJson.js +25 -0
  134. package/src/v8/table/buildTableDomElement.js +25 -0
  135. package/src/v8/table/buildTableStructureSpec.js +33 -0
  136. package/src/v8/table/clickFunc/v3/createTable.js +20 -0
  137. package/src/v8/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +27 -0
  138. package/src/v8/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +24 -0
  139. package/src/v8/table/clickFunc/v3/getContainer/index.js +44 -0
  140. package/src/v8/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +17 -0
  141. package/src/v8/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +15 -0
  142. package/src/v8/table/clickFunc/v3/index.js +35 -0
  143. package/src/v8/table/fragments.json +112 -0
  144. package/src/v8/table/index.js +82 -0
  145. package/src/v8/table/resolveTargetContainer.js +11 -0
  146. package/src/v8/table/skeleton.json +371 -0
  147. package/src/v9/common/deriveColumnsFromData.js +20 -0
  148. package/src/v9/dataLists/fragments.json +1 -0
  149. package/src/v9/dataLists/index.js +32 -0
  150. package/src/v9/dataLists/skeleton.json +38 -0
  151. package/src/v9/form/attachFormClickEventListener.js +27 -0
  152. package/src/v9/form/clickFunc/extractFormData.js +27 -0
  153. package/src/v9/form/clickFunc/handleNew.js +24 -0
  154. package/src/v9/form/clickFunc/handleSave.js +33 -0
  155. package/src/v9/form/clickFunc/index.js +32 -0
  156. package/src/v9/form/index.js +87 -0
  157. package/src/v9/form/structure.json +410 -0
  158. package/src/v9/index.js +141 -0
  159. package/src/v9/meta.js +6 -0
  160. package/src/v9/navTabs/fragments.json +59 -0
  161. package/src/v9/navTabs/index.js +82 -0
  162. package/src/v9/navTabs/skeleton.json +18 -0
  163. package/src/v9/registerGlobal.js +14 -0
  164. package/src/v9/select/fragments.json +1 -0
  165. package/src/v9/select/index.js +34 -0
  166. package/src/v9/select/skeleton.json +23 -0
  167. package/src/v9/table/index.js +35 -0
  168. package/src/v9/table/skeleton.json +47 -0
@@ -0,0 +1,410 @@
1
+ {
2
+ "stacked": {
3
+ "tagName": "div",
4
+ "attributes": {
5
+ "class": "card shadow-sm"
6
+ },
7
+ "children": [
8
+ {
9
+ "tagName": "div",
10
+ "attributes": {
11
+ "class": "card-header fw-semibold"
12
+ },
13
+ "children": [
14
+ {
15
+ "tagName": "span",
16
+ "textContent": "Ledger Details"
17
+ }
18
+ ]
19
+ },
20
+ {
21
+ "tagName": "div",
22
+ "attributes": {
23
+ "class": "card-body"
24
+ },
25
+ "jsonToSpec": {
26
+ "operation": "loopArray",
27
+ "source": "fields",
28
+ "template": {
29
+ "tagName": "div",
30
+ "attributes": {
31
+ "class": "mb-3"
32
+ },
33
+ "children": [
34
+ {
35
+ "tagName": "label",
36
+ "attributes": {
37
+ "class": "form-label"
38
+ },
39
+ "textContent": "${label}"
40
+ },
41
+ {
42
+ "tagName": "input",
43
+ "attributes": {
44
+ "type": "${type}",
45
+ "class": "form-control",
46
+ "value": "${value}",
47
+ "name": "${key}",
48
+ "readonly": "${readonly}",
49
+ "disabled": "${disabled}"
50
+ }
51
+ }
52
+ ]
53
+ }
54
+ },
55
+ "jsonToSpec1": {
56
+ "operation": "iterate",
57
+ "source": "fields",
58
+ "template": {
59
+ "tagName": "div",
60
+ "attributes": {
61
+ "class": "mb-3"
62
+ },
63
+ "children": [
64
+ {
65
+ "tagName": "label",
66
+ "attributes": {
67
+ "class": "form-label"
68
+ },
69
+ "textContent": "${label}"
70
+ },
71
+ {
72
+ "tagName": "input",
73
+ "attributes": {
74
+ "type": "text",
75
+ "class": "form-control",
76
+ "value": "${value}",
77
+ "readonly": "true"
78
+ }
79
+ }
80
+ ]
81
+ }
82
+ },
83
+ "children": []
84
+ }
85
+ ]
86
+ },
87
+ "stackedWithButtons": {
88
+ "tagName": "div",
89
+ "attributes": {
90
+ "class": "card shadow-sm"
91
+ },
92
+ "children": [
93
+ {
94
+ "tagName": "div",
95
+ "attributes": {
96
+ "class": "card-header fw-semibold"
97
+ },
98
+ "children": [
99
+ {
100
+ "tagName": "span",
101
+ "textContent": "Ledger Details"
102
+ }
103
+ ]
104
+ },
105
+ {
106
+ "tagName": "div",
107
+ "attributes": {
108
+ "class": "card-body"
109
+ },
110
+ "jsonToSpec": {
111
+ "operation": "loopArray",
112
+ "source": "fields",
113
+ "template": {
114
+ "tagName": "div",
115
+ "attributes": {
116
+ "class": "mb-3"
117
+ },
118
+ "children": [
119
+ {
120
+ "tagName": "label",
121
+ "attributes": {
122
+ "class": "form-label"
123
+ },
124
+ "textContent": "${label}"
125
+ },
126
+ {
127
+ "tagName": "input",
128
+ "attributes": {
129
+ "type": "${type}",
130
+ "class": "form-control",
131
+ "value": "${value}",
132
+ "name": "${key}",
133
+ "readonly": "${readonly}",
134
+ "disabled": "${disabled}"
135
+ }
136
+ }
137
+ ]
138
+ }
139
+ },
140
+ "children": []
141
+ },
142
+ {
143
+ "tagName": "div",
144
+ "attributes": {
145
+ "class": "card-footer bg-white border-top-0 d-flex justify-content-end gap-2 pt-0 pb-3"
146
+ },
147
+ "children": [
148
+ {
149
+ "tagName": "button",
150
+ "attributes": {
151
+ "type": "button",
152
+ "class": "btn btn-outline-secondary btn-sm",
153
+ "id": "btn-form-new"
154
+ },
155
+ "textContent": "New"
156
+ },
157
+ {
158
+ "tagName": "button",
159
+ "attributes": {
160
+ "type": "button",
161
+ "class": "btn btn-primary btn-sm",
162
+ "id": "btn-form-save"
163
+ },
164
+ "textContent": "Save"
165
+ }
166
+ ]
167
+ }
168
+ ]
169
+ },
170
+ "inline": {
171
+ "tagName": "div",
172
+ "attributes": {
173
+ "class": "card shadow-sm"
174
+ },
175
+ "children": [
176
+ {
177
+ "tagName": "div",
178
+ "attributes": {
179
+ "class": "card-header fw-semibold"
180
+ },
181
+ "children": [
182
+ {
183
+ "tagName": "span",
184
+ "textContent": "Ledger Details"
185
+ }
186
+ ]
187
+ },
188
+ {
189
+ "tagName": "div",
190
+ "attributes": {
191
+ "class": "card-body"
192
+ },
193
+ "jsonToSpec": {
194
+ "operation": "loopArray",
195
+ "source": "fields",
196
+ "template": {
197
+ "tagName": "div",
198
+ "attributes": {
199
+ "class": "row mb-2 align-items-center"
200
+ },
201
+ "children": [
202
+ {
203
+ "tagName": "label",
204
+ "attributes": {
205
+ "class": "col-sm-4 col-form-label text-sm-end mb-0 fw-semibold text-secondary small"
206
+ },
207
+ "textContent": "${label}"
208
+ },
209
+ {
210
+ "tagName": "div",
211
+ "attributes": {
212
+ "class": "col-sm-8"
213
+ },
214
+ "children": [
215
+ {
216
+ "tagName": "input",
217
+ "attributes": {
218
+ "class": "form-control",
219
+ "name": "${key}",
220
+ "value": "${value}",
221
+ "list": "${list}",
222
+ "type": "${type}"
223
+ }
224
+ }
225
+ ]
226
+ }
227
+ ]
228
+ }
229
+ },
230
+ "jsonToSpec1": {
231
+ "operation": "iterate",
232
+ "source": "fields",
233
+ "template": {
234
+ "tagName": "div",
235
+ "attributes": {
236
+ "class": "row mb-2 align-items-center"
237
+ },
238
+ "children": [
239
+ {
240
+ "tagName": "label",
241
+ "attributes": {
242
+ "class": "col-4 col-form-label fw-medium text-end"
243
+ },
244
+ "textContent": "${label}"
245
+ },
246
+ {
247
+ "tagName": "div",
248
+ "attributes": {
249
+ "class": "col-8"
250
+ },
251
+ "children": [
252
+ {
253
+ "tagName": "input",
254
+ "attributes": {
255
+ "type": "text",
256
+ "class": "form-control form-control-sm",
257
+ "value": "${value}",
258
+ "list": "${list}"
259
+ }
260
+ }
261
+ ]
262
+ }
263
+ ]
264
+ }
265
+ },
266
+ "children": []
267
+ }
268
+ ]
269
+ },
270
+ "inlineWithButtons": {
271
+ "tagName": "div",
272
+ "attributes": {
273
+ "class": "card shadow-sm"
274
+ },
275
+ "children": [
276
+ {
277
+ "tagName": "div",
278
+ "attributes": {
279
+ "class": "card-header fw-semibold"
280
+ },
281
+ "children": [
282
+ {
283
+ "tagName": "span",
284
+ "textContent": "Ledger Details"
285
+ }
286
+ ]
287
+ },
288
+ {
289
+ "tagName": "div",
290
+ "attributes": {
291
+ "class": "card-body"
292
+ },
293
+ "jsonToSpec": {
294
+ "operation": "iterate",
295
+ "source": "fields",
296
+ "template": {
297
+ "tagName": "div",
298
+ "attributes": {
299
+ "class": "row mb-2 align-items-center"
300
+ },
301
+ "children": [
302
+ {
303
+ "tagName": "label",
304
+ "attributes": {
305
+ "class": "col-4 col-form-label fw-medium text-end"
306
+ },
307
+ "textContent": "${label}"
308
+ },
309
+ {
310
+ "tagName": "div",
311
+ "attributes": {
312
+ "class": "col-6"
313
+ },
314
+ "children": [
315
+ {
316
+ "tagName": "input",
317
+ "attributes": {
318
+ "type": "text",
319
+ "class": "form-control form-control-sm",
320
+ "value": "${value}",
321
+ "readonly": "true"
322
+ }
323
+ }
324
+ ]
325
+ },
326
+ {
327
+ "tagName": "div",
328
+ "attributes": {
329
+ "class": "col-2 d-flex gap-1"
330
+ },
331
+ "children": [
332
+ {
333
+ "tagName": "button",
334
+ "attributes": {
335
+ "type": "button",
336
+ "class": "btn btn-sm btn-outline-primary"
337
+ },
338
+ "textContent": "Edit"
339
+ },
340
+ {
341
+ "tagName": "button",
342
+ "attributes": {
343
+ "type": "button",
344
+ "class": "btn btn-sm btn-outline-secondary"
345
+ },
346
+ "textContent": "Copy"
347
+ }
348
+ ]
349
+ }
350
+ ]
351
+ }
352
+ },
353
+ "children": []
354
+ }
355
+ ]
356
+ },
357
+ "list": {
358
+ "tagName": "div",
359
+ "attributes": {
360
+ "class": "card shadow-sm"
361
+ },
362
+ "children": [
363
+ {
364
+ "tagName": "div",
365
+ "attributes": {
366
+ "class": "card-header fw-semibold"
367
+ },
368
+ "children": [
369
+ {
370
+ "tagName": "span",
371
+ "textContent": "Ledger Details"
372
+ }
373
+ ]
374
+ },
375
+ {
376
+ "tagName": "ul",
377
+ "attributes": {
378
+ "class": "list-group list-group-flush"
379
+ },
380
+ "jsonToSpec": {
381
+ "operation": "iterate",
382
+ "source": "fields",
383
+ "template": {
384
+ "tagName": "li",
385
+ "attributes": {
386
+ "class": "list-group-item d-flex justify-content-between align-items-center"
387
+ },
388
+ "children": [
389
+ {
390
+ "tagName": "span",
391
+ "attributes": {
392
+ "class": "text-muted"
393
+ },
394
+ "textContent": "${label}"
395
+ },
396
+ {
397
+ "tagName": "span",
398
+ "attributes": {
399
+ "class": "fw-medium"
400
+ },
401
+ "textContent": "${value}"
402
+ }
403
+ ]
404
+ }
405
+ },
406
+ "children": []
407
+ }
408
+ ]
409
+ }
410
+ }
@@ -0,0 +1,150 @@
1
+ import registerGlobal from "./registerGlobal.js";
2
+
3
+ // import renderTable from "./table/index.js";
4
+ // import renderNavTabs from "./navTabs/index.js";
5
+ // import renderForm from "./form/index.js";
6
+
7
+ import renderDataList from "./dataLists/index.js";
8
+ import renderSelect from "./select/index.js";
9
+
10
+ // const RENDERER_MAP = {
11
+ // table: renderTable,
12
+ // navtabs: renderNavTabs,
13
+ // nav: renderNavTabs,
14
+ // tabs: renderNavTabs,
15
+ // form: renderForm,
16
+ // datalist: renderDataList,
17
+ // "data-list": renderDataList
18
+ // };
19
+
20
+ const RENDERER_MAP = {
21
+ datalist: renderDataList,
22
+ select: renderSelect
23
+ };
24
+
25
+
26
+ /**
27
+ * Unified Renderer
28
+ * Dispatches to the corresponding renderer strategy (table, navTabs, form)
29
+ * based on the provided type.
30
+ */
31
+
32
+ // render({ type: "select", data, targetHtmlId: "dom-render-container" });
33
+
34
+ const render = ({
35
+ type = "table",
36
+ targetHtmlId,
37
+ data,
38
+ classToApply,
39
+ inTargetHtmlId,
40
+ inData,
41
+ columns,
42
+ inColumns,
43
+ fields,
44
+ inFields,
45
+ tabs,
46
+ inTabs,
47
+ options,
48
+ inOptions,
49
+ datalistId,
50
+ inDatalistId,
51
+ listId,
52
+ inListId,
53
+ id,
54
+ valueField,
55
+ inValueField,
56
+ labelField,
57
+ inLabelField,
58
+ colGroup,
59
+ inColGroup,
60
+ footerData,
61
+ inFooterData,
62
+ config,
63
+ inConfig,
64
+ variant,
65
+ skeletonType,
66
+ inSkeletonType,
67
+ showLog = false,
68
+ inShowLog,
69
+ ...restProps
70
+ } = {}) => {
71
+ const rawType = type;
72
+ const resolvedType = typeof rawType === "string" ? rawType.toLowerCase() : "table";
73
+ const renderer = RENDERER_MAP[resolvedType];
74
+
75
+ if (!renderer) {
76
+ console.error(
77
+ `[Renderer] Unknown renderer type "${rawType}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
78
+ );
79
+ return null;
80
+ }
81
+
82
+ const localTargetHtmlId = inTargetHtmlId ?? targetHtmlId;
83
+ const localData = inData ?? data;
84
+ const localColumns = inColumns ?? columns;
85
+ const localFields = inFields ?? fields;
86
+ const localTabs = inTabs ?? tabs;
87
+ const localOptions = inOptions ?? options ?? localData;
88
+ const localSkeletonType = inSkeletonType ?? skeletonType ?? variant ?? "default";
89
+ const localShowLog = inShowLog ?? showLog ?? false;
90
+
91
+ if (resolvedType === "form") {
92
+ return renderer({
93
+ targetHtmlId: localTargetHtmlId,
94
+ inFields: localFields,
95
+ inData: localData,
96
+ inColumns: localColumns,
97
+ inVariant: localSkeletonType,
98
+ inSkeletonType: localSkeletonType,
99
+ inShowLog: localShowLog,
100
+ onSave: restProps?.onSave,
101
+ afterSave: restProps?.afterSave,
102
+ onNew: restProps?.onNew
103
+ });
104
+ }
105
+
106
+ if (resolvedType === "navtabs" || resolvedType === "nav" || resolvedType === "tabs") {
107
+ return renderer({
108
+ targetHtmlId: localTargetHtmlId,
109
+ inTabs: localTabs,
110
+ inData: localData,
111
+ inSkeletonType: localSkeletonType,
112
+ inShowLog: localShowLog
113
+ });
114
+ }
115
+
116
+ if (resolvedType === "datalist" || resolvedType === "data-list") {
117
+ return renderer({
118
+ targetHtmlId: localTargetHtmlId,
119
+ inData: localData,
120
+ inSkeletonType: localSkeletonType,
121
+ inShowLog: localShowLog
122
+ });
123
+ }
124
+
125
+ if (resolvedType === "select") {
126
+ return renderer({
127
+ targetHtmlId: localTargetHtmlId,
128
+ inData: localData,
129
+ inSkeletonType: localSkeletonType,
130
+ inShowLog: localShowLog,
131
+ inClassToApply: classToApply
132
+ });
133
+ };
134
+
135
+ // Default to table renderer
136
+ return renderer({
137
+ targetHtmlId: localTargetHtmlId,
138
+ inColumns: localColumns,
139
+ inData: localData,
140
+ inColGroup: inColGroup ?? colGroup,
141
+ inFooterData: inFooterData ?? footerData ?? [],
142
+ inConfig: inConfig ?? config ?? {},
143
+ inSkeletonType: localSkeletonType,
144
+ inShowLog: localShowLog
145
+ });
146
+ };
147
+
148
+ registerGlobal(render);
149
+
150
+ export default render;
package/src/v5/meta.js ADDED
@@ -0,0 +1,6 @@
1
+ export const meta = {
2
+ version: "v4.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;
@@ -0,0 +1,59 @@
1
+ {
2
+ "navTabsList": {
3
+ "tagName": "ul",
4
+ "attributes": {
5
+ "class": "nav nav-tabs",
6
+ "role": "tablist"
7
+ },
8
+ "jsonToSpec": {
9
+ "operation": "loopArray",
10
+ "source": "tabs",
11
+ "template": {
12
+ "tagName": "li",
13
+ "attributes": {
14
+ "class": "nav-item",
15
+ "role": "presentation"
16
+ },
17
+ "children": [
18
+ {
19
+ "tagName": "button",
20
+ "attributes": {
21
+ "class": "nav-link ${activeClass}",
22
+ "id": "${id}-tab",
23
+ "data-bs-toggle": "tab",
24
+ "data-bs-target": "#${id}-pane",
25
+ "type": "button",
26
+ "role": "tab",
27
+ "aria-controls": "${id}-pane",
28
+ "aria-selected": "${isSelected}"
29
+ },
30
+ "textContent": "${label}"
31
+ }
32
+ ]
33
+ }
34
+ },
35
+ "children": []
36
+ },
37
+ "tabContent": {
38
+ "tagName": "div",
39
+ "attributes": {
40
+ "class": "tab-content pt-3"
41
+ },
42
+ "jsonToSpec": {
43
+ "operation": "loopArray",
44
+ "source": "tabs",
45
+ "template": {
46
+ "tagName": "div",
47
+ "attributes": {
48
+ "class": "tab-pane fade ${showActiveClass}",
49
+ "id": "${id}-pane",
50
+ "role": "tabpanel",
51
+ "aria-labelledby": "${id}-tab",
52
+ "tabindex": "0"
53
+ },
54
+ "textContent": "${content}"
55
+ }
56
+ },
57
+ "children": []
58
+ }
59
+ }