neo.mjs 4.4.3 → 4.4.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "4.4.3",
3
+ "version": "4.4.4",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
package/src/list/Base.mjs CHANGED
@@ -432,10 +432,17 @@ class Base extends Component {
432
432
  * @param {Boolean} [silent=false]
433
433
  */
434
434
  createItems(silent=false) {
435
- let me = this,
436
- vdom = me.getVdomRoot(),
435
+ let me = this,
436
+ headerlessActiveIndex = me.headerlessActiveIndex,
437
+ vdom = me.getVdomRoot(),
437
438
  listItem;
438
439
 
440
+ // in case we set headerlessActiveIndex before the store was loaded, activeIndex can be null
441
+ // and the wanted selection is not initially there
442
+ if (Neo.isNumber(headerlessActiveIndex) && !Neo.isNumber(me.activeIndex)) {
443
+ me.afterSetHeaderlessActiveIndex(headerlessActiveIndex, null);
444
+ }
445
+
439
446
  if (!(me.animate && !me.getPlugin('animate'))) {
440
447
  vdom.cn = [];
441
448
 
@@ -484,11 +491,17 @@ class Base extends Component {
484
491
  getActiveIndex(headerlessIndex) {
485
492
  let delta = 0,
486
493
  i = 0,
487
- records = this.store.items;
494
+ records = this.store.items,
495
+ len = headerlessIndex;
496
+
497
+ if (records.length < 1) {
498
+ return null;
499
+ }
488
500
 
489
- for (; i <= headerlessIndex; i++) {
501
+ for (; i <= len; i++) {
490
502
  if (records[i].isHeader) {
491
503
  delta++;
504
+ len++;
492
505
  }
493
506
  }
494
507
 
@@ -511,18 +524,15 @@ class Base extends Component {
511
524
  getHeaderlessIndex(index) {
512
525
  let headerlessIndex = 0,
513
526
  i = 0,
514
- records = this.store.items,
515
- len = records.length;
527
+ records = this.store.items;
516
528
 
517
- for (; i < len; i++) {
529
+ for (; i < index; i++) {
518
530
  if (!records[i].isHeader) {
519
531
  headerlessIndex++;
520
-
521
- if (headerlessIndex === index) {
522
- return i;
523
- }
524
532
  }
525
533
  }
534
+
535
+ return headerlessIndex;
526
536
  }
527
537
 
528
538
  /**
@@ -147,7 +147,7 @@ class ListModel extends Model {
147
147
  */
148
148
  selectAt(index) {
149
149
  let view = this.view,
150
- recordKey = view.store.getKeyAt(index),
150
+ recordKey = view?.store.getKeyAt(index),
151
151
  itemId = recordKey && view.getItemId(recordKey);
152
152
 
153
153
  if (itemId) {