neo.mjs 4.3.9 → 4.3.11

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 (95) hide show
  1. package/README.md +1 -1
  2. package/apps/covid/view/MainContainerController.mjs +9 -11
  3. package/apps/krausest/view/MainComponent.mjs +3 -4
  4. package/apps/krausest/view/TableComponent.mjs +2 -3
  5. package/apps/realworld/view/HeaderComponent.mjs +7 -10
  6. package/apps/realworld/view/HomeComponent.mjs +16 -24
  7. package/apps/realworld/view/MainContainerController.mjs +3 -3
  8. package/apps/realworld/view/article/CommentComponent.mjs +11 -19
  9. package/apps/realworld/view/article/Component.mjs +20 -36
  10. package/apps/realworld/view/article/CreateCommentComponent.mjs +9 -16
  11. package/apps/realworld/view/article/CreateComponent.mjs +12 -20
  12. package/apps/realworld/view/article/PreviewComponent.mjs +16 -30
  13. package/apps/realworld/view/article/TagListComponent.mjs +4 -5
  14. package/apps/realworld/view/user/ProfileComponent.mjs +14 -21
  15. package/apps/realworld/view/user/SettingsComponent.mjs +9 -16
  16. package/apps/realworld/view/user/SignUpComponent.mjs +6 -9
  17. package/apps/realworld2/view/MainContainerController.mjs +2 -2
  18. package/apps/realworld2/view/article/PreviewComponent.mjs +17 -31
  19. package/apps/realworld2/view/article/PreviewList.mjs +4 -7
  20. package/apps/realworld2/view/article/TagListComponent.mjs +4 -5
  21. package/apps/sharedcovid/view/MainContainerController.mjs +10 -13
  22. package/apps/website/data/blog.json +1 -1
  23. package/apps/website/view/blog/List.mjs +2 -3
  24. package/buildScripts/injectPackageVersion.mjs +43 -0
  25. package/docs/app/view/ApiTreeList.mjs +2 -6
  26. package/docs/app/view/ExamplesTreeList.mjs +2 -6
  27. package/docs/app/view/TutorialsTreeList.mjs +2 -6
  28. package/docs/app/view/classdetails/HeaderComponent.mjs +3 -4
  29. package/docs/app/view/classdetails/HierarchyTreeList.mjs +1 -2
  30. package/docs/app/view/classdetails/MembersList.mjs +4 -6
  31. package/docs/app/view/classdetails/SourceViewComponent.mjs +3 -6
  32. package/docs/app/view/classdetails/TutorialComponent.mjs +4 -5
  33. package/examples/component/coronaGallery/CountryGallery.mjs +36 -59
  34. package/examples/form/field/date/MainContainer.mjs +1 -1
  35. package/examples/tabs/MainContainer.mjs +4 -6
  36. package/examples/todoList/version1/MainComponent.mjs +5 -7
  37. package/examples/todoList/version2/TodoList.mjs +4 -5
  38. package/package.json +8 -7
  39. package/resources/scss/src/draggable/tree/DragZone.scss +3 -1
  40. package/src/DefaultConfig.mjs +9 -1
  41. package/src/button/Base.mjs +18 -27
  42. package/src/button/Split.mjs +3 -4
  43. package/src/calendar/view/MainContainer.mjs +3 -5
  44. package/src/calendar/view/SettingsContainer.mjs +3 -5
  45. package/src/calendar/view/YearComponent.mjs +7 -9
  46. package/src/calendar/view/month/Component.mjs +7 -12
  47. package/src/calendar/view/week/Component.mjs +2 -3
  48. package/src/calendar/view/week/TimeAxisComponent.mjs +0 -3
  49. package/src/component/Base.mjs +37 -55
  50. package/src/component/Carousel.mjs +5 -9
  51. package/src/component/Chip.mjs +6 -12
  52. package/src/component/Circle.mjs +16 -22
  53. package/src/component/Clock.mjs +1 -1
  54. package/src/component/DateSelector.mjs +4 -9
  55. package/src/component/Gallery.mjs +12 -21
  56. package/src/component/Helix.mjs +2 -3
  57. package/src/component/Label.mjs +2 -3
  58. package/src/component/Legend.mjs +6 -9
  59. package/src/container/Base.mjs +5 -9
  60. package/src/container/Panel.mjs +4 -0
  61. package/src/dialog/Base.mjs +40 -42
  62. package/src/dialog/header/Toolbar.mjs +105 -0
  63. package/src/draggable/list/DragZone.mjs +1 -2
  64. package/src/draggable/tree/DragZone.mjs +1 -2
  65. package/src/form/Fieldset.mjs +4 -6
  66. package/src/form/field/CheckBox.mjs +23 -39
  67. package/src/form/field/Color.mjs +2 -3
  68. package/src/form/field/Display.mjs +1 -2
  69. package/src/form/field/Number.mjs +1 -2
  70. package/src/form/field/Picker.mjs +0 -1
  71. package/src/form/field/Text.mjs +40 -57
  72. package/src/form/field/TextArea.mjs +2 -3
  73. package/src/form/field/trigger/Base.mjs +2 -3
  74. package/src/form/field/trigger/SpinUpDown.mjs +3 -4
  75. package/src/form/field/trigger/Time.mjs +3 -4
  76. package/src/grid/View.mjs +2 -2
  77. package/src/grid/header/Toolbar.mjs +1 -2
  78. package/src/layout/Card.mjs +2 -2
  79. package/src/list/Base.mjs +6 -11
  80. package/src/list/plugin/Animate.mjs +5 -12
  81. package/src/plugin/Resizable.mjs +3 -6
  82. package/src/selection/Model.mjs +3 -7
  83. package/src/selection/grid/CellColumnModel.mjs +2 -5
  84. package/src/selection/grid/CellColumnRowModel.mjs +2 -5
  85. package/src/selection/grid/CellRowModel.mjs +4 -13
  86. package/src/selection/table/CellColumnModel.mjs +2 -5
  87. package/src/selection/table/CellColumnRowModel.mjs +2 -5
  88. package/src/selection/table/CellRowModel.mjs +4 -13
  89. package/src/sitemap/Component.mjs +1 -1
  90. package/src/tab/Strip.mjs +8 -11
  91. package/src/tab/header/Toolbar.mjs +2 -3
  92. package/src/table/View.mjs +3 -3
  93. package/src/table/header/Button.mjs +4 -6
  94. package/src/table/header/Toolbar.mjs +3 -5
  95. package/src/tree/List.mjs +6 -9
@@ -143,16 +143,16 @@ class Base extends Component {
143
143
  * @protected
144
144
  */
145
145
  afterSetBadgePosition(value, oldValue) {
146
- let me = this,
147
- badgeEl = me.getBadgeNode(),
148
- cls = badgeEl.cls || [],
149
- vdom = me.vdom;
146
+ let me = this,
147
+ badgeNode = me.getBadgeNode(),
148
+ cls = badgeNode.cls || [];
150
149
 
151
150
  NeoArray.remove(cls, 'neo-' + oldValue);
152
151
  NeoArray.add(cls, 'neo-' + value);
153
152
 
154
- badgeEl.cls = cls;
155
- me.vdom = vdom;
153
+ badgeNode.cls = cls;
154
+
155
+ me.update();
156
156
  }
157
157
 
158
158
  /**
@@ -163,13 +163,12 @@ class Base extends Component {
163
163
  */
164
164
  afterSetBadgeText(value, oldValue) {
165
165
  let me = this,
166
- badgeNode = me.getBadgeNode(),
167
- vdom = me.vdom;
166
+ badgeNode = me.getBadgeNode();
168
167
 
169
168
  badgeNode.html = value;
170
169
  badgeNode.removeDom = !Boolean(value);
171
170
 
172
- me.vdom = vdom;
171
+ me.update();
173
172
  }
174
173
 
175
174
  /**
@@ -195,7 +194,6 @@ class Base extends Component {
195
194
  */
196
195
  afterSetIconCls(value, oldValue) {
197
196
  let me = this,
198
- vdom = me.vdom,
199
197
  iconNode = me.getIconNode();
200
198
 
201
199
  NeoArray.remove(iconNode.cls, oldValue);
@@ -203,7 +201,7 @@ class Base extends Component {
203
201
 
204
202
  iconNode.removeDom = !value || value === '';
205
203
 
206
- me.vdom = vdom;
204
+ me.update();
207
205
  }
208
206
 
209
207
  /**
@@ -214,7 +212,6 @@ class Base extends Component {
214
212
  */
215
213
  afterSetIconColor(value, oldValue) {
216
214
  let me = this,
217
- vdom = me.vdom,
218
215
  iconNode = me.getIconNode();
219
216
 
220
217
  if (!iconNode.style) {
@@ -226,7 +223,7 @@ class Base extends Component {
226
223
  }
227
224
 
228
225
  iconNode.style.color = value;
229
- me.vdom = vdom;
226
+ me.update();
230
227
  }
231
228
 
232
229
  /**
@@ -280,7 +277,6 @@ class Base extends Component {
280
277
  */
281
278
  afterSetText(value, oldValue) {
282
279
  let me = this,
283
- vdom = me.vdom,
284
280
  vdomRoot = me.getVdomRoot(),
285
281
  textNode = vdomRoot.cn[1];
286
282
 
@@ -295,7 +291,7 @@ class Base extends Component {
295
291
  textNode.innerHTML = value;
296
292
  }
297
293
 
298
- me.vdom = vdom;
294
+ me.update();
299
295
  }
300
296
 
301
297
  /**
@@ -306,7 +302,6 @@ class Base extends Component {
306
302
  */
307
303
  afterSetUrl(value, oldValue) {
308
304
  let me = this,
309
- vdom = me.vdom,
310
305
  vdomRoot = me.getVdomRoot();
311
306
 
312
307
  if (value) {
@@ -317,7 +312,7 @@ class Base extends Component {
317
312
  vdomRoot.tag = 'button';
318
313
  }
319
314
 
320
- me.vdom = vdom;
315
+ me.update();
321
316
  }
322
317
 
323
318
  /**
@@ -329,8 +324,7 @@ class Base extends Component {
329
324
  afterSetUseRippleEffect(value, oldValue) {
330
325
  let me = this,
331
326
  listener = {click: me.showRipple, scope: me},
332
- rippleWrapper = me.getRippleWrapper(),
333
- vdom = me.vdom;
327
+ rippleWrapper = me.getRippleWrapper();
334
328
 
335
329
  if (!value && oldValue) {
336
330
  me.removeDomListeners(listener);
@@ -340,7 +334,7 @@ class Base extends Component {
340
334
 
341
335
  // setting the config to false should end running ripple animations
342
336
  rippleWrapper.removeDom = true;
343
- me.vdom = vdom;
337
+ me.update();
344
338
  }
345
339
 
346
340
  /**
@@ -351,7 +345,6 @@ class Base extends Component {
351
345
  */
352
346
  afterSetUrlTarget(value, oldValue) {
353
347
  let me = this,
354
- vdom = me.vdom,
355
348
  vdomRoot = me.getVdomRoot();
356
349
 
357
350
  if (me.url) {
@@ -360,7 +353,7 @@ class Base extends Component {
360
353
  delete vdomRoot.target;
361
354
  }
362
355
 
363
- me.vdom = vdom;
356
+ me.update();
364
357
  }
365
358
 
366
359
  /**
@@ -459,7 +452,6 @@ class Base extends Component {
459
452
  buttonRect = data.path[0].rect,
460
453
  diameter = Math.max(buttonRect.height, buttonRect.width),
461
454
  radius = diameter / 2,
462
- vdom = me.vdom,
463
455
  rippleEffectDuration = me.rippleEffectDuration,
464
456
  rippleWrapper = me.getRippleWrapper(),
465
457
  rippleEl = rippleWrapper.cn[0],
@@ -474,13 +466,12 @@ class Base extends Component {
474
466
  });
475
467
 
476
468
  delete rippleWrapper.removeDom;
477
-
478
- me.vdom = vdom;
469
+ me.update();
479
470
 
480
471
  await Neo.timeout(1);
481
472
 
482
473
  rippleEl.style.animation = `ripple ${rippleEffectDuration}ms linear`;
483
- me.vdom = vdom;
474
+ me.update();
484
475
 
485
476
  me.#rippleTimeoutId = rippleTimeoutId = setTimeout(() => {
486
477
  // we do not want to break animations when clicking multiple times
@@ -488,7 +479,7 @@ class Base extends Component {
488
479
  me.#rippleTimeoutId = null;
489
480
 
490
481
  rippleWrapper.removeDom = true;
491
- me.vdom = vdom;
482
+ me.update();
492
483
  }
493
484
  }, rippleEffectDuration);
494
485
  }
@@ -54,8 +54,7 @@ class Split extends Button {
54
54
  construct(config) {
55
55
  super.construct(config);
56
56
 
57
- let me = this,
58
- vdom = me.vdom;
57
+ let me = this;
59
58
 
60
59
  me.triggerButton = Neo.create({
61
60
  module : Button,
@@ -68,8 +67,8 @@ class Split extends Button {
68
67
  ...me.triggerButtonConfig
69
68
  });
70
69
 
71
- vdom.cn.push(me.triggerButton.vdom);
72
- me.vdom = vdom;
70
+ me.vdom.cn.push(me.triggerButton.vdom);
71
+ me.update();
73
72
  }
74
73
 
75
74
  /**
@@ -258,8 +258,7 @@ class MainContainer extends Container {
258
258
  if (oldValue !== undefined) {
259
259
  let me = this,
260
260
  sideBar = me.items[1].items[0],
261
- style = sideBar.style || {},
262
- vdom;
261
+ style = sideBar.style || {};
263
262
 
264
263
  if (value) {
265
264
  delete sideBar.vdom.removeDom;
@@ -279,9 +278,8 @@ class MainContainer extends Container {
279
278
 
280
279
  me.promiseVdomUpdate().then(() => {
281
280
  setTimeout(() => {
282
- vdom = sideBar.vdom;
283
- vdom.removeDom = true;
284
- sideBar.vdom = vdom;
281
+ sideBar.vdom.removeDom = true;
282
+ sideBar.update();
285
283
 
286
284
  sideBar.mounted = false;
287
285
  }, 400);
@@ -51,8 +51,7 @@ class SettingsContainer extends Container {
51
51
  */
52
52
  collapse(width) {
53
53
  let me = this,
54
- style = me.style || {},
55
- vdom;
54
+ style = me.style || {};
56
55
 
57
56
  style.marginRight = `-${width}px`;
58
57
  me._style = style; // silent update
@@ -62,9 +61,8 @@ class SettingsContainer extends Container {
62
61
  setTimeout(() => {
63
62
  me.collapsed = true;
64
63
 
65
- vdom = me.vdom;
66
- vdom.removeDom = true;
67
- me.vdom = vdom;
64
+ me.vdom.removeDom = true;
65
+ me.update();
68
66
 
69
67
  me.mounted = false;
70
68
  }, 400);
@@ -390,13 +390,12 @@ class YearComponent extends Component {
390
390
  */
391
391
  afterSetShowWeekNumbers(value, oldValue) {
392
392
  if (oldValue !== undefined) {
393
- let me = this,
394
- vdom = me.vdom,
395
- i = 0,
393
+ let me = this,
394
+ i = 0,
396
395
  itemCn, j, len;
397
396
 
398
397
  for (; i < 12; i++) {
399
- itemCn = vdom.cn[0].cn[1].cn[i].cn;
398
+ itemCn = me.vdom.cn[0].cn[1].cn[i].cn;
400
399
  len = itemCn.length;
401
400
 
402
401
  for (j = 1; j < len; j++) {
@@ -404,7 +403,7 @@ class YearComponent extends Component {
404
403
  }
405
404
  }
406
405
 
407
- me.vdom = vdom;
406
+ me.update();
408
407
  }
409
408
  }
410
409
 
@@ -417,7 +416,6 @@ class YearComponent extends Component {
417
416
  afterSetSixWeeksPerMonth(value, oldValue) {
418
417
  if (oldValue !== undefined) {
419
418
  let me = this,
420
- vdom = me.vdom,
421
419
  date = me.currentDate, // cloned
422
420
  i = 0;
423
421
 
@@ -425,11 +423,11 @@ class YearComponent extends Component {
425
423
  date.setDate(1);
426
424
 
427
425
  for (; i < 12; i++) {
428
- vdom.cn[0].cn[1].cn[i].cn[7].removeDom = DateUtil.getWeeksOfMonth(date, me.weekStartDay) === 5 && !value;
426
+ me.vdom.cn[0].cn[1].cn[i].cn[7].removeDom = DateUtil.getWeeksOfMonth(date, me.weekStartDay) === 5 && !value;
429
427
  date.setMonth(date.getMonth() + 1);
430
428
  }
431
429
 
432
- me.vdom = vdom;
430
+ me.update();
433
431
  }
434
432
  }
435
433
 
@@ -517,7 +515,7 @@ class YearComponent extends Component {
517
515
  me.promiseVdomUpdate(vdom).then(() => {
518
516
  y = scrollFromTop ? -data.height : 0;
519
517
  vdom.cn[0].cn[0].style.transform = `translateY(${y}px)`;
520
- me.vdom = vdom;
518
+ me.update();
521
519
 
522
520
  setTimeout(() => {
523
521
  vdom.cn[0] = vdom.cn[0].cn[0].cn[scrollFromTop ? 1 : 0];
@@ -376,11 +376,8 @@ class Component extends BaseComponent {
376
376
  * @protected
377
377
  */
378
378
  afterSetUseScrollBoxShadows(value, oldValue) {
379
- let me = this,
380
- vdom = me.vdom;
381
-
382
- NeoArray[value ? 'add' : 'remove'](me.vdom.cn[1].cls, 'neo-scroll-shadows');
383
- me.vdom = vdom;
379
+ NeoArray[value ? 'add' : 'remove'](this.vdom.cn[1].cls, 'neo-scroll-shadows');
380
+ this.update();
384
381
  }
385
382
 
386
383
  /**
@@ -635,8 +632,7 @@ class Component extends BaseComponent {
635
632
  onWheel(data) {
636
633
  if (Math.abs(data.deltaY) > Math.abs(data.deltaX)) {
637
634
  let me = this,
638
- vdom = me.vdom,
639
- container = vdom.cn[1],
635
+ container = me.vdom.cn[1],
640
636
  i = 0,
641
637
  date, len, week;
642
638
 
@@ -663,7 +659,7 @@ class Component extends BaseComponent {
663
659
  container.cn.push(week.row);
664
660
  }
665
661
 
666
- me.vdom = vdom;
662
+ me.update();
667
663
  }
668
664
 
669
665
  else if (data.deltaY < 0 && Math.round(data.scrollTop / (data.clientHeight - me.headerHeight) * 6) < 1) {
@@ -706,7 +702,7 @@ class Component extends BaseComponent {
706
702
  me.isScrolling = true;
707
703
  NeoArray.add(me.vdom.cn[1].cls, 'neo-is-scrolling');
708
704
  me.vdom.cn[0].cn[0].style.opacity = 0;
709
- me.vdom = vdom;
705
+ me.update();
710
706
  }
711
707
 
712
708
  me.scrollTaskId && clearTimeout(me.scrollTaskId);
@@ -741,8 +737,7 @@ class Component extends BaseComponent {
741
737
 
742
738
  NeoArray.remove(vdom.cn[1].cls, 'neo-is-scrolling');
743
739
  header.style.opacity = 1;
744
-
745
- me.vdom = vdom;
740
+ me.update();
746
741
 
747
742
  // todo: #990 => scroll the view to the closest row
748
743
  }
@@ -792,7 +787,7 @@ class Component extends BaseComponent {
792
787
  date.setDate(date.getDate() + 1);
793
788
  }
794
789
 
795
- me.vdom = vdom;
790
+ me.update();
796
791
  }
797
792
 
798
793
  /**
@@ -507,7 +507,6 @@ class Component extends BaseComponent {
507
507
  afterSetTimeAxisPosition(value, oldValue) {
508
508
  let me = this,
509
509
  cls = me.cls,
510
- vdom = me.vdom,
511
510
  timeAxisContainer = me.getColumnTimeAxisContainer();
512
511
 
513
512
  NeoArray[value === 'end' ? 'add' : 'remove'](cls, 'neo-timeaxis-end');
@@ -516,8 +515,8 @@ class Component extends BaseComponent {
516
515
  timeAxisContainer.cn.unshift(timeAxisContainer.cn.pop()); // switch the order of the 2 items
517
516
  }
518
517
 
519
- me._cls = cls; // silent update
520
- me.vdom = vdom;
518
+ me.cls = cls; // silent update
519
+ me.update();
521
520
  }
522
521
 
523
522
  /**
@@ -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,
@@ -392,8 +392,8 @@ class Base extends CoreBase {
392
392
  * @protected
393
393
  */
394
394
  afterSetCls(value, oldValue) {
395
- oldValue = oldValue ? oldValue : [];
396
- value = value ? value : [];
395
+ oldValue = oldValue || [];
396
+ value = value || [];
397
397
 
398
398
  let me = this,
399
399
  vdom = me.vdom,
@@ -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) {
@@ -697,9 +695,7 @@ class Base extends CoreBase {
697
695
  * @protected
698
696
  */
699
697
  afterSetVnode(value, oldValue) {
700
- if (oldValue !== undefined) {
701
- this.syncVnodeTree();
702
- }
698
+ oldValue !== undefined && this.syncVnodeTree();
703
699
  }
704
700
 
705
701
  /**
@@ -719,8 +715,8 @@ class Base extends CoreBase {
719
715
  * @protected
720
716
  */
721
717
  afterSetWrapperCls(value, oldValue) {
722
- oldValue = oldValue ? oldValue : [];
723
- value = value ? value : [];
718
+ oldValue = oldValue || [];
719
+ value = value || [];
724
720
 
725
721
  let me = this,
726
722
  vdom = me.vdom,
@@ -763,11 +759,11 @@ class Base extends CoreBase {
763
759
  let me = this,
764
760
  vdom = me.vdom;
765
761
 
766
- if (!me.vdom.id) {
762
+ if (!vdom.id) {
767
763
  vdom.style = value;
768
- me.vdom = vdom;
764
+ me.update();
769
765
  } else {
770
- me.updateStyle(value, oldValue, me.vdom.id);
766
+ me.updateStyle(value, oldValue, vdom.id);
771
767
  }
772
768
  }
773
769
  }
@@ -932,8 +928,7 @@ class Base extends CoreBase {
932
928
  */
933
929
  changeVdomRootKey(key, value) {
934
930
  let me = this,
935
- root = me.getVdomRoot(),
936
- vdom = me.vdom;
931
+ root = me.getVdomRoot();
937
932
 
938
933
  if (value) {
939
934
  root[key] = value;
@@ -941,7 +936,7 @@ class Base extends CoreBase {
941
936
  delete root[key];
942
937
  }
943
938
 
944
- me.vdom = vdom;
939
+ me.update();
945
940
  }
946
941
 
947
942
  /**
@@ -1211,9 +1206,8 @@ class Base extends CoreBase {
1211
1206
 
1212
1207
  if (me.hideMode !== 'visibility') {
1213
1208
  let removeFn = function() {
1214
- let vdom = me.vdom;
1215
- vdom.removeDom = true;
1216
- me.vdom = vdom;
1209
+ me.vdom.removeDom = true;
1210
+ me.update();
1217
1211
  }
1218
1212
 
1219
1213
  if (timeout) {
@@ -1416,26 +1410,24 @@ class Base extends CoreBase {
1416
1410
  * @returns {Promise<any>}
1417
1411
  */
1418
1412
  promiseVdomUpdate(vdom=this.vdom, vnode=this.vnode) {
1419
- let me = this;
1413
+ let me = this,
1414
+ _vdom = me.vdom;
1420
1415
 
1421
1416
  // todo: updateVdom() should handle this
1422
1417
  // It is important to keep the vdom tree stable to ensure that containers do not lose the references to their
1423
1418
  // child vdom trees. The if case should not happen, but in case it does, keeping the reference and merging
1424
1419
  // the content over seems to be the best strategy
1425
- if (me._vdom !== vdom) {
1420
+ if (_vdom !== vdom) {
1426
1421
  Logger.warn('vdom got replaced for: ' + me.id + '. Copying the content into the reference holder object');
1427
1422
 
1428
- Object.keys(me._vdom).forEach(key => {
1429
- delete me._vdom[key];
1423
+ Object.keys(_vdom).forEach(key => {
1424
+ delete _vdom[key];
1430
1425
  });
1431
1426
 
1432
- Object.assign(me._vdom, vdom);
1433
- } else {
1434
- me._vdom = vdom;
1427
+ vdom = Object.assign(me._vdom, vdom);
1435
1428
  }
1436
1429
 
1437
1430
  if (me.silentVdomUpdate) {
1438
- me._vdom = vdom;
1439
1431
  return Promise.resolve();
1440
1432
  }
1441
1433
 
@@ -1443,7 +1435,7 @@ class Base extends CoreBase {
1443
1435
  if (me.mounted) {
1444
1436
  me.updateVdom(vdom, vnode, resolve, reject);
1445
1437
  } else {
1446
- me.vdom = vdom;
1438
+ me.update();
1447
1439
  resolve();
1448
1440
  }
1449
1441
  });
@@ -1557,8 +1549,7 @@ class Base extends CoreBase {
1557
1549
  * @returns {Promise<*>}
1558
1550
  */
1559
1551
  set(values={}, silent=false) {
1560
- let me = this,
1561
- vdom = me.vdom;
1552
+ let me = this;
1562
1553
 
1563
1554
  me.silentVdomUpdate = true;
1564
1555
 
@@ -1567,7 +1558,6 @@ class Base extends CoreBase {
1567
1558
  me.silentVdomUpdate = false;
1568
1559
 
1569
1560
  if (silent || !me.needsVdomUpdate) {
1570
- me._vdom = vdom;
1571
1561
  return Promise.resolve();
1572
1562
  } else {
1573
1563
  return me.promiseVdomUpdate();
@@ -1591,9 +1581,8 @@ class Base extends CoreBase {
1591
1581
  let me = this;
1592
1582
 
1593
1583
  if (me.hideMode !== 'visibility') {
1594
- let vdom = me.vdom;
1595
- vdom.removeDom = false;
1596
- me.vdom = vdom;
1584
+ me.vdom.removeDom = false;
1585
+ me.update();
1597
1586
  } else {
1598
1587
  let style = me.style;
1599
1588
  style.visibility = 'visible';
@@ -1714,6 +1703,13 @@ class Base extends CoreBase {
1714
1703
  return ComponentManager.up(this.id, config);
1715
1704
  }
1716
1705
 
1706
+ /**
1707
+ *
1708
+ */
1709
+ update() {
1710
+ this.afterSetVdom(this.vdom, null);
1711
+ }
1712
+
1717
1713
  /**
1718
1714
  * Delta updates for the cls config. Gets called after the cls config gets changed in case the component is mounted.
1719
1715
  * @param {String[]} cls
@@ -1724,8 +1720,7 @@ class Base extends CoreBase {
1724
1720
  updateCls(cls, oldCls, id=this.id) {
1725
1721
  let me = this,
1726
1722
  vnode = me.vnode,
1727
- vnodeTarget = VNodeUtil.findChildVnode(me.vnode, {id})?.vnode,
1728
- opts;
1723
+ vnodeTarget = VNodeUtil.findChildVnode(me.vnode, {id})?.vnode;
1729
1724
 
1730
1725
  if (!Neo.isEqual(cls, oldCls)) {
1731
1726
  if (vnodeTarget) {
@@ -1733,25 +1728,12 @@ class Base extends CoreBase {
1733
1728
  me.vnode = vnode;
1734
1729
  }
1735
1730
 
1736
- opts = {
1737
- action: 'updateDom',
1738
- deltas: [{
1739
- id,
1740
- cls: {
1741
- add : NeoArray.difference(cls, oldCls),
1742
- remove: NeoArray.difference(oldCls, cls)
1743
- }
1744
- }]
1745
- };
1746
-
1747
- if (Neo.currentWorker.isSharedWorker) {
1748
- opts.appName = me.appName;
1749
- }
1750
-
1751
- Neo.currentWorker.promiseMessage('main', opts).then(() => {
1752
- //console.log(me.vnode);
1753
- }).catch(err => {
1754
- console.log('Error attempting to update Component cls', err, me);
1731
+ Neo.applyDeltas(me.appName, {
1732
+ id,
1733
+ cls: {
1734
+ add : NeoArray.difference(cls, oldCls),
1735
+ remove: NeoArray.difference(oldCls, cls)
1736
+ }
1755
1737
  });
1756
1738
  }
1757
1739
  }
@@ -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
  /**