neo.mjs 6.21.0 → 6.22.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.
Files changed (150) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/colors/view/HeaderToolbar.mjs +7 -3
  3. package/apps/covid/view/MainContainerController.mjs +6 -6
  4. package/apps/covid/view/TableContainer.mjs +5 -3
  5. package/apps/covid/view/country/Gallery.mjs +6 -4
  6. package/apps/form/view/ViewportModel.mjs +2 -2
  7. package/apps/portal/index.html +23 -1
  8. package/apps/portal/view/HeaderToolbar.mjs +2 -2
  9. package/apps/portal/view/Viewport.mjs +3 -1
  10. package/apps/portal/view/ViewportController.mjs +10 -0
  11. package/apps/portal/view/about/Container.mjs +44 -0
  12. package/apps/portal/view/about/MemberContainer.mjs +191 -0
  13. package/apps/portal/view/home/MainContainer.mjs +9 -2
  14. package/apps/portal/view/home/parts/AfterMath.mjs +12 -8
  15. package/apps/portal/view/home/parts/Colors.mjs +8 -2
  16. package/apps/portal/view/home/parts/Features.mjs +50 -83
  17. package/apps/portal/view/home/parts/Helix.mjs +8 -2
  18. package/apps/portal/view/home/parts/MainNeo.mjs +17 -5
  19. package/apps/portal/view/learn/ContentView.mjs +18 -4
  20. package/apps/realworld/api/Base.mjs +5 -5
  21. package/apps/realworld/view/MainContainerController.mjs +19 -17
  22. package/apps/realworld2/api/Base.mjs +5 -5
  23. package/apps/realworld2/view/MainContainerController.mjs +11 -11
  24. package/apps/realworld2/view/article/Gallery.mjs +6 -4
  25. package/apps/sharedcovid/view/MainContainerController.mjs +11 -12
  26. package/apps/sharedcovid/view/TableContainer.mjs +7 -5
  27. package/apps/sharedcovid/view/country/Gallery.mjs +6 -4
  28. package/apps/shareddialog/view/MainContainerController.mjs +5 -5
  29. package/buildScripts/webpack/json/myApps.template.json +1 -2
  30. package/docs/app/view/classdetails/MembersList.mjs +8 -8
  31. package/docs/app/view/classdetails/SourceViewComponent.mjs +6 -6
  32. package/docs/app/view/classdetails/TutorialComponent.mjs +9 -9
  33. package/examples/ServiceWorker.mjs +2 -2
  34. package/examples/component/coronaGallery/CountryGallery.mjs +6 -4
  35. package/examples/component/helix/Viewport.mjs +2 -2
  36. package/examples/list/circle/MainContainer.mjs +7 -7
  37. package/examples/preloadingAssets/view/MainContainerController.mjs +5 -5
  38. package/package.json +5 -5
  39. package/resources/data/deck/learnneo/pages/GuideEvents.md +2 -4
  40. package/resources/data/deck/learnneo/pages/WhyNeo-Features.md +46 -0
  41. package/resources/data/deck/learnneo/pages/WhyNeo-Intro.md +5 -6
  42. package/resources/data/deck/learnneo/pages/WhyNeo-Multi-Window.md +1 -1
  43. package/resources/data/deck/learnneo/tree.json +3 -2
  44. package/resources/fonts/GT-Planar-Regular.otf +0 -0
  45. package/resources/images/logo/neo_logo_favicon.svg +16 -0
  46. package/resources/images/team/tobiu.png +0 -0
  47. package/resources/scss/src/apps/colors/HeaderToolbar.scss +23 -1
  48. package/resources/scss/src/apps/colors/Viewport.scss +10 -0
  49. package/resources/scss/src/apps/portal/HeaderToolbar.scss +7 -7
  50. package/resources/scss/src/apps/portal/Viewport.scss +10 -0
  51. package/resources/scss/src/apps/portal/about/Container.scss +4 -0
  52. package/resources/scss/src/apps/portal/about/MemberContainer.scss +70 -0
  53. package/resources/scss/src/apps/portal/home/FooterContainer.scss +12 -0
  54. package/resources/scss/src/apps/portal/home/parts/BaseContainer.scss +16 -16
  55. package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +62 -7
  56. package/resources/scss/src/apps/portal/learn/ContentView.scss +1 -0
  57. package/resources/scss/src/apps/portal/learn/PageContainer.scss +6 -0
  58. package/resources/scss/src/layout/Cube.scss +3 -3
  59. package/resources/scss/src/plugin/Resizable.scss +12 -19
  60. package/resources/scss/theme-neo-light/dialog/Base.scss +12 -2
  61. package/src/DefaultConfig.mjs +2 -2
  62. package/src/calendar/view/MainContainer.mjs +10 -10
  63. package/src/calendar/view/SettingsContainer.mjs +10 -10
  64. package/src/calendar/view/YearComponent.mjs +2 -2
  65. package/src/calendar/view/calendars/List.mjs +2 -2
  66. package/src/calendar/view/month/Component.mjs +4 -4
  67. package/src/calendar/view/week/Component.mjs +2 -2
  68. package/src/calendar/view/week/plugin/DragDrop.mjs +4 -4
  69. package/src/code/LivePreview.mjs +6 -15
  70. package/src/component/Base.mjs +3 -3
  71. package/src/component/Circle.mjs +5 -5
  72. package/src/component/DateSelector.mjs +4 -4
  73. package/src/component/Gallery.mjs +8 -8
  74. package/src/component/Helix.mjs +12 -12
  75. package/src/component/Toast.mjs +1 -1
  76. package/src/component/wrapper/AmChart.mjs +2 -2
  77. package/src/component/wrapper/CesiumJS.mjs +2 -2
  78. package/src/component/wrapper/GoogleMaps.mjs +2 -2
  79. package/src/component/wrapper/MonacoEditor.mjs +3 -3
  80. package/src/core/Observable.mjs +2 -2
  81. package/src/data/Store.mjs +2 -2
  82. package/src/dialog/Base.mjs +44 -14
  83. package/src/draggable/DragZone.mjs +4 -4
  84. package/src/draggable/list/DragZone.mjs +4 -4
  85. package/src/draggable/tab/header/toolbar/SortZone.mjs +2 -2
  86. package/src/draggable/toolbar/DragZone.mjs +4 -4
  87. package/src/draggable/toolbar/SortZone.mjs +3 -3
  88. package/src/form/field/ComboBox.mjs +3 -2
  89. package/src/form/field/FileUpload.mjs +3 -3
  90. package/src/form/field/Text.mjs +2 -2
  91. package/src/form/field/TextArea.mjs +2 -2
  92. package/src/grid/Container.mjs +2 -2
  93. package/src/layout/Cube.mjs +1 -3
  94. package/src/list/plugin/Animate.mjs +23 -23
  95. package/src/main/DomAccess.mjs +1 -1
  96. package/src/main/DomEvents.mjs +14 -5
  97. package/src/main/addon/AmCharts.mjs +2 -2
  98. package/src/main/addon/MapboxGL.mjs +4 -4
  99. package/src/manager/DomEvent.mjs +2 -2
  100. package/src/manager/Focus.mjs +2 -2
  101. package/src/manager/Toast.mjs +6 -4
  102. package/src/manager/rpc/Message.mjs +2 -2
  103. package/src/plugin/Resizable.mjs +11 -3
  104. package/src/selection/HelixModel.mjs +3 -3
  105. package/src/tab/Strip.mjs +4 -4
  106. package/src/table/Container.mjs +4 -4
  107. package/src/util/Logger.mjs +6 -4
  108. package/src/worker/App.mjs +2 -2
  109. package/src/worker/Manager.mjs +3 -2
  110. package/apps/website/Overwrites.mjs +0 -16
  111. package/apps/website/app.mjs +0 -7
  112. package/apps/website/data/blog.json +0 -769
  113. package/apps/website/data/docs.json +0 -29
  114. package/apps/website/data/examples_devmode.json +0 -173
  115. package/apps/website/data/examples_dist_dev.json +0 -164
  116. package/apps/website/data/examples_dist_prod.json +0 -164
  117. package/apps/website/index.html +0 -11
  118. package/apps/website/model/BlogPost.mjs +0 -60
  119. package/apps/website/model/Example.mjs +0 -48
  120. package/apps/website/neo-config.json +0 -7
  121. package/apps/website/store/BlogPosts.mjs +0 -39
  122. package/apps/website/store/Examples.mjs +0 -35
  123. package/apps/website/view/HeaderContainer.mjs +0 -72
  124. package/apps/website/view/MainContainer.mjs +0 -95
  125. package/apps/website/view/MainContainerController.mjs +0 -230
  126. package/apps/website/view/blog/Container.mjs +0 -50
  127. package/apps/website/view/blog/List.mjs +0 -171
  128. package/apps/website/view/examples/List.mjs +0 -124
  129. package/apps/website/view/examples/TabContainer.mjs +0 -66
  130. package/apps/website/view/home/DeveloperIntroComponent.mjs +0 -266
  131. package/apps/website/view/home/ExecutiveIntroComponent.mjs +0 -291
  132. package/apps/website/view/home/TabContainer.mjs +0 -56
  133. package/resources/scss/src/apps/website/HeaderContainer.scss +0 -136
  134. package/resources/scss/src/apps/website/MainContainer.scss +0 -25
  135. package/resources/scss/src/apps/website/blog/Container.scss +0 -18
  136. package/resources/scss/src/apps/website/blog/List.scss +0 -183
  137. package/resources/scss/src/apps/website/examples/List.scss +0 -157
  138. package/resources/scss/src/apps/website/home/TabContainer.scss +0 -117
  139. package/resources/scss/theme-dark/apps/website/HeaderContainer.scss +0 -5
  140. package/resources/scss/theme-dark/apps/website/MainContainer.scss +0 -4
  141. package/resources/scss/theme-dark/apps/website/blog/Container.scss +0 -3
  142. package/resources/scss/theme-dark/apps/website/home/TabContainer.scss +0 -4
  143. package/resources/scss/theme-light/apps/website/HeaderContainer.scss +0 -5
  144. package/resources/scss/theme-light/apps/website/MainContainer.scss +0 -4
  145. package/resources/scss/theme-light/apps/website/blog/Container.scss +0 -3
  146. package/resources/scss/theme-light/apps/website/home/TabContainer.scss +0 -4
  147. package/resources/scss/theme-neo-light/apps/website/HeaderContainer.scss +0 -5
  148. package/resources/scss/theme-neo-light/apps/website/MainContainer.scss +0 -4
  149. package/resources/scss/theme-neo-light/apps/website/blog/Container.scss +0 -3
  150. package/resources/scss/theme-neo-light/apps/website/home/TabContainer.scss +0 -4
@@ -8,6 +8,12 @@
8
8
  margin-top : 3rem;
9
9
  padding : 0 3rem;
10
10
 
11
+ @media (max-width: 600px) {
12
+ margin-bottom: 1rem;
13
+ margin-top : 1rem;
14
+ padding : 0 1rem;
15
+ }
16
+
11
17
  .neo-button {
12
18
  flex : 1 !important;
13
19
  height : 75px;
@@ -18,9 +18,9 @@
18
18
  --rot-y: 0deg;
19
19
  --rot-z: 0deg;
20
20
 
21
- --side-x: 300px;
22
- --side-y: 300px;
23
- --side-z: 300px;
21
+ --side-x: 0;
22
+ --side-y: 0;
23
+ --side-z: 0;
24
24
 
25
25
  background-color : transparent;
26
26
  height : var(--side-y);
@@ -1,7 +1,3 @@
1
- // font awesome does not have grip handles for corners.
2
- // using the th icon with a clip-path.
3
- // similar to: https://github.com/FortAwesome/Font-Awesome/issues/645#issuecomment-361663544
4
-
5
1
  .neo-resizable {
6
2
  align-items : center;
7
3
  color : #bbb;
@@ -42,13 +38,12 @@
42
38
  cursor: sw-resize;
43
39
  left : 0;
44
40
  height: 1em;
45
- width : 1.05em;
41
+ width : 1em;
46
42
 
47
43
  &::after {
48
- clip-path: polygon(100% 0,70% 0,70% 35%,35% 35%,35% 66%,0 66%,0 100%,100% 100%);
49
- content : "\f00a";
44
+ content : "\f101";
50
45
  font-size: 1em;
51
- transform: rotate(90deg);
46
+ transform: rotate(135deg);
52
47
  }
53
48
  }
54
49
 
@@ -57,12 +52,12 @@
57
52
  cursor: se-resize;
58
53
  right : 0;
59
54
  height: 1em;
60
- width : 1.05em;
55
+ width : 1em;
61
56
 
62
57
  &::after {
63
- clip-path: polygon(100% 0,70% 0,70% 35%,35% 35%,35% 66%,0 66%,0 100%,100% 100%);
64
- content : "\f00a";
58
+ content : "\f101";
65
59
  font-size: 1em;
60
+ transform: rotate(45deg);
66
61
  }
67
62
  }
68
63
 
@@ -86,13 +81,12 @@
86
81
  left : 0;
87
82
  top : 0;
88
83
  height: 1em;
89
- width : 1.05em;
84
+ width : 1em;
90
85
 
91
86
  &::after {
92
- clip-path: polygon(100% 0,70% 0,70% 35%,35% 35%,35% 66%,0 66%,0 100%,100% 100%);
93
- content : "\f00a";
87
+ content : "\f101";
94
88
  font-size: 1em;
95
- transform: rotate(180deg);
89
+ transform: rotate(-135deg);
96
90
  }
97
91
  }
98
92
 
@@ -101,13 +95,12 @@
101
95
  right : 0;
102
96
  top : 0;
103
97
  height: 1em;
104
- width : 1.05em;
98
+ width : 1em;
105
99
 
106
100
  &::after {
107
- clip-path: polygon(100% 0,70% 0,70% 35%,35% 35%,35% 66%,0 66%,0 100%,100% 100%);
108
- content : "\f00a";
101
+ content : "\f101";
109
102
  font-size: 1em;
110
- transform: rotate(270deg);
103
+ transform: rotate(-45deg);
111
104
  }
112
105
  }
113
106
  }
@@ -1,6 +1,16 @@
1
1
  :root .neo-theme-neo-light { // .neo-dialog
2
2
  --dialog-border-color: #ddd;
3
3
  --dialog-box-shadow : 0 5px 10px rgba(0,0,0,.4);
4
- --dialog-header-color: #1c60a0;
5
- --dialog-icon-color : #1c60a0;
4
+ --dialog-header-color: var(--purple-500);
5
+ --dialog-icon-color : var(--purple-500);
6
+
7
+ .neo-dialog {
8
+ .neo-header-toolbar {
9
+ .neo-button {
10
+ background-color: transparent;
11
+ height : unset;
12
+ min-width : unset;
13
+ }
14
+ }
15
+ }
6
16
  }
@@ -260,12 +260,12 @@ const DefaultConfig = {
260
260
  useVdomWorker: true,
261
261
  /**
262
262
  * buildScripts/injectPackageVersion.mjs will update this value
263
- * @default '6.21.0'
263
+ * @default '6.22.0'
264
264
  * @memberOf! module:Neo
265
265
  * @name config.version
266
266
  * @type String
267
267
  */
268
- version: '6.21.0'
268
+ version: '6.22.0'
269
269
  };
270
270
 
271
271
  Object.assign(DefaultConfig, {
@@ -235,9 +235,9 @@ class MainContainer extends Container {
235
235
  } else {
236
236
  me.createSettingsContainer(true).then(() => {
237
237
  // short delay to ensure the vnode already exists
238
- setTimeout(() => {
238
+ me.timeout(50).then(() => {
239
239
  me.items[1].items[2].expand()
240
- }, 50)
240
+ })
241
241
  })
242
242
  }
243
243
  } else {
@@ -264,10 +264,10 @@ class MainContainer extends Container {
264
264
  me.promiseUpdate().then(() => {
265
265
  sideBar.mounted = true;
266
266
 
267
- setTimeout(() => {
267
+ me.timeout(50).then(() => {
268
268
  style.marginLeft = '0px';
269
- sideBar.style = style;
270
- }, 50)
269
+ sideBar.style = style
270
+ })
271
271
  })
272
272
  } else {
273
273
  style.marginLeft = `-${me.sideBarWidth}px`;
@@ -275,13 +275,13 @@ class MainContainer extends Container {
275
275
  sideBar._vdom.style = style; // silent update
276
276
 
277
277
  me.promiseUpdate().then(() => {
278
- setTimeout(() => {
278
+ me.timeout(400).then(() => {
279
279
  sideBar.vdom.removeDom = true;
280
280
  sideBar.update();
281
281
 
282
282
  sideBar.mounted = false
283
- }, 400)
284
- });
283
+ })
284
+ })
285
285
  }
286
286
  }
287
287
  }
@@ -299,13 +299,13 @@ class MainContainer extends Container {
299
299
  me.settingsExpanded && me.createSettingsContainer(false);
300
300
 
301
301
  // we need a short delay to ensure the items already got created
302
- setTimeout(() => {
302
+ me.timeout(10).then(() => {
303
303
  me.items[0].items[1].add({
304
304
  handler: me.toggleSettings.bind(me),
305
305
  iconCls: 'fa fa-cog',
306
306
  style : {marginLeft: '10px'}
307
307
  })
308
- }, 10)
308
+ })
309
309
  } else if (!value && oldValue) {
310
310
  // we only need this logic in case we dynamically change the config from true to false
311
311
  me.items[1] .removeLast();
@@ -54,18 +54,18 @@ class SettingsContainer extends Container {
54
54
  style = me.style || {};
55
55
 
56
56
  style.marginRight = `-${width}px`;
57
- me._style = style; // silent update
58
- me._vdom.style = style; // silent update
57
+ me._style = style; // silent update
58
+ me._vdom.style = style; // silent update
59
59
 
60
60
  me.parent.promiseUpdate().then(() => {
61
- setTimeout(() => {
61
+ me.timeout(400).then(() => {
62
62
  me.collapsed = true;
63
63
 
64
64
  me.vdom.removeDom = true;
65
65
  me.update();
66
66
 
67
- me.mounted = false;
68
- }, 400)
67
+ me.mounted = false
68
+ })
69
69
  })
70
70
  }
71
71
 
@@ -149,11 +149,11 @@ class SettingsContainer extends Container {
149
149
  me.collapsed = false;
150
150
  me.mounted = true;
151
151
 
152
- setTimeout(() => {
152
+ me.timeout(50).then(() => {
153
153
  style = me.style || {}
154
154
  style.marginRight = '0px';
155
- me.style = style;
156
- }, 50)
155
+ me.style = style
156
+ })
157
157
  })
158
158
  }
159
159
 
@@ -178,10 +178,10 @@ class SettingsContainer extends Container {
178
178
  if (Neo.typeOf(mainContainer[`${container.flag}Component`]) !== 'NeoInstance') {
179
179
  listenerId = mainContainer.on('cardLoaded', () => {
180
180
  mainContainer.un('cardLoaded', listenerId);
181
- setTimeout(() => {container.createContent();}, 30)
181
+ me.timeout(30).then(() => {container.createContent()})
182
182
  })
183
183
  } else {
184
- setTimeout(() => {container.createContent();}, 30)
184
+ me.timeout(30).then(() => {container.createContent()})
185
185
  }
186
186
  }
187
187
 
@@ -517,10 +517,10 @@ class YearComponent extends Component {
517
517
  vdom.cn[0].cn[0].style.transform = `translateY(${y}px)`;
518
518
  me.update();
519
519
 
520
- setTimeout(() => {
520
+ me.timeout(300).then(() => {
521
521
  vdom.cn[0] = vdom.cn[0].cn[0].cn[scrollFromTop ? 1 : 0];
522
522
  me.triggerVdomUpdate()
523
- }, 300)
523
+ })
524
524
  })
525
525
  })
526
526
  }
@@ -97,9 +97,9 @@ class List extends ComponentList {
97
97
  onClick(data) {
98
98
  // The click even arrives before the CheckBox onInputValueChange() gets triggered.
99
99
  // We need a short delay to ensure the vdom of the list item contains the new checked state
100
- setTimeout(() => {
100
+ this.timeout(20).then(() => {
101
101
  super.onClick(data)
102
- }, 20);
102
+ });
103
103
 
104
104
  if (data.path[0].cls.includes('neo-edit-icon')) {
105
105
  let me = this,
@@ -309,10 +309,10 @@ class Component extends BaseComponent {
309
309
  if (value) {
310
310
  if (me.needsEventUpdate) {
311
311
  me.createContent();
312
- me.needsEventUpdate = false;
312
+ me.needsEventUpdate = false
313
313
  }
314
314
 
315
- setTimeout(() => {
315
+ me.timeout(100).then(() => {
316
316
  me.getDomRect([me.vdom.cn[1].id, me.vdom.cn[0].id]).then(data => {
317
317
  me.headerHeight = data[1].height;
318
318
 
@@ -320,9 +320,9 @@ class Component extends BaseComponent {
320
320
  direction: 'top',
321
321
  id : me.vdom.cn[1].id,
322
322
  value : data[0].height - data[1].height
323
- });
323
+ })
324
324
  })
325
- }, 100)
325
+ })
326
326
  }
327
327
  }
328
328
 
@@ -769,7 +769,7 @@ class Component extends BaseComponent {
769
769
 
770
770
  // we need a short delay to move the event rendering into the next animation frame.
771
771
  // Details: https://github.com/neomjs/neo/issues/2216
772
- setTimeout(() => {me.updateEvents(false, columnsBuffer + columnsVisible, me.totalColumns)}, 50);
772
+ me.timeout(50).then(() => {me.updateEvents(false, columnsBuffer + columnsVisible, me.totalColumns)});
773
773
 
774
774
  scrollValue = -width
775
775
  }
@@ -793,7 +793,7 @@ class Component extends BaseComponent {
793
793
 
794
794
  // we need a short delay to move the event rendering into the next animation frame.
795
795
  // Details: https://github.com/neomjs/neo/issues/2216
796
- setTimeout(() => {me.updateEvents(false, 0, columnsBuffer)}, 50);
796
+ me.timeout(50).then(() => {me.updateEvents(false, 0, columnsBuffer)});
797
797
 
798
798
  scrollValue = width
799
799
  }
@@ -213,7 +213,7 @@ class DragDrop extends Base {
213
213
  me[newRecordSymbol] = record;
214
214
 
215
215
  // wait until the new event got mounted
216
- setTimeout(() => {
216
+ me.timeout(50).then(() => {
217
217
  eventId = owner.getEventId(record.id);
218
218
  dragElement = VDomUtil.findVdomChild(owner.vdom, eventId).vdom;
219
219
 
@@ -227,13 +227,13 @@ class DragDrop extends Base {
227
227
  owner.getPlugin(me.resizablePluginType).onDragStart(data);
228
228
  eventDragZone.dragStart(data);
229
229
 
230
- setTimeout(() => {
230
+ me.timeout(50).then(() => {
231
231
  me.isDragging && Neo.applyDeltas(me.appName, {
232
232
  id : eventId,
233
233
  style: {opacity: 0}
234
234
  })
235
- }, 50)
236
- }, 50)
235
+ })
236
+ })
237
237
  }
238
238
  }
239
239
 
@@ -141,8 +141,6 @@ class LivePreview extends Container {
141
141
  {vdom} = me,
142
142
  rect;
143
143
 
144
- button.iconCls = collapse ? 'fas fa-expand' : 'fas fa-compress';
145
-
146
144
  if (collapse) {
147
145
  button.iconCls = 'fas fa-expand';
148
146
 
@@ -168,7 +166,7 @@ class LivePreview extends Container {
168
166
  } else {
169
167
  button.iconCls = 'fas fa-compress';
170
168
 
171
- rect = await me.getDomRect(me.id);
169
+ rect = await me.getDomRect();
172
170
 
173
171
  me.collapseRect = rect;
174
172
 
@@ -340,18 +338,13 @@ class LivePreview extends Container {
340
338
  * @param {Number} data.value
341
339
  */
342
340
  onActiveIndexChange(data) {
343
- let me = this,
344
- collapseExpandButton = me.getReference('collapse-expand-button'),
345
- hidden = data.value !== 1;
341
+ let me = this,
342
+ hidden = data.value !== 1;
346
343
 
347
344
  if (data.item.reference === 'preview') {
348
345
  me.doRunSource()
349
346
  }
350
347
 
351
- if (collapseExpandButton) {
352
- collapseExpandButton.hidden = hidden
353
- }
354
-
355
348
  me.getReference('popout-window-button').hidden = hidden
356
349
  me.disableRunSource = false;
357
350
  }
@@ -368,11 +361,9 @@ class LivePreview extends Container {
368
361
 
369
362
  if (me.enableFullscreen) {
370
363
  items.push({
371
- handler : me.collapseExpand.bind(me),
372
- hidden : tabContainer.activeIndex !== 1,
373
- iconCls : 'fas fa-expand',
374
- reference: 'collapse-expand-button',
375
- ui : 'ghost'
364
+ handler: me.collapseExpand.bind(me),
365
+ iconCls: 'fas fa-expand',
366
+ ui : 'ghost'
376
367
  })
377
368
  }
378
369
 
@@ -816,9 +816,9 @@ class Base extends CoreBase {
816
816
 
817
817
  if (me.domListeners?.length > 0) {
818
818
  // todo: the main thread reply of mount arrives after pushing the task into the queue which does not ensure the dom is mounted
819
- setTimeout(() => {
819
+ me.timeout(150).then(() => {
820
820
  DomEventManager.mountDomListeners(me)
821
- }, 150)
821
+ })
822
822
  }
823
823
 
824
824
  me.doResolveUpdateCache();
@@ -1798,7 +1798,7 @@ class Base extends CoreBase {
1798
1798
  }
1799
1799
 
1800
1800
  if (timeout) {
1801
- setTimeout(removeFn, timeout)
1801
+ me.timeout(timeout).then(removeFn)
1802
1802
  } else {
1803
1803
  removeFn()
1804
1804
  }
@@ -244,10 +244,10 @@ class Circle extends Component {
244
244
  } else {
245
245
  me.updateItemOpacity(0, true, value);
246
246
 
247
- setTimeout(() => {
247
+ me.timeout(300).then(() => {
248
248
  frontEl.cn.splice(value + 2);
249
249
  me.update()
250
- }, 300);
250
+ })
251
251
  }
252
252
 
253
253
  me.updateItemPositions(true);
@@ -596,13 +596,13 @@ class Circle extends Component {
596
596
  }).then(data => {
597
597
  me.store.items = data.json.data;
598
598
 
599
- setTimeout(() => {
599
+ me.timeout(100).then(() => {
600
600
  me.updateTitle();
601
601
  me.createItems()
602
- }, 100)
602
+ })
603
603
  }).catch(err => {
604
604
  console.log('Error for Neo.Xhr.request', err, me.id)
605
- });
605
+ })
606
606
  }
607
607
 
608
608
  /**
@@ -454,11 +454,11 @@ class DateSelector extends Component {
454
454
  me.updateHeaderMonthTransitionCallback(headerMonthOpts);
455
455
  me.update();
456
456
 
457
- setTimeout(() => {
457
+ me.timeout(300).then(() => {
458
458
  me.changeMonthWrapperCallback(slideDirection);
459
459
  me.updateHeaderMonthWrapperCallback(headerMonthOpts);
460
460
  me.triggerVdomUpdate()
461
- }, 300)
461
+ })
462
462
  })
463
463
  })
464
464
  } else {
@@ -538,10 +538,10 @@ class DateSelector extends Component {
538
538
  vdom.cn[1].cn[0].style.transform = `translateY(${y}px)`;
539
539
  me.update();
540
540
 
541
- setTimeout(() => {
541
+ me.timeout(300).then(() => {
542
542
  vdom.cn[1] = vdom.cn[1].cn[0].cn[scrollFromTop ? 1 : 0];
543
543
  me.triggerVdomUpdate()
544
- }, 300)
544
+ })
545
545
  })
546
546
  })
547
547
  } else {
@@ -256,7 +256,7 @@ class Gallery extends Component {
256
256
  if (value) {
257
257
  me.focusOnMount && me.focus(me.id);
258
258
 
259
- setTimeout(() => {
259
+ me.timeout(300).then(() => {
260
260
  Neo.currentWorker.promiseMessage('main', {
261
261
  action : 'readDom',
262
262
  appName : me.appName,
@@ -280,7 +280,7 @@ class Gallery extends Component {
280
280
  selectionModel.select(key)
281
281
  }
282
282
  })
283
- }, 300)
283
+ })
284
284
  } else {
285
285
  selectionModel.items = []
286
286
  }
@@ -302,19 +302,19 @@ class Gallery extends Component {
302
302
  if (me.rendered) {
303
303
  me.refreshImageReflection();
304
304
 
305
- setTimeout(() => {
305
+ me.timeout(50).then(() => {
306
306
  for (; i < len; i++) {
307
307
  view.cn[i].style.transform = me.getItemTransform(i)
308
308
  }
309
309
 
310
310
  me.update();
311
311
 
312
- setTimeout(() => {
312
+ me.timeout(500).then(() => {
313
313
  let sm = me.selectionModel;
314
314
 
315
315
  sm.hasSelection() && me.onSelectionChange(sm.items)
316
- }, 500)
317
- }, 50)
316
+ })
317
+ })
318
318
  }
319
319
  }
320
320
  }
@@ -695,9 +695,9 @@ class Gallery extends Component {
695
695
  view.cn = newCn;
696
696
  me.update();
697
697
 
698
- setTimeout(() => {
698
+ me.timeout(50).then(() => {
699
699
  me.afterSetOrderByRow(me.orderByRow, !me.orderByRow)
700
- }, 50)
700
+ })
701
701
  }
702
702
  }
703
703
  }
@@ -548,9 +548,9 @@ class Helix extends Component {
548
548
  if (!me.mounted) {
549
549
  const listenerId = me.on('mounted', () => {
550
550
  me.un('mounted', listenerId);
551
- setTimeout(() => {
552
- me.createItems(startIndex);
553
- }, 100)
551
+ me.timeout(100).then(() => {
552
+ me.createItems(startIndex)
553
+ })
554
554
  })
555
555
  } else {
556
556
  for (; i < len; i++) {
@@ -601,9 +601,9 @@ class Helix extends Component {
601
601
  me[itemsMounted] = true;
602
602
  me.fire('itemsMounted');
603
603
 
604
- setTimeout(() => {
604
+ me.timeout(200).then(() => {
605
605
  me[lockWheel] = false
606
- }, 200)
606
+ })
607
607
  })
608
608
  }
609
609
  }
@@ -642,9 +642,9 @@ class Helix extends Component {
642
642
  me.clonedItems = [];
643
643
 
644
644
  Neo.applyDeltas(me.appName, deltas).then(data => {
645
- setTimeout(() => {
645
+ me.timeout(650).then(() => {
646
646
  Neo.applyDeltas(me.appName, removeDeltas)
647
- }, 650)
647
+ })
648
648
  })
649
649
  }
650
650
  }
@@ -701,7 +701,7 @@ class Helix extends Component {
701
701
  }).then(data => {
702
702
  me.clonedItems.push(itemVdom);
703
703
 
704
- setTimeout(() => {
704
+ me.timeout(50).then(() => {
705
705
  Neo.applyDeltas(appName, {
706
706
  id : itemVdom.id,
707
707
  style: {
@@ -709,7 +709,7 @@ class Helix extends Component {
709
709
  transform: me.getCloneTransform()
710
710
  }
711
711
  })
712
- }, 50)
712
+ })
713
713
  })
714
714
  }
715
715
  }
@@ -756,7 +756,7 @@ class Helix extends Component {
756
756
  getOffsetValues(delay=100) {
757
757
  let me = this;
758
758
 
759
- setTimeout(() => {
759
+ me.timeout(delay).then(() => {
760
760
  Neo.currentWorker.promiseMessage('main', {
761
761
  action : 'readDom',
762
762
  appName : me.appName,
@@ -764,9 +764,9 @@ class Helix extends Component {
764
764
  vnodeId : me.id
765
765
  }).then(data => {
766
766
  me.offsetHeight = data.attributes.offsetHeight;
767
- me.offsetWidth = data.attributes.offsetWidth;
767
+ me.offsetWidth = data.attributes.offsetWidth
768
768
  })
769
- }, delay)
769
+ })
770
770
  }
771
771
 
772
772
  /**
@@ -124,7 +124,7 @@ class Toast extends Base {
124
124
  * Timeout in ms after which the toast is removed
125
125
  * @member {Number} timeout=3000
126
126
  */
127
- timeout = 3000
127
+ timeout = 3000 // todo: conflicting class field name => timeout()
128
128
 
129
129
  /**
130
130
  * @param {Object} config
@@ -114,9 +114,9 @@ class AmChart extends Component {
114
114
  opts.dataPath = me.dataPath;
115
115
  }
116
116
 
117
- setTimeout(() => {
117
+ me.timeout(50).then(() => {
118
118
  Neo.main.addon.AmCharts.create(opts).then(me.onChartMounted)
119
- }, 50)
119
+ })
120
120
  }
121
121
  }
122
122
 
@@ -50,11 +50,11 @@ class CesiumJS extends Component {
50
50
  if (value) {
51
51
  let opts = {appName, createOsmBuildings, id, windowId};
52
52
 
53
- setTimeout(() => {
53
+ me.timeout(50).then(() => {
54
54
  Neo.main.addon.CesiumJS.create(opts).then(() => {
55
55
  me.onComponentMounted()
56
56
  })
57
- }, 50)
57
+ })
58
58
  }
59
59
  }
60
60
 
@@ -193,12 +193,12 @@ class GoogleMaps extends Base {
193
193
  zoomControl : me.zoomControl
194
194
  };
195
195
 
196
- setTimeout(() => {
196
+ me.timeout(50).then(() => {
197
197
  Neo.main.addon.GoogleMaps.create(opts).then(() => {
198
198
  me.mapCreated = true;
199
199
  me.onComponentMounted()
200
200
  })
201
- }, 50)
201
+ })
202
202
  }
203
203
  }
204
204