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
@@ -100,7 +100,7 @@ class Panel extends Container {
100
100
  });
101
101
  }
102
102
 
103
- return {...config, ...header};
103
+ return {...config, ...header}
104
104
  }
105
105
 
106
106
  /**
@@ -122,18 +122,18 @@ class Panel extends Container {
122
122
  topHeaders = headers.filter(header => {return header.dock === (hf ?'top' : 'left')}),
123
123
  hasHorizontalHeaders = bottomHeaders.length > 0 || topHeaders .length > 0,
124
124
  hasVerticalHeaders = leftHeaders .length > 0 || rightHeaders.length > 0,
125
- items = me.items,
125
+ {items} = me,
126
126
  horizontalItems = [],
127
127
  verticalItems = [],
128
128
  config;
129
129
 
130
130
  topHeaders.forEach(header => {
131
- verticalItems.push(Panel.createHeaderConfig(header));
131
+ verticalItems.push(Panel.createHeaderConfig(header))
132
132
  });
133
133
 
134
134
  if (hasVerticalHeaders && (hf && hasHorizontalHeaders || !hf && hasHorizontalHeaders)) {
135
135
  leftHeaders.forEach(header => {
136
- horizontalItems.push(Panel.createHeaderConfig(header));
136
+ horizontalItems.push(Panel.createHeaderConfig(header))
137
137
  });
138
138
 
139
139
  config = {
@@ -147,7 +147,7 @@ class Panel extends Container {
147
147
  horizontalItems.push({...me.headerDefaults, ...config});
148
148
 
149
149
  rightHeaders.forEach(header => {
150
- horizontalItems.push(Panel.createHeaderConfig(header));
150
+ horizontalItems.push(Panel.createHeaderConfig(header))
151
151
  });
152
152
 
153
153
  verticalItems.push({
@@ -167,18 +167,18 @@ class Panel extends Container {
167
167
  ...containerConfig
168
168
  };
169
169
 
170
- verticalItems.push({...me.headerDefaults, ...config});
170
+ verticalItems.push({...me.headerDefaults, ...config})
171
171
  }
172
172
 
173
173
  bottomHeaders.forEach(header => {
174
- verticalItems.push(Panel.createHeaderConfig(header));
174
+ verticalItems.push(Panel.createHeaderConfig(header))
175
175
  });
176
176
 
177
177
  me.items = verticalItems;
178
178
 
179
179
  me.itemDefaults = null;
180
180
 
181
- super.createItems();
181
+ super.createItems()
182
182
  }
183
183
  }
184
184
 
@@ -186,7 +186,7 @@ class Panel extends Container {
186
186
  * @returns {Boolean}
187
187
  */
188
188
  hasHeaders() {
189
- return Array.isArray(this.headers) && this.headers.length > 0;
189
+ return Array.isArray(this.headers) && this.headers.length > 0
190
190
  }
191
191
  }
192
192
 
@@ -96,9 +96,9 @@ class Base extends CoreBase {
96
96
  *
97
97
  */
98
98
  async onConstructed() {
99
- let me = this,
100
- currentHash = HashHistory.first(),
101
- defaultHash = me.defaultHash;
99
+ let me = this,
100
+ currentHash = HashHistory.first(),
101
+ {defaultHash} = me;
102
102
 
103
103
  // get outside the construction chain => a related cmp & vm has to be constructed too
104
104
  await me.timeout(1);
@@ -128,14 +128,13 @@ class Base extends CoreBase {
128
128
  return
129
129
  }
130
130
 
131
- let me = this,
132
- counter = 0,
133
- hasRouteBeenFound = false,
134
- handleRoutes = me.handleRoutes,
135
- routeKeys = Object.keys(handleRoutes),
136
- routeKeysLength = routeKeys.length,
137
- routes = me.routes,
138
- handler, key, paramObject, preHandler, responsePreHandler, result, route;
131
+ let me = this,
132
+ counter = 0,
133
+ hasRouteBeenFound = false,
134
+ {handleRoutes, routes} = me,
135
+ routeKeys = Object.keys(handleRoutes),
136
+ routeKeysLength = routeKeys.length,
137
+ arrayParamIds, arrayParamValues, handler, key, paramObject, preHandler, responsePreHandler, result, route;
139
138
 
140
139
  while (routeKeysLength > 0 && counter < routeKeysLength && !hasRouteBeenFound) {
141
140
  key = routeKeys[counter];
@@ -146,9 +145,8 @@ class Base extends CoreBase {
146
145
  result = value.hashString.match(handleRoutes[key]);
147
146
 
148
147
  if (result) {
149
- const
150
- arrayParamIds = key.match(routeParamRegex),
151
- arrayParamValues = result.splice(1, result.length - 1);
148
+ arrayParamIds = key.match(routeParamRegex);
149
+ arrayParamValues = result.splice(1, result.length - 1);
152
150
 
153
151
  if (arrayParamIds && arrayParamIds.length !== arrayParamValues.length) {
154
152
  throw 'Number of IDs and number of Values do not match'
@@ -43,8 +43,8 @@ class Component extends Base {
43
43
  construct(config) {
44
44
  super.construct(config);
45
45
 
46
- let me = this,
47
- component = me.component,
46
+ let me = this,
47
+ {component} = me,
48
48
  listenerId;
49
49
 
50
50
  me.references = {};
@@ -55,7 +55,7 @@ class Component extends Base {
55
55
  listenerId = component.on('constructed', () => {
56
56
  component.un('constructed', listenerId);
57
57
  me.onComponentConstructed()
58
- });
58
+ })
59
59
  }
60
60
  }
61
61
 
@@ -75,8 +75,8 @@ class Component extends Base {
75
75
  * @returns {Neo.controller.Component|Boolean|null}
76
76
  */
77
77
  getHandlerScope(handlerName, component) {
78
- let me = this,
79
- parent = me.parent;
78
+ let me = this,
79
+ {parent} = me;
80
80
 
81
81
  if (component) {
82
82
  // Look for ths function *name* first in the Component itself.
@@ -101,7 +101,7 @@ class Component extends Base {
101
101
  * @param {Boolean} [sameLevelOnly=false]
102
102
  */
103
103
  getModel(sameLevelOnly=false) {
104
- let component = this.component;
104
+ let {component} = this;
105
105
  return sameLevelOnly ? component.model : component.getModel()
106
106
  }
107
107
 
@@ -110,10 +110,11 @@ class Component extends Base {
110
110
  * @returns {Neo.controller.Component|null}
111
111
  */
112
112
  getParent() {
113
- let me = this;
113
+ let me = this,
114
+ {parent} = me;
114
115
 
115
- if (me.parent) {
116
- return me.parent;
116
+ if (parent) {
117
+ return parent;
117
118
  }
118
119
 
119
120
  return me.component.parent?.getController() || null
@@ -158,11 +159,8 @@ class Component extends Base {
158
159
  * @param {Neo.component.Base} component=this.component
159
160
  */
160
161
  parseConfig(component=this.component) {
161
- let me = this,
162
- handler = component.handler,
163
- listeners = component.listeners,
164
- reference = component.reference,
165
- validator = component.validator,
162
+ let me = this,
163
+ {handler, listeners, reference, validator} = component,
166
164
  eventHandler, handlerScope;
167
165
 
168
166
  if (handler && typeof handler === 'string') {
@@ -174,36 +172,34 @@ class Component extends Base {
174
172
  }
175
173
  }
176
174
 
177
- if (listeners) {
178
- Object.entries(listeners).forEach(([key, value]) => {
179
- if (key !== 'scope' && key !== 'delegate') {
180
- if (Neo.isString(value)) {
181
- eventHandler = value;
182
- handlerScope = me.getHandlerScope(eventHandler, component);
183
-
184
- if (!handlerScope) {
185
- Logger.logError('Unknown event handler for', eventHandler, component)
186
- } else if (handlerScope !== true) {
187
- listeners[key] = {};
188
- listeners[key].fn = handlerScope[eventHandler].bind(handlerScope)
189
- }
190
- } else {
191
- value.forEach(listener => {
192
- if (Neo.isObject(listener) && listener.hasOwnProperty('fn') && Neo.isString(listener.fn)) {
193
- eventHandler = listener.fn;
194
- handlerScope = me.getHandlerScope(eventHandler, component);
195
-
196
- if (!handlerScope) {
197
- console.error('Unknown event handler for', eventHandler, component)
198
- } else if (handlerScope !== true) {
199
- listener.fn = handlerScope[eventHandler].bind(handlerScope)
200
- }
201
- }
202
- });
175
+ listeners && Object.entries(listeners).forEach(([key, value]) => {
176
+ if (key !== 'scope' && key !== 'delegate') {
177
+ if (Neo.isString(value)) {
178
+ eventHandler = value;
179
+ handlerScope = me.getHandlerScope(eventHandler, component);
180
+
181
+ if (!handlerScope) {
182
+ Logger.logError('Unknown event handler for', eventHandler, component)
183
+ } else if (handlerScope !== true) {
184
+ listeners[key] = {};
185
+ listeners[key].fn = handlerScope[eventHandler].bind(handlerScope)
203
186
  }
187
+ } else {
188
+ value.forEach(listener => {
189
+ if (Neo.isObject(listener) && listener.hasOwnProperty('fn') && Neo.isString(listener.fn)) {
190
+ eventHandler = listener.fn;
191
+ handlerScope = me.getHandlerScope(eventHandler, component);
192
+
193
+ if (!handlerScope) {
194
+ console.error('Unknown event handler for', eventHandler, component)
195
+ } else if (handlerScope !== true) {
196
+ listener.fn = handlerScope[eventHandler].bind(handlerScope)
197
+ }
198
+ }
199
+ })
204
200
  }
205
- });
206
- }
201
+ }
202
+ });
207
203
 
208
204
  if (Neo.isString(validator)) {
209
205
  handlerScope = me.getHandlerScope(validator);
@@ -224,35 +220,33 @@ class Component extends Base {
224
220
  * @param {Neo.component.Base} component=this.component
225
221
  */
226
222
  parseDomListeners(component=this.component) {
227
- let me = this,
228
- domListeners = component.domListeners,
223
+ let me = this,
224
+ {domListeners} = component,
229
225
  eventHandler, scope;
230
226
 
231
- if (domListeners) {
232
- domListeners.forEach(domListener => {
233
- Object.entries(domListener).forEach(([key, value]) => {
234
- eventHandler = null;
227
+ domListeners?.forEach(domListener => {
228
+ Object.entries(domListener).forEach(([key, value]) => {
229
+ eventHandler = null;
235
230
 
236
- if (key !== 'scope' && key !== 'delegate') {
237
- if (Neo.isString(value)) {
238
- eventHandler = value;
239
- } else if (Neo.isObject(value) && value.hasOwnProperty('fn') && Neo.isString(value.fn)) {
240
- eventHandler = value.fn;
241
- }
231
+ if (key !== 'scope' && key !== 'delegate') {
232
+ if (Neo.isString(value)) {
233
+ eventHandler = value;
234
+ } else if (Neo.isObject(value) && value.hasOwnProperty('fn') && Neo.isString(value.fn)) {
235
+ eventHandler = value.fn;
236
+ }
242
237
 
243
- if (eventHandler) {
244
- scope = me.getHandlerScope(eventHandler);
238
+ if (eventHandler) {
239
+ scope = me.getHandlerScope(eventHandler);
245
240
 
246
- if (!scope) {
247
- Logger.logError('Unknown domEvent handler for', eventHandler, component)
248
- } else {
249
- domListener[key] = scope[eventHandler].bind(scope)
250
- }
241
+ if (!scope) {
242
+ Logger.logError('Unknown domEvent handler for', eventHandler, component)
243
+ } else {
244
+ domListener[key] = scope[eventHandler].bind(scope)
251
245
  }
252
246
  }
253
- })
247
+ }
254
248
  })
255
- }
249
+ })
256
250
  }
257
251
 
258
252
  /**
@@ -260,14 +254,14 @@ class Component extends Base {
260
254
  * @param {Neo.component.Base} component
261
255
  */
262
256
  removeReference(component) {
263
- let me = this,
264
- references = me.references,
257
+ let me = this,
258
+ {references} = me,
265
259
  key;
266
260
 
267
261
  for (key in references) {
268
262
  if (component === references[key]) {
269
263
  delete references[key];
270
- break;
264
+ break
271
265
  }
272
266
  }
273
267
 
package/src/core/Base.mjs CHANGED
@@ -382,11 +382,9 @@ class Base {
382
382
  * @protected
383
383
  */
384
384
  initRemote() {
385
- let me = this,
386
- remote = me.remote,
387
- className = me.className,
388
- currentWorker = Neo.currentWorker,
389
- listenerId;
385
+ let me = this,
386
+ {className, remote} = me,
387
+ {currentWorker} = Neo;
390
388
 
391
389
  if (!me.singleton && !me.isMainThreadAddon) {
392
390
  throw new Error('Remote method access is only functional for Singleton classes ' + className)
@@ -394,10 +392,9 @@ class Base {
394
392
 
395
393
  if (!Neo.config.unitTestMode && Neo.isObject(remote)) {
396
394
  if (Neo.workerId !== 'main' && currentWorker.isSharedWorker && !currentWorker.isConnected) {
397
- listenerId = currentWorker.on('connected', () => {
398
- currentWorker.un('connected', listenerId);
395
+ currentWorker.on('connected', () => {
399
396
  Base.sendRemotes(className, remote)
400
- });
397
+ }, me, {once: true})
401
398
  } else {
402
399
  Base.sendRemotes(className, remote)
403
400
  }
@@ -72,6 +72,4 @@ class IdGenerator {
72
72
  onConstructed() {}
73
73
  }
74
74
 
75
- let instance = Neo.setupClass(IdGenerator);
76
-
77
- export default instance;
75
+ export default Neo.setupClass(IdGenerator);
@@ -68,13 +68,13 @@ class Observable extends Base {
68
68
  listener = opts.fn;
69
69
  once = once || opts.once;
70
70
  order = order || opts.order;
71
- scope = scope || opts.scope;
71
+ scope = scope || opts.scope
72
72
  } else if (typeof opts === 'function') {
73
- listener = opts;
73
+ listener = opts
74
74
  } else if (typeof opts === 'string') {
75
- listener = opts; // VC hook, can get parsed after onConstructed in case the view uses the parent VC
75
+ listener = opts // VC hook, can get parsed after onConstructed in case the view uses the parent VC
76
76
  } else {
77
- throw new Error('Invalid addListener call: ' + name);
77
+ throw new Error('Invalid addListener call: ' + name)
78
78
  }
79
79
 
80
80
  if (!nameObject) {
@@ -90,19 +90,19 @@ class Observable extends Base {
90
90
  if (existing = me.listeners?.[name]) {
91
91
  existing.forEach(cfg => {
92
92
  if (cfg.id === eventId || (cfg.fn === listener && cfg.scope === scope)) {
93
- console.error('Duplicate event handler attached:', name, me);
93
+ console.error('Duplicate event handler attached:', name, me)
94
94
  }
95
95
  });
96
96
 
97
97
  if (typeof order === 'number') {
98
- existing.splice(order, 0, eventConfig);
98
+ existing.splice(order, 0, eventConfig)
99
99
  } else if (order === 'before') {
100
- existing.unshift(eventConfig);
100
+ existing.unshift(eventConfig)
101
101
  } else {
102
- existing.push(eventConfig);
102
+ existing.push(eventConfig)
103
103
  }
104
104
  } else {
105
- me.listeners[name] = [eventConfig];
105
+ me.listeners[name] = [eventConfig]
106
106
  }
107
107
 
108
108
  return eventConfig.id
@@ -193,7 +193,7 @@ class Observable extends Base {
193
193
 
194
194
  if (config.listeners) {
195
195
  me.listeners = config.listeners;
196
- delete config.listeners;
196
+ delete config.listeners
197
197
  }
198
198
 
199
199
  listeners = me.listeners;
@@ -202,7 +202,7 @@ class Observable extends Base {
202
202
 
203
203
  if (listeners) {
204
204
  if (Neo.isObject(listeners)) {
205
- listeners = {...listeners};
205
+ listeners = {...listeners}
206
206
  }
207
207
 
208
208
  me.addListener(listeners);
@@ -219,10 +219,10 @@ class Observable extends Base {
219
219
  on : me.on,
220
220
  removeListener: me.removeListener,
221
221
  un : me.un
222
- });
222
+ })
223
223
  }
224
224
 
225
- proto = proto.__proto__;
225
+ proto = proto.__proto__
226
226
  }
227
227
  }
228
228
 
@@ -237,7 +237,7 @@ class Observable extends Base {
237
237
  * @returns {String} eventId
238
238
  */
239
239
  on(...args) {
240
- return this.addListener(...args);
240
+ return this.addListener(...args)
241
241
  }
242
242
 
243
243
  /**
@@ -290,7 +290,7 @@ class Observable extends Base {
290
290
  listener.scope === scope
291
291
  ) {
292
292
  listeners.splice(i, 1);
293
- break;
293
+ break
294
294
  }
295
295
  }
296
296
  });
@@ -300,12 +300,12 @@ class Observable extends Base {
300
300
 
301
301
  listeners.forEach((eventConfig, idx) => {
302
302
  if (eventConfig.id === eventId) {
303
- return match = idx;
303
+ return match = idx
304
304
  }
305
305
  });
306
306
 
307
307
  if (match !== false) {
308
- listeners.splice(match, 1);
308
+ listeners.splice(match, 1)
309
309
  }
310
310
  }
311
311
  }
package/src/core/Util.mjs CHANGED
@@ -32,8 +32,8 @@ class Util extends Base {
32
32
  */
33
33
  static bindMethods(scope, values) {
34
34
  values.forEach(value => {
35
- scope[value] = scope[value].bind(scope);
36
- });
35
+ scope[value] = scope[value].bind(scope)
36
+ })
37
37
  }
38
38
 
39
39
  /**
@@ -54,17 +54,17 @@ class Util extends Base {
54
54
  parts = el.split((/:(.+)/)).map(function (x) {
55
55
  let num = parseFloat(x);
56
56
 
57
- return x == num ? num : x.trim();
57
+ return x == num ? num : x.trim()
58
58
  });
59
59
 
60
60
  if (parts[0] !== '') {
61
61
  parts[0] = parts[0].replace(/-([a-z])/g, (str, letter) => {
62
- return letter.toUpperCase();
62
+ return letter.toUpperCase()
63
63
  });
64
64
 
65
65
  obj[parts[0]] = parts[1]
66
66
  }
67
- return obj;
67
+ return obj
68
68
  }, {})
69
69
  }
70
70
 
@@ -43,7 +43,7 @@ class Model extends Base {
43
43
  * @property {Boolean} isRecord=true
44
44
  * @readonly
45
45
  */
46
- isRecord = true;
46
+ isRecord = true
47
47
 
48
48
  /**
49
49
  * Finds a field config by a given field name
@@ -57,11 +57,11 @@ class Model extends Base {
57
57
 
58
58
  for (; i < len; i++) {
59
59
  if (me.fields[i].name === name) {
60
- return me.fields[i];
60
+ return me.fields[i]
61
61
  }
62
62
  }
63
63
 
64
- return null;
64
+ return null
65
65
  }
66
66
  }
67
67
 
@@ -98,7 +98,7 @@ class RecordFactory extends Base {
98
98
  configurable: true,
99
99
  enumerable : true,
100
100
  get() {
101
- return this[symbol];
101
+ return this[symbol]
102
102
  },
103
103
  set(value) {
104
104
  let me = this,
@@ -203,7 +203,7 @@ class RecordFactory extends Base {
203
203
  return !Neo.isEqual(record[fieldName], record[modifiedField])
204
204
  }
205
205
 
206
- return null;
206
+ return null
207
207
  }
208
208
 
209
209
  /**
@@ -245,10 +245,7 @@ class RecordFactory extends Base {
245
245
  }
246
246
 
247
247
  let fieldName = field.name,
248
- mapping = field.mapping,
249
- maxLength = field.maxLength,
250
- minLength = field.minLength,
251
- nullable = field.nullable,
248
+ {mapping, maxLength, minLength, nullable} = field,
252
249
  oldValue = recordConfig?.[fieldName] || record[fieldName],
253
250
  type = field.type?.toLowerCase();
254
251