@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.
- package/MediaAndStyles/{css/tree.css → Tree_main.css} +41 -37
- package/MediaAndStyles/Tree_main_Relative.css +17 -0
- package/MediaAndStyles/Tree_main_Webpack.css +18 -0
- package/MediaAndStyles/Tree_main_Webpack_minimal.css +17 -0
- package/MediaAndStyles/Tree_main_resolved.css +1005 -0
- package/MediaAndStyles/Tree_main_resolved_minimal.css +972 -0
- package/MediaAndStyles/{css → presets}/tree-animated-expand-button.css +1 -2
- package/MediaAndStyles/themes/theme-funny/tree_theme-funny.css +29 -0
- package/MediaAndStyles/themes/theme-funny/tree_theme-funny_fonts.css +7 -0
- package/MediaAndStyles/themes/theme_base/Tree_theme_base_Imports_fonts_cdn.css +35 -0
- package/MediaAndStyles/themes/theme_base/Tree_theme_base_Imports_mini_images_Absolute_preview.css +41 -0
- package/MediaAndStyles/themes/theme_base/Tree_theme_base_Imports_mini_images_Relative.css +41 -0
- package/MediaAndStyles/themes/{theme-base/theme-base.css → theme_base/Tree_theme_base_main.css} +2 -2
- package/MediaAndStyles/themes/theme_base/Tree_theme_base_main_Relative.css +13 -0
- package/MediaAndStyles/themes/theme_base/Tree_theme_base_main_Webpack.css +12 -0
- package/MediaAndStyles/themes/theme_base/Tree_theme_base_main_Webpack_minimal.css +12 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/catalog.png +0 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/github.png +0 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/google.png +0 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/house.png +0 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/html-intence.png +0 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/html.png +0 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/money-transfer.png +0 -0
- package/MediaAndStyles/themes/theme_base/mini_images/home_tree_mode_conf/track.png +0 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_d05_very_small_xxs_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_d05_very_small_xxs_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e02_mobile_xs_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e02_mobile_xs_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e04_mobile_s_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e04_mobile_s_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e06_mobile_sm_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e06_mobile_sm_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e08_mobile_md_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_e08_mobile_md_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h03_tablet_s_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h03_tablet_s_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h05_tablet_sm_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h05_tablet_sm_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h07_tablet_md_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h07_tablet_md_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h09_tablet_lg_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_h09_tablet_lg_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l02_laptop_sm_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l02_laptop_sm_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l03_laptop_md_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l03_laptop_md_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l07_laptop_lg_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_l07_laptop_lg_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s02_display_xl_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s02_display_xl_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s04_display_xxl_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s04_display_xxl_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s08_display_qhd_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_s08_display_qhd_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t04_tv_4k_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t04_tv_4k_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t08_tv_8k_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t08_tv_8k_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t16_tv_16k_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t16_tv_16k_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t99_tv_xxxl_landscape__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive/responsive_size_t99_tv_xxxl_portrait__Tree__theme_base.css +10 -0
- package/MediaAndStyles/themes/theme_base/responsive_size_Imports_Tree_theme_base_Relative.css +98 -0
- package/MediaAndStyles/themes/theme_base/responsive_size_Imports_Tree_theme_base_Webpack.css +98 -0
- package/MediaAndStyles/themes/theme_base/responsive_size_Imports_Tree_theme_base_Webpack_minimal.css +98 -0
- package/README.md +57 -48
- package/docs/README_preview.md +167 -0
- package/favicon/Icon_Jaisocx.ico +0 -0
- package/favicon/Icon_Sandbox_Brightday.ico +0 -0
- package/index.preview.html +755 -0
- package/package.json +33 -24
- package/transpiled/CommonJS/index.d.ts +7 -4
- package/transpiled/CommonJS/index.d.ts.map +1 -1
- package/transpiled/CommonJS/index.js +10 -10
- package/transpiled/CommonJS/index.js.map +1 -1
- package/transpiled/CommonJS/typescript/ArrayOrObjectPackage.d.ts.map +1 -1
- package/transpiled/CommonJS/typescript/ArrayOrObjectPackage.js.map +1 -1
- package/transpiled/CommonJS/typescript/Tree.d.ts +3 -4
- package/transpiled/CommonJS/typescript/Tree.d.ts.map +1 -1
- package/transpiled/CommonJS/typescript/Tree.js +43 -27
- package/transpiled/CommonJS/typescript/Tree.js.map +1 -1
- package/transpiled/CommonJS/typescript/TreeAdapter.d.ts.map +1 -1
- package/transpiled/CommonJS/typescript/TreeAdapter.js.map +1 -1
- package/transpiled/CommonJS/typescript/TreeAdapterModeConf.d.ts.map +1 -1
- package/transpiled/CommonJS/typescript/TreeAdapterModeConf.js +19 -2
- package/transpiled/CommonJS/typescript/TreeAdapterModeConf.js.map +1 -1
- package/transpiled/CommonJS/typescript/TreeAdapterModeEase.d.ts.map +1 -1
- package/transpiled/CommonJS/typescript/TreeAdapterModeEase.js +1 -1
- package/transpiled/CommonJS/typescript/TreeAdapterModeEase.js.map +1 -1
- package/transpiled/CommonJS/typescript/TreeConf.d.ts.map +1 -1
- package/transpiled/CommonJS/typescript/TreeConf.js.map +1 -1
- package/transpiled/CommonJS/typescript/TreeConstants.d.ts.map +1 -1
- package/transpiled/CommonJS/typescript/TreeConstants.js +8 -6
- package/transpiled/CommonJS/typescript/TreeConstants.js.map +1 -1
- package/transpiled/CommonJS/typescript/TreeInterface.d.ts +44 -0
- package/transpiled/CommonJS/typescript/TreeInterface.d.ts.map +1 -0
- package/transpiled/CommonJS/typescript/TreeInterface.js +3 -0
- package/transpiled/CommonJS/typescript/TreeInterface.js.map +1 -0
- package/transpiled/CommonJS/typescript/Types.d.ts +2 -0
- package/transpiled/CommonJS/typescript/Types.d.ts.map +1 -1
- package/transpiled/CommonJS/webpack.aliases.cjs +1 -0
- package/transpiled/CommonJS/webpack.aliases.cjs.map +1 -1
- package/transpiled/CommonJS/webpack.aliases.mjs +1 -0
- package/transpiled/CommonJS/webpack.aliases.mjs.map +1 -1
- package/transpiled/CommonJS/webpackAliases.d.ts.map +1 -1
- package/transpiled/CommonJS/webpackAliases.js +1 -0
- package/transpiled/CommonJS/webpackAliases.js.map +1 -1
- package/transpiled/ESNext/index.d.ts +7 -4
- package/transpiled/ESNext/index.d.ts.map +1 -1
- package/transpiled/ESNext/index.js +5 -6
- package/transpiled/ESNext/index.js.map +1 -1
- package/transpiled/ESNext/typescript/ArrayOrObjectPackage.d.ts.map +1 -1
- package/transpiled/ESNext/typescript/ArrayOrObjectPackage.js.map +1 -1
- package/transpiled/ESNext/typescript/Tree.d.ts +3 -4
- package/transpiled/ESNext/typescript/Tree.d.ts.map +1 -1
- package/transpiled/ESNext/typescript/Tree.js +43 -27
- package/transpiled/ESNext/typescript/Tree.js.map +1 -1
- package/transpiled/ESNext/typescript/TreeAdapter.d.ts.map +1 -1
- package/transpiled/ESNext/typescript/TreeAdapter.js.map +1 -1
- package/transpiled/ESNext/typescript/TreeAdapterModeConf.d.ts.map +1 -1
- package/transpiled/ESNext/typescript/TreeAdapterModeConf.js +19 -2
- package/transpiled/ESNext/typescript/TreeAdapterModeConf.js.map +1 -1
- package/transpiled/ESNext/typescript/TreeAdapterModeEase.d.ts.map +1 -1
- package/transpiled/ESNext/typescript/TreeAdapterModeEase.js +1 -1
- package/transpiled/ESNext/typescript/TreeAdapterModeEase.js.map +1 -1
- package/transpiled/ESNext/typescript/TreeConf.d.ts.map +1 -1
- package/transpiled/ESNext/typescript/TreeConf.js.map +1 -1
- package/transpiled/ESNext/typescript/TreeConstants.d.ts.map +1 -1
- package/transpiled/ESNext/typescript/TreeConstants.js +8 -6
- package/transpiled/ESNext/typescript/TreeConstants.js.map +1 -1
- package/transpiled/ESNext/typescript/TreeInterface.d.ts +44 -0
- package/transpiled/ESNext/typescript/TreeInterface.d.ts.map +1 -0
- package/transpiled/ESNext/typescript/TreeInterface.js +2 -0
- package/transpiled/ESNext/typescript/TreeInterface.js.map +1 -0
- package/transpiled/ESNext/typescript/Types.d.ts +2 -0
- package/transpiled/ESNext/typescript/Types.d.ts.map +1 -1
- package/transpiled/ESNext/webpack.aliases.cjs +1 -0
- package/transpiled/ESNext/webpack.aliases.cjs.map +1 -1
- package/transpiled/ESNext/webpack.aliases.mjs +1 -0
- package/transpiled/ESNext/webpack.aliases.mjs.map +1 -1
- package/transpiled/ESNext/webpackAliases.d.ts.map +1 -1
- package/transpiled/ESNext/webpackAliases.js +1 -0
- package/transpiled/ESNext/webpackAliases.js.map +1 -1
- package/transpiled/Simple/typescript/ArrayOrObjectPackage.js +10 -0
- package/transpiled/Simple/typescript/Tree.js +87 -30
- package/transpiled/Simple/typescript/TreeAdapter.js +1 -0
- package/transpiled/Simple/typescript/TreeAdapterModeConf.js +28 -2
- package/transpiled/Simple/typescript/TreeAdapterModeEase.js +8 -1
- package/transpiled/Simple/typescript/TreeConf.js +1 -0
- package/transpiled/Simple/typescript/TreeConstants.js +8 -6
- package/transpiled/Simple/webpack.aliases.cjs +1 -0
- package/transpiled/Simple/webpack.aliases.mjs +1 -0
- package/transpiled/Simple/webpackAliases.js +1 -0
- package/tree_preview_dev.html +729 -0
- package/tree_preview_prod.html +755 -0
- package/webpack.aliases.json +2 -1
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/BalooPaaji2-VariableFont_wght.ttf +0 -0
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/OFL.txt +0 -93
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/README.txt +0 -67
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-Bold.ttf +0 -0
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-ExtraBold.ttf +0 -0
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-Medium.ttf +0 -0
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-Regular.ttf +0 -0
- package/MediaAndStyles/themes/theme-base/fonts/Baloo_Paaji_2/static/BalooPaaji2-SemiBold.ttf +0 -0
- package/MediaAndStyles/themes/theme-base/fonts-webpack.css +0 -35
- package/MediaAndStyles/themes/theme-base/fonts.css +0 -35
- package/MediaAndStyles/themes/theme-base/theme-base-media-webpack.css +0 -43
- package/MediaAndStyles/themes/theme-base/theme-base-media.css +0 -43
- package/MediaAndStyles/themes/theme-funny/fonts/Niconne/Niconne-Regular.ttf +0 -0
- package/MediaAndStyles/themes/theme-funny/fonts/Niconne/OFL.txt +0 -94
- package/MediaAndStyles/themes/theme-funny/fonts-webpack.css +0 -7
- package/MediaAndStyles/themes/theme-funny/fonts.css +0 -7
- package/MediaAndStyles/themes/theme-funny/theme-funny-webpack.css +0 -22
- package/MediaAndStyles/themes/theme-funny/theme-funny.css +0 -22
- package/MediaAndStyles/tree-styles-main-webpack.css +0 -5
- package/MediaAndStyles/tree-styles-main.css +0 -5
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/button-open/button-animated.gif +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/button-open/button-opened.png +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/button-open/button-without-subtree.svg +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-3-100.png +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-font-style-formatting-96.png +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-json-96.png +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-static-view-level2-80.png +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-true-false-96.png +0 -0
- /package/MediaAndStyles/themes/{theme-base/mini-images → theme_base/mini_images}/data-types/icons8-view-array-96.png +0 -0
- /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
|
-
|
|
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
|
-
|
|
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
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
.
|
|
635
|
-
|
|
636
|
-
|
|
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
|
-
|
|
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, """)
|
|
815
868
|
|
|
816
869
|
|
|
817
|
-
|
|
870
|
+
// Replace double quotes
|
|
818
871
|
.replace(/'/g, "'")
|
|
819
872
|
|
|
820
873
|
|
|
821
|
-
|
|
874
|
+
// Replace single quotes
|
|
822
875
|
.replace(/</g, "<")
|
|
823
876
|
|
|
824
877
|
|
|
825
|
-
|
|
878
|
+
// Replace <
|
|
826
879
|
.replace(/>/g, ">");
|
|
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(/"/g, "\"")
|
|
841
896
|
|
|
842
897
|
|
|
843
|
-
|
|
898
|
+
// Replace double quotes
|
|
844
899
|
.replace(/'/g, "'")
|
|
845
900
|
|
|
846
901
|
|
|
847
|
-
|
|
902
|
+
// Replace single quotes
|
|
848
903
|
.replace(/</g, "<")
|
|
849
904
|
|
|
850
905
|
|
|
851
|
-
|
|
906
|
+
// Replace <
|
|
852
907
|
.replace(/>/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
|
}
|
|
@@ -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:
|
|
41
|
-
iconShowClassName: (
|
|
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
|
}
|
|
@@ -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,
|