@jaisocx/tree 1.5.37 → 2.2.18

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 (186) hide show
  1. package/MediaAndStyles/{css/tree.css → Tree_main.css} +41 -37
  2. package/MediaAndStyles/Tree_main_Relative.css +17 -0
  3. package/MediaAndStyles/Tree_main_Webpack.css +18 -0
  4. package/MediaAndStyles/Tree_main_Webpack_minimal.css +17 -0
  5. package/MediaAndStyles/Tree_main_resolved.css +1005 -0
  6. package/MediaAndStyles/Tree_main_resolved_minimal.css +972 -0
  7. package/MediaAndStyles/{css → presets}/tree-animated-expand-button.css +1 -2
  8. package/MediaAndStyles/themes/theme-funny/tree_theme-funny.css +29 -0
  9. package/MediaAndStyles/themes/theme-funny/tree_theme-funny_fonts.css +7 -0
  10. package/MediaAndStyles/themes/theme_base/Tree_theme_base_Imports_fonts_cdn.css +35 -0
  11. package/MediaAndStyles/themes/theme_base/Tree_theme_base_Imports_mini_images_Absolute_preview.css +41 -0
  12. package/MediaAndStyles/themes/theme_base/Tree_theme_base_Imports_mini_images_Relative.css +41 -0
  13. package/MediaAndStyles/themes/{theme-base/theme-base.css → theme_base/Tree_theme_base_main.css} +2 -2
  14. package/MediaAndStyles/themes/theme_base/Tree_theme_base_main_Relative.css +13 -0
  15. package/MediaAndStyles/themes/theme_base/Tree_theme_base_main_Webpack.css +12 -0
  16. package/MediaAndStyles/themes/theme_base/Tree_theme_base_main_Webpack_minimal.css +12 -0
  17. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/catalog.png +0 -0
  18. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/github.png +0 -0
  19. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/google.png +0 -0
  20. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/house.png +0 -0
  21. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/html-intence.png +0 -0
  22. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/html.png +0 -0
  23. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/money-transfer.png +0 -0
  24. package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/track.png +0 -0
  25. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_d05_very_small_xxs_landscape__Tree__theme_base.css +10 -0
  26. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_d05_very_small_xxs_portrait__Tree__theme_base.css +10 -0
  27. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e02_mobile_xs_landscape__Tree__theme_base.css +10 -0
  28. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e02_mobile_xs_portrait__Tree__theme_base.css +10 -0
  29. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e04_mobile_s_landscape__Tree__theme_base.css +10 -0
  30. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e04_mobile_s_portrait__Tree__theme_base.css +10 -0
  31. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e06_mobile_sm_landscape__Tree__theme_base.css +10 -0
  32. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e06_mobile_sm_portrait__Tree__theme_base.css +10 -0
  33. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e08_mobile_md_landscape__Tree__theme_base.css +10 -0
  34. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e08_mobile_md_portrait__Tree__theme_base.css +10 -0
  35. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h03_tablet_s_landscape__Tree__theme_base.css +10 -0
  36. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h03_tablet_s_portrait__Tree__theme_base.css +10 -0
  37. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h05_tablet_sm_landscape__Tree__theme_base.css +10 -0
  38. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h05_tablet_sm_portrait__Tree__theme_base.css +10 -0
  39. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h07_tablet_md_landscape__Tree__theme_base.css +10 -0
  40. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h07_tablet_md_portrait__Tree__theme_base.css +10 -0
  41. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h09_tablet_lg_landscape__Tree__theme_base.css +10 -0
  42. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h09_tablet_lg_portrait__Tree__theme_base.css +10 -0
  43. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l02_laptop_sm_landscape__Tree__theme_base.css +10 -0
  44. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l02_laptop_sm_portrait__Tree__theme_base.css +10 -0
  45. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l03_laptop_md_landscape__Tree__theme_base.css +10 -0
  46. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l03_laptop_md_portrait__Tree__theme_base.css +10 -0
  47. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l07_laptop_lg_landscape__Tree__theme_base.css +10 -0
  48. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l07_laptop_lg_portrait__Tree__theme_base.css +10 -0
  49. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s02_display_xl_landscape__Tree__theme_base.css +10 -0
  50. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s02_display_xl_portrait__Tree__theme_base.css +10 -0
  51. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s04_display_xxl_landscape__Tree__theme_base.css +10 -0
  52. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s04_display_xxl_portrait__Tree__theme_base.css +10 -0
  53. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s08_display_qhd_landscape__Tree__theme_base.css +10 -0
  54. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s08_display_qhd_portrait__Tree__theme_base.css +10 -0
  55. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t04_tv_4k_landscape__Tree__theme_base.css +10 -0
  56. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t04_tv_4k_portrait__Tree__theme_base.css +10 -0
  57. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t08_tv_8k_landscape__Tree__theme_base.css +10 -0
  58. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t08_tv_8k_portrait__Tree__theme_base.css +10 -0
  59. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t16_tv_16k_landscape__Tree__theme_base.css +10 -0
  60. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t16_tv_16k_portrait__Tree__theme_base.css +10 -0
  61. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t99_tv_xxxl_landscape__Tree__theme_base.css +10 -0
  62. package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t99_tv_xxxl_portrait__Tree__theme_base.css +10 -0
  63. package/MediaAndStyles/themes/theme_base/responsive_size_Imports_Tree_theme_base_Relative.css +98 -0
  64. package/MediaAndStyles/themes/theme_base/responsive_size_Imports_Tree_theme_base_Webpack.css +98 -0
  65. package/MediaAndStyles/themes/theme_base/responsive_size_Imports_Tree_theme_base_Webpack_minimal.css +98 -0
  66. package/README.md +57 -48
  67. package/docs/README_preview.md +167 -0
  68. package/favicon/Icon_Jaisocx.ico +0 -0
  69. package/favicon/Icon_Sandbox_Brightday.ico +0 -0
  70. package/index.preview.html +755 -0
  71. package/package.json +33 -24
  72. package/transpiled/CommonJS/index.d.ts +7 -4
  73. package/transpiled/CommonJS/index.d.ts.map +1 -1
  74. package/transpiled/CommonJS/index.js +10 -10
  75. package/transpiled/CommonJS/index.js.map +1 -1
  76. package/transpiled/CommonJS/typescript/ArrayOrObjectPackage.d.ts.map +1 -1
  77. package/transpiled/CommonJS/typescript/ArrayOrObjectPackage.js.map +1 -1
  78. package/transpiled/CommonJS/typescript/Tree.d.ts +3 -4
  79. package/transpiled/CommonJS/typescript/Tree.d.ts.map +1 -1
  80. package/transpiled/CommonJS/typescript/Tree.js +43 -27
  81. package/transpiled/CommonJS/typescript/Tree.js.map +1 -1
  82. package/transpiled/CommonJS/typescript/TreeAdapter.d.ts.map +1 -1
  83. package/transpiled/CommonJS/typescript/TreeAdapter.js.map +1 -1
  84. package/transpiled/CommonJS/typescript/TreeAdapterModeConf.d.ts.map +1 -1
  85. package/transpiled/CommonJS/typescript/TreeAdapterModeConf.js +19 -2
  86. package/transpiled/CommonJS/typescript/TreeAdapterModeConf.js.map +1 -1
  87. package/transpiled/CommonJS/typescript/TreeAdapterModeEase.d.ts.map +1 -1
  88. package/transpiled/CommonJS/typescript/TreeAdapterModeEase.js +1 -1
  89. package/transpiled/CommonJS/typescript/TreeAdapterModeEase.js.map +1 -1
  90. package/transpiled/CommonJS/typescript/TreeConf.d.ts.map +1 -1
  91. package/transpiled/CommonJS/typescript/TreeConf.js.map +1 -1
  92. package/transpiled/CommonJS/typescript/TreeConstants.d.ts.map +1 -1
  93. package/transpiled/CommonJS/typescript/TreeConstants.js +8 -6
  94. package/transpiled/CommonJS/typescript/TreeConstants.js.map +1 -1
  95. package/transpiled/CommonJS/typescript/TreeInterface.d.ts +44 -0
  96. package/transpiled/CommonJS/typescript/TreeInterface.d.ts.map +1 -0
  97. package/transpiled/CommonJS/typescript/TreeInterface.js +3 -0
  98. package/transpiled/CommonJS/typescript/TreeInterface.js.map +1 -0
  99. package/transpiled/CommonJS/typescript/Types.d.ts +2 -0
  100. package/transpiled/CommonJS/typescript/Types.d.ts.map +1 -1
  101. package/transpiled/CommonJS/webpack.aliases.cjs +1 -0
  102. package/transpiled/CommonJS/webpack.aliases.cjs.map +1 -1
  103. package/transpiled/CommonJS/webpack.aliases.mjs +1 -0
  104. package/transpiled/CommonJS/webpack.aliases.mjs.map +1 -1
  105. package/transpiled/CommonJS/webpackAliases.d.ts.map +1 -1
  106. package/transpiled/CommonJS/webpackAliases.js +1 -0
  107. package/transpiled/CommonJS/webpackAliases.js.map +1 -1
  108. package/transpiled/ESNext/index.d.ts +7 -4
  109. package/transpiled/ESNext/index.d.ts.map +1 -1
  110. package/transpiled/ESNext/index.js +5 -6
  111. package/transpiled/ESNext/index.js.map +1 -1
  112. package/transpiled/ESNext/typescript/ArrayOrObjectPackage.d.ts.map +1 -1
  113. package/transpiled/ESNext/typescript/ArrayOrObjectPackage.js.map +1 -1
  114. package/transpiled/ESNext/typescript/Tree.d.ts +3 -4
  115. package/transpiled/ESNext/typescript/Tree.d.ts.map +1 -1
  116. package/transpiled/ESNext/typescript/Tree.js +43 -27
  117. package/transpiled/ESNext/typescript/Tree.js.map +1 -1
  118. package/transpiled/ESNext/typescript/TreeAdapter.d.ts.map +1 -1
  119. package/transpiled/ESNext/typescript/TreeAdapter.js.map +1 -1
  120. package/transpiled/ESNext/typescript/TreeAdapterModeConf.d.ts.map +1 -1
  121. package/transpiled/ESNext/typescript/TreeAdapterModeConf.js +19 -2
  122. package/transpiled/ESNext/typescript/TreeAdapterModeConf.js.map +1 -1
  123. package/transpiled/ESNext/typescript/TreeAdapterModeEase.d.ts.map +1 -1
  124. package/transpiled/ESNext/typescript/TreeAdapterModeEase.js +1 -1
  125. package/transpiled/ESNext/typescript/TreeAdapterModeEase.js.map +1 -1
  126. package/transpiled/ESNext/typescript/TreeConf.d.ts.map +1 -1
  127. package/transpiled/ESNext/typescript/TreeConf.js.map +1 -1
  128. package/transpiled/ESNext/typescript/TreeConstants.d.ts.map +1 -1
  129. package/transpiled/ESNext/typescript/TreeConstants.js +8 -6
  130. package/transpiled/ESNext/typescript/TreeConstants.js.map +1 -1
  131. package/transpiled/ESNext/typescript/TreeInterface.d.ts +44 -0
  132. package/transpiled/ESNext/typescript/TreeInterface.d.ts.map +1 -0
  133. package/transpiled/ESNext/typescript/TreeInterface.js +2 -0
  134. package/transpiled/ESNext/typescript/TreeInterface.js.map +1 -0
  135. package/transpiled/ESNext/typescript/Types.d.ts +2 -0
  136. package/transpiled/ESNext/typescript/Types.d.ts.map +1 -1
  137. package/transpiled/ESNext/webpack.aliases.cjs +1 -0
  138. package/transpiled/ESNext/webpack.aliases.cjs.map +1 -1
  139. package/transpiled/ESNext/webpack.aliases.mjs +1 -0
  140. package/transpiled/ESNext/webpack.aliases.mjs.map +1 -1
  141. package/transpiled/ESNext/webpackAliases.d.ts.map +1 -1
  142. package/transpiled/ESNext/webpackAliases.js +1 -0
  143. package/transpiled/ESNext/webpackAliases.js.map +1 -1
  144. package/transpiled/Simple/typescript/ArrayOrObjectPackage.js +10 -0
  145. package/transpiled/Simple/typescript/Tree.js +87 -30
  146. package/transpiled/Simple/typescript/TreeAdapter.js +1 -0
  147. package/transpiled/Simple/typescript/TreeAdapterModeConf.js +28 -2
  148. package/transpiled/Simple/typescript/TreeAdapterModeEase.js +8 -1
  149. package/transpiled/Simple/typescript/TreeConf.js +1 -0
  150. package/transpiled/Simple/typescript/TreeConstants.js +8 -6
  151. package/transpiled/Simple/webpack.aliases.cjs +1 -0
  152. package/transpiled/Simple/webpack.aliases.mjs +1 -0
  153. package/transpiled/Simple/webpackAliases.js +1 -0
  154. package/tree_preview_dev.html +729 -0
  155. package/tree_preview_prod.html +755 -0
  156. package/webpack.aliases.json +2 -1
  157. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/BalooPaaji2-VariableFont_wght.ttf +0 -0
  158. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/OFL.txt +0 -93
  159. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/README.txt +0 -67
  160. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-Bold.ttf +0 -0
  161. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-ExtraBold.ttf +0 -0
  162. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-Medium.ttf +0 -0
  163. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-Regular.ttf +0 -0
  164. package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-SemiBold.ttf +0 -0
  165. package/MediaAndStyles/themes/theme-base/fonts-webpack.css +0 -35
  166. package/MediaAndStyles/themes/theme-base/fonts.css +0 -35
  167. package/MediaAndStyles/themes/theme-base/theme-base-media-webpack.css +0 -43
  168. package/MediaAndStyles/themes/theme-base/theme-base-media.css +0 -43
  169. package/MediaAndStyles/themes/theme-funny/fonts/Niconne/Niconne-Regular.ttf +0 -0
  170. package/MediaAndStyles/themes/theme-funny/fonts/Niconne/OFL.txt +0 -94
  171. package/MediaAndStyles/themes/theme-funny/fonts-webpack.css +0 -7
  172. package/MediaAndStyles/themes/theme-funny/fonts.css +0 -7
  173. package/MediaAndStyles/themes/theme-funny/theme-funny-webpack.css +0 -22
  174. package/MediaAndStyles/themes/theme-funny/theme-funny.css +0 -22
  175. package/MediaAndStyles/tree-styles-main-webpack.css +0 -5
  176. package/MediaAndStyles/tree-styles-main.css +0 -5
  177. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/button-open/button-animated.gif +0 -0
  178. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/button-open/button-opened.png +0 -0
  179. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/button-open/button-without-subtree.svg +0 -0
  180. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-3-100.png +0 -0
  181. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-font-style-formatting-96.png +0 -0
  182. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-json-96.png +0 -0
  183. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-static-view-level2-80.png +0 -0
  184. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-true-false-96.png +0 -0
  185. /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-view-array-96.png +0 -0
  186. /package/{README_WEBPACK.md → docs/README_WEBPACK.md} +0 -0
@@ -17,6 +17,7 @@ class Tree extends ImprovedRenderEventEmitter {
17
17
  adapter;
18
18
 
19
19
 
20
+
20
21
  constructor() {
21
22
  super();
22
23
  this.debug = TreeConstants.Defaults.debug;
@@ -61,6 +62,7 @@ class Tree extends ImprovedRenderEventEmitter {
61
62
  }
62
63
 
63
64
 
65
+
64
66
  setDebug(debug) {
65
67
 
66
68
  // optional method
@@ -68,80 +70,98 @@ class Tree extends ImprovedRenderEventEmitter {
68
70
  this.templateRenderer.setDebug(debug);
69
71
  this.debug = debug;
70
72
 
73
+
71
74
  return this;
72
75
  }
73
76
 
74
77
 
78
+
75
79
  setNodesWithIcons(withIcons) {
76
80
 
77
81
  // optional method
78
82
  this.nodesWithIcons = withIcons;
79
83
 
84
+
80
85
  return this;
81
86
  }
82
87
 
83
88
 
89
+
84
90
  setNodesOpenedMode(openedMode) {
85
91
 
86
92
  // optional method
87
93
  this.nodesOpenedMode = openedMode;
88
94
 
95
+
89
96
  return this;
90
97
  }
91
98
 
92
99
 
100
+
93
101
  setUrl(url) {
94
102
 
95
103
  // optional method
96
104
  this.url = url;
97
105
 
106
+
98
107
  return this;
99
108
  }
100
109
 
101
110
 
111
+
102
112
  setMainHtmlNodeId(mainHtmlNodeId) {
103
113
 
104
114
  // required method
105
115
  this.mainHtmlNodeId = mainHtmlNodeId;
106
116
 
117
+
107
118
  return this;
108
119
  }
109
120
 
110
121
 
122
+
111
123
  setConf(conf) {
112
124
 
113
125
  // optional method
114
126
  this.conf = conf;
115
127
 
128
+
116
129
  return this;
117
130
  }
118
131
 
119
132
 
133
+
120
134
  setModifiable(isModifiable) {
121
135
 
122
136
  // optional method
123
137
  this.isModifiable = isModifiable;
124
138
 
139
+
125
140
  return this;
126
141
  }
127
142
 
128
143
 
144
+
129
145
  setRenderingMode(mode) {
130
146
 
131
147
  // optional method
132
148
  this.renderingMode = mode;
133
149
 
150
+
134
151
  return this;
135
152
  }
136
153
 
137
154
 
155
+
138
156
  setDataTypesCssClassesEnabled(dataTypesCssEnabled) {
139
157
  this.dataTypesCssClassesEnabled = dataTypesCssEnabled;
140
158
 
159
+
141
160
  return this;
142
161
  }
143
162
 
144
163
 
164
+
145
165
  load(url) {
146
166
 
147
167
  if (url && url.length) {
@@ -157,10 +177,12 @@ class Tree extends ImprovedRenderEventEmitter {
157
177
  this.render(json);
158
178
  });
159
179
 
180
+
160
181
  return this;
161
182
  }
162
183
 
163
184
 
185
+
164
186
  adaptRenderingModeSubcalls() {
165
187
 
166
188
  if (this.renderingMode === TreeConstants.RenderingMode.Conf) {
@@ -189,13 +211,16 @@ class Tree extends ImprovedRenderEventEmitter {
189
211
  }
190
212
 
191
213
 
214
+
192
215
  reRender() {
193
216
  this.render(this.data);
194
217
 
218
+
195
219
  return this;
196
220
  }
197
221
 
198
222
 
223
+
199
224
  render(nodes) {
200
225
 
201
226
  if (nodes) {
@@ -233,7 +258,6 @@ class Tree extends ImprovedRenderEventEmitter {
233
258
 
234
259
  // add an html holder node for subtree html nodes
235
260
  const ul = document.createElement("UL");
236
- this.mainHolderHtmlNode.append(ul);
237
261
 
238
262
 
239
263
  // get datatype of the main json data node
@@ -347,16 +371,19 @@ class Tree extends ImprovedRenderEventEmitter {
347
371
  if (this.debug) {
348
372
  console.log("Tree.data", this.data);
349
373
  }
374
+ this.mainHolderHtmlNode.append(ul);
350
375
 
351
376
 
352
377
  // all eventsHandlers, assigned with addJSTreeEventListener,
353
378
  // here will be attached to one DOM event listener
354
379
  this.addJSTreeEventListeners();
355
380
 
381
+
356
382
  return this;
357
383
  }
358
384
 
359
385
 
386
+
360
387
  checkDataNodeSubtree(node) {
361
388
  let hasSubtree = false;
362
389
  let subtreeJsonNodes = null;
@@ -386,6 +413,7 @@ class Tree extends ImprovedRenderEventEmitter {
386
413
  const { itemsAmount, objectKeys } = ArrayOrObjectPackage.getArrayOrObjectItemsAmount(isArray, subtreeJsonNodes);
387
414
  hasSubtree = (itemsAmount !== 0);
388
415
 
416
+
389
417
  return {
390
418
  isArray,
391
419
  subtreeNodeDataType: dataType,
@@ -397,6 +425,7 @@ class Tree extends ImprovedRenderEventEmitter {
397
425
  }
398
426
 
399
427
 
428
+
400
429
  renderSubtree(
401
430
  isArray,
402
431
  subtreeNodes,
@@ -415,10 +444,12 @@ class Tree extends ImprovedRenderEventEmitter {
415
444
  objectKeys
416
445
  );
417
446
 
447
+
418
448
  return renderSubtreeResult;
419
449
  }
420
450
 
421
451
 
452
+
422
453
  renderSubtreeCallback(
423
454
  _isArray,
424
455
  loopCounter,
@@ -446,10 +477,12 @@ class Tree extends ImprovedRenderEventEmitter {
446
477
  );
447
478
  currentNodeSubtreeLength += renderResult.currentNodeSubtreeLength;
448
479
 
480
+
449
481
  return currentNodeSubtreeLength;
450
482
  }
451
483
 
452
484
 
485
+
453
486
  renderOneTreeNode(
454
487
  node,
455
488
  nodePosition,
@@ -472,12 +505,32 @@ class Tree extends ImprovedRenderEventEmitter {
472
505
 
473
506
 
474
507
  // TODO: EXTENSIBILITY FEATURE
475
- const dataForRendering = this.getDataForRendering(
508
+ let dataForRendering = this.getDataForRendering(
476
509
  node,
477
510
  nodeClone,
478
511
  subtreeNodeDataTypeString,
479
512
  hasSubtree
480
513
  );
514
+ const eventBeforeRenderOneNodePayload = {
515
+ "eventName": TreeConstants.TreeEventsNames.EVENT_NAME__BEFORE_RENDER_ONE_NODE,
516
+ "dataForRendering": dataForRendering
517
+ };
518
+ const eventBeforeRenderResultsArray = this.emitEvent(
519
+ TreeConstants.TreeEventsNames.EVENT_NAME__BEFORE_RENDER_ONE_NODE,
520
+ eventBeforeRenderOneNodePayload
521
+ );
522
+ const eventResultsLength = eventBeforeRenderResultsArray.length;
523
+ let lastEventRenderResultId = 0;
524
+ let lastEventResult = new Object();
525
+
526
+ if ((eventResultsLength >= 1) && lastEventResult && lastEventResult.result) {
527
+ lastEventRenderResultId = (eventResultsLength - 1);
528
+ lastEventResult = eventBeforeRenderResultsArray[lastEventRenderResultId];
529
+
530
+
531
+ //@ts-ignore
532
+ dataForRendering = lastEventResult.result.value;
533
+ }
481
534
  const nodeHtml = this.templateRenderer
482
535
  .setTemplate(TreeConstants.TEMPLATE__TREE_HTML_NODE)
483
536
 
@@ -496,9 +549,9 @@ class Tree extends ImprovedRenderEventEmitter {
496
549
  throw new Error("Rendiring broken, wrong html structure built.");
497
550
  }
498
551
  const eventAfterRenderOneNodePayload = {
499
- eventName: TreeConstants.TreeEventsNames.EVENT_NAME__AFTER_RENDER_ONE_NODE,
500
- treeHtmlNode: li,
501
- treeItemJson: nodeClone
552
+ "eventName": TreeConstants.TreeEventsNames.EVENT_NAME__AFTER_RENDER_ONE_NODE,
553
+ "treeHtmlNode": li,
554
+ "treeItemJson": nodeClone
502
555
  };
503
556
 
504
557
  if (!hasSubtree) {
@@ -507,6 +560,7 @@ class Tree extends ImprovedRenderEventEmitter {
507
560
  eventAfterRenderOneNodePayload
508
561
  );
509
562
 
563
+
510
564
  return {
511
565
  currentNodeSubtreeLength: 0,
512
566
  node: nodeClone
@@ -542,6 +596,7 @@ class Tree extends ImprovedRenderEventEmitter {
542
596
  eventAfterRenderOneNodePayload
543
597
  );
544
598
 
599
+
545
600
  return {
546
601
  currentNodeSubtreeLength: subtreeRenderResult.currentNodeSubtreeLength,
547
602
  node: null
@@ -594,6 +649,7 @@ class Tree extends ImprovedRenderEventEmitter {
594
649
  .map((jPathIndex, index) => {
595
650
  const jPathIndexText = JSON.stringify(jPathIndex);
596
651
 
652
+
597
653
  return (index === 0) ? jPathIndex : `[${jPathIndexText}]`;
598
654
  })
599
655
  .join("");
@@ -619,35 +675,26 @@ class Tree extends ImprovedRenderEventEmitter {
619
675
  _path: pathInJsonString
620
676
  };
621
677
 
678
+
622
679
  return nodeClone;
623
680
  }
624
681
 
625
682
 
626
- getTreeDataNodeByJsonnodePathArray(jPathArray) {
683
+
684
+ getTreeDataByJPath(jPathArray) {
627
685
 
628
686
  // since complexity of building jPath array in modeEase and modeConf, the JPathArray is not the same,
629
687
  // and modeEase was built from item at index 2, since it has array item at index 1 "Top": this.data["Top"], and modeConf does not have this array item.
630
688
  // modeConf was built recursively already from item at index 1.
631
- const startingIndexValidJpath = (this.renderingMode === TreeConstants.RenderingMode.Conf) ? 1 : 2;
632
-
633
- return jPathArray
634
- .reduce(
635
- (reducedRetValue, arrayItem, arrayItemIndex) => {
636
- return (arrayItemIndex < startingIndexValidJpath) ? reducedRetValue : reducedRetValue[arrayItem];
637
- },
638
- this.data
639
- );
640
- }
689
+ const startingIndexValidJPath = (this.renderingMode === TreeConstants.RenderingMode.Conf) ? 1 : 2;
690
+ let retVal = new Object();
691
+ retVal = JPath.getByJPath(
692
+ jPathArray.slice(startingIndexValidJPath),
693
+ this.data
694
+ );
641
695
 
642
696
 
643
- getByJPath(data, jPathArray) {
644
- return jPathArray
645
- .reduce(
646
- (reducedRetValue, arrayItem) => {
647
- return reducedRetValue[arrayItem];
648
- },
649
- data
650
- );
697
+ return retVal;
651
698
  }
652
699
 
653
700
 
@@ -660,6 +707,7 @@ class Tree extends ImprovedRenderEventEmitter {
660
707
  }
661
708
 
662
709
 
710
+
663
711
  getDataForRendering(
664
712
  _node,
665
713
  _flatNodeClone,
@@ -682,6 +730,7 @@ class Tree extends ImprovedRenderEventEmitter {
682
730
  }
683
731
 
684
732
 
733
+
685
734
  getTreeNodeCssClasses(_dataType, _node) {
686
735
  return "";
687
736
  }
@@ -694,6 +743,7 @@ class Tree extends ImprovedRenderEventEmitter {
694
743
  // the holder class LargeDomEventListenersOverheadOptimizer method call
695
744
  this.addThisClassEventListener(eventName, eventHandler);
696
745
 
746
+
697
747
  return this;
698
748
  }
699
749
 
@@ -735,6 +785,7 @@ class Tree extends ImprovedRenderEventEmitter {
735
785
  // the holder class LargeDomEventListenersOverheadOptimizer method call
736
786
  this.addDomEventListeners();
737
787
 
788
+
738
789
  return this;
739
790
  }
740
791
 
@@ -805,24 +856,26 @@ class Tree extends ImprovedRenderEventEmitter {
805
856
  // the main conf required dsts json field is label text. and it cannot be an object, but a string or number.
806
857
  const isTreeItem = (nodeLabelTextPropertyValue && ((nodeLabelTextPropertyValue) !== "object"));
807
858
 
859
+
808
860
  return isTreeItem;
809
861
  }
810
862
 
811
863
 
864
+
812
865
  escapeHTMLForAttribute(str) {
813
866
  return str
814
867
  .replace(/"/g, "&quot;")
815
868
 
816
869
 
817
- // Replace double quotes
870
+ // Replace double quotes
818
871
  .replace(/'/g, "&#39;")
819
872
 
820
873
 
821
- // Replace single quotes
874
+ // Replace single quotes
822
875
  .replace(/</g, "&lt;")
823
876
 
824
877
 
825
- // Replace <
878
+ // Replace <
826
879
  .replace(/>/g, "&gt;");
827
880
 
828
881
 
@@ -830,25 +883,27 @@ class Tree extends ImprovedRenderEventEmitter {
830
883
  }
831
884
 
832
885
 
886
+
833
887
  unescapeHTMLFromAttribute(str) {
834
888
 
835
889
  if (!str) {
836
890
  return "";
837
891
  }
838
892
 
893
+
839
894
  return str
840
895
  .replace(/&quot;/g, "\"")
841
896
 
842
897
 
843
- // Replace double quotes
898
+ // Replace double quotes
844
899
  .replace(/&#39;/g, "'")
845
900
 
846
901
 
847
- // Replace single quotes
902
+ // Replace single quotes
848
903
  .replace(/&lt;/g, "<")
849
904
 
850
905
 
851
- // Replace <
906
+ // Replace <
852
907
  .replace(/&gt;/g, ">");
853
908
 
854
909
 
@@ -856,12 +911,14 @@ class Tree extends ImprovedRenderEventEmitter {
856
911
  }
857
912
 
858
913
 
914
+
859
915
  getTreeHtmlNodeDatasetJson(htmlNode) {
860
916
 
861
917
  if (htmlNode === null) {
862
918
  return "";
863
919
  }
864
920
 
921
+
865
922
  return JSON.parse(this.unescapeHTMLFromAttribute(htmlNode.dataset.json));
866
923
  }
867
924
  }
@@ -5,6 +5,7 @@ class TreeAdapter {
5
5
  dataTypesCssClassesEnabled;
6
6
 
7
7
 
8
+
8
9
  constructor() {
9
10
  this.conf = new TreeConf();
10
11
  this.nodesWithIcons = TreeConstants.Defaults.nodesWithIcons;
@@ -8,12 +8,14 @@ class TreeAdapterModeConf extends TreeAdapter {
8
8
  }
9
9
 
10
10
 
11
+
11
12
  getDataForRendering(
12
13
  node,
13
14
  flatNodeClone,
14
15
  dataTypeString,
15
16
  hasSubtree
16
17
  ) {
18
+ const SYMBOL_BACKGROUND_SPACE = String.fromCharCode(32);
17
19
  let openButtonClassName = "";
18
20
 
19
21
  if (!hasSubtree) {
@@ -30,6 +32,24 @@ class TreeAdapterModeConf extends TreeAdapter {
30
32
  openButtonClassName = TreeConstants.TreeCssClassNames.CLASS_OPENED;
31
33
  }
32
34
  const cssClasses = this.getTreeNodeCssClasses(dataTypeString, node);
35
+ let confImageSrc = node[this.conf.NODE_ICON__SRC] || "";
36
+ let isMiniImagesTagShown = this.nodesWithIcons;
37
+ let isConfImageSrc = (confImageSrc.length !== 0);
38
+ confImageSrc = (isMiniImagesTagShown && isConfImageSrc) ? confImageSrc : "";
39
+ isConfImageSrc = (isMiniImagesTagShown && isConfImageSrc);
40
+ let isMiniImageTagImg = (isMiniImagesTagShown && isConfImageSrc);
41
+ let tagImageCssClassnames = new Array();
42
+
43
+ if (isMiniImagesTagShown) {
44
+ tagImageCssClassnames.push(TreeConstants.TreeCssClassNames.CLASS_ICON_SHOW);
45
+ }
46
+ else {
47
+ tagImageCssClassnames.push(TreeConstants.TreeCssClassNames.CLASS_ICON_HIDE);
48
+ }
49
+
50
+ if (isMiniImageTagImg) {
51
+ tagImageCssClassnames.push(TreeConstants.TreeCssClassNames.CLASS_ICON_TAG_IMG);
52
+ }
33
53
  const dataForRendering = {
34
54
  dataId: node[this.conf.NODE__ID],
35
55
  dataHolderId: node[this.conf.NODE__HOLDER_ID],
@@ -37,17 +57,19 @@ class TreeAdapterModeConf extends TreeAdapter {
37
57
  dataJson: this.escapeHTMLForAttribute(JSON.stringify(flatNodeClone)),
38
58
  openButtonStateClassName: openButtonClassName,
39
59
  cssClasses,
40
- iconSrc: node[this.conf.NODE_ICON__SRC],
41
- iconShowClassName: (this.nodesWithIcons || node[this.conf.NODE_ICON__SRC]) ? "icon-show" : "icon-hide",
60
+ iconSrc: confImageSrc,
61
+ iconShowClassName: tagImageCssClassnames.join(SYMBOL_BACKGROUND_SPACE),
42
62
  labelText: node[this.conf.NODE_LABEL__TEXT],
43
63
  hyperlink: node[this.conf.NODE__HYPERLINK] ?? "javascript: void(0);",
44
64
  hasSubtree
45
65
  };
46
66
 
67
+
47
68
  return dataForRendering;
48
69
  }
49
70
 
50
71
 
72
+
51
73
  getTreeNodeCssClasses__dataTypesCssClassesEnabled(dataTypeString, node) {
52
74
  const cssClassesNodeValue = node[this.conf.NODE__CSS_CLASS_NAME];
53
75
  const cssClassesArray = [
@@ -60,10 +82,12 @@ class TreeAdapterModeConf extends TreeAdapter {
60
82
  ];
61
83
  const cssClasses = cssClassesArray.join("");
62
84
 
85
+
63
86
  return cssClasses;
64
87
  }
65
88
 
66
89
 
90
+
67
91
  getTreeNodeCssClasses__dataTypesCssClassesDisabled(_dataTypeString, _node) {
68
92
  const cssClassesNodeValue = _node[this.conf.NODE__CSS_CLASS_NAME];
69
93
  const cssClassesArray = [
@@ -73,6 +97,7 @@ class TreeAdapterModeConf extends TreeAdapter {
73
97
  ];
74
98
  const cssClasses = cssClassesArray.join("");
75
99
 
100
+
76
101
  return cssClasses;
77
102
  }
78
103
 
@@ -83,6 +108,7 @@ class TreeAdapterModeConf extends TreeAdapter {
83
108
  }
84
109
 
85
110
 
111
+
86
112
  getTreeNodeCssClasses(_dataTypeString, _value) {
87
113
  throw new Error("Method not implemented.");
88
114
  }
@@ -6,10 +6,12 @@ class TreeAdapterModeEase extends TreeAdapter {
6
6
  ) {
7
7
  const subtreeJsonNode = { [loopPropertyKey]: loopPropertyValue };
8
8
 
9
+
9
10
  return subtreeJsonNode;
10
11
  }
11
12
 
12
13
 
14
+
13
15
  getDataForRendering(
14
16
  node,
15
17
  flatNodeClone,
@@ -32,7 +34,7 @@ class TreeAdapterModeEase extends TreeAdapter {
32
34
  const cssClasses = (this.dataTypesCssClassesEnabled === true) ? this.getTreeNodeCssClasses(dataTypeString, value) : "";
33
35
  const dataForRendering = {
34
36
  iconSrc: "",
35
- iconShowClassName: this.nodesWithIcons ? "icon-show" : "icon-hide",
37
+ iconShowClassName: this.nodesWithIcons ? "icon-show mode-ease" : "icon-hide",
36
38
  labelText,
37
39
  hyperlink: "javascript: void(0);",
38
40
  cssClasses,
@@ -44,10 +46,12 @@ class TreeAdapterModeEase extends TreeAdapter {
44
46
  hasSubtree: nodeHasSubtree
45
47
  };
46
48
 
49
+
47
50
  return dataForRendering;
48
51
  }
49
52
 
50
53
 
54
+
51
55
  getTreeNodeCssClasses__dataTypesCssClassesEnabled(_dataTypeString, _node) {
52
56
  const cssClassesArray = [
53
57
  ("class=\""),
@@ -57,10 +61,12 @@ class TreeAdapterModeEase extends TreeAdapter {
57
61
  ];
58
62
  const cssClasses = cssClassesArray.join("");
59
63
 
64
+
60
65
  return cssClasses;
61
66
  }
62
67
 
63
68
 
69
+
64
70
  getTreeNodeCssClasses__dataTypesCssClassesDisabled(_dataTypeString, _node) {
65
71
  throw new Error("Method not implemented.");
66
72
  }
@@ -72,6 +78,7 @@ class TreeAdapterModeEase extends TreeAdapter {
72
78
  }
73
79
 
74
80
 
81
+
75
82
  getTreeNodeCssClasses(_dataTypeString, _value) {
76
83
  throw new Error("Method not implemented.");
77
84
  }
@@ -12,6 +12,7 @@ class TreeConf {
12
12
  NODE__ART;
13
13
 
14
14
 
15
+
15
16
  constructor() {
16
17
  this.NODE_ICON__SRC = "icon";
17
18
  this.NODE_LABEL__TEXT = "label";
@@ -15,6 +15,7 @@ class TreeConstants {
15
15
  CLASS_WITHOUT_SUBTREE: "toggle-without-subtree",
16
16
  CLASS_ICON_SHOW: "icon-show",
17
17
  CLASS_ICON_HIDE: "icon-hide",
18
+ CLASS_ICON_TAG_IMG: "icon-tag-img",
18
19
  CLASS_AND_ID__CONTEXT_MENU: "context-menu-container",
19
20
  CLASS_DATATYPE_OBJECT: "holder-datatype--object",
20
21
  CLASS_DATATYPE_ARRAY: "holder-datatype--array",
@@ -24,14 +25,15 @@ class TreeConstants {
24
25
  PREFIX__CLASS_DATATYPE: "holder-datatype--"
25
26
  };
26
27
  static TreeEventsNames = {
28
+ EVENT_NAME__BEFORE_RENDER_ONE_NODE: "beforeRenderOneNode",
27
29
  EVENT_NAME__AFTER_RENDER_ONE_NODE: "afterRenderOneNode",
28
30
  EVENT_NAME__TREE_NODE_EXPAND_BUTTON__CLICK: "openButtonClick",
29
31
  EVENT_NAME__TREE_NODE_LABEL__CLICK: "treeNodeLabelClick"
30
32
  };
31
33
  static TEMPLATE__TREE_HTML_NODE = `
32
- <li
33
- data-id="{{ dataId }}"
34
- data-holder-id="{{ dataHolderId }}"
34
+ <li
35
+ data-id="{{ dataId }}"
36
+ data-holder-id="{{ dataHolderId }}"
35
37
  data-order="{{ dataOrder }}"
36
38
  {{ cssClasses }}>
37
39
 
@@ -44,14 +46,14 @@ class TreeConstants {
44
46
  </pre>
45
47
 
46
48
  <pre class="jstree-html-node-holder-icon {{ iconShowClassName }}">
47
- <img src="{{ iconSrc }}" />
49
+ <img src="{{ iconSrc }}" alt="Mini image {{ dataId }}" />
48
50
  </pre>
49
51
 
50
52
  <a href="{{ hyperlink }}" class="jstree-html-node-label">{{ labelText }}</a>
51
53
  </pre>
52
-
54
+
53
55
  <ul></ul>
54
- </li>
56
+ </li>
55
57
  `;
56
58
  static Defaults = {
57
59
  debug: false,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ // the hardcoded copy of .cjs file
2
3
  const fs = require("node:fs");
3
4
  const path = require("node:path");
4
5
  const getWebpackAliases = require("./webpackAliases.js");
@@ -1,3 +1,4 @@
1
+ // the hardcoded copy of .mjs file
1
2
  import * as path from "node:path";
2
3
  import { fileURLToPath } from "node:url";
3
4
  import { getWebpackAliases } from "./webpackAliases.js";
@@ -1,3 +1,4 @@
1
+ // the hardcoded copy of .ts file
1
2
  import * as path from "node:path";
2
3
  import * as fs from "node:fs";
3
4
  export function getWebpackAliases(packageRoot) {