neo.mjs 4.3.8 → 4.3.10

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 (86) hide show
  1. package/apps/covid/view/MainContainerController.mjs +9 -11
  2. package/apps/krausest/view/MainComponent.mjs +3 -4
  3. package/apps/krausest/view/TableComponent.mjs +2 -3
  4. package/apps/realworld/view/HeaderComponent.mjs +7 -10
  5. package/apps/realworld/view/HomeComponent.mjs +16 -24
  6. package/apps/realworld/view/MainContainerController.mjs +3 -3
  7. package/apps/realworld/view/article/CommentComponent.mjs +11 -19
  8. package/apps/realworld/view/article/Component.mjs +20 -36
  9. package/apps/realworld/view/article/CreateCommentComponent.mjs +9 -16
  10. package/apps/realworld/view/article/CreateComponent.mjs +12 -20
  11. package/apps/realworld/view/article/PreviewComponent.mjs +16 -30
  12. package/apps/realworld/view/article/TagListComponent.mjs +4 -5
  13. package/apps/realworld/view/user/ProfileComponent.mjs +14 -21
  14. package/apps/realworld/view/user/SettingsComponent.mjs +9 -16
  15. package/apps/realworld/view/user/SignUpComponent.mjs +6 -9
  16. package/apps/realworld2/view/MainContainerController.mjs +2 -2
  17. package/apps/realworld2/view/article/PreviewComponent.mjs +17 -31
  18. package/apps/realworld2/view/article/PreviewList.mjs +4 -7
  19. package/apps/realworld2/view/article/TagListComponent.mjs +4 -5
  20. package/apps/sharedcovid/view/MainContainerController.mjs +10 -13
  21. package/apps/website/view/blog/List.mjs +2 -3
  22. package/docs/app/view/ApiTreeList.mjs +2 -6
  23. package/docs/app/view/ExamplesTreeList.mjs +2 -6
  24. package/docs/app/view/TutorialsTreeList.mjs +2 -6
  25. package/docs/app/view/classdetails/HeaderComponent.mjs +3 -4
  26. package/docs/app/view/classdetails/HierarchyTreeList.mjs +1 -2
  27. package/docs/app/view/classdetails/MembersList.mjs +4 -6
  28. package/docs/app/view/classdetails/SourceViewComponent.mjs +3 -6
  29. package/docs/app/view/classdetails/TutorialComponent.mjs +4 -5
  30. package/examples/tabs/MainContainer.mjs +4 -6
  31. package/examples/todoList/version1/MainComponent.mjs +5 -7
  32. package/examples/todoList/version2/TodoList.mjs +4 -5
  33. package/package.json +3 -3
  34. package/resources/scss/src/form/field/Text.scss +4 -3
  35. package/src/button/Base.mjs +14 -24
  36. package/src/button/Split.mjs +3 -4
  37. package/src/calendar/view/MainContainer.mjs +3 -5
  38. package/src/calendar/view/SettingsContainer.mjs +3 -5
  39. package/src/calendar/view/YearComponent.mjs +7 -9
  40. package/src/calendar/view/month/Component.mjs +7 -12
  41. package/src/calendar/view/week/Component.mjs +2 -3
  42. package/src/calendar/view/week/TimeAxisComponent.mjs +0 -3
  43. package/src/component/Base.mjs +26 -27
  44. package/src/component/Carousel.mjs +5 -9
  45. package/src/component/Chip.mjs +6 -12
  46. package/src/component/Circle.mjs +16 -22
  47. package/src/component/Clock.mjs +1 -1
  48. package/src/component/DateSelector.mjs +4 -9
  49. package/src/component/Gallery.mjs +12 -21
  50. package/src/component/Helix.mjs +2 -3
  51. package/src/component/Label.mjs +2 -3
  52. package/src/component/Legend.mjs +6 -9
  53. package/src/container/Base.mjs +5 -9
  54. package/src/dialog/Base.mjs +2 -3
  55. package/src/draggable/list/DragZone.mjs +1 -2
  56. package/src/draggable/tree/DragZone.mjs +1 -2
  57. package/src/form/Fieldset.mjs +4 -6
  58. package/src/form/field/CheckBox.mjs +23 -39
  59. package/src/form/field/Color.mjs +2 -3
  60. package/src/form/field/Display.mjs +1 -2
  61. package/src/form/field/Number.mjs +1 -2
  62. package/src/form/field/Picker.mjs +0 -1
  63. package/src/form/field/Text.mjs +34 -52
  64. package/src/form/field/TextArea.mjs +2 -3
  65. package/src/form/field/trigger/Base.mjs +2 -3
  66. package/src/form/field/trigger/SpinUpDown.mjs +3 -4
  67. package/src/form/field/trigger/Time.mjs +3 -4
  68. package/src/grid/header/Toolbar.mjs +1 -2
  69. package/src/layout/Card.mjs +2 -2
  70. package/src/list/Base.mjs +6 -11
  71. package/src/list/plugin/Animate.mjs +5 -12
  72. package/src/plugin/Resizable.mjs +3 -6
  73. package/src/selection/Model.mjs +3 -7
  74. package/src/selection/grid/CellColumnModel.mjs +2 -5
  75. package/src/selection/grid/CellColumnRowModel.mjs +2 -5
  76. package/src/selection/grid/CellRowModel.mjs +4 -13
  77. package/src/selection/table/CellColumnModel.mjs +2 -5
  78. package/src/selection/table/CellColumnRowModel.mjs +2 -5
  79. package/src/selection/table/CellRowModel.mjs +4 -13
  80. package/src/sitemap/Component.mjs +1 -1
  81. package/src/tab/Strip.mjs +8 -11
  82. package/src/tab/header/Toolbar.mjs +2 -3
  83. package/src/table/header/Button.mjs +4 -6
  84. package/src/table/header/Toolbar.mjs +3 -5
  85. package/src/tree/List.mjs +6 -9
  86. package/src/vdom/Helper.mjs +1 -1
@@ -146,9 +146,6 @@ class TimeAxisComponent extends Component {
146
146
  vdom.cn[i].removeDom = (i < startTime || i - 1 >= endTime);
147
147
  }
148
148
 
149
- // silent update: the view containing this component will trigger the vdom update
150
- me._vdom = vdom;
151
-
152
149
  me.fire('change', {
153
150
  component: me,
154
151
  rowHeight,
@@ -405,7 +405,7 @@ class Base extends CoreBase {
405
405
  vdomRoot.cls = [...value];
406
406
  } else {
407
407
  // we need to merge changes
408
- cls = [...me.wrapperCls, ...value];
408
+ cls = NeoArray.union(me.wrapperCls, value);
409
409
  NeoArray.remove(cls, NeoArray.difference(oldValue, value));
410
410
  vdom.cls = cls;
411
411
  }
@@ -664,9 +664,7 @@ class Base extends CoreBase {
664
664
  delete me._vdom[key];
665
665
  });
666
666
 
667
- Object.assign(me._vdom, vdom);
668
- } else {
669
- me._vdom = vdom;
667
+ vdom = Object.assign(me._vdom, vdom);
670
668
  }
671
669
 
672
670
  if (me.silentVdomUpdate) {
@@ -729,7 +727,7 @@ class Base extends CoreBase {
729
727
 
730
728
  if (vdom === vdomRoot) {
731
729
  // we need to merge changes
732
- cls = [...cls, ...value];
730
+ cls = NeoArray.union(cls, value);
733
731
  NeoArray.remove(cls, NeoArray.difference(oldValue, value));
734
732
  vdom.cls = cls;
735
733
 
@@ -763,11 +761,11 @@ class Base extends CoreBase {
763
761
  let me = this,
764
762
  vdom = me.vdom;
765
763
 
766
- if (!me.vdom.id) {
764
+ if (!vdom.id) {
767
765
  vdom.style = value;
768
- me.vdom = vdom;
766
+ me.update();
769
767
  } else {
770
- me.updateStyle(value, oldValue, me.vdom.id);
768
+ me.updateStyle(value, oldValue, vdom.id);
771
769
  }
772
770
  }
773
771
  }
@@ -932,8 +930,7 @@ class Base extends CoreBase {
932
930
  */
933
931
  changeVdomRootKey(key, value) {
934
932
  let me = this,
935
- root = me.getVdomRoot(),
936
- vdom = me.vdom;
933
+ root = me.getVdomRoot();
937
934
 
938
935
  if (value) {
939
936
  root[key] = value;
@@ -941,7 +938,7 @@ class Base extends CoreBase {
941
938
  delete root[key];
942
939
  }
943
940
 
944
- me.vdom = vdom;
941
+ me.update();
945
942
  }
946
943
 
947
944
  /**
@@ -1211,9 +1208,8 @@ class Base extends CoreBase {
1211
1208
 
1212
1209
  if (me.hideMode !== 'visibility') {
1213
1210
  let removeFn = function() {
1214
- let vdom = me.vdom;
1215
- vdom.removeDom = true;
1216
- me.vdom = vdom;
1211
+ me.vdom.removeDom = true;
1212
+ me.update();
1217
1213
  }
1218
1214
 
1219
1215
  if (timeout) {
@@ -1416,26 +1412,24 @@ class Base extends CoreBase {
1416
1412
  * @returns {Promise<any>}
1417
1413
  */
1418
1414
  promiseVdomUpdate(vdom=this.vdom, vnode=this.vnode) {
1419
- let me = this;
1415
+ let me = this,
1416
+ _vdom = me.vdom;
1420
1417
 
1421
1418
  // todo: updateVdom() should handle this
1422
1419
  // It is important to keep the vdom tree stable to ensure that containers do not lose the references to their
1423
1420
  // child vdom trees. The if case should not happen, but in case it does, keeping the reference and merging
1424
1421
  // the content over seems to be the best strategy
1425
- if (me._vdom !== vdom) {
1422
+ if (_vdom !== vdom) {
1426
1423
  Logger.warn('vdom got replaced for: ' + me.id + '. Copying the content into the reference holder object');
1427
1424
 
1428
- Object.keys(me._vdom).forEach(key => {
1429
- delete me._vdom[key];
1425
+ Object.keys(_vdom).forEach(key => {
1426
+ delete _vdom[key];
1430
1427
  });
1431
1428
 
1432
- Object.assign(me._vdom, vdom);
1433
- } else {
1434
- me._vdom = vdom;
1429
+ vdom = Object.assign(me._vdom, vdom);
1435
1430
  }
1436
1431
 
1437
1432
  if (me.silentVdomUpdate) {
1438
- me._vdom = vdom;
1439
1433
  return Promise.resolve();
1440
1434
  }
1441
1435
 
@@ -1443,7 +1437,7 @@ class Base extends CoreBase {
1443
1437
  if (me.mounted) {
1444
1438
  me.updateVdom(vdom, vnode, resolve, reject);
1445
1439
  } else {
1446
- me.vdom = vdom;
1440
+ me.update();
1447
1441
  resolve();
1448
1442
  }
1449
1443
  });
@@ -1567,7 +1561,6 @@ class Base extends CoreBase {
1567
1561
  me.silentVdomUpdate = false;
1568
1562
 
1569
1563
  if (silent || !me.needsVdomUpdate) {
1570
- me._vdom = vdom;
1571
1564
  return Promise.resolve();
1572
1565
  } else {
1573
1566
  return me.promiseVdomUpdate();
@@ -1591,9 +1584,8 @@ class Base extends CoreBase {
1591
1584
  let me = this;
1592
1585
 
1593
1586
  if (me.hideMode !== 'visibility') {
1594
- let vdom = me.vdom;
1595
- vdom.removeDom = false;
1596
- me.vdom = vdom;
1587
+ me.vdom.removeDom = false;
1588
+ me.update();
1597
1589
  } else {
1598
1590
  let style = me.style;
1599
1591
  style.visibility = 'visible';
@@ -1714,6 +1706,13 @@ class Base extends CoreBase {
1714
1706
  return ComponentManager.up(this.id, config);
1715
1707
  }
1716
1708
 
1709
+ /**
1710
+ *
1711
+ */
1712
+ update() {
1713
+ this.afterSetVdom(this.vdom, null);
1714
+ }
1715
+
1717
1716
  /**
1718
1717
  * Delta updates for the cls config. Gets called after the cls config gets changed in case the component is mounted.
1719
1718
  * @param {String[]} cls
@@ -115,8 +115,7 @@ class Carousel extends Component {
115
115
  */
116
116
  afterSetAutoRun(value, oldValue) {
117
117
  if (value) {
118
- let me = this,
119
- vdom = me._vdom;
118
+ let me = this;
120
119
 
121
120
  TaskManager.start({
122
121
  id : me.id,
@@ -126,9 +125,8 @@ class Carousel extends Component {
126
125
  }
127
126
  });
128
127
 
129
- vdom.cn[0].cn[0].removeDom = true;
130
-
131
- me._vdom = vdom;
128
+ me.vdom.cn[0].cn[0].removeDom = true;
129
+ me.update();
132
130
  }
133
131
  }
134
132
 
@@ -166,7 +164,6 @@ class Carousel extends Component {
166
164
  */
167
165
  createBaseItems() {
168
166
  let me = this,
169
- vdom = me._vdom,
170
167
  itemRoot = me.#getItemRoot(),
171
168
  items = [],
172
169
  i = 0;
@@ -176,7 +173,7 @@ class Carousel extends Component {
176
173
  }
177
174
 
178
175
  itemRoot.cn = items;
179
- me.vdom = vdom;
176
+ me.update();
180
177
  }
181
178
 
182
179
  /**
@@ -216,7 +213,6 @@ class Carousel extends Component {
216
213
  action = (typeof event === 'string') ? event : event.target.data.carouselaction,
217
214
  store = me.store,
218
215
  countItems = store.getCount(),
219
- vdom = me.vdom,
220
216
  index = me.itemIndex,
221
217
  positionArray = me.positionArray,
222
218
  root = me.#getItemRoot(),
@@ -256,7 +252,7 @@ class Carousel extends Component {
256
252
  return cn;
257
253
  })
258
254
 
259
- me.vdom = vdom;
255
+ me.update();
260
256
  }
261
257
 
262
258
  /**
@@ -81,11 +81,8 @@ class Chip extends Component {
81
81
  * @protected
82
82
  */
83
83
  afterSetClosable(value, oldValue) {
84
- let me = this,
85
- vdom = me.vdom;
86
-
87
- vdom.cn[2].removeDom = !value;
88
- me.vdom = vdom;
84
+ this.vdom.cn[2].removeDom = !value;
85
+ this.update();
89
86
  }
90
87
 
91
88
  /**
@@ -108,8 +105,7 @@ class Chip extends Component {
108
105
  */
109
106
  afterSetIconCls(value, oldValue) {
110
107
  let me = this,
111
- vdom = me.vdom,
112
- iconNode = vdom.cn[0];
108
+ iconNode = me.vdom.cn[0];
113
109
 
114
110
  NeoArray.remove(iconNode.cls, oldValue);
115
111
 
@@ -120,7 +116,7 @@ class Chip extends Component {
120
116
  NeoArray.add(iconNode.cls, value);
121
117
  }
122
118
 
123
- me.vdom = vdom;
119
+ me.update();
124
120
  }
125
121
 
126
122
  /**
@@ -130,9 +126,7 @@ class Chip extends Component {
130
126
  * @protected
131
127
  */
132
128
  afterSetText(value, oldValue) {
133
- let me = this,
134
- vdom = me.vdom,
135
- textNode = vdom.cn[1];
129
+ let textNode = this.vdom.cn[1];
136
130
 
137
131
  if (!value || value === '') {
138
132
  textNode.removeDom = true;
@@ -141,7 +135,7 @@ class Chip extends Component {
141
135
  textNode.innerHTML = value;
142
136
  }
143
137
 
144
- me.vdom = vdom;
138
+ this.update();
145
139
  }
146
140
 
147
141
  /**
@@ -132,8 +132,7 @@ class Circle extends Component {
132
132
  cls : ['neo-circle', 'neo-circle-back']
133
133
  });
134
134
 
135
- let me = this,
136
- vdom = me.vdom;
135
+ let me = this;
137
136
 
138
137
  if (!me.backsideIconPath) {
139
138
  me.backsideIconPath = Neo.config.resourcesPath + 'images/circle/';
@@ -177,7 +176,7 @@ class Circle extends Component {
177
176
  me.updateOuterCircle(true);
178
177
  me.updateTitle(true);
179
178
 
180
- me.vdom = vdom;
179
+ me.update();
181
180
  }
182
181
 
183
182
  /**
@@ -205,8 +204,7 @@ class Circle extends Component {
205
204
  afterSetMaxItems(value, oldValue) {
206
205
  if (oldValue && this.rendered) {
207
206
  let me = this,
208
- frontEl = me.getFrontEl(),
209
- vdom = me.vdom;
207
+ frontEl = me.getFrontEl();
210
208
 
211
209
  if (value < oldValue) {
212
210
  if (me.collapsed) {
@@ -216,12 +214,12 @@ class Circle extends Component {
216
214
 
217
215
  setTimeout(() => {
218
216
  frontEl.cn.splice(value + 2);
219
- me.vdom = vdom;
217
+ me.update();
220
218
  }, 300);
221
219
  }
222
220
 
223
221
  me.updateItemPositions(true);
224
- me.vdom = vdom;
222
+ me.update();
225
223
  } else {
226
224
  me.createItems(oldValue, true);
227
225
  me.updateItemPositions(true);
@@ -229,7 +227,7 @@ class Circle extends Component {
229
227
  me.promiseVdomUpdate().then(() => {
230
228
  if (!me.collapsed) {
231
229
  me.updateItemOpacity(1, true, oldValue);
232
- me.vdom = vdom;
230
+ me.update();
233
231
  }
234
232
  });
235
233
  }
@@ -372,8 +370,7 @@ class Circle extends Component {
372
370
  collapseItem(data) {
373
371
  let me = this,
374
372
  item = me.getItemEl(data.path[0].id),
375
- style = item.cn[0].style,
376
- vdom = me.vdom;
373
+ style = item.cn[0].style;
377
374
 
378
375
  delete style.marginLeft;
379
376
  delete style.marginTop;
@@ -382,7 +379,7 @@ class Circle extends Component {
382
379
  style.height = me.itemSize + 'px';
383
380
  style.width = me.itemSize + 'px';
384
381
 
385
- me.vdom = vdom;
382
+ me.update();
386
383
  }
387
384
 
388
385
  /**
@@ -470,8 +467,7 @@ class Circle extends Component {
470
467
  */
471
468
  expandItem(data) {
472
469
  let me = this,
473
- item = me.getItemEl(data.path[0].id),
474
- vdom = me.vdom;
470
+ item = me.getItemEl(data.path[0].id);
475
471
 
476
472
  item.cn[0].style = {
477
473
  height : (me.itemSize + 20) + 'px',
@@ -481,17 +477,16 @@ class Circle extends Component {
481
477
  zIndex : 40
482
478
  };
483
479
 
484
- me.vdom = vdom;
480
+ me.update();
485
481
  }
486
482
 
487
483
  flipCircle() {
488
- let me = this,
489
- vdom = me.vdom;
484
+ let me = this;
490
485
 
491
- NeoArray[me.isFlipped ? 'remove': 'add'](vdom.cn[0].cls, 'neo-flipped');
486
+ NeoArray[me.isFlipped ? 'remove': 'add'](me.vdom.cn[0].cls, 'neo-flipped');
492
487
 
493
488
  me.isFlipped = !me.isFlipped;
494
- me.vdom = vdom;
489
+ me.update();
495
490
  }
496
491
 
497
492
  /**
@@ -644,8 +639,7 @@ class Circle extends Component {
644
639
  */
645
640
  rotate() {
646
641
  let me = this,
647
- vdom = me.vdom,
648
- circleCenterEl = vdom.cn[0],
642
+ circleCenterEl = me.vdom.cn[0],
649
643
  transform = [
650
644
  `rotateX(${me.rotateX}deg)`,
651
645
  `rotateY(${me.rotateY}deg)`,
@@ -660,12 +654,12 @@ class Circle extends Component {
660
654
  me.promiseVdomUpdate().then(() => {
661
655
  me.updateItemAngle(true);
662
656
  circleCenterEl.style.transform = transform;
663
- me.vdom = vdom;
657
+ me.update();
664
658
  });
665
659
  } else {
666
660
  me.updateItemAngle(true);
667
661
  circleCenterEl.style.transform = transform;
668
- me.vdom = vdom;
662
+ me.update();
669
663
  }
670
664
  }
671
665
 
@@ -113,7 +113,7 @@ class Clock extends Component {
113
113
  vdom.cn[0].style.transform = `rotate(${minutesAngle}deg)`;
114
114
  vdom.cn[1].style.transform = `rotate(${hoursAngle}deg)`;
115
115
 
116
- this.vdom = vdom;
116
+ this.update();
117
117
  }
118
118
  }
119
119
 
@@ -231,14 +231,13 @@ class DateSelector extends Component {
231
231
  afterSetLocale(value, oldValue) {
232
232
  if (oldValue !== undefined) {
233
233
  let me = this,
234
- dt = new Intl.DateTimeFormat(me.locale, {month: 'short'}),
235
- vdom = me.vdom;
234
+ dt = new Intl.DateTimeFormat(me.locale, {month: 'short'});
236
235
 
237
236
  me.updateHeaderDays(me.dayNameFormat, '', true);
238
237
 
239
238
  me.getHeaderMonthEl().html = dt.format(me.currentDate);
240
239
 
241
- me.vdom = vdom;
240
+ me.update();
242
241
  }
243
242
  }
244
243
 
@@ -423,7 +422,7 @@ class DateSelector extends Component {
423
422
  me.promiseVdomUpdate().then(() => {
424
423
  me.changeMonthTransitionCallback({data: data[0], slideDirection: slideDirection});
425
424
  me.updateHeaderMonthTransitionCallback(headerMonthOpts);
426
- me.vdom = vdom;
425
+ me.update();
427
426
 
428
427
  setTimeout(() => {
429
428
  me.changeMonthWrapperCallback(slideDirection);
@@ -453,7 +452,6 @@ class DateSelector extends Component {
453
452
 
454
453
  x = slideDirection === 'right' ? -data.width : 0;
455
454
  vdom.cn[1].cn[0].style.transform = `translateX(${x}px)`;
456
- me._vdom = vdom; // silent update
457
455
  }
458
456
 
459
457
  /**
@@ -466,7 +464,6 @@ class DateSelector extends Component {
466
464
  vdom = me.vdom;
467
465
 
468
466
  vdom.cn[1] = vdom.cn[1].cn[0].cn[slideDirection === 'right' ? 1 : 0];
469
- me._vdom = vdom; // silent update
470
467
  }
471
468
 
472
469
  /**
@@ -511,7 +508,7 @@ class DateSelector extends Component {
511
508
  me.promiseVdomUpdate(vdom).then(() => {
512
509
  y = scrollFromTop ? -data.height : 0;
513
510
  vdom.cn[1].cn[0].style.transform = `translateY(${y}px)`;
514
- me.vdom = vdom;
511
+ me.update();
515
512
 
516
513
  setTimeout(() => {
517
514
  vdom.cn[1] = vdom.cn[1].cn[0].cn[scrollFromTop ? 1 : 0];
@@ -926,7 +923,6 @@ class DateSelector extends Component {
926
923
 
927
924
  y = slideDirection === 'top' ? -data.height : 0;
928
925
  headerCenterEl.cn[0].cn[0].style.transform = `translateY(${y}px)`;
929
- me._vdom = vdom; // silent update
930
926
  }
931
927
 
932
928
  /**
@@ -944,7 +940,6 @@ class DateSelector extends Component {
944
940
  slideDirection = yearIncrement > 0 ? 'bottom' : yearIncrement < 0 ? 'top' : increment < 0 ? 'top' : 'bottom';
945
941
 
946
942
  headerCenterEl.cn[0] = headerCenterEl.cn[0].cn[0].cn[slideDirection === 'top' ? 1 : 0];
947
- me._vdom = vdom; // silent update
948
943
  }
949
944
 
950
945
  /**
@@ -211,8 +211,7 @@ class Gallery extends Component {
211
211
  super.afterSetId(value, oldValue);
212
212
 
213
213
  let me = this,
214
- vdom = me.vdom,
215
- origin = vdom.cn[0],
214
+ origin = me.vdom.cn[0],
216
215
  camera = origin.cn[0],
217
216
  dolly = camera.cn[0],
218
217
  view = dolly.cn[0],
@@ -223,7 +222,7 @@ class Gallery extends Component {
223
222
  origin.id = prefix + 'origin';
224
223
  view .id = prefix + 'view';
225
224
 
226
- me.vdom = vdom;
225
+ me.update();
227
226
  }
228
227
 
229
228
  /**
@@ -297,7 +296,6 @@ class Gallery extends Component {
297
296
  let me = this,
298
297
  i = 0,
299
298
  len = Math.min(me.maxItems, me.store.items.length),
300
- vdom = me.vdom,
301
299
  view = me.getItemsRoot();
302
300
 
303
301
  if (me.rendered) {
@@ -308,7 +306,7 @@ class Gallery extends Component {
308
306
  view.cn[i].style.transform = me.getItemTransform(i);
309
307
  }
310
308
 
311
- me.vdom = vdom;
309
+ me.update();
312
310
 
313
311
  setTimeout(() => {
314
312
  let sm = me.selectionModel;
@@ -453,12 +451,11 @@ class Gallery extends Component {
453
451
  */
454
452
  destroyItems(startIndex, amountItems) {
455
453
  let me = this,
456
- vdom = me.vdom,
457
454
  countItems = amountItems || me.store.getCount(),
458
455
  selectedItem = me.selectionModel.items[0];
459
456
 
460
457
  me.getItemsRoot().cn.splice(startIndex || 0, countItems);
461
- me.vdom = vdom;
458
+ me.update();
462
459
 
463
460
  if (me.selectionModel.hasSelection() && selectedItem > startIndex && selectedItem < startIndex + countItems) {
464
461
  me.afterSetMounted(true, false);
@@ -546,12 +543,10 @@ class Gallery extends Component {
546
543
  *
547
544
  */
548
545
  moveOrigin() {
549
- let me = this,
550
- vdom = me.vdom;
551
-
552
- vdom.cn[0].style.transform = me.translate3d(me.translateX, me.translateY, me.translateZ);
546
+ let me = this;
553
547
 
554
- me.vdom = vdom;
548
+ me.vdom.cn[0].style.transform = me.translate3d(me.translateX, me.translateY, me.translateZ);
549
+ me.update();
555
550
  }
556
551
 
557
552
  /**
@@ -595,7 +590,7 @@ class Gallery extends Component {
595
590
  itemHeight = me.itemHeight,
596
591
  itemWidth = me.itemWidth,
597
592
  vdom = me.vdom,
598
- camera = vdom.cn[0].cn[0],
593
+ camera = me.vdom.cn[0].cn[0],
599
594
  cameraStyle = camera.style,
600
595
  dollyTransform = me.getCameraTransformForCell(index),
601
596
  height = me.offsetHeight / (me.amountRows + 2),
@@ -651,17 +646,15 @@ class Gallery extends Component {
651
646
  cameraStyle.transform = `rotateY(${angle}deg)`;
652
647
  cameraStyle.transitionDuration = '330ms';
653
648
 
654
- me.vdom = vdom;
649
+ me.update();
655
650
 
656
651
  timeoutId = setTimeout(() => {
657
652
  NeoArray.remove(me.transitionTimeouts, timeoutId);
658
653
 
659
- vdom = me.vdom;
660
-
661
654
  cameraStyle.transform = 'rotateY(0deg)';
662
655
  cameraStyle.transitionDuration = '5000ms';
663
656
 
664
- me.vdom = vdom;
657
+ me.update();
665
658
  }, 330);
666
659
 
667
660
  me.transitionTimeouts.push(timeoutId);
@@ -678,7 +671,6 @@ class Gallery extends Component {
678
671
  hasChange = false,
679
672
  items = [...me.store.items || []],
680
673
  newCn = [],
681
- vdom = me.vdom,
682
674
  view = me.getItemsRoot(),
683
675
  vdomMap = view.cn.map(e => e.id),
684
676
  fromIndex, vdomId;
@@ -699,7 +691,7 @@ class Gallery extends Component {
699
691
 
700
692
  if (hasChange) {
701
693
  view.cn = newCn;
702
- me.vdom = vdom;
694
+ me.update();
703
695
 
704
696
  setTimeout(() => {
705
697
  me.afterSetOrderByRow(me.orderByRow, !me.orderByRow);
@@ -725,7 +717,6 @@ class Gallery extends Component {
725
717
  amountRows = me.amountRows,
726
718
  orderByRow = me.orderByRow,
727
719
  secondLastColumn = amountRows - 1,
728
- vdom = me.vdom,
729
720
  view = me.getItemsRoot(),
730
721
  amountColumns;
731
722
 
@@ -741,7 +732,7 @@ class Gallery extends Component {
741
732
  }
742
733
  });
743
734
 
744
- me.vdom = vdom;
735
+ me.update();
745
736
  }
746
737
 
747
738
  /**
@@ -637,11 +637,10 @@ class Helix extends Component {
637
637
  * @param {Number} [amountItems]
638
638
  */
639
639
  destroyItems(startIndex, amountItems) {
640
- let me = this,
641
- vdom = me.vdom;
640
+ let me = this;
642
641
 
643
642
  me.getItemsRoot().cn.splice(startIndex || 0, amountItems || me.store.getCount());
644
- me.vdom = vdom;
643
+ me.update();
645
644
  }
646
645
 
647
646
  /**
@@ -39,9 +39,8 @@ class Label extends Component {
39
39
  * @protected
40
40
  */
41
41
  afterSetText(value, oldValue) {
42
- let vdom = this.vdom;
43
- vdom.html = value;
44
- this.vdom = vdom;
42
+ this.vdom.html = value;
43
+ this.update();
45
44
  }
46
45
  }
47
46
 
@@ -51,9 +51,8 @@ class Legend extends Component {
51
51
  * @protected
52
52
  */
53
53
  afterSetIconCls(value, oldValue) {
54
- let vdom = this.vdom;
55
- vdom.cn[0].html = `<i class="neo-legend-icon ${value}"></i>`;
56
- this.vdom = vdom;
54
+ this.vdom.cn[0].html = `<i class="neo-legend-icon ${value}"></i>`;
55
+ this.update();
57
56
  }
58
57
 
59
58
  /**
@@ -63,9 +62,8 @@ class Legend extends Component {
63
62
  * @protected
64
63
  */
65
64
  afterSetText(value, oldValue) {
66
- let vdom = this.vdom;
67
- vdom.cn[1].html = value;
68
- this.vdom = vdom;
65
+ this.vdom.cn[1].html = value;
66
+ this.update();
69
67
  }
70
68
 
71
69
  /**
@@ -75,9 +73,8 @@ class Legend extends Component {
75
73
  * @protected
76
74
  */
77
75
  afterSetUseIcon(value, oldValue) {
78
- let vdom = this.vdom;
79
- vdom.cn[0].removeDom = !value;
80
- this.vdom = vdom;
76
+ this.vdom.cn[0].removeDom = !value;
77
+ this.update();
81
78
  }
82
79
  }
83
80