neo.mjs 6.1.3 → 6.1.4

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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.1.3'
23
+ * @member {String} version='6.1.4'
24
24
  */
25
- version: '6.1.3'
25
+ version: '6.1.4'
26
26
  }
27
27
 
28
28
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.1.3'
23
+ * @member {String} version='6.1.4'
24
24
  */
25
- version: '6.1.3'
25
+ version: '6.1.4'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.1.3",
3
+ "version": "6.1.4",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -236,12 +236,12 @@ const DefaultConfig = {
236
236
  useVdomWorker: true,
237
237
  /**
238
238
  * buildScripts/injectPackageVersion.mjs will update this value
239
- * @default '6.1.3'
239
+ * @default '6.1.4'
240
240
  * @memberOf! module:Neo
241
241
  * @name config.version
242
242
  * @type String
243
243
  */
244
- version: '6.1.3'
244
+ version: '6.1.4'
245
245
  };
246
246
 
247
247
  Object.assign(DefaultConfig, {
@@ -2,6 +2,7 @@ import TreeList from '../tree/List.mjs';
2
2
  import TreeAccordionModel from "../selection/TreeAccordionModel.mjs";
3
3
  import NeoArray from "../util/Array.mjs";
4
4
  import ClassSystemUtil from "../util/ClassSystem.mjs";
5
+ import VDomUtil from "../util/VDom.mjs";
5
6
 
6
7
  /**
7
8
  * @class Neo.tree.Accordion
@@ -39,7 +40,7 @@ class AccordionTree extends TreeList {
39
40
  firstParentIsVisible_: true,
40
41
  /**
41
42
  * Currently selected item, which is bindable
42
- * @member {Object[]|null} selection=null
43
+ * @member {Record[]|null} selection=null
43
44
  *
44
45
  * @example
45
46
  * module: AccordionTree,
@@ -157,7 +158,7 @@ class AccordionTree extends TreeList {
157
158
  items = me.store.find('parentId', parentId),
158
159
  itemCls = me.itemCls,
159
160
  folderCls = me.folderCls,
160
- cls, id, tmpRoot;
161
+ cls, id, itemIconCls, tmpRoot;
161
162
 
162
163
  if (items.length > 0) {
163
164
  if (!vdomRoot.cn) {
@@ -180,6 +181,12 @@ class AccordionTree extends TreeList {
180
181
  items.forEach(item => {
181
182
  cls = [itemCls];
182
183
 
184
+ itemIconCls = ['neo-accordion-item-icon'];
185
+ if (item.iconCls) {
186
+ NeoArray.add(itemIconCls, item.iconCls.split(' '));
187
+ }
188
+
189
+
183
190
  if (item.isLeaf) {
184
191
  cls.push(itemCls + (item.singleton ? '-leaf-singleton' : '-leaf'));
185
192
  } else {
@@ -213,11 +220,13 @@ class AccordionTree extends TreeList {
213
220
  id : id + '__item-content',
214
221
  style: {pointerEvents: 'none'},
215
222
  cn : [{
223
+ flag : 'name',
216
224
  tag : 'span',
217
225
  cls : [itemCls + '-content-header'],
218
226
  id : id + '__item-content-header',
219
227
  innerHTML: item.name
220
228
  }, {
229
+ flag : 'content',
221
230
  tag : 'span',
222
231
  cls : [itemCls + '-content-text'],
223
232
  id : id + '__item-content-text',
@@ -323,7 +332,7 @@ class AccordionTree extends TreeList {
323
332
 
324
333
  /**
325
334
  * After the store loaded, create the items for the list
326
- * @param {Object[]} records
335
+ * @param {Record[]} records
327
336
  */
328
337
  onStoreLoad(records) {
329
338
  let me = this,
@@ -335,29 +344,51 @@ class AccordionTree extends TreeList {
335
344
  listenerId = me.on('mounted', () => {
336
345
  me.un('mounted', listenerId);
337
346
  me.createItems(null, me.getListItemsRoot(), 0);
338
- me.timeout(0).then(() => {
339
- me.update();
340
- });
347
+ me.update()
341
348
  });
342
349
  } else {
343
350
  me.createItems(null, me.getListItemsRoot(), 0);
344
- me.timeout(0).then(() => {
345
- me.update();
346
- });
351
+ me.update()
347
352
  }
348
353
  }
349
354
 
350
355
  /**
351
- *
356
+ * Update a record
357
+ * @param {Object} data
358
+ * @param {Object} data.fields
359
+ * @param {Number} data.index
360
+ * @param {Model} data.model
361
+ * @param {Record} data.record
352
362
  */
353
- onStoreRecordChange() {
363
+ onStoreRecordChange(data) {
364
+ const me = this,
365
+ record = data.record,
366
+ fields = data.fields,
367
+ itemId = me.getItemId(record[me.getKeyProperty()]),
368
+ vdom = me.getVdomChild(itemId);
369
+
370
+ fields.forEach((field) => {
371
+ const itemVdom = VDomUtil.getByFlag(vdom, field.name);
372
+
373
+ if (field.name === 'iconCls') {
374
+ const clsItems = field.value.split(' '),
375
+ cls = ['neo-accordion-item-icon'];
376
+
377
+ NeoArray.add(cls, clsItems);
378
+ itemVdom.cls = cls;
379
+ } else {
380
+ itemVdom.html = field.value;
381
+ }
382
+ })
383
+
384
+ me.update();
354
385
  }
355
386
 
356
387
  /**
357
388
  * Set the selection either bei record id or record.
358
389
  * You can pass a record or a recordId as value
359
390
  *
360
- * @param {Object|Object[]|Number|Number[]|String|String[]} value
391
+ * @param {Record|Record[]|Number|Number[]|String|String[]} value
361
392
  */
362
393
  setSelection(value) {
363
394
  if (value === null) {