json-renderers 1.12.3 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/docs/dist/v12/min.js +646 -646
  2. package/docs/dist/v13/min.js +691 -0
  3. package/docs/index.html +14 -0
  4. package/package.json +3 -3
  5. package/src/index.js +2 -2
  6. package/src/v13/index.js +46 -0
  7. package/src/{v10 → v13}/meta.js +1 -1
  8. package/src/{v9/table → v13/select}/index.js +4 -7
  9. package/src/v13/select/skeleton.json +18 -0
  10. package/src/v13/table/index.js +39 -0
  11. package/src/v10/dataLists/fragments.json +0 -1
  12. package/src/v10/dataLists/index.js +0 -32
  13. package/src/v10/dataLists/skeleton.json +0 -38
  14. package/src/v10/index.js +0 -142
  15. package/src/v10/select/fragments.json +0 -1
  16. package/src/v10/select/index.js +0 -34
  17. package/src/v10/select/skeleton.json +0 -23
  18. package/src/v10/table/index.js +0 -35
  19. package/src/v5/dataLists/fragments.json +0 -1
  20. package/src/v5/dataLists/index.js +0 -26
  21. package/src/v5/dataLists/skeleton.json +0 -20
  22. package/src/v5/form/attachFormClickEventListener.js +0 -27
  23. package/src/v5/form/clickFunc/extractFormData.js +0 -27
  24. package/src/v5/form/clickFunc/handleNew.js +0 -24
  25. package/src/v5/form/clickFunc/handleSave.js +0 -33
  26. package/src/v5/form/clickFunc/index.js +0 -32
  27. package/src/v5/form/index.js +0 -87
  28. package/src/v5/form/structure.json +0 -410
  29. package/src/v5/index.js +0 -150
  30. package/src/v5/meta.js +0 -6
  31. package/src/v5/navTabs/fragments.json +0 -59
  32. package/src/v5/navTabs/index.js +0 -82
  33. package/src/v5/navTabs/skeleton.json +0 -18
  34. package/src/v5/registerGlobal.js +0 -14
  35. package/src/v5/select/fragments.json +0 -1
  36. package/src/v5/select/index.js +0 -31
  37. package/src/v5/select/skeleton.json +0 -21
  38. package/src/v5/table/attachTableClickEventListener.js +0 -22
  39. package/src/v5/table/buildTableDataAsJson.js +0 -19
  40. package/src/v5/table/buildTableDomElement.js +0 -21
  41. package/src/v5/table/buildTableStructureSpec.js +0 -28
  42. package/src/v5/table/clickFunc/v3/createTable.js +0 -16
  43. package/src/v5/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -23
  44. package/src/v5/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -21
  45. package/src/v5/table/clickFunc/v3/getContainer/index.js +0 -39
  46. package/src/v5/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -14
  47. package/src/v5/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -12
  48. package/src/v5/table/clickFunc/v3/index.js +0 -21
  49. package/src/v5/table/fragments.json +0 -112
  50. package/src/v5/table/index.js +0 -72
  51. package/src/v5/table/resolveTargetContainer.js +0 -9
  52. package/src/v5/table/skeleton.json +0 -371
  53. package/src/v6/dataLists/fragments.json +0 -1
  54. package/src/v6/dataLists/index.js +0 -32
  55. package/src/v6/dataLists/skeleton.json +0 -38
  56. package/src/v6/form/attachFormClickEventListener.js +0 -27
  57. package/src/v6/form/clickFunc/extractFormData.js +0 -27
  58. package/src/v6/form/clickFunc/handleNew.js +0 -24
  59. package/src/v6/form/clickFunc/handleSave.js +0 -33
  60. package/src/v6/form/clickFunc/index.js +0 -32
  61. package/src/v6/form/index.js +0 -87
  62. package/src/v6/form/structure.json +0 -410
  63. package/src/v6/index.js +0 -150
  64. package/src/v6/meta.js +0 -6
  65. package/src/v6/navTabs/fragments.json +0 -59
  66. package/src/v6/navTabs/index.js +0 -82
  67. package/src/v6/navTabs/skeleton.json +0 -18
  68. package/src/v6/registerGlobal.js +0 -14
  69. package/src/v6/select/fragments.json +0 -1
  70. package/src/v6/select/index.js +0 -34
  71. package/src/v6/select/skeleton.json +0 -23
  72. package/src/v6/table/attachTableClickEventListener.js +0 -22
  73. package/src/v6/table/buildTableDataAsJson.js +0 -19
  74. package/src/v6/table/buildTableDomElement.js +0 -21
  75. package/src/v6/table/buildTableStructureSpec.js +0 -28
  76. package/src/v6/table/clickFunc/v3/createTable.js +0 -16
  77. package/src/v6/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -23
  78. package/src/v6/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -21
  79. package/src/v6/table/clickFunc/v3/getContainer/index.js +0 -39
  80. package/src/v6/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -14
  81. package/src/v6/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -12
  82. package/src/v6/table/clickFunc/v3/index.js +0 -21
  83. package/src/v6/table/fragments.json +0 -112
  84. package/src/v6/table/index.js +0 -72
  85. package/src/v6/table/resolveTargetContainer.js +0 -9
  86. package/src/v6/table/skeleton.json +0 -371
  87. package/src/v7/common/deriveColumnsFromData.js +0 -20
  88. package/src/v7/dataLists/fragments.json +0 -1
  89. package/src/v7/dataLists/index.js +0 -32
  90. package/src/v7/dataLists/skeleton.json +0 -38
  91. package/src/v7/form/attachFormClickEventListener.js +0 -27
  92. package/src/v7/form/clickFunc/extractFormData.js +0 -27
  93. package/src/v7/form/clickFunc/handleNew.js +0 -24
  94. package/src/v7/form/clickFunc/handleSave.js +0 -33
  95. package/src/v7/form/clickFunc/index.js +0 -32
  96. package/src/v7/form/index.js +0 -87
  97. package/src/v7/form/structure.json +0 -410
  98. package/src/v7/index.js +0 -141
  99. package/src/v7/meta.js +0 -6
  100. package/src/v7/navTabs/fragments.json +0 -59
  101. package/src/v7/navTabs/index.js +0 -82
  102. package/src/v7/navTabs/skeleton.json +0 -18
  103. package/src/v7/registerGlobal.js +0 -14
  104. package/src/v7/select/fragments.json +0 -1
  105. package/src/v7/select/index.js +0 -34
  106. package/src/v7/select/skeleton.json +0 -23
  107. package/src/v7/table/attachTableClickEventListener.js +0 -28
  108. package/src/v7/table/buildTableDataAsJson.js +0 -25
  109. package/src/v7/table/buildTableDomElement.js +0 -25
  110. package/src/v7/table/buildTableStructureSpec.js +0 -33
  111. package/src/v7/table/clickFunc/v3/createTable.js +0 -20
  112. package/src/v7/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -27
  113. package/src/v7/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -24
  114. package/src/v7/table/clickFunc/v3/getContainer/index.js +0 -44
  115. package/src/v7/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -17
  116. package/src/v7/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -15
  117. package/src/v7/table/clickFunc/v3/index.js +0 -35
  118. package/src/v7/table/fragments.json +0 -112
  119. package/src/v7/table/index.js +0 -82
  120. package/src/v7/table/resolveTargetContainer.js +0 -11
  121. package/src/v7/table/skeleton.json +0 -371
  122. package/src/v8/common/deriveColumnsFromData.js +0 -20
  123. package/src/v8/dataLists/fragments.json +0 -1
  124. package/src/v8/dataLists/index.js +0 -32
  125. package/src/v8/dataLists/skeleton.json +0 -38
  126. package/src/v8/form/attachFormClickEventListener.js +0 -27
  127. package/src/v8/form/clickFunc/extractFormData.js +0 -27
  128. package/src/v8/form/clickFunc/handleNew.js +0 -24
  129. package/src/v8/form/clickFunc/handleSave.js +0 -33
  130. package/src/v8/form/clickFunc/index.js +0 -32
  131. package/src/v8/form/index.js +0 -87
  132. package/src/v8/form/structure.json +0 -410
  133. package/src/v8/index.js +0 -141
  134. package/src/v8/meta.js +0 -6
  135. package/src/v8/navTabs/fragments.json +0 -59
  136. package/src/v8/navTabs/index.js +0 -82
  137. package/src/v8/navTabs/skeleton.json +0 -18
  138. package/src/v8/registerGlobal.js +0 -14
  139. package/src/v8/select/fragments.json +0 -1
  140. package/src/v8/select/index.js +0 -34
  141. package/src/v8/select/skeleton.json +0 -23
  142. package/src/v8/table/attachTableClickEventListener.js +0 -28
  143. package/src/v8/table/buildTableDataAsJson.js +0 -25
  144. package/src/v8/table/buildTableDomElement.js +0 -25
  145. package/src/v8/table/buildTableStructureSpec.js +0 -33
  146. package/src/v8/table/clickFunc/v3/createTable.js +0 -20
  147. package/src/v8/table/clickFunc/v3/getContainer/extractClickedRowDetails.js +0 -27
  148. package/src/v8/table/clickFunc/v3/getContainer/getOrCreateChildTableContainer.js +0 -24
  149. package/src/v8/table/clickFunc/v3/getContainer/index.js +0 -44
  150. package/src/v8/table/clickFunc/v3/getContainer/isSameRowClickedToToggleOff.js +0 -17
  151. package/src/v8/table/clickFunc/v3/getContainer/resetAndShowChildTableContainer.js +0 -15
  152. package/src/v8/table/clickFunc/v3/index.js +0 -35
  153. package/src/v8/table/fragments.json +0 -112
  154. package/src/v8/table/index.js +0 -82
  155. package/src/v8/table/resolveTargetContainer.js +0 -11
  156. package/src/v8/table/skeleton.json +0 -371
  157. package/src/v9/common/deriveColumnsFromData.js +0 -20
  158. package/src/v9/dataLists/fragments.json +0 -1
  159. package/src/v9/dataLists/index.js +0 -32
  160. package/src/v9/dataLists/skeleton.json +0 -38
  161. package/src/v9/form/attachFormClickEventListener.js +0 -27
  162. package/src/v9/form/clickFunc/extractFormData.js +0 -27
  163. package/src/v9/form/clickFunc/handleNew.js +0 -24
  164. package/src/v9/form/clickFunc/handleSave.js +0 -33
  165. package/src/v9/form/clickFunc/index.js +0 -32
  166. package/src/v9/form/index.js +0 -87
  167. package/src/v9/form/structure.json +0 -410
  168. package/src/v9/index.js +0 -141
  169. package/src/v9/meta.js +0 -6
  170. package/src/v9/navTabs/fragments.json +0 -59
  171. package/src/v9/navTabs/index.js +0 -82
  172. package/src/v9/navTabs/skeleton.json +0 -18
  173. package/src/v9/registerGlobal.js +0 -14
  174. package/src/v9/select/fragments.json +0 -1
  175. package/src/v9/select/index.js +0 -34
  176. package/src/v9/select/skeleton.json +0 -23
  177. package/src/v9/table/skeleton.json +0 -47
  178. /package/src/{v10 → v13}/common/deriveColumnsFromData.js +0 -0
  179. /package/src/{v10 → v13}/registerGlobal.js +0 -0
  180. /package/src/{v10 → v13}/table/skeleton.json +0 -0
@@ -0,0 +1,691 @@
1
+ const R = {
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
+ }, F = (t) => {
5
+ var e;
6
+ typeof globalThis > "u" || !t || (globalThis.ks ?? (globalThis.ks = {}), (e = globalThis.ks).jsonRenderers ?? (e.jsonRenderers = {
7
+ meta: R,
8
+ renderToDom: t
9
+ }));
10
+ }, G = {
11
+ version: "v2.0.0",
12
+ description: "build table from store data and render to DOM uses json-to-spec, json-to-dom under the hood"
13
+ }, H = (t) => {
14
+ var e;
15
+ typeof globalThis > "u" || !t || (globalThis.ks ?? (globalThis.ks = {}), (e = globalThis.ks).jsonRenderersBuild ?? (e.jsonRenderersBuild = {
16
+ meta: G,
17
+ renderToDom: t
18
+ }));
19
+ }, S = {
20
+ version: "v32",
21
+ description: "JSON-to-DOM engine with centralized traversal and responsibility-focused construction"
22
+ }, L = ({ inFuncDefinition: t } = {}) => {
23
+ if (typeof globalThis > "u" || !t) return;
24
+ globalThis.ks ?? (globalThis.ks = {});
25
+ const e = {
26
+ meta: S,
27
+ buildSpecElement: t
28
+ };
29
+ globalThis.ks.jsonToSpec = e;
30
+ }, M = (t, e) => d(t, e), C = (t, e) => Array.isArray(t) ? t.map((l) => M(l, e)).flat(1 / 0).filter(Boolean) : [], z = (t, e) => {
31
+ if ("source" in t && (t == null ? void 0 : t.source) in e) {
32
+ const l = e[t == null ? void 0 : t.source];
33
+ if (Array.isArray(l))
34
+ return l.map((n) => {
35
+ const r = t == null ? void 0 : t.template;
36
+ if (r)
37
+ return d(r, n);
38
+ });
39
+ }
40
+ }, P = (t, e) => {
41
+ let l = [];
42
+ for (const [o, n] of Object.entries(e)) {
43
+ const r = t == null ? void 0 : t.template;
44
+ if (r) {
45
+ const a = d(r, {
46
+ key: o,
47
+ value: n
48
+ });
49
+ l.push(a);
50
+ }
51
+ }
52
+ return l;
53
+ }, V = (t, e) => {
54
+ if ("source" in t && (t == null ? void 0 : t.source) in e) {
55
+ const l = e[t == null ? void 0 : t.source];
56
+ if (Array.isArray(l))
57
+ return l.map((n) => {
58
+ const r = t == null ? void 0 : t.template;
59
+ if (r)
60
+ return d(r, n);
61
+ });
62
+ }
63
+ }, q = (t, e) => {
64
+ if ("operation" in t) {
65
+ if (t.operation === "loopArray")
66
+ return z(t, e);
67
+ if (t.operation === "loopObject")
68
+ return P(t, e);
69
+ if (t.operation === "loopCollection")
70
+ return V(t, e);
71
+ }
72
+ }, A = (t, e) => {
73
+ if (typeof e == "string") return e;
74
+ if (typeof t != "string") return t;
75
+ if (t === "${value}")
76
+ return e.value;
77
+ const l = t.match(/^\$\{(.+?)\}$/);
78
+ if (l) {
79
+ const o = l[1];
80
+ return (e == null ? void 0 : e[o]) ?? "";
81
+ }
82
+ return t;
83
+ }, B = (t, e) => {
84
+ let l = {};
85
+ for (const [o, n] of Object.entries(t)) {
86
+ const r = A(n, e);
87
+ l[o] = r;
88
+ }
89
+ return l;
90
+ }, _ = (t, e) => {
91
+ if ("tagName" in t) {
92
+ if ("textContent" in t) {
93
+ const l = A(t.textContent, e);
94
+ t.textContent = l;
95
+ }
96
+ if ("attributes" in t) {
97
+ const l = B(t.attributes, e);
98
+ t.attributes = l;
99
+ }
100
+ }
101
+ }, U = (t, e) => {
102
+ if (!t || typeof t != "object" || Array.isArray(t)) return null;
103
+ const l = structuredClone(t);
104
+ if (!l) return null;
105
+ if ("tagName" in l && _(l, e), "jsonToSpec" in l) {
106
+ const o = l == null ? void 0 : l.jsonToSpec, n = q(o, e);
107
+ Array.isArray(n) ? l.children = n : l.children = [n], delete l.jsonToSpec;
108
+ }
109
+ if (Array.isArray(l == null ? void 0 : l.children)) {
110
+ const o = C(l == null ? void 0 : l.children, e);
111
+ l.children = o;
112
+ }
113
+ return l;
114
+ }, d = (t, e) => {
115
+ if (t == null) return null;
116
+ debugger;
117
+ return typeof Node < "u" && t instanceof Node ? t : Array.isArray(t) ? C(t, e) : typeof t == "object" ? U(t, e) : typeof t == "string" || typeof t == "number" ? document.createTextNode(String(t)) : t;
118
+ }, x = (t, e) => d(t, e);
119
+ L({
120
+ inFuncDefinition: x
121
+ });
122
+ const K = {
123
+ default: {
124
+ tagName: "table",
125
+ attributes: {
126
+ class: "table table-hover table-striped mb-0"
127
+ },
128
+ children: [
129
+ {
130
+ tagName: "thead",
131
+ children: [
132
+ {
133
+ tagName: "tr",
134
+ jsonToSpec: {
135
+ operation: "loopCollection",
136
+ source: "columns",
137
+ template: {
138
+ tagName: "th",
139
+ textContent: "${title}"
140
+ }
141
+ },
142
+ children: []
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ tagName: "tbody",
148
+ jsonToSpec: {
149
+ operation: "loopCollection",
150
+ source: "data",
151
+ template: {
152
+ tagName: "tr",
153
+ jsonToSpec: {
154
+ operation: "loopObject",
155
+ source: "data",
156
+ template: {
157
+ tagName: "td",
158
+ textContent: "${value}"
159
+ }
160
+ },
161
+ children: []
162
+ }
163
+ },
164
+ children: []
165
+ }
166
+ ]
167
+ }
168
+ }, X = ({
169
+ targetHtmlId: t,
170
+ inTargetHtmlId: e,
171
+ inColumns: l,
172
+ inData: o
173
+ } = {}) => {
174
+ const n = o ?? [], r = l;
175
+ return x(K.default, {
176
+ columns: r,
177
+ data: n
178
+ });
179
+ }, y = {
180
+ table: X
181
+ }, v = ({
182
+ type: t = "table",
183
+ targetHtmlId: e,
184
+ data: l,
185
+ classToApply: o,
186
+ inTargetHtmlId: n,
187
+ inData: r,
188
+ columns: a,
189
+ inColumns: s,
190
+ colGroup: u,
191
+ inColGroup: c,
192
+ footerData: i,
193
+ inFooterData: f,
194
+ config: b,
195
+ inConfig: w,
196
+ variant: m,
197
+ skeletonType: $,
198
+ inSkeletonType: E,
199
+ showLog: D = !1,
200
+ inShowLog: O
201
+ } = {}) => {
202
+ const g = t, I = typeof g == "string" ? g.toLowerCase() : "table", p = y[I];
203
+ return p ? p({
204
+ targetHtmlId: n ?? e,
205
+ inColumns: s ?? a,
206
+ inData: r ?? l,
207
+ inColGroup: c ?? u,
208
+ inFooterData: f ?? i ?? [],
209
+ inConfig: w ?? b ?? {},
210
+ inSkeletonType: E ?? $ ?? m ?? "default",
211
+ inShowLog: O ?? D ?? !1
212
+ }) : (console.error(
213
+ `[Renderer] Unknown renderer type "${g}". Available types: ${Object.keys(y).join(", ")}`
214
+ ), null);
215
+ };
216
+ H(v);
217
+ const Q = {
218
+ version: "v9",
219
+ description: "JSON-to-DOM engine with SVG namespace support, mixed text content, and centralized traversal"
220
+ }, W = ({ inFuncDefinition: t, inReviewSpec: e } = {}) => {
221
+ if (typeof globalThis > "u" || !t) return;
222
+ globalThis.ks ?? (globalThis.ks = {});
223
+ const l = {
224
+ meta: Q,
225
+ buildSpecElement: t,
226
+ reviewSpec: e
227
+ };
228
+ globalThis.ks["json-to-tag"] = l, globalThis.ks.jsonToTag = l;
229
+ }, Y = (t) => t == null ? null : typeof Node < "u" && t instanceof Node ? t : typeof t == "string" || typeof t == "number" ? document.createTextNode(String(t)) : typeof t == "object" && (t.nodeType === 3 || t.tagName === "#text" || !t.tagName && (t.textContent !== void 0 || t.text !== void 0)) ? document.createTextNode(t.textContent ?? t.text ?? "") : N(t), j = (t) => Array.isArray(t) ? t.map(Y).flat(1 / 0).filter(Boolean) : [], Z = (t) => (t == null, t), J = "http://www.w3.org/2000/svg", tt = /* @__PURE__ */ new Set([
230
+ "svg",
231
+ "path",
232
+ "symbol",
233
+ "use",
234
+ "g",
235
+ "circle",
236
+ "ellipse",
237
+ "rect",
238
+ "line",
239
+ "polyline",
240
+ "polygon",
241
+ "text",
242
+ "tspan",
243
+ "defs",
244
+ "clippath",
245
+ "mask",
246
+ "pattern",
247
+ "marker",
248
+ "lineargradient",
249
+ "radialgradient",
250
+ "stop",
251
+ "image",
252
+ "filter",
253
+ "fegaussianblur",
254
+ "femerge",
255
+ "femergenode"
256
+ ]), et = ({ inTagName: t }) => {
257
+ const e = t == null ? void 0 : t.toLowerCase();
258
+ if (!e) return null;
259
+ if (e === "checkbox") {
260
+ const l = document.createElement("input");
261
+ return l.type = "checkbox", l;
262
+ }
263
+ return tt.has(e) ? document.createElementNS(J, e) : document.createElement(e);
264
+ }, lt = ({ inElement: t, inTextContent: e }) => (!t || e === void 0 || e === null || (t.textContent = e), t), rt = ({ inElement: t, inProperties: e }) => (t && e && typeof e == "object" && Object.assign(t, e), t), ot = "http://www.w3.org/1999/xlink", nt = ({ inElement: t, inAttributes: e }) => {
265
+ const l = t, o = e;
266
+ if (!l || !o || typeof o != "object")
267
+ return l;
268
+ const n = typeof SVGElement < "u" ? l instanceof SVGElement : l.namespaceURI === "http://www.w3.org/2000/svg";
269
+ return Object.entries(o).forEach(([r, a]) => {
270
+ if (r === "class") {
271
+ n ? l.setAttribute("class", String(a)) : l.className = a;
272
+ return;
273
+ }
274
+ if (r === "xlink:href" || r === "href") {
275
+ if (a != null) {
276
+ const s = String(a);
277
+ if (n)
278
+ try {
279
+ l.setAttributeNS(ot, "href", s);
280
+ } catch {
281
+ }
282
+ l.setAttribute("href", s), l.setAttribute("xlink:href", s);
283
+ }
284
+ return;
285
+ }
286
+ if (typeof a == "boolean") {
287
+ a ? l.setAttribute(r, "") : l.removeAttribute(r);
288
+ return;
289
+ }
290
+ a != null && l.setAttribute(r, String(a));
291
+ }), l;
292
+ }, at = ({ inElement: t, inClassList: e }) => {
293
+ if (!t || !e) return t;
294
+ const l = typeof e == "string" ? e.split(/\s+/).filter(Boolean) : Array.isArray(e) ? e.filter((o) => typeof o == "string" && o.trim()) : [];
295
+ return l.length && t.classList.add(...l), t;
296
+ }, st = (t) => {
297
+ if (!t || typeof t != "object" || Array.isArray(t) || !t.tagName) return null;
298
+ const e = et({ inTagName: t.tagName });
299
+ if (!e) return null;
300
+ if (lt({
301
+ inElement: e,
302
+ inTextContent: Z(t.textContent),
303
+ inTagName: t.tagName
304
+ }), rt({
305
+ inElement: e,
306
+ inProperties: t.properties
307
+ }), nt({
308
+ inElement: e,
309
+ inAttributes: t.attributes
310
+ }), at({
311
+ inElement: e,
312
+ inClassList: t.classList
313
+ }), Array.isArray(t.children)) {
314
+ const l = j(t.children);
315
+ l.length && e.append(...l);
316
+ }
317
+ return e;
318
+ }, N = (t) => t == null ? null : typeof Node < "u" && t instanceof Node ? t : Array.isArray(t) ? j(t) : typeof t == "object" ? st(t) : typeof t == "string" || typeof t == "number" ? document.createTextNode(String(t)) : null, it = "./tags.schema.json", ut = {
319
+ allowsTextContent: !1,
320
+ allowsChildren: !0,
321
+ allowedAttributes: [
322
+ "title",
323
+ "role"
324
+ ],
325
+ childTags: []
326
+ }, ct = {
327
+ allowsTextContent: !1,
328
+ allowsChildren: !1,
329
+ allowedAttributes: [
330
+ "type",
331
+ "placeholder",
332
+ "value",
333
+ "name",
334
+ "disabled",
335
+ "readonly",
336
+ "required",
337
+ "list"
338
+ ]
339
+ }, dt = {
340
+ allowsTextContent: !1,
341
+ allowsChildren: !1,
342
+ allowedAttributes: [
343
+ "type",
344
+ "checked",
345
+ "name",
346
+ "value",
347
+ "disabled",
348
+ "required"
349
+ ]
350
+ }, ft = {
351
+ allowsTextContent: !1,
352
+ allowsChildren: !0,
353
+ allowedAttributes: [
354
+ "span"
355
+ ],
356
+ childTags: [
357
+ "col"
358
+ ]
359
+ }, gt = {
360
+ allowsTextContent: !1,
361
+ allowsChildren: !1,
362
+ allowedAttributes: [
363
+ "span",
364
+ "style",
365
+ "width"
366
+ ]
367
+ }, ht = {
368
+ allowsTextContent: !0,
369
+ allowsChildren: !0,
370
+ allowedAttributes: [
371
+ "for"
372
+ ],
373
+ childTags: []
374
+ }, bt = {
375
+ allowsTextContent: !1,
376
+ allowsChildren: !0,
377
+ allowedAttributes: [
378
+ "action",
379
+ "method",
380
+ "autocomplete",
381
+ "enctype",
382
+ "name",
383
+ "novalidate",
384
+ "target"
385
+ ],
386
+ childTags: []
387
+ }, wt = {
388
+ allowsTextContent: !1,
389
+ allowsChildren: !0,
390
+ allowedAttributes: [
391
+ "name",
392
+ "disabled",
393
+ "required",
394
+ "multiple",
395
+ "size"
396
+ ],
397
+ childTags: [
398
+ "option"
399
+ ]
400
+ }, mt = {
401
+ allowsTextContent: !0,
402
+ allowsChildren: !0,
403
+ allowedAttributes: [],
404
+ childTags: []
405
+ }, pt = {
406
+ allowsTextContent: !0,
407
+ allowsChildren: !0,
408
+ allowedAttributes: [],
409
+ childTags: []
410
+ }, yt = {
411
+ allowsTextContent: !0,
412
+ allowsChildren: !0,
413
+ allowedAttributes: [],
414
+ childTags: []
415
+ }, Tt = {
416
+ allowsTextContent: !0,
417
+ allowsChildren: !0,
418
+ allowedAttributes: [],
419
+ childTags: []
420
+ }, Ct = {
421
+ allowsTextContent: !1,
422
+ allowsChildren: !1,
423
+ allowedAttributes: [
424
+ "src",
425
+ "alt",
426
+ "width",
427
+ "height",
428
+ "loading"
429
+ ]
430
+ }, At = {
431
+ allowsTextContent: !0,
432
+ allowsChildren: !0,
433
+ allowedAttributes: [
434
+ "type",
435
+ "disabled",
436
+ "name",
437
+ "value"
438
+ ],
439
+ childTags: []
440
+ }, xt = {
441
+ allowsTextContent: !1,
442
+ allowsChildren: !0,
443
+ allowedAttributes: [
444
+ "border",
445
+ "cellpadding",
446
+ "cellspacing"
447
+ ],
448
+ childTags: [
449
+ "caption",
450
+ "colgroup",
451
+ "thead",
452
+ "tbody",
453
+ "tfoot",
454
+ "tr"
455
+ ]
456
+ }, vt = {
457
+ allowsTextContent: !1,
458
+ allowsChildren: !0,
459
+ allowedAttributes: [],
460
+ childTags: [
461
+ "tr"
462
+ ]
463
+ }, jt = {
464
+ allowsTextContent: !1,
465
+ allowsChildren: !0,
466
+ allowedAttributes: [],
467
+ childTags: [
468
+ "tr"
469
+ ]
470
+ }, Nt = {
471
+ allowsTextContent: !1,
472
+ allowsChildren: !0,
473
+ allowedAttributes: [],
474
+ childTags: [
475
+ "tr"
476
+ ]
477
+ }, kt = {
478
+ allowsTextContent: !1,
479
+ allowsChildren: !0,
480
+ allowedAttributes: [],
481
+ childTags: [
482
+ "td",
483
+ "th"
484
+ ]
485
+ }, $t = {
486
+ allowsTextContent: !0,
487
+ allowsChildren: !0,
488
+ allowedAttributes: [
489
+ "scope",
490
+ "colspan",
491
+ "rowspan"
492
+ ],
493
+ childTags: []
494
+ }, Et = {
495
+ allowsTextContent: !0,
496
+ allowsChildren: !0,
497
+ allowedAttributes: [
498
+ "colspan",
499
+ "rowspan"
500
+ ],
501
+ childTags: []
502
+ }, Dt = {
503
+ allowsTextContent: !1,
504
+ allowsChildren: !0,
505
+ allowedAttributes: [],
506
+ childTags: [
507
+ "option"
508
+ ]
509
+ }, Ot = {
510
+ allowsTextContent: !0,
511
+ allowsChildren: !1,
512
+ allowedAttributes: [
513
+ "value",
514
+ "label",
515
+ "selected",
516
+ "disabled"
517
+ ]
518
+ }, It = {
519
+ allowsTextContent: !1,
520
+ allowsChildren: !0,
521
+ allowedAttributes: [
522
+ "role"
523
+ ],
524
+ childTags: []
525
+ }, Rt = {
526
+ allowsTextContent: !0,
527
+ allowsChildren: !0,
528
+ allowedAttributes: [
529
+ "href",
530
+ "target",
531
+ "rel",
532
+ "title",
533
+ "download"
534
+ ],
535
+ childTags: []
536
+ }, Ft = {
537
+ allowsTextContent: !0,
538
+ allowsChildren: !0,
539
+ allowedAttributes: [
540
+ "aria-hidden"
541
+ ],
542
+ childTags: []
543
+ }, Gt = {
544
+ allowsTextContent: !0,
545
+ allowsChildren: !0,
546
+ allowedAttributes: [],
547
+ childTags: []
548
+ }, Ht = {
549
+ allowsTextContent: !1,
550
+ allowsChildren: !0,
551
+ allowedAttributes: [
552
+ "type"
553
+ ],
554
+ childTags: [
555
+ "li"
556
+ ]
557
+ }, St = {
558
+ allowsTextContent: !0,
559
+ allowsChildren: !0,
560
+ allowedAttributes: [
561
+ "value"
562
+ ],
563
+ childTags: []
564
+ }, Lt = {
565
+ allowsTextContent: !1,
566
+ allowsChildren: !1,
567
+ allowedAttributes: []
568
+ }, Mt = {
569
+ $schema: it,
570
+ div: ut,
571
+ input: ct,
572
+ checkbox: dt,
573
+ colgroup: ft,
574
+ col: gt,
575
+ label: ht,
576
+ form: bt,
577
+ select: wt,
578
+ p: mt,
579
+ h1: pt,
580
+ h2: yt,
581
+ span: Tt,
582
+ img: Ct,
583
+ button: At,
584
+ table: xt,
585
+ thead: vt,
586
+ tbody: jt,
587
+ tfoot: Nt,
588
+ tr: kt,
589
+ th: $t,
590
+ td: Et,
591
+ datalist: Dt,
592
+ option: Ot,
593
+ header: It,
594
+ a: Rt,
595
+ i: Ft,
596
+ small: Gt,
597
+ ul: Ht,
598
+ li: St,
599
+ hr: Lt
600
+ }, h = ({ inSpec: t }) => {
601
+ const e = t;
602
+ if (!e) return [];
603
+ if (Array.isArray(e))
604
+ return e.flatMap((o) => h({ inSpec: o }));
605
+ if (typeof e != "object") return [];
606
+ const l = [];
607
+ return typeof e.tagName == "string" && e.tagName.trim().length > 0 && l.push(e.tagName.toLowerCase()), Array.isArray(e.children) && e.children.length > 0 && e.children.forEach((o) => {
608
+ const n = h({ inSpec: o });
609
+ l.push(...n);
610
+ }), l;
611
+ }, zt = ({ inTagsFound: t, inAllowedTags: e }) => {
612
+ const l = t ?? [], o = e ?? {}, n = new Set(
613
+ Object.keys(o).filter((i) => i !== "$schema").map((i) => i.toLowerCase())
614
+ ), r = {}, a = [], s = [];
615
+ l.forEach((i) => {
616
+ r[i] = (r[i] || 0) + 1, n.has(i) ? a.includes(i) || a.push(i) : s.includes(i) || s.push(i);
617
+ });
618
+ const u = l.length, c = s.length === 0;
619
+ return {
620
+ totalTags: u,
621
+ tagCounts: r,
622
+ uniqueTags: Object.keys(r),
623
+ recognizedTags: a,
624
+ unrecognizedTags: s,
625
+ areAllTagsPresent: c
626
+ };
627
+ }, Pt = ({ inSpec: t, inTags: e = Mt } = {}) => {
628
+ const l = t, o = e, n = h({ inSpec: l }), r = zt({
629
+ inTagsFound: n,
630
+ inAllowedTags: o
631
+ });
632
+ return {
633
+ areAllTagsPresent: r.areAllTagsPresent,
634
+ totalTags: r.totalTags,
635
+ tagCounts: r.tagCounts,
636
+ uniqueTags: r.uniqueTags,
637
+ recognizedTags: r.recognizedTags,
638
+ unrecognizedTags: r.unrecognizedTags
639
+ };
640
+ }, k = (t = {}) => {
641
+ const e = (t == null ? void 0 : t.spec) ?? (t == null ? void 0 : t.inSpec) ?? t;
642
+ return N(e);
643
+ };
644
+ W({
645
+ inFuncDefinition: k,
646
+ inReviewSpec: Pt
647
+ });
648
+ const Vt = ({
649
+ inTargetHtmlId: t,
650
+ inColumns: e,
651
+ inData: l,
652
+ inAppendPosition: o
653
+ } = {}) => {
654
+ debugger;
655
+ const n = t;
656
+ let s = v({
657
+ type: "table",
658
+ targetHtmlId: n,
659
+ data: l ?? [],
660
+ columns: e
661
+ });
662
+ console.log("specAsJsonToDom : ", o, s);
663
+ const u = document.getElementById(n), c = k(s);
664
+ o === "prepend" ? u.prepend(c) : (u && (u.innerHTML = ""), u.append(c));
665
+ }, T = {
666
+ table: Vt
667
+ }, qt = ({
668
+ type: t = "table",
669
+ targetHtmlId: e,
670
+ data: l,
671
+ classToApply: o,
672
+ inTargetHtmlId: n,
673
+ inData: r,
674
+ columns: a,
675
+ inColumns: s,
676
+ appendPosition: u
677
+ } = {}) => {
678
+ const c = t, i = typeof c == "string" ? c.toLowerCase() : "table", f = T[i];
679
+ return f ? f({
680
+ inTargetHtmlId: n ?? e,
681
+ inColumns: s ?? a,
682
+ inData: r ?? l,
683
+ inAppendPosition: u
684
+ }) : (console.error(
685
+ `[Renderer] Unknown renderer type "${c}". Available types: ${Object.keys(T).join(", ")}`
686
+ ), null);
687
+ };
688
+ F(qt);
689
+ export {
690
+ qt as default
691
+ };
@@ -0,0 +1,14 @@
1
+ <!-- docs/index.html -->
2
+ <!doctype html>
3
+ <html>
4
+
5
+ <head>
6
+ <meta charset="UTF-8" />
7
+ <title>json-renderers</title>
8
+ </head>
9
+
10
+ <body>
11
+ json-renderers assets
12
+ </body>
13
+
14
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-renderers",
3
- "version": "1.12.3",
3
+ "version": "1.13.2",
4
4
  "description": "Standalone, config-driven Table renderer built on top of json-to-dom",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -30,6 +30,6 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@keshavsoft/json-to-tag": "^1.9.3",
33
- "json-to-spec": "^32.1.2"
33
+ "json-renderers-build": "^1.2.1"
34
34
  }
35
- }
35
+ }
package/src/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./v12/index.js";
2
- export { default } from "./v12/index.js";
1
+ export * from "./v13/index.js";
2
+ export { default } from "./v13/index.js";