@schalkneethling/miyagi-core 4.0.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 (138) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +43 -0
  3. package/api/app.js +39 -0
  4. package/api/index.js +236 -0
  5. package/bin/miyagi.js +2 -0
  6. package/dist/css/iframe.css +31 -0
  7. package/dist/css/main.css +1 -0
  8. package/dist/js/_iframe-links-DdifIr4P.js +1 -0
  9. package/dist/js/_mock-data-Dypo4Bl_.js +1 -0
  10. package/dist/js/_prism-By3NMwUd.js +1 -0
  11. package/dist/js/iframe.build.js +1 -0
  12. package/dist/js/iframe.js +1 -0
  13. package/dist/js/index-BKDKaBC6.js +1 -0
  14. package/dist/js/jsontree.js +1 -0
  15. package/dist/js/main.build.js +1 -0
  16. package/dist/js/main.js +1 -0
  17. package/frontend/assets/css/iframe/accordion-tabs.css +77 -0
  18. package/frontend/assets/css/iframe/jsontree.js.css +325 -0
  19. package/frontend/assets/css/iframe/prism.css +132 -0
  20. package/frontend/assets/css/iframe/styleguide/colors.css +61 -0
  21. package/frontend/assets/css/iframe/styleguide/fonts.css +37 -0
  22. package/frontend/assets/css/iframe/styleguide/index.css +109 -0
  23. package/frontend/assets/css/iframe/styleguide/spacings.css +21 -0
  24. package/frontend/assets/css/iframe.css +410 -0
  25. package/frontend/assets/css/main/menu/config-switcher.css +49 -0
  26. package/frontend/assets/css/main/menu/config-switchers.css +67 -0
  27. package/frontend/assets/css/main/menu/goto.css +24 -0
  28. package/frontend/assets/css/main/menu/nav.css +113 -0
  29. package/frontend/assets/css/main/menu/search.css +64 -0
  30. package/frontend/assets/css/main/menu/title.css +40 -0
  31. package/frontend/assets/css/main/menu.css +114 -0
  32. package/frontend/assets/css/main/reset.css +217 -0
  33. package/frontend/assets/css/main.css +71 -0
  34. package/frontend/assets/css/shared.css +34 -0
  35. package/frontend/assets/css/tokens.css +112 -0
  36. package/frontend/assets/favicon.ico +0 -0
  37. package/frontend/assets/js/_accordion-tabs.js +403 -0
  38. package/frontend/assets/js/_goto.js +63 -0
  39. package/frontend/assets/js/_iframe-links.js +19 -0
  40. package/frontend/assets/js/_is-triggered.js +15 -0
  41. package/frontend/assets/js/_main.js +379 -0
  42. package/frontend/assets/js/_mock-data.js +13 -0
  43. package/frontend/assets/js/_prism.js +1098 -0
  44. package/frontend/assets/js/_search.js +190 -0
  45. package/frontend/assets/js/_socket.js +9 -0
  46. package/frontend/assets/js/config-switcher/development-mode.js +49 -0
  47. package/frontend/assets/js/config-switcher/index.js +63 -0
  48. package/frontend/assets/js/config-switcher/text-direction.js +30 -0
  49. package/frontend/assets/js/config-switcher/theme.js +87 -0
  50. package/frontend/assets/js/iframe.build.js +43 -0
  51. package/frontend/assets/js/iframe.js +52 -0
  52. package/frontend/assets/js/jsontree.js +979 -0
  53. package/frontend/assets/js/main.build.js +40 -0
  54. package/frontend/assets/js/main.js +42 -0
  55. package/frontend/assets/js/styleguide/color-converter.js +741 -0
  56. package/frontend/assets/js/styleguide/index.js +119 -0
  57. package/frontend/views/component_variation.twig.miyagi +57 -0
  58. package/frontend/views/design-tokens/colors.twig.miyagi +43 -0
  59. package/frontend/views/design-tokens/sizes.twig.miyagi +35 -0
  60. package/frontend/views/design-tokens/typography.twig.miyagi +38 -0
  61. package/frontend/views/iframe_component.twig.miyagi +141 -0
  62. package/frontend/views/iframe_component_variation.twig.miyagi +55 -0
  63. package/frontend/views/iframe_index.twig.miyagi +14 -0
  64. package/frontend/views/layouts/iframe_default.twig.miyagi +22 -0
  65. package/frontend/views/main.twig.miyagi +24 -0
  66. package/frontend/views/menu/config-switchers.twig.miyagi +83 -0
  67. package/frontend/views/menu/goto.twig.miyagi +9 -0
  68. package/frontend/views/menu/menu.twig.miyagi +21 -0
  69. package/frontend/views/menu/nav.twig.miyagi +95 -0
  70. package/frontend/views/menu/search.twig.miyagi +13 -0
  71. package/frontend/views/menu/title.twig.miyagi +24 -0
  72. package/index.js +3 -0
  73. package/lib/build/index.js +1020 -0
  74. package/lib/cli/app.js +38 -0
  75. package/lib/cli/component.js +56 -0
  76. package/lib/cli/index.js +5 -0
  77. package/lib/cli/lint.js +180 -0
  78. package/lib/config.js +74 -0
  79. package/lib/default-config.js +105 -0
  80. package/lib/generator/component.js +199 -0
  81. package/lib/generator/mocks.js +201 -0
  82. package/lib/helpers.js +184 -0
  83. package/lib/i18n/en.js +91 -0
  84. package/lib/i18n/index.js +17 -0
  85. package/lib/index.js +166 -0
  86. package/lib/init/args.js +55 -0
  87. package/lib/init/config.js +330 -0
  88. package/lib/init/engines.js +65 -0
  89. package/lib/init/index.js +102 -0
  90. package/lib/init/rendering.js +12 -0
  91. package/lib/init/router.js +249 -0
  92. package/lib/init/static.js +133 -0
  93. package/lib/init/twing/cache.js +34 -0
  94. package/lib/init/twing/functions.js +51 -0
  95. package/lib/init/views.js +19 -0
  96. package/lib/init/watcher.js +402 -0
  97. package/lib/logger.js +94 -0
  98. package/lib/mocks/get.js +111 -0
  99. package/lib/mocks/index.js +9 -0
  100. package/lib/mocks/resolve/ref.js +484 -0
  101. package/lib/mocks/resolve/tpl.js +246 -0
  102. package/lib/mocks/resolve.js +205 -0
  103. package/lib/render/helpers.js +51 -0
  104. package/lib/render/index.js +38 -0
  105. package/lib/render/views/iframe/component.docs.js +77 -0
  106. package/lib/render/views/iframe/component.js +338 -0
  107. package/lib/render/views/iframe/design-tokens/colors.js +52 -0
  108. package/lib/render/views/iframe/design-tokens/index.js +9 -0
  109. package/lib/render/views/iframe/design-tokens/sizes.js +49 -0
  110. package/lib/render/views/iframe/design-tokens/typography.js +52 -0
  111. package/lib/render/views/iframe/docs.js +68 -0
  112. package/lib/render/views/iframe/index.js +44 -0
  113. package/lib/render/views/iframe/variation.js +116 -0
  114. package/lib/render/views/iframe/variation.standalone.js +89 -0
  115. package/lib/render/views/main/component.docs.js +53 -0
  116. package/lib/render/views/main/component.js +74 -0
  117. package/lib/render/views/main/design-tokens.js +53 -0
  118. package/lib/render/views/main/docs.js +47 -0
  119. package/lib/render/views/main/index.js +46 -0
  120. package/lib/state/components.js +132 -0
  121. package/lib/state/css.js +50 -0
  122. package/lib/state/docs.js +111 -0
  123. package/lib/state/file-contents.js +207 -0
  124. package/lib/state/helpers.js +86 -0
  125. package/lib/state/index.js +56 -0
  126. package/lib/state/menu/index.js +275 -0
  127. package/lib/state/menu/structure.js +146 -0
  128. package/lib/state/partials.js +23 -0
  129. package/lib/state/source-tree.js +75 -0
  130. package/lib/styleguide/color-names.js +150 -0
  131. package/lib/styleguide/colors.js +135 -0
  132. package/lib/styleguide/helpers.js +37 -0
  133. package/lib/styleguide/index.js +17 -0
  134. package/lib/styleguide/media-queries.js +26 -0
  135. package/lib/styleguide/spacings.js +35 -0
  136. package/lib/styleguide/typography.js +61 -0
  137. package/lib/validator/mocks.js +105 -0
  138. package/package.json +117 -0
@@ -0,0 +1,979 @@
1
+ "use strict";
2
+ var Is, Data, DomElement, DateTime, Constants;
3
+ ((e) => {
4
+ function t(e) {
5
+ return null != e && "" !== e.toString();
6
+ }
7
+ function n(e) {
8
+ return t(e) && "object" == typeof e;
9
+ }
10
+ function o(e) {
11
+ return n(e) && e instanceof Array;
12
+ }
13
+ (e.defined = t),
14
+ (e.definedObject = n),
15
+ (e.definedBoolean = function (e) {
16
+ return t(e) && "boolean" == typeof e;
17
+ }),
18
+ (e.definedString = function (e) {
19
+ return t(e) && "string" == typeof e;
20
+ }),
21
+ (e.definedFunction = function (e) {
22
+ return t(e) && "function" == typeof e;
23
+ }),
24
+ (e.definedNumber = function (e) {
25
+ return t(e) && "number" == typeof e;
26
+ }),
27
+ (e.definedArray = o),
28
+ (e.definedDate = function (e) {
29
+ return n(e) && e instanceof Date;
30
+ }),
31
+ (e.definedDecimal = function (e) {
32
+ return t(e) && "number" == typeof e && e % 1 != 0;
33
+ }),
34
+ (e.invalidOptionArray = function (e, t = 1) {
35
+ return !o(e) || e.length < t;
36
+ }),
37
+ (e.hexColor = function (e) {
38
+ let t = e.length >= 2 && e.length <= 7;
39
+ return t && "#" === e[0] && (t = isNaN(+e.substring(1, e.length - 1))), t;
40
+ });
41
+ })(Is || (Is = {})),
42
+ ((e) => {
43
+ let t;
44
+ var n;
45
+ function o(e, t) {
46
+ return Is.definedArray(e) ? e : t;
47
+ }
48
+ ((n = t = e.String || (e.String = {})).newGuid = function () {
49
+ const e = [];
50
+ for (let t = 0; t < 32; t++) {
51
+ (8 !== t && 12 !== t && 16 !== t && 20 !== t) || e.push("-");
52
+ const n = Math.floor(16 * Math.random()).toString(16);
53
+ e.push(n);
54
+ }
55
+ return e.join("");
56
+ }),
57
+ (n.padNumber = function (e, t = 1) {
58
+ const n = e.toString();
59
+ let o = n;
60
+ if (n.length < t) {
61
+ const e = t - n.length + 1;
62
+ o = Array(e).join("0") + n;
63
+ }
64
+ return o;
65
+ }),
66
+ (e.getDefaultAnyString = function (e, t) {
67
+ return "string" == typeof e ? e : t;
68
+ }),
69
+ (e.getDefaultString = function (e, t) {
70
+ return Is.definedString(e) ? e : t;
71
+ }),
72
+ (e.getDefaultBoolean = function (e, t) {
73
+ return Is.definedBoolean(e) ? e : t;
74
+ }),
75
+ (e.getDefaultNumber = function (e, t) {
76
+ return Is.definedNumber(e) ? e : t;
77
+ }),
78
+ (e.getDefaultFunction = function (e, t) {
79
+ return Is.definedFunction(e) ? e : t;
80
+ }),
81
+ (e.getDefaultArray = o),
82
+ (e.getDefaultObject = function (e, t) {
83
+ return Is.definedObject(e) ? e : t;
84
+ }),
85
+ (e.getDefaultStringOrArray = function (e, t) {
86
+ let n = t;
87
+ if (Is.definedString(e)) {
88
+ const o = e.toString().split(" ");
89
+ 0 === o.length ? (e = t) : (n = o);
90
+ } else n = o(e, t);
91
+ return n;
92
+ }),
93
+ (e.getFixedDecimalPlacesValue = function (e, t) {
94
+ var n;
95
+ const o = new RegExp("^-?\\d+(?:.\\d{0," + (t || -1) + "})?");
96
+ return (null == (n = e.toString().match(o)) ? void 0 : n[0]) || "";
97
+ });
98
+ })(Data || (Data = {})),
99
+ ((e) => {
100
+ function t(e, t, n = "", o = null) {
101
+ const r = t.toLowerCase();
102
+ let a =
103
+ "text" === r ? document.createTextNode("") : document.createElement(r);
104
+ return (
105
+ Is.defined(n) && (a.className = n),
106
+ Is.defined(o) ? e.insertBefore(a, o) : e.appendChild(a),
107
+ a
108
+ );
109
+ }
110
+ (e.create = t),
111
+ (e.createWithHTML = function (e, n, o, r, a = null) {
112
+ const i = t(e, n, o, a);
113
+ return (i.textContent = r), i;
114
+ }),
115
+ (e.addClass = function (e, t) {
116
+ e.classList.add(t);
117
+ });
118
+ })(DomElement || (DomElement = {})),
119
+ ((e) => {
120
+ function t(e) {
121
+ return e.getDay() - 1 < 0 ? 6 : e.getDay() - 1;
122
+ }
123
+ function n(e, t) {
124
+ let n = e.thText;
125
+ return (
126
+ 31 === t || 21 === t || 1 === t
127
+ ? (n = e.stText)
128
+ : 22 === t || 2 === t
129
+ ? (n = e.ndText)
130
+ : (23 !== t && 3 !== t) || (n = e.rdText),
131
+ n
132
+ );
133
+ }
134
+ (e.getWeekdayNumber = t),
135
+ (e.getDayOrdinal = n),
136
+ (e.getCustomFormattedDateText = function (e, o, r) {
137
+ let a = r;
138
+ const i = t(o);
139
+ return (
140
+ (a = a.replace("{hh}", Data.String.padNumber(o.getHours(), 2))),
141
+ (a = a.replace("{h}", o.getHours().toString())),
142
+ (a = a.replace("{MM}", Data.String.padNumber(o.getMinutes(), 2))),
143
+ (a = a.replace("{M}", o.getMinutes().toString())),
144
+ (a = a.replace("{ss}", Data.String.padNumber(o.getSeconds(), 2))),
145
+ (a = a.replace("{s}", o.getSeconds().toString())),
146
+ (a = a.replace("{dddd}", e.dayNames[i])),
147
+ (a = a.replace("{ddd}", e.dayNamesAbbreviated[i])),
148
+ (a = a.replace("{dd}", Data.String.padNumber(o.getDate()))),
149
+ (a = a.replace("{d}", o.getDate().toString())),
150
+ (a = a.replace("{o}", n(e, o.getDate()))),
151
+ (a = a.replace("{mmmm}", e.monthNames[o.getMonth()])),
152
+ (a = a.replace("{mmm}", e.monthNamesAbbreviated[o.getMonth()])),
153
+ (a = a.replace("{mm}", Data.String.padNumber(o.getMonth() + 1))),
154
+ (a = a.replace("{m}", (o.getMonth() + 1).toString())),
155
+ (a = a.replace("{yyyy}", o.getFullYear().toString())),
156
+ (a = a.replace("{yyy}", o.getFullYear().toString().substring(1))),
157
+ (a = a.replace("{yy}", o.getFullYear().toString().substring(2))),
158
+ (a = a.replace(
159
+ "{y}",
160
+ Number.parseInt(o.getFullYear().toString().substring(2)).toString(),
161
+ )),
162
+ a
163
+ );
164
+ });
165
+ })(DateTime || (DateTime = {})),
166
+ ((Constants || (Constants = {})).JSONTREE_JS_ATTRIBUTE_NAME =
167
+ "data-jsontree-js"),
168
+ (() => {
169
+ let _configuration = {},
170
+ _elements_Data = {};
171
+ function render() {
172
+ const e = _configuration.domElementTypes,
173
+ t = e.length;
174
+ for (let n = 0; n < t; n++) {
175
+ const t = document.getElementsByTagName(e[n]),
176
+ o = [].slice.call(t),
177
+ r = o.length;
178
+ for (let e = 0; e < r && renderElement(o[e]); e++);
179
+ }
180
+ }
181
+ function renderElement(e) {
182
+ let t = !0;
183
+ if (
184
+ Is.defined(e) &&
185
+ e.hasAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME)
186
+ ) {
187
+ const n = e.getAttribute(Constants.JSONTREE_JS_ATTRIBUTE_NAME);
188
+ if (Is.definedString(n)) {
189
+ const o = getObjectFromString(n);
190
+ o.parsed && Is.definedObject(o.object)
191
+ ? renderControl(renderBindingOptions(o.object, e))
192
+ : _configuration.safeMode ||
193
+ (console.error(
194
+ _configuration.attributeNotValidErrorText.replace(
195
+ "{{attribute_name}}",
196
+ Constants.JSONTREE_JS_ATTRIBUTE_NAME,
197
+ ),
198
+ ),
199
+ (t = !1));
200
+ } else
201
+ _configuration.safeMode ||
202
+ (console.error(
203
+ _configuration.attributeNotSetErrorText.replace(
204
+ "{{attribute_name}}",
205
+ Constants.JSONTREE_JS_ATTRIBUTE_NAME,
206
+ ),
207
+ ),
208
+ (t = !1));
209
+ }
210
+ return t;
211
+ }
212
+ function renderBindingOptions(e, t) {
213
+ const n = buildAttributeOptions(e);
214
+ return (n._currentView = {}), (n._currentView.element = t), n;
215
+ }
216
+ function renderControl(e) {
217
+ fireCustomTriggerEvent(e.events.onBeforeRender, e._currentView.element),
218
+ Is.definedString(e._currentView.element.id) ||
219
+ (e._currentView.element.id = Data.String.newGuid()),
220
+ (e._currentView.element.className = "json-tree-js"),
221
+ e._currentView.element.removeAttribute(
222
+ Constants.JSONTREE_JS_ATTRIBUTE_NAME,
223
+ ),
224
+ _elements_Data.hasOwnProperty(e._currentView.element.id) ||
225
+ (_elements_Data[e._currentView.element.id] = e),
226
+ renderControlContainer(e),
227
+ fireCustomTriggerEvent(
228
+ e.events.onRenderComplete,
229
+ e._currentView.element,
230
+ );
231
+ }
232
+ function renderControlContainer(e) {
233
+ const t = _elements_Data[e._currentView.element.id].data;
234
+ (e._currentView.element.innerHTML = ""),
235
+ renderControlTitleBar(e),
236
+ Is.definedObject(t) && !Is.definedArray(t)
237
+ ? renderObject(e._currentView.element, e, t)
238
+ : Is.definedArray(t) && renderArray(e._currentView.element, e, t);
239
+ }
240
+ function renderControlTitleBar(e) {
241
+ if (e.title.show || e.title.showTreeControls || e.title.showCopyButton) {
242
+ const t = DomElement.create(e._currentView.element, "div", "title-bar"),
243
+ n = DomElement.create(t, "div", "controls");
244
+ if (
245
+ (e.title.show &&
246
+ DomElement.createWithHTML(t, "div", "title", e.title.text, n),
247
+ e.title.showCopyButton)
248
+ ) {
249
+ DomElement.createWithHTML(
250
+ n,
251
+ "button",
252
+ "copy-all",
253
+ _configuration.copyAllButtonText,
254
+ ).onclick = () => {
255
+ const t = JSON.stringify(
256
+ _elements_Data[e._currentView.element.id].data,
257
+ );
258
+ navigator.clipboard.writeText(t),
259
+ fireCustomTriggerEvent(e.events.onCopyAll, t);
260
+ };
261
+ }
262
+ if (e.title.showTreeControls) {
263
+ const t = DomElement.createWithHTML(
264
+ n,
265
+ "button",
266
+ "openAll",
267
+ _configuration.openAllButtonText,
268
+ ),
269
+ o = DomElement.createWithHTML(
270
+ n,
271
+ "button",
272
+ "closeAll",
273
+ _configuration.closeAllButtonText,
274
+ );
275
+ (t.onclick = () => {
276
+ openAllNodes(e);
277
+ }),
278
+ (o.onclick = () => {
279
+ closeAllNodes(e);
280
+ });
281
+ }
282
+ }
283
+ }
284
+ function openAllNodes(e) {
285
+ (e.showAllAsClosed = !1),
286
+ renderControlContainer(e),
287
+ fireCustomTriggerEvent(e.events.onOpenAll, e._currentView.element);
288
+ }
289
+ function closeAllNodes(e) {
290
+ (e.showAllAsClosed = !0),
291
+ renderControlContainer(e),
292
+ fireCustomTriggerEvent(e.events.onCloseAll, e._currentView.element);
293
+ }
294
+ function renderObject(e, t, n) {
295
+ const o = DomElement.create(e, "div", "object-type-title"),
296
+ r = DomElement.create(e, "div", "object-type-contents"),
297
+ a = renderObjectValues(
298
+ t.showArrowToggles
299
+ ? DomElement.create(o, "button", "down-arrow")
300
+ : null,
301
+ r,
302
+ t,
303
+ n,
304
+ );
305
+ DomElement.createWithHTML(
306
+ o,
307
+ "span",
308
+ t.showValueColors ? "object" : "",
309
+ _configuration.objectText,
310
+ ),
311
+ t.showCounts &&
312
+ a > 0 &&
313
+ DomElement.createWithHTML(
314
+ o,
315
+ "span",
316
+ t.showValueColors ? "object count" : "count",
317
+ "{" + a + "}",
318
+ );
319
+ }
320
+ function renderArray(e, t, n) {
321
+ const o = DomElement.create(e, "div", "object-type-title"),
322
+ r = DomElement.create(e, "div", "object-type-contents"),
323
+ a = t.showArrowToggles
324
+ ? DomElement.create(o, "button", "down-arrow")
325
+ : null;
326
+ DomElement.createWithHTML(
327
+ o,
328
+ "span",
329
+ t.showValueColors ? "array" : "",
330
+ _configuration.arrayText,
331
+ ),
332
+ renderArrayValues(a, r, t, n),
333
+ t.showCounts &&
334
+ DomElement.createWithHTML(
335
+ o,
336
+ "span",
337
+ t.showValueColors ? "array count" : "count",
338
+ "[" + n.length + "]",
339
+ );
340
+ }
341
+ function renderObjectValues(e, t, n, o) {
342
+ let r = 0,
343
+ a = [];
344
+ for (let e in o) o.hasOwnProperty(e) && a.push(e);
345
+ n.sortPropertyNames &&
346
+ ((a = a.sort()),
347
+ n.sortPropertyNamesInAlphabeticalOrder || (a = a.reverse()));
348
+ const i = a.length;
349
+ for (let e = 0; e < i; e++) {
350
+ const l = a[e];
351
+ o.hasOwnProperty(l) && (renderValue(t, n, l, o[l], e === i - 1), r++);
352
+ }
353
+ return addArrowEvent(n, e, t), r;
354
+ }
355
+ function renderArrayValues(e, t, n, o) {
356
+ const r = o.length;
357
+ if (n.reverseArrayValues)
358
+ for (let e = r; e--; )
359
+ renderValue(t, n, getIndexName(n, e, r), o[e], 0 === e);
360
+ else
361
+ for (let e = 0; e < r; e++)
362
+ renderValue(t, n, getIndexName(n, e, r), o[e], e === r - 1);
363
+ addArrowEvent(n, e, t);
364
+ }
365
+ function renderValue(e, t, n, o, r) {
366
+ const a = DomElement.create(e, "div", "object-type-value"),
367
+ i = t.showArrowToggles
368
+ ? DomElement.create(a, "button", "no-arrow")
369
+ : null;
370
+ let l = null,
371
+ s = null,
372
+ u = !1,
373
+ c = null,
374
+ d = !0;
375
+ if (
376
+ (DomElement.createWithHTML(a, "span", "title", n),
377
+ DomElement.createWithHTML(a, "span", "split", ":"),
378
+ Is.defined(o))
379
+ )
380
+ if (Is.definedFunction(o))
381
+ t.ignore.functionValues
382
+ ? (u = !0)
383
+ : ((l = t.showValueColors ? "function" : ""),
384
+ (s = DomElement.createWithHTML(a, "span", l, getFunctionName(o))),
385
+ (c = "function"),
386
+ Is.definedFunction(t.events.onFunctionRender) &&
387
+ fireCustomTriggerEvent(t.events.onFunctionRender, s),
388
+ createComma(t, a, r));
389
+ else if (Is.definedBoolean(o))
390
+ t.ignore.booleanValues
391
+ ? (u = !0)
392
+ : ((l = t.showValueColors ? "boolean" : ""),
393
+ (s = DomElement.createWithHTML(a, "span", l, o)),
394
+ (c = "boolean"),
395
+ Is.definedFunction(t.events.onBooleanRender) &&
396
+ fireCustomTriggerEvent(t.events.onBooleanRender, s),
397
+ createComma(t, a, r));
398
+ else if (Is.definedDecimal(o))
399
+ if (t.ignore.decimalValues) u = !0;
400
+ else {
401
+ const e = Data.getFixedDecimalPlacesValue(
402
+ o,
403
+ t.maximumDecimalPlaces,
404
+ );
405
+ (l = t.showValueColors ? "decimal" : ""),
406
+ (s = DomElement.createWithHTML(a, "span", l, e)),
407
+ (c = "decimal"),
408
+ Is.definedFunction(t.events.onDecimalRender) &&
409
+ fireCustomTriggerEvent(t.events.onDecimalRender, s),
410
+ createComma(t, a, r);
411
+ }
412
+ else if (Is.definedNumber(o))
413
+ t.ignore.numberValues
414
+ ? (u = !0)
415
+ : ((l = t.showValueColors ? "number" : ""),
416
+ (s = DomElement.createWithHTML(a, "span", l, o)),
417
+ (c = "number"),
418
+ Is.definedFunction(t.events.onNumberRender) &&
419
+ fireCustomTriggerEvent(t.events.onNumberRender, s),
420
+ createComma(t, a, r));
421
+ else if (Is.definedString(o))
422
+ if (t.ignore.stringValues) u = !0;
423
+ else {
424
+ let e = null;
425
+ t.showValueColors && t.showStringHexColors && Is.hexColor(o)
426
+ ? (e = o)
427
+ : t.maximumStringLength > 0 &&
428
+ o.length > t.maximumStringLength &&
429
+ (o =
430
+ o.substring(0, t.maximumStringLength) +
431
+ _configuration.ellipsisText);
432
+ const n = t.showStringQuotes ? '"' + o + '"' : o;
433
+ (l = t.showValueColors ? "string" : ""),
434
+ (s = DomElement.createWithHTML(a, "span", l, n)),
435
+ (c = "string"),
436
+ Is.definedString(e) && (s.style.color = e),
437
+ Is.definedFunction(t.events.onStringRender) &&
438
+ fireCustomTriggerEvent(t.events.onStringRender, s),
439
+ createComma(t, a, r);
440
+ }
441
+ else if (Is.definedDate(o))
442
+ t.ignore.dateValues
443
+ ? (u = !0)
444
+ : ((l = t.showValueColors ? "date" : ""),
445
+ (s = DomElement.createWithHTML(
446
+ a,
447
+ "span",
448
+ l,
449
+ DateTime.getCustomFormattedDateText(
450
+ _configuration,
451
+ o,
452
+ t.dateTimeFormat,
453
+ ),
454
+ )),
455
+ (c = "date"),
456
+ Is.definedFunction(t.events.onDateRender) &&
457
+ fireCustomTriggerEvent(t.events.onDateRender, s),
458
+ createComma(t, a, r));
459
+ else if (Is.definedObject(o) && !Is.definedArray(o))
460
+ if (t.ignore.objectValues) u = !0;
461
+ else {
462
+ const e = DomElement.create(
463
+ a,
464
+ "span",
465
+ t.showValueColors ? "object" : "",
466
+ ),
467
+ n = renderObjectValues(
468
+ i,
469
+ DomElement.create(a, "div", "object-type-contents"),
470
+ t,
471
+ o,
472
+ );
473
+ DomElement.createWithHTML(
474
+ e,
475
+ "span",
476
+ "title",
477
+ _configuration.objectText,
478
+ ),
479
+ t.showCounts &&
480
+ n > 0 &&
481
+ DomElement.createWithHTML(e, "span", "count", "{" + n + "}"),
482
+ createComma(t, e, r),
483
+ (c = "object");
484
+ }
485
+ else if (Is.definedArray(o))
486
+ if (t.ignore.arrayValues) u = !0;
487
+ else {
488
+ const e = DomElement.create(
489
+ a,
490
+ "span",
491
+ t.showValueColors ? "array" : "",
492
+ ),
493
+ n = DomElement.create(a, "div", "object-type-contents");
494
+ DomElement.createWithHTML(
495
+ e,
496
+ "span",
497
+ "title",
498
+ _configuration.arrayText,
499
+ ),
500
+ t.showCounts &&
501
+ DomElement.createWithHTML(
502
+ e,
503
+ "span",
504
+ "count",
505
+ "[" + o.length + "]",
506
+ ),
507
+ createComma(t, e, r),
508
+ renderArrayValues(i, n, t, o),
509
+ (c = "array");
510
+ }
511
+ else
512
+ t.ignore.unknownValues
513
+ ? (u = !0)
514
+ : ((l = t.showValueColors ? "unknown" : ""),
515
+ (s = DomElement.createWithHTML(a, "span", l, o.toString())),
516
+ (c = "unknown"),
517
+ Is.definedFunction(t.events.onUnknownRender) &&
518
+ fireCustomTriggerEvent(t.events.onUnknownRender, s),
519
+ createComma(t, a, r));
520
+ else
521
+ t.ignore.nullValues
522
+ ? (u = !0)
523
+ : ((l = t.showValueColors ? "null" : ""),
524
+ (s = DomElement.createWithHTML(a, "span", l, "null")),
525
+ (d = !1),
526
+ Is.definedFunction(t.events.onNullRender) &&
527
+ fireCustomTriggerEvent(t.events.onNullRender, s),
528
+ createComma(t, a, r));
529
+ u ? e.removeChild(a) : Is.defined(s) && addValueClickEvent(t, s, o, c, d);
530
+ }
531
+ function addValueClickEvent(e, t, n, o, r) {
532
+ r && Is.definedFunction(e.events.onValueClick)
533
+ ? (t.onclick = () => {
534
+ fireCustomTriggerEvent(e.events.onValueClick, n, o);
535
+ })
536
+ : DomElement.addClass(t, "no-hover");
537
+ }
538
+ function addArrowEvent(e, t, n) {
539
+ Is.defined(t) &&
540
+ ((t.onclick = () => {
541
+ "down-arrow" === t.className
542
+ ? ((n.style.display = "none"), (t.className = "right-arrow"))
543
+ : ((n.style.display = "block"), (t.className = "down-arrow"));
544
+ }),
545
+ e.showAllAsClosed
546
+ ? ((n.style.display = "none"), (t.className = "right-arrow"))
547
+ : (t.className = "down-arrow"));
548
+ }
549
+ function getFunctionName(e) {
550
+ let t;
551
+ const n = e.toString().split("(")[0].split(" ");
552
+ return (t = 2 === n.length ? n[1] : n[0]), (t += "()"), t;
553
+ }
554
+ function createComma(e, t, n) {
555
+ e.showCommas && !n && DomElement.createWithHTML(t, "span", "comma", ",");
556
+ }
557
+ function getIndexName(e, t, n) {
558
+ let o = e.useZeroIndexingForArrays ? t.toString() : (t + 1).toString();
559
+ return (
560
+ e.addArrayIndexPadding ||
561
+ (o = Data.String.padNumber(parseInt(o), n.toString().length)),
562
+ o
563
+ );
564
+ }
565
+ function buildAttributeOptions(e) {
566
+ let t = Data.getDefaultObject(e, {});
567
+ return (
568
+ (t.data = Data.getDefaultObject(t.data, null)),
569
+ (t.showCounts = Data.getDefaultBoolean(t.showCounts, !0)),
570
+ (t.useZeroIndexingForArrays = Data.getDefaultBoolean(
571
+ t.useZeroIndexingForArrays,
572
+ !0,
573
+ )),
574
+ (t.dateTimeFormat = Data.getDefaultString(
575
+ t.dateTimeFormat,
576
+ "{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}",
577
+ )),
578
+ (t.showArrowToggles = Data.getDefaultBoolean(t.showArrowToggles, !0)),
579
+ (t.showStringQuotes = Data.getDefaultBoolean(t.showStringQuotes, !0)),
580
+ (t.showAllAsClosed = Data.getDefaultBoolean(t.showAllAsClosed, !1)),
581
+ (t.sortPropertyNames = Data.getDefaultBoolean(t.sortPropertyNames, !0)),
582
+ (t.sortPropertyNamesInAlphabeticalOrder = Data.getDefaultBoolean(
583
+ t.sortPropertyNamesInAlphabeticalOrder,
584
+ !0,
585
+ )),
586
+ (t.showCommas = Data.getDefaultBoolean(t.showCommas, !1)),
587
+ (t.reverseArrayValues = Data.getDefaultBoolean(
588
+ t.reverseArrayValues,
589
+ !1,
590
+ )),
591
+ (t.addArrayIndexPadding = Data.getDefaultBoolean(
592
+ t.addArrayIndexPadding,
593
+ !1,
594
+ )),
595
+ (t.showValueColors = Data.getDefaultBoolean(t.showValueColors, !0)),
596
+ (t.maximumDecimalPlaces = Data.getDefaultNumber(
597
+ t.maximumDecimalPlaces,
598
+ 2,
599
+ )),
600
+ (t.maximumStringLength = Data.getDefaultNumber(
601
+ t.maximumStringLength,
602
+ 0,
603
+ )),
604
+ (t.showStringHexColors = Data.getDefaultBoolean(
605
+ t.showStringHexColors,
606
+ !1,
607
+ )),
608
+ (t = buildAttributeOptionTitle(t)),
609
+ (t = buildAttributeOptionIgnore(t)),
610
+ (t = buildAttributeOptionCustomTriggers(t)),
611
+ t
612
+ );
613
+ }
614
+ function buildAttributeOptionTitle(e) {
615
+ return (
616
+ (e.title = Data.getDefaultObject(e.title, {})),
617
+ (e.title.text = Data.getDefaultString(e.title.text, "JsonTree.js")),
618
+ (e.title.show = Data.getDefaultBoolean(e.title.show, !0)),
619
+ (e.title.showTreeControls = Data.getDefaultBoolean(
620
+ e.title.showTreeControls,
621
+ !0,
622
+ )),
623
+ (e.title.showCopyButton = Data.getDefaultBoolean(
624
+ e.title.showCopyButton,
625
+ !1,
626
+ )),
627
+ e
628
+ );
629
+ }
630
+ function buildAttributeOptionIgnore(e) {
631
+ return (
632
+ (e.ignore = Data.getDefaultObject(e.ignore, {})),
633
+ (e.ignore.nullValues = Data.getDefaultBoolean(e.ignore.nullValues, !1)),
634
+ (e.ignore.functionValues = Data.getDefaultBoolean(
635
+ e.ignore.functionValues,
636
+ !1,
637
+ )),
638
+ (e.ignore.unknownValues = Data.getDefaultBoolean(
639
+ e.ignore.unknownValues,
640
+ !1,
641
+ )),
642
+ (e.ignore.booleanValues = Data.getDefaultBoolean(
643
+ e.ignore.booleanValues,
644
+ !1,
645
+ )),
646
+ (e.ignore.decimalValues = Data.getDefaultBoolean(
647
+ e.ignore.decimalValues,
648
+ !1,
649
+ )),
650
+ (e.ignore.numberValues = Data.getDefaultBoolean(
651
+ e.ignore.numberValues,
652
+ !1,
653
+ )),
654
+ (e.ignore.stringValues = Data.getDefaultBoolean(
655
+ e.ignore.stringValues,
656
+ !1,
657
+ )),
658
+ (e.ignore.dateValues = Data.getDefaultBoolean(e.ignore.dateValues, !1)),
659
+ (e.ignore.objectValues = Data.getDefaultBoolean(
660
+ e.ignore.objectValues,
661
+ !1,
662
+ )),
663
+ (e.ignore.arrayValues = Data.getDefaultBoolean(
664
+ e.ignore.arrayValues,
665
+ !1,
666
+ )),
667
+ e
668
+ );
669
+ }
670
+ function buildAttributeOptionCustomTriggers(e) {
671
+ return (
672
+ (e.events = Data.getDefaultObject(e.events, {})),
673
+ (e.events.onBeforeRender = Data.getDefaultFunction(
674
+ e.events.onBeforeRender,
675
+ null,
676
+ )),
677
+ (e.events.onRenderComplete = Data.getDefaultFunction(
678
+ e.events.onRenderComplete,
679
+ null,
680
+ )),
681
+ (e.events.onValueClick = Data.getDefaultFunction(
682
+ e.events.onValueClick,
683
+ null,
684
+ )),
685
+ (e.events.onRefresh = Data.getDefaultFunction(
686
+ e.events.onRefresh,
687
+ null,
688
+ )),
689
+ (e.events.onCopyAll = Data.getDefaultFunction(
690
+ e.events.onCopyAll,
691
+ null,
692
+ )),
693
+ (e.events.onOpenAll = Data.getDefaultFunction(
694
+ e.events.onOpenAll,
695
+ null,
696
+ )),
697
+ (e.events.onCloseAll = Data.getDefaultFunction(
698
+ e.events.onCloseAll,
699
+ null,
700
+ )),
701
+ (e.events.onDestroy = Data.getDefaultFunction(
702
+ e.events.onDestroy,
703
+ null,
704
+ )),
705
+ (e.events.onBooleanRender = Data.getDefaultFunction(
706
+ e.events.onBooleanRender,
707
+ null,
708
+ )),
709
+ (e.events.onDecimalRender = Data.getDefaultFunction(
710
+ e.events.onDecimalRender,
711
+ null,
712
+ )),
713
+ (e.events.onNumberRender = Data.getDefaultFunction(
714
+ e.events.onNumberRender,
715
+ null,
716
+ )),
717
+ (e.events.onStringRender = Data.getDefaultFunction(
718
+ e.events.onStringRender,
719
+ null,
720
+ )),
721
+ (e.events.onDateRender = Data.getDefaultFunction(
722
+ e.events.onDateRender,
723
+ null,
724
+ )),
725
+ (e.events.onFunctionRender = Data.getDefaultFunction(
726
+ e.events.onFunctionRender,
727
+ null,
728
+ )),
729
+ (e.events.onNullRender = Data.getDefaultFunction(
730
+ e.events.onNullRender,
731
+ null,
732
+ )),
733
+ (e.events.onUnknownRender = Data.getDefaultFunction(
734
+ e.events.onUnknownRender,
735
+ null,
736
+ )),
737
+ e
738
+ );
739
+ }
740
+ function fireCustomTriggerEvent(e, ...t) {
741
+ Is.definedFunction(e) && e.apply(null, [].slice.call(t, 0));
742
+ }
743
+ function getObjectFromString(objectString) {
744
+ const result = {
745
+ parsed: !0,
746
+ object: null,
747
+ };
748
+ try {
749
+ Is.definedString(objectString) &&
750
+ (result.object = JSON.parse(objectString));
751
+ } catch (e1) {
752
+ try {
753
+ (result.object = eval("(" + objectString + ")")),
754
+ Is.definedFunction(result.object) &&
755
+ (result.object = result.object());
756
+ } catch (e) {
757
+ _configuration.safeMode ||
758
+ (console.error(
759
+ _configuration.objectErrorText
760
+ .replace("{{error_1}}", e1.message)
761
+ .replace("{{error_2}}", e.message),
762
+ ),
763
+ (result.parsed = !1)),
764
+ (result.object = null);
765
+ }
766
+ }
767
+ return result;
768
+ }
769
+ function destroyElement(e) {
770
+ (e._currentView.element.innerHTML = ""),
771
+ (e._currentView.element.className = ""),
772
+ fireCustomTriggerEvent(e.events.onDestroy, e._currentView.element);
773
+ }
774
+ function buildDefaultConfiguration(e = null) {
775
+ (_configuration = Data.getDefaultObject(e, {})),
776
+ (_configuration.safeMode = Data.getDefaultBoolean(
777
+ _configuration.safeMode,
778
+ !0,
779
+ )),
780
+ (_configuration.domElementTypes = Data.getDefaultStringOrArray(
781
+ _configuration.domElementTypes,
782
+ ["*"],
783
+ )),
784
+ buildDefaultConfigurationStrings();
785
+ }
786
+ function buildDefaultConfigurationStrings() {
787
+ (_configuration.objectText = Data.getDefaultAnyString(
788
+ _configuration.objectText,
789
+ "object",
790
+ )),
791
+ (_configuration.arrayText = Data.getDefaultAnyString(
792
+ _configuration.arrayText,
793
+ "array",
794
+ )),
795
+ (_configuration.closeAllButtonText = Data.getDefaultAnyString(
796
+ _configuration.closeAllButtonText,
797
+ "Close All",
798
+ )),
799
+ (_configuration.openAllButtonText = Data.getDefaultAnyString(
800
+ _configuration.openAllButtonText,
801
+ "Open All",
802
+ )),
803
+ (_configuration.copyAllButtonText = Data.getDefaultAnyString(
804
+ _configuration.copyAllButtonText,
805
+ "Copy All",
806
+ )),
807
+ (_configuration.objectErrorText = Data.getDefaultAnyString(
808
+ _configuration.objectErrorText,
809
+ "Errors in object: {{error_1}}, {{error_2}}",
810
+ )),
811
+ (_configuration.attributeNotValidErrorText = Data.getDefaultAnyString(
812
+ _configuration.attributeNotValidErrorText,
813
+ "The attribute '{{attribute_name}}' is not a valid object.",
814
+ )),
815
+ (_configuration.attributeNotSetErrorText = Data.getDefaultAnyString(
816
+ _configuration.attributeNotSetErrorText,
817
+ "The attribute '{{attribute_name}}' has not been set correctly.",
818
+ )),
819
+ (_configuration.stText = Data.getDefaultAnyString(
820
+ _configuration.stText,
821
+ "st",
822
+ )),
823
+ (_configuration.ndText = Data.getDefaultAnyString(
824
+ _configuration.ndText,
825
+ "nd",
826
+ )),
827
+ (_configuration.rdText = Data.getDefaultAnyString(
828
+ _configuration.rdText,
829
+ "rd",
830
+ )),
831
+ (_configuration.thText = Data.getDefaultAnyString(
832
+ _configuration.thText,
833
+ "th",
834
+ )),
835
+ (_configuration.ellipsisText = Data.getDefaultAnyString(
836
+ _configuration.ellipsisText,
837
+ "...",
838
+ )),
839
+ Is.invalidOptionArray(_configuration.dayNames, 7) &&
840
+ (_configuration.dayNames = [
841
+ "Monday",
842
+ "Tuesday",
843
+ "Wednesday",
844
+ "Thursday",
845
+ "Friday",
846
+ "Saturday",
847
+ "Sunday",
848
+ ]),
849
+ Is.invalidOptionArray(_configuration.dayNamesAbbreviated, 7) &&
850
+ (_configuration.dayNamesAbbreviated = [
851
+ "Mon",
852
+ "Tue",
853
+ "Wed",
854
+ "Thu",
855
+ "Fri",
856
+ "Sat",
857
+ "Sun",
858
+ ]),
859
+ Is.invalidOptionArray(_configuration.monthNames, 12) &&
860
+ (_configuration.monthNames = [
861
+ "January",
862
+ "February",
863
+ "March",
864
+ "April",
865
+ "May",
866
+ "June",
867
+ "July",
868
+ "August",
869
+ "September",
870
+ "October",
871
+ "November",
872
+ "December",
873
+ ]),
874
+ Is.invalidOptionArray(_configuration.monthNamesAbbreviated, 12) &&
875
+ (_configuration.monthNamesAbbreviated = [
876
+ "Jan",
877
+ "Feb",
878
+ "Mar",
879
+ "Apr",
880
+ "May",
881
+ "Jun",
882
+ "Jul",
883
+ "Aug",
884
+ "Sep",
885
+ "Oct",
886
+ "Nov",
887
+ "Dec",
888
+ ]);
889
+ }
890
+ const _public = {
891
+ refresh: function (e) {
892
+ if (Is.definedString(e) && _elements_Data.hasOwnProperty(e)) {
893
+ const t = _elements_Data[e];
894
+ renderControlContainer(t),
895
+ fireCustomTriggerEvent(t.events.onRefresh, t._currentView.element);
896
+ }
897
+ return _public;
898
+ },
899
+ refreshAll: function () {
900
+ for (let e in _elements_Data)
901
+ if (_elements_Data.hasOwnProperty(e)) {
902
+ const t = _elements_Data[e];
903
+ renderControlContainer(t),
904
+ fireCustomTriggerEvent(
905
+ t.events.onRefresh,
906
+ t._currentView.element,
907
+ );
908
+ }
909
+ return _public;
910
+ },
911
+ render: function (e, t) {
912
+ return (
913
+ Is.definedObject(e) &&
914
+ Is.definedObject(t) &&
915
+ renderControl(renderBindingOptions(t, e)),
916
+ _public
917
+ );
918
+ },
919
+ renderAll: function () {
920
+ return render(), _public;
921
+ },
922
+ openAll: function (e) {
923
+ return (
924
+ Is.definedString(e) &&
925
+ _elements_Data.hasOwnProperty(e) &&
926
+ openAllNodes(_elements_Data[e]),
927
+ _public
928
+ );
929
+ },
930
+ closeAll: function (e) {
931
+ return (
932
+ Is.definedString(e) &&
933
+ _elements_Data.hasOwnProperty(e) &&
934
+ closeAllNodes(_elements_Data[e]),
935
+ _public
936
+ );
937
+ },
938
+ destroy: function (e) {
939
+ return (
940
+ Is.definedString(e) &&
941
+ _elements_Data.hasOwnProperty(e) &&
942
+ (destroyElement(_elements_Data[e]), delete _elements_Data[e]),
943
+ _public
944
+ );
945
+ },
946
+ destroyAll: function () {
947
+ for (let e in _elements_Data)
948
+ _elements_Data.hasOwnProperty(e) && destroyElement(_elements_Data[e]);
949
+ return (_elements_Data = {}), _public;
950
+ },
951
+ setConfiguration: function (e) {
952
+ if (Is.definedObject(e)) {
953
+ let t = !1;
954
+ const n = _configuration;
955
+ for (let o in e)
956
+ e.hasOwnProperty(o) &&
957
+ _configuration.hasOwnProperty(o) &&
958
+ n[o] !== e[o] &&
959
+ ((n[o] = e[o]), (t = !0));
960
+ t && buildDefaultConfiguration(n);
961
+ }
962
+ return _public;
963
+ },
964
+ getIds: function () {
965
+ const e = [];
966
+ for (let t in _elements_Data)
967
+ _elements_Data.hasOwnProperty(t) && e.push(t);
968
+ return e;
969
+ },
970
+ getVersion: function () {
971
+ return "2.0.0";
972
+ },
973
+ };
974
+ buildDefaultConfiguration(),
975
+ document.addEventListener("DOMContentLoaded", function () {
976
+ render();
977
+ }),
978
+ Is.defined(window.$jsontree) || (window.$jsontree = _public);
979
+ })();