neo.mjs 6.17.2 → 6.18.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 (316) hide show
  1. package/apps/ServiceWorker.mjs +3 -5
  2. package/apps/colors/README.md +8 -0
  3. package/apps/colors/app.mjs +6 -0
  4. package/apps/colors/childapps/widget/app.mjs +7 -0
  5. package/apps/colors/childapps/widget/index.html +11 -0
  6. package/apps/colors/childapps/widget/neo-config.json +10 -0
  7. package/apps/colors/childapps/widget/view/Viewport.mjs +19 -0
  8. package/apps/colors/index.html +11 -0
  9. package/apps/colors/model/Color.mjs +43 -0
  10. package/apps/colors/neo-config.json +10 -0
  11. package/apps/colors/remotes-api.json +13 -0
  12. package/apps/colors/store/Colors.mjs +24 -0
  13. package/apps/colors/view/BarChartComponent.mjs +64 -0
  14. package/apps/colors/view/HeaderToolbar.mjs +95 -0
  15. package/apps/colors/view/PieChartComponent.mjs +58 -0
  16. package/apps/colors/view/TableContainer.mjs +91 -0
  17. package/apps/colors/view/Viewport.mjs +57 -0
  18. package/apps/colors/view/ViewportController.mjs +277 -0
  19. package/apps/colors/view/ViewportModel.mjs +53 -0
  20. package/apps/portal/Util.mjs +11 -0
  21. package/apps/portal/childapps/preview/neo-config.json +2 -2
  22. package/apps/portal/neo-config.json +2 -1
  23. package/apps/portal/remotes-api.json +13 -0
  24. package/apps/portal/view/HeaderToolbar.mjs +1 -1
  25. package/apps/portal/view/ViewportController.mjs +89 -1
  26. package/apps/portal/view/home/MainContainer.mjs +5 -6
  27. package/apps/portal/view/home/parts/AfterMath.mjs +1 -1
  28. package/apps/portal/view/home/parts/{CoolStuff.mjs → Colors.mjs} +20 -28
  29. package/apps/portal/view/home/parts/Helix.mjs +75 -0
  30. package/apps/portal/view/learn/LivePreview.mjs +56 -15
  31. package/apps/portal/view/learn/MainContainerController.mjs +10 -90
  32. package/apps/realworld/api/Article.mjs +1 -3
  33. package/apps/realworld/api/Favorite.mjs +1 -3
  34. package/apps/realworld/api/Profile.mjs +1 -3
  35. package/apps/realworld/api/Tag.mjs +1 -3
  36. package/apps/realworld/api/User.mjs +1 -3
  37. package/apps/realworld2/api/Article.mjs +1 -3
  38. package/apps/realworld2/api/Favorite.mjs +1 -3
  39. package/apps/realworld2/api/Profile.mjs +1 -3
  40. package/apps/realworld2/api/Tag.mjs +1 -3
  41. package/apps/realworld2/api/User.mjs +1 -3
  42. package/apps/realworld2/view/article/HelixContainer.mjs +5 -5
  43. package/buildScripts/webpack/json/myApps.template.json +1 -0
  44. package/docs/app/view/MainContainer.mjs +5 -0
  45. package/docs/app/view/classdetails/MembersList.mjs +1 -1
  46. package/examples/ServiceWorker.mjs +3 -5
  47. package/examples/component/helix/Viewport.mjs +309 -0
  48. package/examples/component/helix/ViewportController.mjs +122 -0
  49. package/examples/component/helix/app.mjs +2 -2
  50. package/examples/component/helix/neo-config.json +0 -1
  51. package/examples/component/multiWindowHelix/Viewport.mjs +11 -3
  52. package/examples/component/multiWindowHelix/ViewportController.mjs +21 -9
  53. package/examples/component/multiWindowHelix/neo-config.json +0 -1
  54. package/examples/fieldWithPrefix/MainContainer.mjs +1 -6
  55. package/examples/list/animate/MainContainerController.mjs +1 -1
  56. package/examples/worker/task/MyTasks.mjs +1 -3
  57. package/package.json +2 -2
  58. package/resources/data/deck/learnneo/pages/GuideEvents.md +131 -0
  59. package/resources/data/deck/learnneo/pages/WhyNeo-Speed.md +1 -1
  60. package/resources/images/logo/neo_logo_primary.svg +6 -0
  61. package/resources/images/logo/neo_logo_text_primary.svg +5 -0
  62. package/resources/scss/src/apps/colors/BarChartComponent.scss +3 -0
  63. package/resources/scss/src/apps/colors/HeaderToolbar.scss +11 -0
  64. package/resources/scss/src/apps/colors/PieChartComponent.scss +3 -0
  65. package/resources/scss/src/apps/colors/TableContainer.scss +64 -0
  66. package/resources/scss/src/apps/colors/Viewport.scss +9 -0
  67. package/resources/scss/src/apps/portal/HeaderToolbar.scss +1 -1
  68. package/resources/scss/src/apps/portal/home/MainContainer.scss +1 -1
  69. package/resources/scss/src/apps/portal/home/preview/PageCodeContainer.scss +1 -1
  70. package/resources/scss/src/examples/component/multiWindowHelix/Viewport.scss +3 -0
  71. package/resources/scss/src/form/field/CheckBox.scss +1 -0
  72. package/resources/scss/src/tab/header/Button.scss +2 -1
  73. package/resources/scss/theme-dark/Global.scss +8 -0
  74. package/resources/scss/theme-dark/button/Base.scss +1 -1
  75. package/resources/scss/theme-dark/tab/header/Button.scss +1 -0
  76. package/resources/scss/theme-light/Global.scss +8 -0
  77. package/resources/scss/theme-light/button/Base.scss +1 -1
  78. package/resources/scss/theme-light/tab/header/Button.scss +1 -0
  79. package/resources/scss/theme-neo-light/Global.scss +53 -53
  80. package/resources/scss/theme-neo-light/button/Base.scss +3 -4
  81. package/resources/scss/theme-neo-light/tab/header/Button.scss +6 -8
  82. package/src/DefaultConfig.mjs +2 -2
  83. package/src/Fetch.mjs +1 -3
  84. package/src/Main.mjs +13 -11
  85. package/src/MicroLoader.mjs +2 -2
  86. package/src/Neo.mjs +27 -26
  87. package/src/Xhr.mjs +1 -3
  88. package/src/button/Base.mjs +6 -4
  89. package/src/button/Split.mjs +10 -9
  90. package/src/calendar/view/EditEventContainer.mjs +13 -12
  91. package/src/calendar/view/MainContainer.mjs +40 -40
  92. package/src/calendar/view/MainContainerModel.mjs +5 -5
  93. package/src/calendar/view/SettingsContainer.mjs +11 -11
  94. package/src/calendar/view/YearComponent.mjs +73 -75
  95. package/src/calendar/view/calendars/ColorsList.mjs +2 -2
  96. package/src/calendar/view/calendars/EditContainer.mjs +2 -2
  97. package/src/calendar/view/calendars/List.mjs +12 -13
  98. package/src/calendar/view/month/Component.mjs +72 -73
  99. package/src/calendar/view/settings/GeneralContainer.mjs +5 -5
  100. package/src/calendar/view/settings/MonthContainer.mjs +5 -5
  101. package/src/calendar/view/settings/WeekContainer.mjs +6 -6
  102. package/src/calendar/view/settings/YearContainer.mjs +4 -4
  103. package/src/calendar/view/week/Component.mjs +47 -57
  104. package/src/calendar/view/week/EventDragZone.mjs +43 -50
  105. package/src/calendar/view/week/TimeAxisComponent.mjs +21 -21
  106. package/src/calendar/view/week/plugin/DragDrop.mjs +53 -45
  107. package/src/calendar/view/week/plugin/EventResizable.mjs +8 -3
  108. package/src/collection/Base.mjs +15 -22
  109. package/src/collection/Filter.mjs +4 -9
  110. package/src/collection/Sorter.mjs +6 -7
  111. package/src/component/Base.mjs +25 -31
  112. package/src/component/Canvas.mjs +9 -9
  113. package/src/component/Carousel.mjs +31 -33
  114. package/src/component/Chip.mjs +9 -9
  115. package/src/component/Circle.mjs +84 -91
  116. package/src/component/Clock.mjs +8 -8
  117. package/src/component/DateSelector.mjs +14 -15
  118. package/src/component/Gallery.mjs +82 -80
  119. package/src/component/Helix.mjs +131 -126
  120. package/src/component/Iframe.mjs +1 -1
  121. package/src/component/Label.mjs +1 -1
  122. package/src/component/Legend.mjs +3 -3
  123. package/src/component/Process.mjs +39 -37
  124. package/src/component/Splitter.mjs +9 -11
  125. package/src/component/StatusBadge.mjs +2 -3
  126. package/src/component/Timer.mjs +62 -68
  127. package/src/component/Toast.mjs +11 -11
  128. package/src/component/Video.mjs +7 -8
  129. package/src/component/mwc/Button.mjs +10 -10
  130. package/src/component/mwc/TextField.mjs +17 -17
  131. package/src/component/wrapper/AmChart.mjs +5 -5
  132. package/src/component/wrapper/CesiumJS.mjs +11 -17
  133. package/src/component/wrapper/GoogleMaps.mjs +58 -35
  134. package/src/component/wrapper/MapboxGL.mjs +112 -79
  135. package/src/container/Accordion.mjs +18 -20
  136. package/src/container/AccordionItem.mjs +12 -11
  137. package/src/container/Base.mjs +24 -23
  138. package/src/container/Panel.mjs +9 -9
  139. package/src/controller/Base.mjs +12 -14
  140. package/src/controller/Component.mjs +60 -66
  141. package/src/core/Base.mjs +5 -8
  142. package/src/core/IdGenerator.mjs +1 -3
  143. package/src/core/Observable.mjs +17 -17
  144. package/src/core/Util.mjs +5 -5
  145. package/src/data/Model.mjs +3 -3
  146. package/src/data/RecordFactory.mjs +3 -6
  147. package/src/data/Store.mjs +34 -34
  148. package/src/data/connection/Fetch.mjs +3 -3
  149. package/src/data/connection/WebSocket.mjs +21 -25
  150. package/src/data/connection/Xhr.mjs +31 -28
  151. package/src/date/DayViewComponent.mjs +1 -1
  152. package/src/date/SelectorContainer.mjs +2 -2
  153. package/src/dialog/Base.mjs +27 -25
  154. package/src/dialog/header/Toolbar.mjs +5 -4
  155. package/src/draggable/DragProxyComponent.mjs +7 -4
  156. package/src/draggable/DragZone.mjs +30 -30
  157. package/src/draggable/DropZone.mjs +7 -7
  158. package/src/draggable/list/DragZone.mjs +18 -18
  159. package/src/draggable/tab/header/toolbar/SortZone.mjs +7 -7
  160. package/src/draggable/toolbar/DragZone.mjs +15 -15
  161. package/src/draggable/toolbar/SortZone.mjs +30 -31
  162. package/src/draggable/tree/DragZone.mjs +9 -9
  163. package/src/filter/BooleanContainer.mjs +3 -3
  164. package/src/filter/NumberContainer.mjs +5 -5
  165. package/src/filter/ToggleOperatorsButton.mjs +5 -5
  166. package/src/form/Fieldset.mjs +26 -26
  167. package/src/form/field/Base.mjs +1 -1
  168. package/src/form/field/CheckBox.mjs +15 -16
  169. package/src/form/field/Color.mjs +13 -15
  170. package/src/form/field/ComboBox.mjs +16 -24
  171. package/src/form/field/Country.mjs +1 -1
  172. package/src/form/field/Date.mjs +3 -4
  173. package/src/form/field/Display.mjs +1 -1
  174. package/src/form/field/Email.mjs +2 -2
  175. package/src/form/field/Number.mjs +51 -56
  176. package/src/form/field/Picker.mjs +2 -2
  177. package/src/form/field/Radio.mjs +1 -1
  178. package/src/form/field/Range.mjs +7 -6
  179. package/src/form/field/Text.mjs +29 -36
  180. package/src/form/field/TextArea.mjs +9 -9
  181. package/src/form/field/Time.mjs +30 -30
  182. package/src/form/field/trigger/Base.mjs +19 -13
  183. package/src/form/field/trigger/Clear.mjs +13 -13
  184. package/src/form/field/trigger/CopyToClipboard.mjs +7 -7
  185. package/src/form/field/trigger/Picker.mjs +2 -2
  186. package/src/form/field/trigger/SpinDown.mjs +1 -1
  187. package/src/form/field/trigger/SpinUp.mjs +1 -1
  188. package/src/form/field/trigger/SpinUpDown.mjs +3 -3
  189. package/src/form/field/trigger/Time.mjs +3 -3
  190. package/src/grid/Container.mjs +33 -33
  191. package/src/grid/View.mjs +20 -22
  192. package/src/grid/header/Button.mjs +12 -12
  193. package/src/grid/header/Toolbar.mjs +4 -4
  194. package/src/layout/Base.mjs +5 -4
  195. package/src/layout/Card.mjs +15 -16
  196. package/src/layout/Fit.mjs +22 -8
  197. package/src/layout/Flexbox.mjs +30 -29
  198. package/src/layout/Form.mjs +15 -15
  199. package/src/layout/Grid.mjs +2 -2
  200. package/src/layout/HBox.mjs +3 -2
  201. package/src/layout/VBox.mjs +3 -2
  202. package/src/list/Base.mjs +45 -47
  203. package/src/list/Chip.mjs +4 -4
  204. package/src/list/Circle.mjs +3 -3
  205. package/src/list/Color.mjs +4 -4
  206. package/src/list/Component.mjs +10 -10
  207. package/src/list/plugin/Animate.mjs +18 -13
  208. package/src/main/DomAccess.mjs +92 -56
  209. package/src/main/DomEvents.mjs +38 -39
  210. package/src/main/addon/AmCharts.mjs +37 -37
  211. package/src/main/addon/AnalyticsByGoogle.mjs +4 -4
  212. package/src/main/addon/CesiumJS.mjs +8 -8
  213. package/src/main/addon/CloneNode.mjs +5 -5
  214. package/src/main/addon/Cookie.mjs +4 -4
  215. package/src/main/addon/DragDrop.mjs +35 -34
  216. package/src/main/addon/GoogleMaps.mjs +19 -19
  217. package/src/main/addon/LocalStorage.mjs +3 -3
  218. package/src/main/addon/MapboxGL.mjs +40 -41
  219. package/src/main/addon/MonacoEditor.mjs +5 -5
  220. package/src/main/addon/Mwc.mjs +6 -6
  221. package/src/main/addon/Navigator.mjs +35 -39
  222. package/src/main/addon/Popover.mjs +5 -6
  223. package/src/main/addon/PrefixField.mjs +1 -2
  224. package/src/main/addon/ServiceWorker.mjs +9 -9
  225. package/src/main/addon/Siesta.mjs +3 -2
  226. package/src/main/addon/Stylesheet.mjs +37 -37
  227. package/src/main/addon/WebComponent.mjs +2 -3
  228. package/src/main/addon/WindowPosition.mjs +18 -18
  229. package/src/main/draggable/sensor/Base.mjs +2 -2
  230. package/src/main/draggable/sensor/Mouse.mjs +15 -15
  231. package/src/main/draggable/sensor/Touch.mjs +24 -23
  232. package/src/main/mixin/DeltaUpdates.mjs +10 -12
  233. package/src/main/mixin/TouchDomEvents.mjs +6 -6
  234. package/src/manager/Base.mjs +4 -4
  235. package/src/manager/Component.mjs +41 -41
  236. package/src/manager/DomEvent.mjs +41 -44
  237. package/src/manager/Focus.mjs +14 -16
  238. package/src/manager/Instance.mjs +2 -4
  239. package/src/manager/Store.mjs +4 -8
  240. package/src/manager/Task.mjs +20 -22
  241. package/src/manager/Toast.mjs +14 -16
  242. package/src/manager/rpc/Api.mjs +1 -3
  243. package/src/manager/rpc/Message.mjs +16 -18
  244. package/src/menu/List.mjs +16 -16
  245. package/src/menu/Panel.mjs +4 -4
  246. package/src/model/Component.mjs +5 -5
  247. package/src/plugin/Base.mjs +2 -0
  248. package/src/plugin/Popover.mjs +1 -1
  249. package/src/plugin/PrefixField.mjs +35 -45
  250. package/src/plugin/Resizable.mjs +86 -101
  251. package/src/plugin/Responsive.mjs +1 -1
  252. package/src/remotes/Api.mjs +4 -6
  253. package/src/selection/CircleModel.mjs +12 -16
  254. package/src/selection/DateSelectorModel.mjs +21 -23
  255. package/src/selection/GalleryModel.mjs +49 -63
  256. package/src/selection/HelixModel.mjs +35 -41
  257. package/src/selection/ListModel.mjs +9 -14
  258. package/src/selection/Model.mjs +31 -31
  259. package/src/selection/TreeAccordionModel.mjs +74 -80
  260. package/src/selection/grid/CellColumnModel.mjs +10 -10
  261. package/src/selection/grid/CellColumnRowModel.mjs +10 -10
  262. package/src/selection/grid/CellModel.mjs +26 -28
  263. package/src/selection/grid/CellRowModel.mjs +24 -24
  264. package/src/selection/grid/ColumnModel.mjs +16 -20
  265. package/src/selection/grid/RowModel.mjs +27 -29
  266. package/src/selection/menu/ListModel.mjs +2 -2
  267. package/src/selection/table/CellColumnModel.mjs +12 -12
  268. package/src/selection/table/CellColumnRowModel.mjs +12 -12
  269. package/src/selection/table/CellModel.mjs +26 -29
  270. package/src/selection/table/CellRowModel.mjs +19 -19
  271. package/src/selection/table/ColumnModel.mjs +18 -22
  272. package/src/selection/table/RowModel.mjs +27 -29
  273. package/src/sitemap/Component.mjs +20 -20
  274. package/src/sitemap/Store.mjs +1 -1
  275. package/src/tab/Container.mjs +15 -15
  276. package/src/tab/Strip.mjs +1 -1
  277. package/src/tab/header/Toolbar.mjs +4 -4
  278. package/src/table/Container.mjs +8 -10
  279. package/src/table/View.mjs +29 -34
  280. package/src/table/header/Button.mjs +18 -18
  281. package/src/table/header/Toolbar.mjs +2 -2
  282. package/src/toolbar/Base.mjs +14 -14
  283. package/src/toolbar/Breadcrumb.mjs +11 -11
  284. package/src/toolbar/Paging.mjs +18 -18
  285. package/src/tooltip/Base.mjs +20 -22
  286. package/src/tree/Accordion.mjs +69 -75
  287. package/src/tree/List.mjs +22 -25
  288. package/src/util/Array.mjs +19 -18
  289. package/src/util/ClassSystem.mjs +9 -9
  290. package/src/util/Css.mjs +2 -2
  291. package/src/util/Date.mjs +9 -9
  292. package/src/util/Function.mjs +2 -2
  293. package/src/util/HashHistory.mjs +3 -5
  294. package/src/util/KeyNavigation.mjs +17 -17
  295. package/src/util/Logger.mjs +9 -9
  296. package/src/util/Matrix.mjs +19 -19
  297. package/src/util/String.mjs +9 -9
  298. package/src/util/Style.mjs +11 -11
  299. package/src/util/VDom.mjs +12 -14
  300. package/src/util/VNode.mjs +29 -29
  301. package/src/vdom/Helper.mjs +84 -93
  302. package/src/vdom/VNode.mjs +1 -1
  303. package/src/worker/App.mjs +19 -16
  304. package/src/worker/Base.mjs +14 -15
  305. package/src/worker/Canvas.mjs +1 -3
  306. package/src/worker/Data.mjs +4 -8
  307. package/src/worker/Manager.mjs +27 -32
  308. package/src/worker/Message.mjs +1 -1
  309. package/src/worker/ServiceBase.mjs +38 -42
  310. package/src/worker/Task.mjs +1 -3
  311. package/src/worker/VDom.mjs +2 -4
  312. package/src/worker/mixin/RemoteMethodAccess.mjs +5 -6
  313. package/examples/component/helix/MainContainer.mjs +0 -340
  314. /package/resources/images/{Neo_Logo_Blue.svg → logo/neo_logo_secondary.svg} +0 -0
  315. /package/resources/images/{Neo_Logo_Text.svg → logo/neo_logo_text_secondary.svg} +0 -0
  316. /package/resources/images/{Neo_Logo_White.svg → logo/neo_logo_white.svg} +0 -0
@@ -87,10 +87,10 @@ class Helix extends Component {
87
87
  imageField: 'image',
88
88
  /**
89
89
  * The path to the images folder
90
- * Will get set inside the ctor to avoid issues inside the webpack builds
91
- * @member {String|null} imageSource=Neo.config.resourcesPath + 'examples/'
90
+ * Will get set inside afterSetWindowId() to avoid issues inside the webpack builds
91
+ * @member {String|null} imageSource_=Neo.config.resourcesPath + 'examples/'
92
92
  */
93
- imageSource: null,
93
+ imageSource_: null,
94
94
  /**
95
95
  * Amount of items per row (circle) -> 360° / 10 = 36
96
96
  * @member {Number} itemAngle_=8
@@ -255,17 +255,13 @@ class Helix extends Component {
255
255
  let me = this;
256
256
 
257
257
  me[itemsMounted] = false;
258
- me[lockWheel] = false;
259
-
260
- if (me.imageSource === null) {
261
- me.imageSource = Neo.config.resourcesPath + 'examples/';
262
- }
258
+ me[lockWheel] = true;
263
259
 
264
260
  me.addDomListeners({
265
261
  click: me.onClick,
266
262
  wheel: me.onMouseWheel,
267
263
  scope: me
268
- });
264
+ })
269
265
  }
270
266
 
271
267
  /**
@@ -275,10 +271,10 @@ class Helix extends Component {
275
271
  * @protected
276
272
  */
277
273
  afterSetFollowSelection(value, oldValue) {
278
- let cls = this.cls;
274
+ let {cls} = this;
279
275
 
280
276
  NeoArray[value ? 'add' : 'remove'](cls, 'neo-follow-selection');
281
- this.cls = cls;
277
+ this.cls = cls
282
278
  }
283
279
 
284
280
  /**
@@ -288,7 +284,22 @@ class Helix extends Component {
288
284
  * @protected
289
285
  */
290
286
  afterSetFlipped(value, oldValue) {
291
- this.applyItemTransitions(this.refresh, 1000);
287
+ this.applyItemTransitions(this.refresh, 1000)
288
+ }
289
+
290
+ /**
291
+ * Triggered after the imageSource config got changed
292
+ * @param {String|null} value
293
+ * @param {String|null} oldValue
294
+ * @protected
295
+ */
296
+ afterSetImageSource(value, oldValue) {
297
+ let me = this;
298
+
299
+ if (oldValue) {
300
+ me.getItemsRoot().cn = [];
301
+ me.createItems()
302
+ }
292
303
  }
293
304
 
294
305
  /**
@@ -302,9 +313,9 @@ class Helix extends Component {
302
313
 
303
314
  if (value && me.rendered) {
304
315
  if (oldValue > value) {
305
- me.destroyItems(value, oldValue - value);
316
+ me.destroyItems(value, oldValue - value)
306
317
  } else {
307
- me.createItems(oldValue);
318
+ me.createItems(oldValue)
308
319
  }
309
320
  }
310
321
  }
@@ -317,7 +328,7 @@ class Helix extends Component {
317
328
  */
318
329
  afterSetMounted(value, oldValue) {
319
330
  super.afterSetMounted(value, oldValue);
320
- value && this.getOffsetValues();
331
+ value && this.getOffsetValues()
321
332
  }
322
333
 
323
334
  /**
@@ -337,7 +348,7 @@ class Helix extends Component {
337
348
  }
338
349
  });
339
350
 
340
- me.updateCloneTranslate();
351
+ me.updateCloneTranslate()
341
352
  }
342
353
  }
343
354
 
@@ -348,7 +359,7 @@ class Helix extends Component {
348
359
  * @protected
349
360
  */
350
361
  afterSetSelectionModel(value, oldValue) {
351
- this.rendered && value.register(this);
362
+ this.rendered && value.register(this)
352
363
  }
353
364
 
354
365
  /**
@@ -362,7 +373,21 @@ class Helix extends Component {
362
373
 
363
374
  if (me.rendered) {
364
375
  me.destroyItems();
365
- me.loadData();
376
+ me.loadData()
377
+ }
378
+ }
379
+
380
+ /**
381
+ * Triggered after the windowId config got changed
382
+ * @param {Number} value
383
+ * @param {Number} oldValue
384
+ * @protected
385
+ */
386
+ afterSetWindowId(value, oldValue) {
387
+ super.afterSetWindowId(value, oldValue);
388
+
389
+ if (value) {
390
+ this.imageSource = Neo.config.resourcesPath + 'examples/'
366
391
  }
367
392
  }
368
393
 
@@ -373,19 +398,20 @@ class Helix extends Component {
373
398
  * @protected
374
399
  */
375
400
  applyItemTransitions(callback, animationTime, callbackParam) {
376
- let me = this,
377
- cls = 'neo-transition-' + animationTime,
401
+ let me = this,
402
+ {id} = me,
403
+ cls = 'neo-transition-' + animationTime,
378
404
  timeoutId;
379
405
 
380
406
  me.transitionTimeouts.forEach(item => {
381
- clearTimeout(item);
407
+ clearTimeout(item)
382
408
  });
383
409
 
384
410
  me.transitionTimeouts.splice(0, me.transitionTimeouts.length);
385
411
 
386
412
  if (me.mounted) {
387
413
  Neo.applyDeltas(me.appName, {
388
- id : me.id,
414
+ id,
389
415
  cls: {
390
416
  add : [cls],
391
417
  remove: []
@@ -397,16 +423,16 @@ class Helix extends Component {
397
423
  NeoArray.remove(me.transitionTimeouts, timeoutId);
398
424
 
399
425
  Neo.applyDeltas(me.appName, {
400
- id : me.id,
426
+ id,
401
427
  cls: {
402
428
  add : [],
403
429
  remove: [cls]
404
430
  }
405
- });
431
+ })
406
432
  }, animationTime + 200);
407
433
 
408
- me.transitionTimeouts.push(timeoutId);
409
- });
434
+ me.transitionTimeouts.push(timeoutId)
435
+ })
410
436
  }
411
437
  }
412
438
 
@@ -414,7 +440,7 @@ class Helix extends Component {
414
440
  * @returns {Object}
415
441
  */
416
442
  beforeGetItemTpl() {
417
- return Neo.clone(this._itemTpl, true);
443
+ return Neo.clone(this._itemTpl, true)
418
444
  }
419
445
 
420
446
  /**
@@ -431,7 +457,7 @@ class Helix extends Component {
431
457
  selectionChange: this.onSelectionChange,
432
458
  scope : this
433
459
  }
434
- });
460
+ })
435
461
  }
436
462
 
437
463
  /**
@@ -451,7 +477,7 @@ class Helix extends Component {
451
477
  sort : me.onSort,
452
478
  scope: me
453
479
  }
454
- });
480
+ })
455
481
  }
456
482
 
457
483
  /**
@@ -460,10 +486,9 @@ class Helix extends Component {
460
486
  * @returns {Number}
461
487
  */
462
488
  calculateOpacity(item) {
463
- let me = this,
464
- maxOpacity = me.maxOpacity,
465
- minOpacity = me.minOpacity,
466
- deltaOpacity = maxOpacity - minOpacity,
489
+ let me = this,
490
+ {maxOpacity, minOpacity} = me,
491
+ deltaOpacity = maxOpacity - minOpacity,
467
492
  angle, opacity, opacityFactor;
468
493
 
469
494
  if (deltaOpacity === 0) {
@@ -472,20 +497,20 @@ class Helix extends Component {
472
497
  angle = item.rotationAngle % 360;
473
498
 
474
499
  while (angle < 0) {
475
- angle += 360;
500
+ angle += 360
476
501
  }
477
502
 
478
503
  while (angle > 180) {
479
- angle = 360 - angle;
504
+ angle = 360 - angle
480
505
  }
481
506
 
482
- // non linear distribution, since the angle does not match delta translateZ
507
+ // non-linear distribution, since the angle does not match delta translateZ
483
508
  opacityFactor = 1 - Math.sin(angle * Math.PI / 360);
484
509
 
485
- opacity = minOpacity + deltaOpacity * opacityFactor;
510
+ opacity = minOpacity + deltaOpacity * opacityFactor
486
511
  }
487
512
 
488
- return opacity;
513
+ return opacity
489
514
  }
490
515
 
491
516
  /**
@@ -503,7 +528,7 @@ class Helix extends Component {
503
528
  vdomItem.cn[0].id = me.getItemVnodeId(record[me.keyProperty]) + '_img';
504
529
  vdomItem.cn[0].src = me.imageSource + Neo.ns(me.imageField, false, record);
505
530
 
506
- return vdomItem;
531
+ return vdomItem
507
532
  }
508
533
 
509
534
  /**
@@ -512,19 +537,11 @@ class Helix extends Component {
512
537
  * @protected
513
538
  */
514
539
  createItems(startIndex) {
515
- let me = this,
516
- deltaY = me.deltaY,
517
- group = me.getItemsRoot(),
518
- itemAngle = me.itemAngle,
519
- matrix = me.matrix,
520
- radius = me.radius,
521
- rotationAngle = me.rotationAngle,
522
- translateX = me.translateX,
523
- translateY = me.translateY,
524
- translateZ = me.translateZ,
525
- vdom = me.vdom,
526
- i = startIndex || 0,
527
- len = Math.min(me.maxItems, me.store.items.length),
540
+ let me = this,
541
+ {deltaY, itemAngle, matrix, radius, rotationAngle, translateX, translateY, translateZ, vdom} = me,
542
+ group = me.getItemsRoot(),
543
+ i = startIndex || 0,
544
+ len = Math.min(me.maxItems, me.store.items.length),
528
545
  angle, item, matrixItems, transformStyle, vdomItem, c, s, x, y, z;
529
546
 
530
547
  if (!me.mounted) {
@@ -532,11 +549,9 @@ class Helix extends Component {
532
549
  me.un('mounted', listenerId);
533
550
  setTimeout(() => {
534
551
  me.createItems(startIndex);
535
- }, 100);
536
- });
552
+ }, 100)
553
+ })
537
554
  } else {
538
- // console.log('createItems', me.id, me.store);
539
-
540
555
  for (; i < len; i++) {
541
556
  item = me.store.items[i];
542
557
 
@@ -559,9 +574,9 @@ class Helix extends Component {
559
574
  if (!matrix) {
560
575
  me.matrix = matrix = Neo.create(Matrix, {
561
576
  items: matrixItems
562
- });
577
+ })
563
578
  } else {
564
- matrix.items = matrixItems;
579
+ matrix.items = matrixItems
565
580
  }
566
581
 
567
582
  transformStyle = matrix.getTransformStyle();
@@ -576,19 +591,19 @@ class Helix extends Component {
576
591
  vdomItem.style.opacity = me.calculateOpacity(item);
577
592
  vdomItem.style.transform = transformStyle;
578
593
 
579
- group.cn.push(vdomItem);
594
+ group.cn.push(vdomItem)
580
595
  }
581
596
 
582
- me[lockWheel] = false;
597
+ me[lockWheel] = true;
583
598
 
584
599
  me.promiseUpdate(vdom).then(() => {
585
600
  me[itemsMounted] = true;
586
601
  me.fire('itemsMounted');
587
602
 
588
603
  setTimeout(() => {
589
- me[lockWheel] = true;
590
- }, 500);
591
- });
604
+ me[lockWheel] = false
605
+ }, 200)
606
+ })
592
607
  }
593
608
  }
594
609
 
@@ -597,7 +612,7 @@ class Helix extends Component {
597
612
  */
598
613
  destroyClones() {
599
614
  let me = this,
600
- store = me.store,
615
+ {store} = me,
601
616
  deltas = [],
602
617
  removeDeltas = [],
603
618
  id, record;
@@ -627,9 +642,9 @@ class Helix extends Component {
627
642
 
628
643
  Neo.applyDeltas(me.appName, deltas).then(data => {
629
644
  setTimeout(() => {
630
- Neo.applyDeltas(me.appName, removeDeltas);
631
- }, 650);
632
- });
645
+ Neo.applyDeltas(me.appName, removeDeltas)
646
+ }, 650)
647
+ })
633
648
  }
634
649
  }
635
650
 
@@ -641,7 +656,7 @@ class Helix extends Component {
641
656
  let me = this;
642
657
 
643
658
  me.getItemsRoot().cn.splice(startIndex || 0, amountItems || me.store.getCount());
644
- me.update();
659
+ me.update()
645
660
  }
646
661
 
647
662
  /**
@@ -649,13 +664,13 @@ class Helix extends Component {
649
664
  * @param {String} itemId
650
665
  */
651
666
  expandItem(itemId) {
652
- let me = this,
653
- store = me.store,
654
- record = store.get(itemId),
655
- index = store.indexOf(itemId),
656
- isExpanded = !!record.expanded,
657
- group = me.getItemsRoot(),
658
- itemVdom = Neo.clone(group.cn[index], true);
667
+ let me = this,
668
+ {appName, store} = me,
669
+ record = store.get(itemId),
670
+ index = store.indexOf(itemId),
671
+ isExpanded = !!record.expanded,
672
+ group = me.getItemsRoot(),
673
+ itemVdom = Neo.clone(group.cn[index], true);
659
674
 
660
675
  me.destroyClones();
661
676
 
@@ -673,11 +688,11 @@ class Helix extends Component {
673
688
  itemVdom.cn.push({
674
689
  cls : ['contact-name'],
675
690
  innerHTML: record.firstname + ' ' + record.lastname
676
- });
691
+ })
677
692
  }
678
693
 
679
694
  Neo.vdom.Helper.create({
680
- appName : me.appName,
695
+ appName,
681
696
  autoMount : true,
682
697
  parentId : group.id,
683
698
  parentIndex: store.getCount(),
@@ -686,15 +701,15 @@ class Helix extends Component {
686
701
  me.clonedItems.push(itemVdom);
687
702
 
688
703
  setTimeout(() => {
689
- Neo.applyDeltas(me.appName, {
704
+ Neo.applyDeltas(appName, {
690
705
  id : itemVdom.id,
691
706
  style: {
692
707
  opacity : 1,
693
708
  transform: me.getCloneTransform()
694
709
  }
695
- });
696
- }, 50);
697
- });
710
+ })
711
+ }, 50)
712
+ })
698
713
  }
699
714
  }
700
715
 
@@ -707,7 +722,7 @@ class Helix extends Component {
707
722
  translateY = (me.offsetHeight - 1320) / 3,
708
723
  translateZ = 100700 + me.perspective / 1.5;
709
724
 
710
- return `matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,${translateX},${translateY},${translateZ},1`;
725
+ return `matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,${translateX},${translateY},${translateZ},1`
711
726
  }
712
727
 
713
728
  /**
@@ -715,7 +730,7 @@ class Helix extends Component {
715
730
  * @returns {Number}
716
731
  */
717
732
  getItemId(vnodeId) {
718
- return parseInt(vnodeId.split('__')[1]);
733
+ return parseInt(vnodeId.split('__')[1])
719
734
  }
720
735
 
721
736
  /**
@@ -723,7 +738,7 @@ class Helix extends Component {
723
738
  * @returns {Object} vdom
724
739
  */
725
740
  getItemsRoot() {
726
- return this.vdom.cn[0].cn[0];
741
+ return this.vdom.cn[0].cn[0]
727
742
  }
728
743
 
729
744
  /**
@@ -731,7 +746,7 @@ class Helix extends Component {
731
746
  * @returns {String}
732
747
  */
733
748
  getItemVnodeId(id) {
734
- return this.id + '__' + id;
749
+ return this.id + '__' + id
735
750
  }
736
751
 
737
752
  /**
@@ -749,8 +764,8 @@ class Helix extends Component {
749
764
  }).then(data => {
750
765
  me.offsetHeight = data.attributes.offsetHeight;
751
766
  me.offsetWidth = data.attributes.offsetWidth;
752
- });
753
- }, delay);
767
+ })
768
+ }, delay)
754
769
  }
755
770
 
756
771
  /**
@@ -766,8 +781,8 @@ class Helix extends Component {
766
781
  console.log('Error for Neo.Xhr.request', err, me.id);
767
782
  }).then(data => {
768
783
  me.store.items = data.json.data;
769
- me.createItems();
770
- });
784
+ me.createItems()
785
+ })
771
786
  }
772
787
 
773
788
  /**
@@ -775,14 +790,14 @@ class Helix extends Component {
775
790
  */
776
791
  moveToSelectedItem(itemId) {
777
792
  let me = this;
778
- me.rotationAngle = me.store.get(itemId).rotationAngle + me.rotationAngle;
793
+ me.rotationAngle = me.store.get(itemId).rotationAngle + me.rotationAngle
779
794
  }
780
795
 
781
796
  /**
782
797
  * @param {Object} data
783
798
  */
784
799
  onClick(data) {
785
- this.fire(data.id === this.id ? 'containerClick' : 'itemClick', data);
800
+ this.fire(data.id === this.id ? 'containerClick' : 'itemClick', data)
786
801
  }
787
802
 
788
803
  /**
@@ -790,7 +805,7 @@ class Helix extends Component {
790
805
  */
791
806
  onConstructed() {
792
807
  super.onConstructed();
793
- this.selectionModel?.register(this);
808
+ this.selectionModel?.register(this)
794
809
  }
795
810
 
796
811
  /**
@@ -798,14 +813,14 @@ class Helix extends Component {
798
813
  */
799
814
  onKeyDownEnter(data) {
800
815
  let item = this.selectionModel.items[0];
801
- item && this.expandItem(item);
816
+ item && this.expandItem(item)
802
817
  }
803
818
 
804
819
  /**
805
820
  * @param {Object} data
806
821
  */
807
822
  onKeyDownSpace(data) {
808
- this.applyItemTransitions(this.moveToSelectedItem, 1000, this.selectionModel.items[0] || 0);
823
+ this.applyItemTransitions(this.moveToSelectedItem, 1000, this.selectionModel.items[0] || 0)
809
824
  }
810
825
 
811
826
  /**
@@ -814,14 +829,14 @@ class Helix extends Component {
814
829
  onMouseWheel(data) {
815
830
  let me = this;
816
831
 
817
- if (me.mouseWheelEnabled && me[lockWheel]) {
832
+ if (me.mouseWheelEnabled && !me[lockWheel]) {
818
833
  me._rotationAngle = me.rotationAngle + (data.deltaX * me.mouseWheelDeltaX); // silent update
819
834
  me._translateZ = me.translateZ + (data.deltaY * me.mouseWheelDeltaY); // silent update
820
835
 
821
836
  me.refresh();
822
837
 
823
838
  me.fire('changeRotation', me._rotationAngle);
824
- me.fire('changeTranslateZ', me._translateZ);
839
+ me.fire('changeTranslateZ', me._translateZ)
825
840
  }
826
841
  }
827
842
 
@@ -833,7 +848,7 @@ class Helix extends Component {
833
848
  let me = this;
834
849
 
835
850
  if (me.followSelection && value?.[0]) {
836
- me.applyItemTransitions(me.moveToSelectedItem, 100, value[0]);
851
+ me.applyItemTransitions(me.moveToSelectedItem, 100, value[0])
837
852
  }
838
853
  }
839
854
 
@@ -844,7 +859,7 @@ class Helix extends Component {
844
859
  let me = this;
845
860
 
846
861
  if (me[itemsMounted] === true) {
847
- me.applyItemTransitions(me.sortItems, 1000);
862
+ me.applyItemTransitions(me.sortItems, 1000)
848
863
  }
849
864
  }
850
865
 
@@ -853,28 +868,18 @@ class Helix extends Component {
853
868
  */
854
869
  onStoreLoad(items) {
855
870
  this.getItemsRoot().cn = []; // silent update
856
- this.createItems();
871
+ this.createItems()
857
872
  }
858
873
 
859
874
  /**
860
875
  * @protected
861
876
  */
862
877
  refresh() {
863
- let me = this,
864
- deltas = [],
865
- deltaY = me.deltaY,
866
- flipped = me.flipped,
867
- index = 0,
868
- itemAngle = me.itemAngle,
869
- len = Math.min(me.maxItems, me.store.getCount()),
870
- matrix = me.matrix,
871
- radius = me.radius,
872
- rotationAngle = me.rotationAngle,
873
- rotationMatrix = me.rotationMatrix,
874
- translateX = me.translateX,
875
- translateY = me.translateY,
876
- translateZ = me.translateZ,
877
- vdom = me.vdom,
878
+ let me = this,
879
+ deltas = [],
880
+ {deltaY, flipped, itemAngle, matrix, radius, rotationAngle, rotationMatrix, translateX, translateY, translateZ, vdom} = me,
881
+ index = 0,
882
+ len = Math.min(me.maxItems, me.store.getCount()),
878
883
  angle, item, opacity, rotateY, transformStyle, vdomItem, c, s, x, y, z;
879
884
 
880
885
  if (flipped) {
@@ -883,9 +888,9 @@ class Helix extends Component {
883
888
  if (!rotationMatrix) {
884
889
  me.rotationMatrix = rotationMatrix = Neo.create(Matrix, {
885
890
  items: rotateY
886
- });
891
+ })
887
892
  } else {
888
- rotationMatrix.items = rotateY;
893
+ rotationMatrix.items = rotateY
889
894
  }
890
895
  }
891
896
 
@@ -910,7 +915,7 @@ class Helix extends Component {
910
915
  ];
911
916
 
912
917
  if (flipped) {
913
- matrix = rotationMatrix.x(matrix);
918
+ matrix = rotationMatrix.x(matrix)
914
919
  }
915
920
 
916
921
  transformStyle = matrix.getTransformStyle();
@@ -936,17 +941,17 @@ class Helix extends Component {
936
941
  opacity,
937
942
  transform: transformStyle
938
943
  }
939
- });
944
+ })
940
945
  }
941
946
 
942
- Neo.applyDeltas(me.appName, deltas);
947
+ Neo.applyDeltas(me.appName, deltas)
943
948
  }
944
949
 
945
950
  /**
946
951
  * @protected
947
952
  */
948
953
  refreshIfMounted() {
949
- this.mounted && this.refresh();
954
+ this.mounted && this.refresh()
950
955
  }
951
956
 
952
957
  /**
@@ -965,11 +970,11 @@ class Helix extends Component {
965
970
  id : me.getItemVnodeId(me.store.items[i][me.keyProperty]),
966
971
  index : i,
967
972
  parentId
968
- });
973
+ })
969
974
  }
970
975
 
971
976
  Neo.applyDeltas(me.appName, deltas).then(() => {
972
- me.refresh();
977
+ me.refresh()
973
978
  });
974
979
  }
975
980
 
@@ -986,7 +991,7 @@ class Helix extends Component {
986
991
  transform = me.getCloneTransform(true);
987
992
 
988
993
  me.transitionTimeouts.forEach(item => {
989
- clearTimeout(item);
994
+ clearTimeout(item)
990
995
  });
991
996
 
992
997
  me.clonedItems.forEach(item => {
@@ -1013,11 +1018,11 @@ class Helix extends Component {
1013
1018
  Neo.applyDeltas(me.appName, deltas).then(() => {
1014
1019
  timeoutId = setTimeout(() => {
1015
1020
  NeoArray.remove(me.transitionTimeouts, timeoutId);
1016
- Neo.applyDeltas(me.appName, afterDeltas);
1021
+ Neo.applyDeltas(me.appName, afterDeltas)
1017
1022
  }, 200);
1018
1023
 
1019
- me.transitionTimeouts.push(timeoutId);
1020
- });
1024
+ me.transitionTimeouts.push(timeoutId)
1025
+ })
1021
1026
  }
1022
1027
  }
1023
1028
  }
@@ -33,7 +33,7 @@ class Iframe extends Base {
33
33
  * @protected
34
34
  */
35
35
  afterSetSrc(value, oldValue) {
36
- this.changeVdomRootKey('src', value);
36
+ this.changeVdomRootKey('src', value)
37
37
  }
38
38
  }
39
39
 
@@ -40,7 +40,7 @@ class Label extends Component {
40
40
  */
41
41
  afterSetText(value, oldValue) {
42
42
  this.vdom.html = value;
43
- this.update();
43
+ this.update()
44
44
  }
45
45
  }
46
46
 
@@ -52,7 +52,7 @@ class Legend extends Component {
52
52
  */
53
53
  afterSetIconCls(value, oldValue) {
54
54
  this.vdom.cn[0].html = `<i class="neo-legend-icon ${value}"></i>`;
55
- this.update();
55
+ this.update()
56
56
  }
57
57
 
58
58
  /**
@@ -63,7 +63,7 @@ class Legend extends Component {
63
63
  */
64
64
  afterSetText(value, oldValue) {
65
65
  this.vdom.cn[1].html = value;
66
- this.update();
66
+ this.update()
67
67
  }
68
68
 
69
69
  /**
@@ -74,7 +74,7 @@ class Legend extends Component {
74
74
  */
75
75
  afterSetUseIcon(value, oldValue) {
76
76
  this.vdom.cn[0].removeDom = !value;
77
- this.update();
77
+ this.update()
78
78
  }
79
79
  }
80
80