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,854 @@
1
+ const meta$1 = {
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
+ }, registerGlobal$1 = (e) => {
5
+ var t;
6
+ typeof globalThis > "u" || !e || (globalThis.ks ?? (globalThis.ks = {}), (t = globalThis.ks).jsonRenderers ?? (t.jsonRenderers = {
7
+ meta: meta$1,
8
+ renderToDom: e
9
+ }));
10
+ }, meta = {
11
+ version: "v3.0",
12
+ description: "Pure DOM engine with JSON review and tags.json catalog verification"
13
+ }, registerGlobal = (e) => {
14
+ const t = e, n = typeof t == "function" ? t : t == null ? void 0 : t.inFuncDefinition, o = t == null ? void 0 : t.inReviewSpec;
15
+ typeof globalThis > "u" || !n || (globalThis.ks ?? (globalThis.ks = {}), globalThis.ks["json-to-tag"] = {
16
+ meta,
17
+ buildSpecElement: n,
18
+ reviewSpec: o
19
+ }, globalThis.ks.jsonToTag = {
20
+ meta,
21
+ buildSpecElement: n,
22
+ reviewSpec: o
23
+ });
24
+ }, isNullOrUndefined = ({ inSpec: e }) => {
25
+ const t = e;
26
+ return t == null;
27
+ }, isDomNode = ({ inSpec: e }) => typeof Node < "u" && e instanceof Node, isSpecArray = ({ inSpec: e }) => {
28
+ const t = e;
29
+ return Array.isArray(t);
30
+ }, buildSpecArray = ({ inSpec: e, inShowLog: t = !1 }) => {
31
+ const n = e, o = t;
32
+ return Array.isArray(n) ? n.map((r) => dispatchSpec({
33
+ inSpec: r,
34
+ inShowLog: o
35
+ })).flat().filter(Boolean) : [];
36
+ }, createElement = ({ inTagName: e }) => {
37
+ const t = e == null ? void 0 : e.toLowerCase();
38
+ if (!t) return null;
39
+ if (t === "checkbox") {
40
+ const n = document.createElement("input");
41
+ return n.type = "checkbox", n;
42
+ }
43
+ return document.createElement(t);
44
+ }, applyTextContent = ({ inElement: e, inTextContent: t, inAllowsTextContent: n = !0, inTagName: o, inShowLog: r = !1 }) => {
45
+ const l = e, s = t, c = n, u = o, T = r;
46
+ return !l || s === void 0 || s === null ? l : c ? (l.textContent = s, l) : (T && console.warn(`[json-to-tag v3] textContent is not allowed on <${u}>; discarded "${s}"`), l);
47
+ }, applyProperties = ({ inElement: e, inProperties: t }) => {
48
+ const n = e, o = t;
49
+ return n && o && typeof o == "object" && Object.assign(n, o), n;
50
+ }, applyAttributes = ({ inElement: e, inAttributes: t }) => {
51
+ const n = e, o = t;
52
+ return !n || !o || typeof o != "object" || Object.entries(o).forEach(([r, l]) => {
53
+ r === "class" ? n.className = l : typeof l == "boolean" ? l ? n.setAttribute(r, "") : n.removeAttribute(r) : l != null && n.setAttribute(r, String(l));
54
+ }), n;
55
+ }, applyClassList = ({ inElement: e, inClassList: t }) => {
56
+ const n = e, o = t;
57
+ if (!n || !o) return n;
58
+ let r = [];
59
+ return typeof o == "string" ? r = o.split(/\s+/).filter(Boolean) : Array.isArray(o) && (r = o.filter((l) => typeof l == "string" && l.trim().length > 0)), r.length > 0 && n.classList.add(...r), n;
60
+ }, appendChildren = ({ inElement: e, inChildren: t, inAllowsChildren: n = !0, inTagName: o, inShowLog: r = !1 }) => {
61
+ const l = e, s = t, c = n, u = o, T = r;
62
+ return !l || !Array.isArray(s) || s.length === 0 ? l : c ? (s.forEach((d) => {
63
+ typeof Node < "u" && d instanceof Node ? l.appendChild(d) : (typeof d == "string" || typeof d == "number") && l.appendChild(document.createTextNode(String(d)));
64
+ }), l) : (T && console.warn(`[json-to-tag v3] Children are not allowed on void tag <${u}>; discarded ${s.length} child nodes.`), l);
65
+ }, domElementBuilder = ({ inSpec: e, inClassList: t }) => {
66
+ const n = e, o = t || (n == null ? void 0 : n.classList);
67
+ if (!n || !n.tagName) return null;
68
+ const r = createElement({ inTagName: n.tagName });
69
+ return r ? (applyTextContent({
70
+ inElement: r,
71
+ inTextContent: n.textContent,
72
+ inTagName: n.tagName
73
+ }), applyProperties({
74
+ inElement: r,
75
+ inProperties: n.properties
76
+ }), applyAttributes({
77
+ inElement: r,
78
+ inAttributes: n.attributes
79
+ }), applyClassList({
80
+ inElement: r,
81
+ inClassList: o
82
+ }), appendChildren({
83
+ inElement: r,
84
+ inChildren: n.children,
85
+ inTagName: n.tagName
86
+ }), r) : null;
87
+ }, buildChildrenNodes = ({ inChildren: e, inShowLog: t = !1 }) => {
88
+ const n = e, o = t;
89
+ return Array.isArray(n) ? n.map((l) => dispatchSpec({
90
+ inSpec: l,
91
+ inShowLog: o
92
+ })).flat().filter(Boolean) : [];
93
+ }, buildSingleElement = ({ inSpec: e, inShowLog: t = !1 }) => {
94
+ const n = e, o = t, r = domElementBuilder({ inSpec: n });
95
+ let l = [];
96
+ return "children" in n && (l = Array.isArray(n.children) && n.children.length > 0 ? buildChildrenNodes({
97
+ inChildren: n.children,
98
+ inShowLog: o
99
+ }) : [], r.append(...l)), r;
100
+ }, dispatchSpec = ({ inSpec: e, inShowLog: t = !1 } = {}) => {
101
+ const n = e, o = t;
102
+ return isNullOrUndefined({ inSpec: n }) ? null : isDomNode({ inSpec: n }) ? n : isSpecArray({ inSpec: n }) ? buildSpecArray({
103
+ inSpec: n,
104
+ inShowLog: o
105
+ }) : buildSingleElement({
106
+ inSpec: n,
107
+ inShowLog: o
108
+ });
109
+ }, $schema = "./tags.schema.json", div = {
110
+ allowsTextContent: !1,
111
+ allowsChildren: !0,
112
+ allowedAttributes: [
113
+ "title",
114
+ "role"
115
+ ],
116
+ childTags: []
117
+ }, input = {
118
+ allowsTextContent: !1,
119
+ allowsChildren: !1,
120
+ allowedAttributes: [
121
+ "type",
122
+ "placeholder",
123
+ "value",
124
+ "name",
125
+ "disabled",
126
+ "readonly",
127
+ "required",
128
+ "list"
129
+ ]
130
+ }, checkbox = {
131
+ allowsTextContent: !1,
132
+ allowsChildren: !1,
133
+ allowedAttributes: [
134
+ "type",
135
+ "checked",
136
+ "name",
137
+ "value",
138
+ "disabled",
139
+ "required"
140
+ ]
141
+ }, colgroup = {
142
+ allowsTextContent: !1,
143
+ allowsChildren: !0,
144
+ allowedAttributes: [
145
+ "span"
146
+ ],
147
+ childTags: [
148
+ "col"
149
+ ]
150
+ }, col = {
151
+ allowsTextContent: !1,
152
+ allowsChildren: !1,
153
+ allowedAttributes: [
154
+ "span",
155
+ "style",
156
+ "width"
157
+ ]
158
+ }, label = {
159
+ allowsTextContent: !0,
160
+ allowsChildren: !0,
161
+ allowedAttributes: [
162
+ "for"
163
+ ],
164
+ childTags: []
165
+ }, form = {
166
+ allowsTextContent: !1,
167
+ allowsChildren: !0,
168
+ allowedAttributes: [
169
+ "action",
170
+ "method",
171
+ "autocomplete",
172
+ "enctype",
173
+ "name",
174
+ "novalidate",
175
+ "target"
176
+ ],
177
+ childTags: []
178
+ }, select = {
179
+ allowsTextContent: !1,
180
+ allowsChildren: !0,
181
+ allowedAttributes: [
182
+ "name",
183
+ "disabled",
184
+ "required",
185
+ "multiple",
186
+ "size"
187
+ ],
188
+ childTags: [
189
+ "option"
190
+ ]
191
+ }, p = {
192
+ allowsTextContent: !0,
193
+ allowsChildren: !0,
194
+ allowedAttributes: [],
195
+ childTags: []
196
+ }, h1 = {
197
+ allowsTextContent: !0,
198
+ allowsChildren: !0,
199
+ allowedAttributes: [],
200
+ childTags: []
201
+ }, h2 = {
202
+ allowsTextContent: !0,
203
+ allowsChildren: !0,
204
+ allowedAttributes: [],
205
+ childTags: []
206
+ }, span = {
207
+ allowsTextContent: !0,
208
+ allowsChildren: !0,
209
+ allowedAttributes: [],
210
+ childTags: []
211
+ }, img = {
212
+ allowsTextContent: !1,
213
+ allowsChildren: !1,
214
+ allowedAttributes: [
215
+ "src",
216
+ "alt",
217
+ "width",
218
+ "height",
219
+ "loading"
220
+ ]
221
+ }, button = {
222
+ allowsTextContent: !0,
223
+ allowsChildren: !0,
224
+ allowedAttributes: [
225
+ "type",
226
+ "disabled",
227
+ "name",
228
+ "value"
229
+ ],
230
+ childTags: []
231
+ }, table = {
232
+ allowsTextContent: !1,
233
+ allowsChildren: !0,
234
+ allowedAttributes: [
235
+ "border",
236
+ "cellpadding",
237
+ "cellspacing"
238
+ ],
239
+ childTags: [
240
+ "caption",
241
+ "colgroup",
242
+ "thead",
243
+ "tbody",
244
+ "tfoot",
245
+ "tr"
246
+ ]
247
+ }, thead = {
248
+ allowsTextContent: !1,
249
+ allowsChildren: !0,
250
+ allowedAttributes: [],
251
+ childTags: [
252
+ "tr"
253
+ ]
254
+ }, tbody = {
255
+ allowsTextContent: !1,
256
+ allowsChildren: !0,
257
+ allowedAttributes: [],
258
+ childTags: [
259
+ "tr"
260
+ ]
261
+ }, tfoot = {
262
+ allowsTextContent: !1,
263
+ allowsChildren: !0,
264
+ allowedAttributes: [],
265
+ childTags: [
266
+ "tr"
267
+ ]
268
+ }, tr = {
269
+ allowsTextContent: !1,
270
+ allowsChildren: !0,
271
+ allowedAttributes: [],
272
+ childTags: [
273
+ "td",
274
+ "th"
275
+ ]
276
+ }, th = {
277
+ allowsTextContent: !0,
278
+ allowsChildren: !0,
279
+ allowedAttributes: [
280
+ "scope",
281
+ "colspan",
282
+ "rowspan"
283
+ ],
284
+ childTags: []
285
+ }, td = {
286
+ allowsTextContent: !0,
287
+ allowsChildren: !0,
288
+ allowedAttributes: [
289
+ "colspan",
290
+ "rowspan"
291
+ ],
292
+ childTags: []
293
+ }, datalist = {
294
+ allowsTextContent: !1,
295
+ allowsChildren: !0,
296
+ allowedAttributes: [],
297
+ childTags: [
298
+ "option"
299
+ ]
300
+ }, option = {
301
+ allowsTextContent: !0,
302
+ allowsChildren: !1,
303
+ allowedAttributes: [
304
+ "value",
305
+ "label",
306
+ "selected",
307
+ "disabled"
308
+ ]
309
+ }, header = {
310
+ allowsTextContent: !1,
311
+ allowsChildren: !0,
312
+ allowedAttributes: [
313
+ "role"
314
+ ],
315
+ childTags: []
316
+ }, a = {
317
+ allowsTextContent: !0,
318
+ allowsChildren: !0,
319
+ allowedAttributes: [
320
+ "href",
321
+ "target",
322
+ "rel",
323
+ "title",
324
+ "download"
325
+ ],
326
+ childTags: []
327
+ }, i = {
328
+ allowsTextContent: !0,
329
+ allowsChildren: !0,
330
+ allowedAttributes: [
331
+ "aria-hidden"
332
+ ],
333
+ childTags: []
334
+ }, small = {
335
+ allowsTextContent: !0,
336
+ allowsChildren: !0,
337
+ allowedAttributes: [],
338
+ childTags: []
339
+ }, ul = {
340
+ allowsTextContent: !1,
341
+ allowsChildren: !0,
342
+ allowedAttributes: [
343
+ "type"
344
+ ],
345
+ childTags: [
346
+ "li"
347
+ ]
348
+ }, li = {
349
+ allowsTextContent: !0,
350
+ allowsChildren: !0,
351
+ allowedAttributes: [
352
+ "value"
353
+ ],
354
+ childTags: []
355
+ }, hr = {
356
+ allowsTextContent: !1,
357
+ allowsChildren: !1,
358
+ allowedAttributes: []
359
+ }, defaultTags = {
360
+ $schema,
361
+ div,
362
+ input,
363
+ checkbox,
364
+ colgroup,
365
+ col,
366
+ label,
367
+ form,
368
+ select,
369
+ p,
370
+ h1,
371
+ h2,
372
+ span,
373
+ img,
374
+ button,
375
+ table,
376
+ thead,
377
+ tbody,
378
+ tfoot,
379
+ tr,
380
+ th,
381
+ td,
382
+ datalist,
383
+ option,
384
+ header,
385
+ a,
386
+ i,
387
+ small,
388
+ ul,
389
+ li,
390
+ hr
391
+ }, extractTags = ({ inSpec: e }) => {
392
+ const t = e;
393
+ if (!t) return [];
394
+ if (Array.isArray(t))
395
+ return t.flatMap((o) => extractTags({ inSpec: o }));
396
+ if (typeof t != "object") return [];
397
+ const n = [];
398
+ return typeof t.tagName == "string" && t.tagName.trim().length > 0 && n.push(t.tagName.toLowerCase()), Array.isArray(t.children) && t.children.length > 0 && t.children.forEach((o) => {
399
+ const r = extractTags({ inSpec: o });
400
+ n.push(...r);
401
+ }), n;
402
+ }, checkTags = ({ inTagsFound: e, inAllowedTags: t }) => {
403
+ const n = e ?? [], o = t ?? {}, r = new Set(
404
+ Object.keys(o).filter((d) => d !== "$schema").map((d) => d.toLowerCase())
405
+ ), l = {}, s = [], c = [];
406
+ n.forEach((d) => {
407
+ l[d] = (l[d] || 0) + 1, r.has(d) ? s.includes(d) || s.push(d) : c.includes(d) || c.push(d);
408
+ });
409
+ const u = n.length, T = c.length === 0;
410
+ return {
411
+ totalTags: u,
412
+ tagCounts: l,
413
+ uniqueTags: Object.keys(l),
414
+ recognizedTags: s,
415
+ unrecognizedTags: c,
416
+ areAllTagsPresent: T
417
+ };
418
+ }, reviewSpec = ({ inSpec: e, inTags: t = defaultTags } = {}) => {
419
+ const n = e, o = t, r = extractTags({ inSpec: n }), l = checkTags({
420
+ inTagsFound: r,
421
+ inAllowedTags: o
422
+ });
423
+ return {
424
+ areAllTagsPresent: l.areAllTagsPresent,
425
+ totalTags: l.totalTags,
426
+ tagCounts: l.tagCounts,
427
+ uniqueTags: l.uniqueTags,
428
+ recognizedTags: l.recognizedTags,
429
+ unrecognizedTags: l.unrecognizedTags
430
+ };
431
+ }, buildSpecElement = (e = {}) => {
432
+ try {
433
+ const t = e, n = (t == null ? void 0 : t.spec) ?? (t == null ? void 0 : t.inSpec) ?? t;
434
+ return dispatchSpec({
435
+ inSpec: n
436
+ });
437
+ } catch (t) {
438
+ throw console.error("error : ", t), t;
439
+ }
440
+ };
441
+ registerGlobal({
442
+ inFuncDefinition: buildSpecElement,
443
+ inReviewSpec: reviewSpec
444
+ });
445
+ const IDENTIFIERS = {
446
+ HARD_CODED: "$",
447
+ PARENT: "^",
448
+ TYPE_START: "(",
449
+ TYPE_END: ")",
450
+ ACTION_START: "{",
451
+ ACTION_END: "}",
452
+ ARRAY_INDEX: "#eq(",
453
+ ARRAY_START: "#eq(",
454
+ ARRAY_END: ")"
455
+ }, VALUES = {
456
+ DEFAULT: void 0
457
+ }, resolvePath = (e, t) => {
458
+ if (e === "")
459
+ return t;
460
+ const o = e.replace(/\[(\w+)\]/g, ". $1".replace(" ", "")).replace(/^\./, "").split(".");
461
+ for (let r = 0; r < o.length; ) {
462
+ if (Array.isArray(t)) {
463
+ const c = o.slice(r).join(".");
464
+ return t.map((u) => resolvePath(c, u));
465
+ }
466
+ if (typeof t != "object" || t === null)
467
+ return VALUES.DEFAULT;
468
+ let l, s = 0;
469
+ for (let c = o.length; c > r; c -= 1) {
470
+ const u = o.slice(r, c).join(".");
471
+ if (Object.prototype.hasOwnProperty.call(t, u)) {
472
+ l = u, s = c - r;
473
+ break;
474
+ }
475
+ }
476
+ if (l === void 0)
477
+ return VALUES.DEFAULT;
478
+ t = t[l], r += s;
479
+ }
480
+ return t;
481
+ }, isNonEmptyArray = (e) => e && Array.isArray(e) && e.length > 0, isNumber = (e) => !isNaN(e), operators = ["+", "-", "*", "/", "%"], convertToString = (e) => e ? String(e) : "", convertToNumber = (e) => e ? Number(e) : 0, convertToUpperCase = (e) => e ? e.toUpperCase() : "", convertToDate = (e) => {
482
+ if (!e) return e;
483
+ try {
484
+ return new Date(e).getTime();
485
+ } catch {
486
+ return e;
487
+ }
488
+ }, deleteKey = () => {
489
+ }, deleteIfNotPresent = (e) => typeof e > "u" ? void 0 : e, typeToFn = {
490
+ STRING: convertToString,
491
+ NUMBER: convertToNumber,
492
+ DATE: convertToDate,
493
+ UPPER: convertToUpperCase
494
+ }, extractSpecial = (e) => {
495
+ const t = e.indexOf(IDENTIFIERS.TYPE_START) > -1 ? IDENTIFIERS.TYPE_START : e.indexOf(IDENTIFIERS.ACTION_START) > -1 ? IDENTIFIERS.ACTION_START : null;
496
+ if (!t) return null;
497
+ const n = t === IDENTIFIERS.TYPE_START ? IDENTIFIERS.TYPE_END : IDENTIFIERS.ACTION_END;
498
+ return {
499
+ kind: t,
500
+ type: e.substring(e.indexOf(t) + 1, e.lastIndexOf(n)),
501
+ path: e.substring(0, e.indexOf(t))
502
+ };
503
+ }, evaluateExpression = (value, key, source, config) => {
504
+ const resolvedKey = resolvePath(key, source);
505
+ if (!config[resolvedKey]) return resolvedKey;
506
+ const { operator, value: expressionValue } = config[resolvedKey];
507
+ return !operators.includes(operator) || !isNumber(expressionValue) ? resolvedKey : eval(`${value}${operator}${expressionValue}`);
508
+ }, createActionMap = ({ convertValue: e }) => ({
509
+ APPEND: (t, n, o, r) => {
510
+ const l = r == null ? void 0 : r.appendMap;
511
+ if (!l || typeof l[n] > "u") return t;
512
+ const { path: s, separator: c } = l[n];
513
+ return t + (c || "") + e(s, o);
514
+ },
515
+ DELETE: deleteKey,
516
+ DELETE_IF_NOT_PRESENT: deleteIfNotPresent,
517
+ DEPENDS: (t, n, o, r) => {
518
+ if (typeof n > "u") return r.dependentMap[t];
519
+ const l = extractSpecial(n);
520
+ return l && actionMap[l.type] ? actionMap[l.type](t, l.path, o, r) : n;
521
+ },
522
+ EVAL: evaluateExpression
523
+ });
524
+ let actionMap = {};
525
+ const convertType = (e, t) => typeToFn[e] ? typeToFn[e](t) : t, performAction = (e, t, n, o, r, l) => {
526
+ actionMap = createActionMap({ convertValue: l });
527
+ const s = extractSpecial(e);
528
+ return s && actionMap[s.type] ? actionMap[s.type](t, s.path, o, r) : actionMap[e] ? actionMap[e](t, void 0, o, r) : t;
529
+ }, resolveValue = (e, t, n, o) => {
530
+ if (e.startsWith(IDENTIFIERS.HARD_CODED))
531
+ return e.substring(1);
532
+ if (e.startsWith(IDENTIFIERS.PARENT))
533
+ return resolvePath(e.substring(1), n);
534
+ const r = extractSpecial(e);
535
+ if (!r)
536
+ return resolvePath(e, t);
537
+ const l = resolvePath(r.path, t);
538
+ return typeof l > "u" ? VALUES.DEFAULT : r.kind === IDENTIFIERS.TYPE_START ? convertType(r.type, l) : performAction(
539
+ r.type,
540
+ l,
541
+ r.path,
542
+ t,
543
+ o,
544
+ (s, c) => resolveValue(s, c, n, o)
545
+ );
546
+ }, startFunc$a = (e, t, n) => {
547
+ const o = {};
548
+ return Object.keys(e).forEach((r) => {
549
+ const l = e[r];
550
+ if (typeof l == "string") {
551
+ o[r] = resolveValue(
552
+ l,
553
+ t,
554
+ n.rootSource,
555
+ n.configuration
556
+ );
557
+ return;
558
+ }
559
+ if (Array.isArray(l) && l.length > 0) {
560
+ o[r] = startFunc$3(l[0], t, n);
561
+ return;
562
+ }
563
+ l && typeof l == "object" && (o[r] = traverse(l, t, n));
564
+ }), o;
565
+ }, startFunc$9 = (e, t, n) => {
566
+ const o = [];
567
+ return e.forEach((r) => {
568
+ if (typeof r == "string") {
569
+ const l = resolveValue(
570
+ r,
571
+ t,
572
+ n.rootSource,
573
+ n.configuration
574
+ );
575
+ isNonEmptyArray(l) ? o.push(...l) : o.push(l);
576
+ return;
577
+ }
578
+ if (Array.isArray(r)) {
579
+ o.push(
580
+ ...startFunc$9(
581
+ r[0],
582
+ t,
583
+ n
584
+ )
585
+ );
586
+ return;
587
+ }
588
+ r && typeof r == "object" && o.push(
589
+ startFunc$a(
590
+ r,
591
+ t,
592
+ n
593
+ )
594
+ );
595
+ }), o;
596
+ }, startFunc$8 = (e, t, n) => [
597
+ startFunc$a(
598
+ t,
599
+ e,
600
+ n
601
+ )
602
+ ], startFunc$7 = (e, t, n) => e.map((o) => startFunc$a(
603
+ t,
604
+ o,
605
+ n
606
+ ));
607
+ function isPlainObject(e) {
608
+ return e !== null && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype;
609
+ }
610
+ const startFunc$6 = (e, t, n) => Array.isArray(e) ? startFunc$7(
611
+ e,
612
+ t,
613
+ n
614
+ ) : isPlainObject(e) ? startFunc$8(
615
+ e,
616
+ t,
617
+ n
618
+ ) : [], isArrayIndexMapping = (e) => {
619
+ const t = e.list;
620
+ return t.startsWith(IDENTIFIERS.ARRAY_INDEX) && t.includes(IDENTIFIERS.ARRAY_START) && t.includes(IDENTIFIERS.ARRAY_END);
621
+ }, getItemMapping$1 = (e) => Array.isArray(e.item) ? e.item[0] : e.item, resolveListSource = (e, t) => resolvePath(
622
+ e.list,
623
+ t
624
+ ), startFunc$5 = (e, t, n) => {
625
+ const o = getItemMapping$1(e);
626
+ if (isArrayIndexMapping(e))
627
+ return [
628
+ startFunc$a(
629
+ o,
630
+ t,
631
+ n
632
+ )
633
+ ];
634
+ const r = resolveListSource(
635
+ e,
636
+ t
637
+ );
638
+ return startFunc$6(
639
+ r,
640
+ o,
641
+ n
642
+ );
643
+ }, getItemMapping = (e) => Array.isArray(e.item) ? e.item[0] : e.item, resolveObjectifySource = (e, t) => resolvePath(
644
+ e.objectify,
645
+ t
646
+ ), startFunc$4 = (e, t, n) => {
647
+ const o = resolveObjectifySource(
648
+ e,
649
+ t
650
+ );
651
+ return startFunc$8(
652
+ o,
653
+ getItemMapping(e),
654
+ n
655
+ );
656
+ }, startFunc$3 = (e, t, n) => typeof e.collect < "u" ? startFunc$9(
657
+ e.item,
658
+ t,
659
+ n
660
+ ) : typeof e.list < "u" ? startFunc$5(
661
+ e,
662
+ t,
663
+ n
664
+ ) : typeof e.objectify < "u" ? startFunc$4(
665
+ e,
666
+ t,
667
+ n
668
+ ) : [], startFunc$2 = (e, t) => {
669
+ if (!e.includes(IDENTIFIERS.ARRAY_INDEX)) return {};
670
+ const n = e.lastIndexOf(IDENTIFIERS.ARRAY_INDEX) + 4, o = e.lastIndexOf(IDENTIFIERS.ARRAY_END), r = e.substring(n, o), l = e.substring(0, e.lastIndexOf(IDENTIFIERS.ARRAY_INDEX)), s = l ? resolvePath(l, t) : t;
671
+ return s == null ? void 0 : s[r];
672
+ }, traverse = (e, t, n) => {
673
+ if (typeof e.list < "u" || typeof e.objectify < "u" || typeof e.collect < "u")
674
+ return startFunc$3(e, t, n);
675
+ if (typeof e.flat < "u") {
676
+ const o = startFunc$2(e.flat, t);
677
+ return startFunc$a(e.item, o, n);
678
+ }
679
+ return typeof e.item < "u" ? startFunc$a(e.item, t, n) : startFunc$a(e, t, n);
680
+ }, transform = (e, t) => {
681
+ let n = e, o = t;
682
+ e !== null && typeof e == "object" && "inData" in e && t === void 0 && (n = e.inData, o = e.inTransformation);
683
+ const { mapping: r, config: l = {} } = o;
684
+ return traverse(r, n, {
685
+ rootSource: n,
686
+ configuration: l
687
+ });
688
+ }, transformHelper = { transform }, old = {
689
+ tagName: "datalist",
690
+ attributes: {
691
+ id: "LedgerName"
692
+ },
693
+ jsonToSpec: {
694
+ operation: "loopArray",
695
+ source: "LedgerName",
696
+ template: {
697
+ tagName: "option",
698
+ attributes: {
699
+ value: "${}"
700
+ },
701
+ textContent: "${}"
702
+ }
703
+ },
704
+ children: []
705
+ }, skeletonJson$1 = {
706
+ old,
707
+ default: {
708
+ mapping: {
709
+ tagName: "$datalist",
710
+ attributes: {
711
+ id: "$LedgerName"
712
+ },
713
+ children: {
714
+ list: "LedgerName",
715
+ item: {
716
+ tagName: "$option",
717
+ attributes: {
718
+ value: ""
719
+ },
720
+ textContent: ""
721
+ }
722
+ }
723
+ }
724
+ }
725
+ }, startFunc$1 = ({ targetHtmlId: e, inData: t, inSkeletonType: n = "default" } = {}) => {
726
+ const o = skeletonJson$1[n], r = transformHelper.transform(t, o), l = document.getElementById(e);
727
+ l && (l.innerHTML = "");
728
+ const s = buildSpecElement(r);
729
+ Array.isArray(s) ? s.forEach((c) => l.append(c)) : l.append(s);
730
+ }, skeletonJson = {
731
+ default: {
732
+ mapping: {
733
+ tagName: "$select",
734
+ attributes: {
735
+ id: "$LedgerName",
736
+ class: "$keshav"
737
+ },
738
+ children: [
739
+ {
740
+ list: "LedgerName",
741
+ item: {
742
+ tagName: "$option",
743
+ attributes: {
744
+ value: ""
745
+ },
746
+ textContent: ""
747
+ }
748
+ }
749
+ ]
750
+ }
751
+ }
752
+ }, startFunc = ({
753
+ targetHtmlId: e,
754
+ inData: t,
755
+ inSkeletonType: n = "default",
756
+ inClassToApply: o
757
+ } = {}) => {
758
+ console.log("aaaaaaaaaa");
759
+ const r = skeletonJson[n];
760
+ r.mapping.attributes.class = `$${o}`;
761
+ debugger;
762
+ const l = transformHelper.transform(t, r), s = document.getElementById(e);
763
+ s && (s.innerHTML = "");
764
+ const c = buildSpecElement(l);
765
+ Array.isArray(c) ? c.forEach((u) => s.append(u)) : s.append(c);
766
+ }, RENDERER_MAP = {
767
+ datalist: startFunc$1,
768
+ select: startFunc
769
+ }, render = ({
770
+ type: e = "table",
771
+ targetHtmlId: t,
772
+ data: n,
773
+ classToApply: o,
774
+ inTargetHtmlId: r,
775
+ inData: l,
776
+ columns: s,
777
+ inColumns: c,
778
+ fields: u,
779
+ inFields: T,
780
+ tabs: d,
781
+ inTabs: S,
782
+ options: _,
783
+ inOptions: M,
784
+ datalistId: k,
785
+ inDatalistId: Y,
786
+ listId: U,
787
+ inListId: H,
788
+ id: z,
789
+ valueField: B,
790
+ inValueField: V,
791
+ labelField: q,
792
+ inLabelField: J,
793
+ colGroup: C,
794
+ inColGroup: N,
795
+ footerData: I,
796
+ inFooterData: R,
797
+ config: F,
798
+ inConfig: D,
799
+ variant: x,
800
+ skeletonType: $,
801
+ inSkeletonType: v,
802
+ showLog: L = !1,
803
+ inShowLog: j,
804
+ ...f
805
+ } = {}) => {
806
+ const E = e, h = typeof E == "string" ? E.toLowerCase() : "table", g = RENDERER_MAP[h];
807
+ if (!g)
808
+ return console.error(
809
+ `[Renderer] Unknown renderer type "${E}". Available types: ${Object.keys(RENDERER_MAP).join(", ")}`
810
+ ), null;
811
+ const b = r ?? t, w = l ?? n, m = c ?? s, O = T ?? u, P = S ?? d, A = v ?? $ ?? x ?? "default", y = j ?? L ?? !1;
812
+ return g(h === "form" ? {
813
+ targetHtmlId: b,
814
+ inFields: O,
815
+ inData: w,
816
+ inColumns: m,
817
+ inVariant: A,
818
+ inSkeletonType: A,
819
+ inShowLog: y,
820
+ onSave: f == null ? void 0 : f.onSave,
821
+ afterSave: f == null ? void 0 : f.afterSave,
822
+ onNew: f == null ? void 0 : f.onNew
823
+ } : h === "navtabs" || h === "nav" || h === "tabs" ? {
824
+ targetHtmlId: b,
825
+ inTabs: P,
826
+ inData: w,
827
+ inSkeletonType: A,
828
+ inShowLog: y
829
+ } : h === "datalist" || h === "data-list" ? {
830
+ targetHtmlId: b,
831
+ inData: w,
832
+ inSkeletonType: A,
833
+ inShowLog: y
834
+ } : h === "select" ? {
835
+ targetHtmlId: b,
836
+ inData: w,
837
+ inSkeletonType: A,
838
+ inShowLog: y,
839
+ inClassToApply: o
840
+ } : {
841
+ targetHtmlId: b,
842
+ inColumns: m,
843
+ inData: w,
844
+ inColGroup: N ?? C,
845
+ inFooterData: R ?? I ?? [],
846
+ inConfig: D ?? F ?? {},
847
+ inSkeletonType: A,
848
+ inShowLog: y
849
+ });
850
+ };
851
+ registerGlobal$1(render);
852
+ export {
853
+ render as default
854
+ };