neo.mjs 5.16.4 → 5.17.0

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/src/tree/List.mjs CHANGED
@@ -32,6 +32,10 @@ class Tree extends Base {
32
32
  * @member {Neo.draggable.tree.DragZone|null} dragZone=null
33
33
  */
34
34
  dragZone: null,
35
+ /**
36
+ * @member {String} folderCls='neo-list-folder'
37
+ */
38
+ folderCls: 'neo-list-folder',
35
39
  /**
36
40
  * @member {Boolean} showCollapseExpandAllIcons=true
37
41
  */
@@ -56,9 +60,11 @@ class Tree extends Base {
56
60
  * @member {Object} _vdom
57
61
  */
58
62
  _vdom:
59
- {cn: [
60
- {tag: 'ul', cls: ['neo-list-container', 'neo-list'], tabIndex: -1, cn: []}
61
- ]}
63
+ {
64
+ cn: [
65
+ {tag: 'ul', cls: ['neo-list-container', 'neo-list'], tabIndex: -1, cn: []}
66
+ ]
67
+ }
62
68
  }
63
69
 
64
70
  /**
@@ -121,6 +127,7 @@ class Tree extends Base {
121
127
  */
122
128
  beforeSetSelectionModel(value, oldValue) {
123
129
  oldValue?.destroy();
130
+
124
131
  return ClassSystemUtil.beforeSetInstance(value, TreeModel);
125
132
  }
126
133
 
@@ -146,7 +153,7 @@ class Tree extends Base {
146
153
  * Collapses all folders
147
154
  * @param {Boolean} [silent]=false Set silent to true to prevent a vnode update
148
155
  */
149
- collapseAll(silent=false) {
156
+ collapseAll(silent = false) {
150
157
  let me = this,
151
158
  vdom = me.vdom,
152
159
  hasMatch = false,
@@ -176,8 +183,10 @@ class Tree extends Base {
176
183
  * @protected
177
184
  */
178
185
  createItems(parentId, vdomRoot, level) {
179
- let me = this,
180
- items = me.store.find('parentId', parentId),
186
+ let me = this,
187
+ items = me.store.find('parentId', parentId),
188
+ itemCls = me.itemCls,
189
+ folderCls = me.folderCls,
181
190
  cls, tmpRoot;
182
191
 
183
192
  if (items.length > 0) {
@@ -187,9 +196,9 @@ class Tree extends Base {
187
196
 
188
197
  if (parentId !== null) {
189
198
  vdomRoot.cn.push({
190
- tag: 'ul',
191
- cls: ['neo-list'],
192
- cn : [],
199
+ tag : 'ul',
200
+ cls : ['neo-list'],
201
+ cn : [],
193
202
  style: {
194
203
  paddingLeft: '15px'
195
204
  }
@@ -201,12 +210,12 @@ class Tree extends Base {
201
210
  }
202
211
 
203
212
  items.forEach(item => {
204
- cls = ['neo-list-item'];
213
+ cls = [itemCls];
205
214
 
206
215
  if (item.isLeaf) {
207
- cls.push(item.singleton ? 'neo-list-item-leaf-singleton' : 'neo-list-item-leaf');
216
+ cls.push(itemCls + (item.singleton ? '-leaf-singleton' : '-leaf'));
208
217
  } else {
209
- cls.push('neo-list-folder');
218
+ cls.push(folderCls);
210
219
 
211
220
  if (!item.collapsed) {
212
221
  cls.push('neo-folder-open');
@@ -214,14 +223,14 @@ class Tree extends Base {
214
223
  }
215
224
 
216
225
  tmpRoot.cn.push({
217
- tag: 'li',
226
+ tag : 'li',
218
227
  cls,
219
- id : me.getItemId(item.id),
220
- cn : [{
228
+ id : me.getItemId(item.id),
229
+ cn : [{
221
230
  tag : 'span',
222
- cls : ['neo-list-item-content'],
231
+ cls : [itemCls + '-content', item.iconCls],
223
232
  innerHTML: item.name,
224
- style: {
233
+ style : {
225
234
  pointerEvents: 'none'
226
235
  }
227
236
  }],
@@ -244,7 +253,7 @@ class Tree extends Base {
244
253
  * Expands all folders
245
254
  * @param {Boolean} silent=false Set silent to true to prevent a vnode update
246
255
  */
247
- expandAll(silent=false) {
256
+ expandAll(silent = false) {
248
257
  let me = this,
249
258
  vdom = me.vdom,
250
259
  hasMatch = false,
@@ -274,7 +283,7 @@ class Tree extends Base {
274
283
  * @param {Boolean} [parentMatch]=false In case a parent folder matches the filter, show its child items
275
284
  * @returns {Boolean} false if at least one child item is filtered
276
285
  */
277
- filter(property, value, parentId, parentMatch=false) {
286
+ filter(property, value, parentId, parentMatch = false) {
278
287
  let me = this,
279
288
  isFiltered = true,
280
289
  valueRegEx = new RegExp(value, 'gi'),
@@ -287,7 +296,7 @@ class Tree extends Base {
287
296
  me.store.items.forEach(item => {
288
297
  if (item.parentId === parentId) {
289
298
  directMatch = false;
290
- node = me.getVdomChild(me.getItemId(item.id), me.vdom);
299
+ node = me.getVdomChild(me.getItemId(item.id), me.vdom);
291
300
 
292
301
  node.cn[0].innerHTML = item[property].replace(valueRegEx, match => {
293
302
  directMatch = true;
@@ -379,13 +388,13 @@ class Tree extends Base {
379
388
 
380
389
  if (path.includes(vnodeId)) {
381
390
  record = tmpItem;
382
- item = me.getVdomChild(vnodeId);
391
+ item = me.getVdomChild(vnodeId);
383
392
  break;
384
393
  }
385
394
  }
386
395
 
387
396
  if (item) {
388
- if (item.cls?.includes('neo-list-folder')) {
397
+ if (item.cls?.includes(me.folderCls)) {
389
398
  NeoArray.toggle(item.cls, 'neo-folder-open');
390
399
  me.update();
391
400
  } else {