neo.mjs 6.17.2 → 6.18.1

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 (323) 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 +34 -6
  27. package/apps/portal/view/home/parts/AfterMath.mjs +1 -1
  28. package/apps/portal/view/home/parts/Colors.mjs +98 -0
  29. package/apps/portal/view/home/parts/Helix.mjs +114 -0
  30. package/apps/portal/view/home/parts/HelloWorld.mjs +6 -3
  31. package/apps/portal/view/home/parts/How.mjs +66 -0
  32. package/apps/portal/view/home/parts/MainNeo.mjs +4 -3
  33. package/apps/portal/view/learn/LivePreview.mjs +56 -15
  34. package/apps/portal/view/learn/MainContainerController.mjs +10 -90
  35. package/apps/realworld/api/Article.mjs +1 -3
  36. package/apps/realworld/api/Favorite.mjs +1 -3
  37. package/apps/realworld/api/Profile.mjs +1 -3
  38. package/apps/realworld/api/Tag.mjs +1 -3
  39. package/apps/realworld/api/User.mjs +1 -3
  40. package/apps/realworld2/api/Article.mjs +1 -3
  41. package/apps/realworld2/api/Favorite.mjs +1 -3
  42. package/apps/realworld2/api/Profile.mjs +1 -3
  43. package/apps/realworld2/api/Tag.mjs +1 -3
  44. package/apps/realworld2/api/User.mjs +1 -3
  45. package/apps/realworld2/view/article/HelixContainer.mjs +5 -5
  46. package/buildScripts/webpack/json/myApps.template.json +1 -0
  47. package/docs/app/view/MainContainer.mjs +5 -0
  48. package/docs/app/view/classdetails/MembersList.mjs +1 -1
  49. package/examples/ServiceWorker.mjs +3 -5
  50. package/examples/component/helix/Viewport.mjs +309 -0
  51. package/examples/component/helix/ViewportController.mjs +122 -0
  52. package/examples/component/helix/app.mjs +2 -2
  53. package/examples/component/helix/neo-config.json +0 -1
  54. package/examples/component/multiWindowHelix/Viewport.mjs +11 -3
  55. package/examples/component/multiWindowHelix/ViewportController.mjs +21 -9
  56. package/examples/component/multiWindowHelix/neo-config.json +0 -1
  57. package/examples/fieldWithPrefix/MainContainer.mjs +1 -6
  58. package/examples/list/animate/MainContainerController.mjs +1 -1
  59. package/examples/worker/task/MyTasks.mjs +1 -3
  60. package/package.json +2 -2
  61. package/resources/data/deck/learnneo/pages/Events.md +15 -9
  62. package/resources/data/deck/learnneo/pages/GuideEvents.md +254 -0
  63. package/resources/data/deck/learnneo/pages/WhyNeo-Speed.md +1 -1
  64. package/resources/images/logo/neo_logo_primary.svg +6 -0
  65. package/resources/images/logo/neo_logo_text_primary.svg +5 -0
  66. package/resources/scss/src/apps/colors/BarChartComponent.scss +3 -0
  67. package/resources/scss/src/apps/colors/HeaderToolbar.scss +11 -0
  68. package/resources/scss/src/apps/colors/PieChartComponent.scss +3 -0
  69. package/resources/scss/src/apps/colors/TableContainer.scss +64 -0
  70. package/resources/scss/src/apps/colors/Viewport.scss +9 -0
  71. package/resources/scss/src/apps/portal/HeaderToolbar.scss +142 -124
  72. package/resources/scss/src/apps/portal/home/MainContainer.scss +9 -22
  73. package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +22 -0
  74. package/resources/scss/src/apps/portal/home/preview/PageCodeContainer.scss +1 -1
  75. package/resources/scss/src/examples/component/multiWindowHelix/Viewport.scss +3 -0
  76. package/resources/scss/src/form/field/CheckBox.scss +1 -0
  77. package/resources/scss/src/tab/header/Button.scss +2 -1
  78. package/resources/scss/theme-dark/Global.scss +8 -0
  79. package/resources/scss/theme-dark/button/Base.scss +1 -1
  80. package/resources/scss/theme-dark/tab/header/Button.scss +1 -0
  81. package/resources/scss/theme-light/Global.scss +8 -0
  82. package/resources/scss/theme-light/button/Base.scss +1 -1
  83. package/resources/scss/theme-light/tab/header/Button.scss +1 -0
  84. package/resources/scss/theme-neo-light/Global.scss +53 -53
  85. package/resources/scss/theme-neo-light/button/Base.scss +3 -4
  86. package/resources/scss/theme-neo-light/tab/header/Button.scss +6 -8
  87. package/src/DefaultConfig.mjs +2 -2
  88. package/src/Fetch.mjs +1 -3
  89. package/src/Main.mjs +13 -11
  90. package/src/MicroLoader.mjs +2 -2
  91. package/src/Neo.mjs +27 -26
  92. package/src/Xhr.mjs +1 -3
  93. package/src/button/Base.mjs +6 -4
  94. package/src/button/Split.mjs +10 -9
  95. package/src/calendar/view/EditEventContainer.mjs +13 -12
  96. package/src/calendar/view/MainContainer.mjs +40 -40
  97. package/src/calendar/view/MainContainerModel.mjs +5 -5
  98. package/src/calendar/view/SettingsContainer.mjs +11 -11
  99. package/src/calendar/view/YearComponent.mjs +73 -75
  100. package/src/calendar/view/calendars/ColorsList.mjs +2 -2
  101. package/src/calendar/view/calendars/EditContainer.mjs +2 -2
  102. package/src/calendar/view/calendars/List.mjs +12 -13
  103. package/src/calendar/view/month/Component.mjs +72 -73
  104. package/src/calendar/view/settings/GeneralContainer.mjs +5 -5
  105. package/src/calendar/view/settings/MonthContainer.mjs +5 -5
  106. package/src/calendar/view/settings/WeekContainer.mjs +6 -6
  107. package/src/calendar/view/settings/YearContainer.mjs +4 -4
  108. package/src/calendar/view/week/Component.mjs +47 -57
  109. package/src/calendar/view/week/EventDragZone.mjs +43 -50
  110. package/src/calendar/view/week/TimeAxisComponent.mjs +21 -21
  111. package/src/calendar/view/week/plugin/DragDrop.mjs +53 -45
  112. package/src/calendar/view/week/plugin/EventResizable.mjs +8 -3
  113. package/src/collection/Base.mjs +15 -22
  114. package/src/collection/Filter.mjs +4 -9
  115. package/src/collection/Sorter.mjs +6 -7
  116. package/src/component/Base.mjs +73 -41
  117. package/src/component/Canvas.mjs +9 -9
  118. package/src/component/Carousel.mjs +31 -33
  119. package/src/component/Chip.mjs +9 -9
  120. package/src/component/Circle.mjs +84 -91
  121. package/src/component/Clock.mjs +8 -8
  122. package/src/component/DateSelector.mjs +14 -15
  123. package/src/component/Gallery.mjs +82 -80
  124. package/src/component/Helix.mjs +131 -126
  125. package/src/component/Iframe.mjs +1 -1
  126. package/src/component/Label.mjs +1 -1
  127. package/src/component/Legend.mjs +3 -3
  128. package/src/component/Process.mjs +39 -37
  129. package/src/component/Splitter.mjs +9 -11
  130. package/src/component/StatusBadge.mjs +2 -3
  131. package/src/component/Timer.mjs +62 -68
  132. package/src/component/Toast.mjs +11 -11
  133. package/src/component/Video.mjs +7 -8
  134. package/src/component/mwc/Button.mjs +10 -10
  135. package/src/component/mwc/TextField.mjs +17 -17
  136. package/src/component/wrapper/AmChart.mjs +5 -5
  137. package/src/component/wrapper/CesiumJS.mjs +11 -17
  138. package/src/component/wrapper/GoogleMaps.mjs +58 -35
  139. package/src/component/wrapper/MapboxGL.mjs +112 -79
  140. package/src/container/Accordion.mjs +18 -20
  141. package/src/container/AccordionItem.mjs +12 -11
  142. package/src/container/Base.mjs +24 -23
  143. package/src/container/Panel.mjs +9 -9
  144. package/src/controller/Base.mjs +12 -14
  145. package/src/controller/Component.mjs +60 -66
  146. package/src/core/Base.mjs +5 -8
  147. package/src/core/IdGenerator.mjs +1 -3
  148. package/src/core/Observable.mjs +40 -24
  149. package/src/core/Util.mjs +5 -5
  150. package/src/data/Model.mjs +3 -3
  151. package/src/data/RecordFactory.mjs +3 -6
  152. package/src/data/Store.mjs +34 -34
  153. package/src/data/connection/Fetch.mjs +3 -3
  154. package/src/data/connection/WebSocket.mjs +21 -25
  155. package/src/data/connection/Xhr.mjs +31 -28
  156. package/src/date/DayViewComponent.mjs +1 -1
  157. package/src/date/SelectorContainer.mjs +2 -2
  158. package/src/dialog/Base.mjs +27 -25
  159. package/src/dialog/header/Toolbar.mjs +5 -4
  160. package/src/draggable/DragProxyComponent.mjs +7 -4
  161. package/src/draggable/DragZone.mjs +30 -30
  162. package/src/draggable/DropZone.mjs +7 -7
  163. package/src/draggable/list/DragZone.mjs +18 -18
  164. package/src/draggable/tab/header/toolbar/SortZone.mjs +7 -7
  165. package/src/draggable/toolbar/DragZone.mjs +15 -15
  166. package/src/draggable/toolbar/SortZone.mjs +30 -31
  167. package/src/draggable/tree/DragZone.mjs +9 -9
  168. package/src/filter/BooleanContainer.mjs +3 -3
  169. package/src/filter/NumberContainer.mjs +5 -5
  170. package/src/filter/ToggleOperatorsButton.mjs +5 -5
  171. package/src/form/Fieldset.mjs +26 -26
  172. package/src/form/field/Base.mjs +1 -1
  173. package/src/form/field/CheckBox.mjs +15 -16
  174. package/src/form/field/Color.mjs +13 -15
  175. package/src/form/field/ComboBox.mjs +16 -24
  176. package/src/form/field/Country.mjs +1 -1
  177. package/src/form/field/Date.mjs +3 -4
  178. package/src/form/field/Display.mjs +1 -1
  179. package/src/form/field/Email.mjs +2 -2
  180. package/src/form/field/Number.mjs +51 -56
  181. package/src/form/field/Picker.mjs +2 -2
  182. package/src/form/field/Radio.mjs +1 -1
  183. package/src/form/field/Range.mjs +7 -6
  184. package/src/form/field/Text.mjs +29 -36
  185. package/src/form/field/TextArea.mjs +9 -9
  186. package/src/form/field/Time.mjs +30 -30
  187. package/src/form/field/trigger/Base.mjs +19 -13
  188. package/src/form/field/trigger/Clear.mjs +13 -13
  189. package/src/form/field/trigger/CopyToClipboard.mjs +7 -7
  190. package/src/form/field/trigger/Picker.mjs +2 -2
  191. package/src/form/field/trigger/SpinDown.mjs +1 -1
  192. package/src/form/field/trigger/SpinUp.mjs +1 -1
  193. package/src/form/field/trigger/SpinUpDown.mjs +3 -3
  194. package/src/form/field/trigger/Time.mjs +3 -3
  195. package/src/grid/Container.mjs +33 -33
  196. package/src/grid/View.mjs +20 -22
  197. package/src/grid/header/Button.mjs +12 -12
  198. package/src/grid/header/Toolbar.mjs +4 -4
  199. package/src/layout/Base.mjs +5 -4
  200. package/src/layout/Card.mjs +15 -16
  201. package/src/layout/Fit.mjs +22 -8
  202. package/src/layout/Flexbox.mjs +30 -29
  203. package/src/layout/Form.mjs +15 -15
  204. package/src/layout/Grid.mjs +2 -2
  205. package/src/layout/HBox.mjs +3 -2
  206. package/src/layout/VBox.mjs +3 -2
  207. package/src/list/Base.mjs +45 -47
  208. package/src/list/Chip.mjs +4 -4
  209. package/src/list/Circle.mjs +3 -3
  210. package/src/list/Color.mjs +4 -4
  211. package/src/list/Component.mjs +10 -10
  212. package/src/list/plugin/Animate.mjs +18 -13
  213. package/src/main/DomAccess.mjs +92 -56
  214. package/src/main/DomEvents.mjs +38 -39
  215. package/src/main/addon/AmCharts.mjs +37 -37
  216. package/src/main/addon/AnalyticsByGoogle.mjs +4 -4
  217. package/src/main/addon/CesiumJS.mjs +8 -8
  218. package/src/main/addon/CloneNode.mjs +5 -5
  219. package/src/main/addon/Cookie.mjs +4 -4
  220. package/src/main/addon/DragDrop.mjs +35 -34
  221. package/src/main/addon/GoogleMaps.mjs +19 -19
  222. package/src/main/addon/IntersectionObserver.mjs +20 -1
  223. package/src/main/addon/LocalStorage.mjs +3 -3
  224. package/src/main/addon/MapboxGL.mjs +40 -41
  225. package/src/main/addon/MonacoEditor.mjs +5 -5
  226. package/src/main/addon/Mwc.mjs +6 -6
  227. package/src/main/addon/Navigator.mjs +35 -39
  228. package/src/main/addon/Popover.mjs +5 -6
  229. package/src/main/addon/PrefixField.mjs +1 -2
  230. package/src/main/addon/ServiceWorker.mjs +9 -9
  231. package/src/main/addon/Siesta.mjs +3 -2
  232. package/src/main/addon/Stylesheet.mjs +37 -37
  233. package/src/main/addon/WebComponent.mjs +2 -3
  234. package/src/main/addon/WindowPosition.mjs +18 -18
  235. package/src/main/draggable/sensor/Base.mjs +2 -2
  236. package/src/main/draggable/sensor/Mouse.mjs +15 -15
  237. package/src/main/draggable/sensor/Touch.mjs +24 -23
  238. package/src/main/mixin/DeltaUpdates.mjs +10 -12
  239. package/src/main/mixin/TouchDomEvents.mjs +6 -6
  240. package/src/manager/Base.mjs +4 -4
  241. package/src/manager/Component.mjs +41 -41
  242. package/src/manager/DomEvent.mjs +41 -44
  243. package/src/manager/Focus.mjs +14 -16
  244. package/src/manager/Instance.mjs +2 -4
  245. package/src/manager/Store.mjs +4 -8
  246. package/src/manager/Task.mjs +20 -22
  247. package/src/manager/Toast.mjs +14 -16
  248. package/src/manager/rpc/Api.mjs +1 -3
  249. package/src/manager/rpc/Message.mjs +16 -18
  250. package/src/menu/List.mjs +16 -16
  251. package/src/menu/Panel.mjs +4 -4
  252. package/src/model/Component.mjs +16 -14
  253. package/src/plugin/Base.mjs +2 -0
  254. package/src/plugin/Popover.mjs +1 -1
  255. package/src/plugin/PrefixField.mjs +35 -45
  256. package/src/plugin/Resizable.mjs +86 -101
  257. package/src/plugin/Responsive.mjs +1 -1
  258. package/src/remotes/Api.mjs +4 -6
  259. package/src/selection/CircleModel.mjs +12 -16
  260. package/src/selection/DateSelectorModel.mjs +21 -23
  261. package/src/selection/GalleryModel.mjs +49 -63
  262. package/src/selection/HelixModel.mjs +35 -41
  263. package/src/selection/ListModel.mjs +9 -14
  264. package/src/selection/Model.mjs +31 -31
  265. package/src/selection/TreeAccordionModel.mjs +74 -80
  266. package/src/selection/grid/CellColumnModel.mjs +10 -10
  267. package/src/selection/grid/CellColumnRowModel.mjs +10 -10
  268. package/src/selection/grid/CellModel.mjs +26 -28
  269. package/src/selection/grid/CellRowModel.mjs +24 -24
  270. package/src/selection/grid/ColumnModel.mjs +16 -20
  271. package/src/selection/grid/RowModel.mjs +27 -29
  272. package/src/selection/menu/ListModel.mjs +2 -2
  273. package/src/selection/table/CellColumnModel.mjs +12 -12
  274. package/src/selection/table/CellColumnRowModel.mjs +12 -12
  275. package/src/selection/table/CellModel.mjs +26 -29
  276. package/src/selection/table/CellRowModel.mjs +19 -19
  277. package/src/selection/table/ColumnModel.mjs +18 -22
  278. package/src/selection/table/RowModel.mjs +27 -29
  279. package/src/sitemap/Component.mjs +20 -20
  280. package/src/sitemap/Store.mjs +1 -1
  281. package/src/tab/Container.mjs +15 -15
  282. package/src/tab/Strip.mjs +1 -1
  283. package/src/tab/header/Toolbar.mjs +4 -4
  284. package/src/table/Container.mjs +8 -10
  285. package/src/table/View.mjs +29 -34
  286. package/src/table/header/Button.mjs +18 -18
  287. package/src/table/header/Toolbar.mjs +2 -2
  288. package/src/toolbar/Base.mjs +14 -14
  289. package/src/toolbar/Breadcrumb.mjs +11 -11
  290. package/src/toolbar/Paging.mjs +18 -18
  291. package/src/tooltip/Base.mjs +20 -22
  292. package/src/tree/Accordion.mjs +69 -75
  293. package/src/tree/List.mjs +22 -25
  294. package/src/util/Array.mjs +19 -18
  295. package/src/util/ClassSystem.mjs +9 -9
  296. package/src/util/Css.mjs +2 -2
  297. package/src/util/Date.mjs +9 -9
  298. package/src/util/Function.mjs +2 -2
  299. package/src/util/HashHistory.mjs +3 -5
  300. package/src/util/KeyNavigation.mjs +17 -17
  301. package/src/util/Logger.mjs +9 -9
  302. package/src/util/Matrix.mjs +19 -19
  303. package/src/util/String.mjs +9 -9
  304. package/src/util/Style.mjs +11 -11
  305. package/src/util/VDom.mjs +12 -14
  306. package/src/util/VNode.mjs +29 -29
  307. package/src/vdom/Helper.mjs +84 -93
  308. package/src/vdom/VNode.mjs +1 -1
  309. package/src/worker/App.mjs +19 -16
  310. package/src/worker/Base.mjs +14 -15
  311. package/src/worker/Canvas.mjs +1 -3
  312. package/src/worker/Data.mjs +4 -8
  313. package/src/worker/Manager.mjs +27 -32
  314. package/src/worker/Message.mjs +1 -1
  315. package/src/worker/ServiceBase.mjs +38 -42
  316. package/src/worker/Task.mjs +1 -3
  317. package/src/worker/VDom.mjs +2 -4
  318. package/src/worker/mixin/RemoteMethodAccess.mjs +5 -6
  319. package/apps/portal/view/home/parts/CoolStuff.mjs +0 -82
  320. package/examples/component/helix/MainContainer.mjs +0 -340
  321. /package/resources/images/{Neo_Logo_Blue.svg → logo/neo_logo_secondary.svg} +0 -0
  322. /package/resources/images/{Neo_Logo_Text.svg → logo/neo_logo_text_secondary.svg} +0 -0
  323. /package/resources/images/{Neo_Logo_White.svg → logo/neo_logo_white.svg} +0 -0
@@ -42,7 +42,7 @@ class Navigator extends Base {
42
42
  clickItem(el) {
43
43
  // The element knows how to click itself.
44
44
  if (typeof el.click === 'function') {
45
- el.click();
45
+ el.click()
46
46
  }
47
47
  // It operates through a listener, so needs an event firing into it.
48
48
  else {
@@ -78,7 +78,7 @@ class Navigator extends Base {
78
78
  // focus, so we have nothing to do here. The navigable items wil be inert and not
79
79
  // focusable. Navigation will be "virtual". Select field navigates its dropdowns like this.
80
80
  if (!data.subject.contains(data.eventSource)) {
81
- return;
81
+ return
82
82
  }
83
83
 
84
84
  const
@@ -88,7 +88,7 @@ class Navigator extends Base {
88
88
  if (f){
89
89
  value.push(f);
90
90
  }
91
- return value;
91
+ return value
92
92
  }, []),
93
93
  defaultActiveItem = focusables[0] || data.subject.querySelector(data.selector);
94
94
 
@@ -98,7 +98,7 @@ class Navigator extends Base {
98
98
 
99
99
  // Make at least one thing tabbable so focus can move into the subject element
100
100
  if (defaultActiveItem) {
101
- defaultActiveItem.tabIndex = 0;
101
+ defaultActiveItem.tabIndex = 0
102
102
  }
103
103
  }
104
104
 
@@ -107,7 +107,7 @@ class Navigator extends Base {
107
107
  * @param {Object} data
108
108
  */
109
109
  navigateClickHandler(e, data) {
110
- const target = e.target.closest(data.selector);
110
+ let target = e.target.closest(data.selector);
111
111
 
112
112
  // If there was a focusable under the mouse, mousedown will have focused it and and we
113
113
  // will have respond to that in navigateFocusInHandler.
@@ -122,10 +122,9 @@ class Navigator extends Base {
122
122
  * @param {Object} data
123
123
  */
124
124
  navigateFocusInHandler(e, data) {
125
- const
126
- target = e.target.closest(data.selector),
127
- { relatedTarget } = e,
128
- { subject } = data;
125
+ let target = e.target.closest(data.selector),
126
+ {relatedTarget} = e,
127
+ {subject} = data;
129
128
 
130
129
  // If our targets are focusable and recieve focus, that is a navigation.
131
130
  if (target) {
@@ -135,7 +134,7 @@ class Navigator extends Base {
135
134
  // The items must be focusable, but *not* tabbable.
136
135
  // So remove tabbability on the last active item
137
136
  if (subject.contains(relatedTarget)) {
138
- relatedTarget.tabIndex = -1;
137
+ relatedTarget.tabIndex = -1
139
138
  }
140
139
  }
141
140
  }
@@ -145,14 +144,14 @@ class Navigator extends Base {
145
144
  * @param {Object} data
146
145
  */
147
146
  navigateFocusOutHandler(e, data) {
148
- const { target } = e;
147
+ let {target} = e;
149
148
 
150
149
  // Clear active class from the item we are leaving from.
151
150
  target.closest(data.selector)?.classList.remove(data.activeCls);
152
151
 
153
152
  // On focusout, leave the last active item as tabbable so user can TAB back in here
154
153
  if (!DomUtils.isTabbable(target)) {
155
- target.tabIndex = 0;
154
+ target.tabIndex = 0
156
155
  }
157
156
  }
158
157
 
@@ -161,7 +160,7 @@ class Navigator extends Base {
161
160
  * @param {Object} data
162
161
  */
163
162
  navigateGetAdjacent(direction=1, data) {
164
- const { treeWalker } = data;
163
+ let {treeWalker} = data;
165
164
 
166
165
  // Walk forwards or backwards to the next or previous node which matches our selector
167
166
  treeWalker.currentNode = this.navigatorGetActiveItem(data) || data.subject;
@@ -170,14 +169,14 @@ class Navigator extends Base {
170
169
  // Found a target in the requested direction
171
170
  if (treeWalker.currentNode) {
172
171
  if (treeWalker.currentNode !== data.activeItem) {
173
- return treeWalker.currentNode;
172
+ return treeWalker.currentNode
174
173
  }
175
174
  }
176
175
  // Could not find target in requested direction, then wrap if configured to do so
177
176
  else if (data.wrap !== false) {
178
177
  const allItems = data.subject.querySelector(data.selector);
179
178
 
180
- return allItems[direction === 1 ? 0 : allItems.length - 1];
179
+ return allItems[direction === 1 ? 0 : allItems.length - 1]
181
180
  }
182
181
  }
183
182
 
@@ -187,12 +186,9 @@ class Navigator extends Base {
187
186
  */
188
187
  navigateKeyDownHandler(keyEvent, data) {
189
188
  const
190
- me = this,
191
- {
192
- subject,
193
- wrap
194
- } = data,
195
- firstItem = subject.querySelector(data.selector);
189
+ me = this,
190
+ {subject, wrap} = data,
191
+ firstItem = subject.querySelector(data.selector);
196
192
 
197
193
  if (!data.nextKey && firstItem) {
198
194
  const
@@ -204,16 +200,16 @@ class Navigator extends Base {
204
200
  if (containerStyle.display === 'flex' && containerStyle.flexDirection === 'row'
205
201
  || itemStyle.display === 'inline' || itemStyle.display === 'inline-block') {
206
202
  data.previousKey = 'ArrowLeft';
207
- data.nextKey = 'ArrowRight';
203
+ data.nextKey = 'ArrowRight'
208
204
  }
209
205
  // Child elements layed out vertically.
210
206
  else {
211
207
  data.previousKey = 'ArrowUp';
212
- data.nextKey = 'ArrowDown';
208
+ data.nextKey = 'ArrowDown'
213
209
  }
214
210
  }
215
211
 
216
- let { key, target } = keyEvent,
212
+ let {key, target} = keyEvent,
217
213
  newActiveElement;
218
214
 
219
215
  switch(key) {
@@ -221,14 +217,14 @@ class Navigator extends Base {
221
217
  case data.previousKey:
222
218
  newActiveElement = me.navigateGetAdjacent(-1, data);
223
219
  if (!newActiveElement && wrap) {
224
- newActiveElement = subject.querySelector(`${data.selector}:last-of-type`);
220
+ newActiveElement = subject.querySelector(`${data.selector}:last-of-type`)
225
221
  }
226
222
  break;
227
223
  // Move to the next navigable item
228
224
  case data.nextKey:
229
225
  newActiveElement = me.navigateGetAdjacent(1, data);
230
226
  if (!newActiveElement && wrap) {
231
- newActiveElement = subject.querySelector(data.selector);
227
+ newActiveElement = subject.querySelector(data.selector)
232
228
  }
233
229
  break;
234
230
  // Move to the first navigable item
@@ -242,13 +238,13 @@ class Navigator extends Base {
242
238
  // Click the currently active item if necessary
243
239
  case 'Enter':
244
240
  if (data.activeItem && !enterActivatedTags[target.tagName]) {
245
- this.clickItem(data.activeItem);
241
+ this.clickItem(data.activeItem)
246
242
  }
247
243
  }
248
244
 
249
245
  if (newActiveElement) {
250
246
  keyEvent.preventDefault();
251
- me.navigateTo(newActiveElement, data);
247
+ me.navigateTo(newActiveElement, data)
252
248
  }
253
249
  }
254
250
 
@@ -263,7 +259,7 @@ class Navigator extends Base {
263
259
  // If not, we have to programmatically activate on click, but we must not draw focus away from
264
260
  // where it is, so preventDefault
265
261
  if (target && !data.findFocusable(target)) {
266
- e.preventDefault();
262
+ e.preventDefault()
267
263
  }
268
264
  }
269
265
 
@@ -272,7 +268,7 @@ class Navigator extends Base {
272
268
  * @param {Object} data
273
269
  */
274
270
  navigateNodeFilter(node, data) {
275
- return node.offsetParent && node.matches?.(data.selector) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
271
+ return node.offsetParent && node.matches?.(data.selector) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
276
272
  }
277
273
 
278
274
  /**
@@ -290,7 +286,7 @@ class Navigator extends Base {
290
286
  if (data.activeItem && !data.subject.contains(data.activeItem)) {
291
287
  const allItems = data.subject.querySelectorAll(data.selector);
292
288
 
293
- allItems.length && this.navigateTo(allItems[Math.max(Math.min(data.activeIndex, allItems.length - 1), 0)], data);
289
+ allItems.length && this.navigateTo(allItems[Math.max(Math.min(data.activeIndex, allItems.length - 1), 0)], data)
294
290
  }
295
291
  }
296
292
  }
@@ -312,10 +308,10 @@ class Navigator extends Base {
312
308
  // Can navigate by index. This is useful if the active item is deleted.
313
309
  // We can navigate to the same index and preserve UI stability.
314
310
  if (typeof newActiveElement === 'number') {
315
- newActiveElement = data.subject.querySelectorAll(data.selector)?.[newActiveElement];
311
+ newActiveElement = data.subject.querySelectorAll(data.selector)?.[newActiveElement]
316
312
  }
317
313
  else if (typeof newActiveElement === 'string') {
318
- newActiveElement = DomAccess.getElement(newActiveElement);
314
+ newActiveElement = DomAccess.getElement(newActiveElement)
319
315
  }
320
316
 
321
317
  // Could not do what was asked because we could not find the requested item
@@ -335,11 +331,11 @@ class Navigator extends Base {
335
331
 
336
332
  // If the item contains a focusable, we focus it and then react in navigateFocusInHandler
337
333
  if (focusTarget) {
338
- focusTarget.focus({ preventScroll : true });
334
+ focusTarget.focus({ preventScroll : true })
339
335
  }
340
336
  // If not, we programmatically navigate there
341
337
  else {
342
- this.setActiveItem(newActiveElement, data);
338
+ this.setActiveItem(newActiveElement, data)
343
339
  }
344
340
  }
345
341
 
@@ -353,9 +349,9 @@ class Navigator extends Base {
353
349
  if (!activeItem && ('activeIndex' in data)) {
354
350
  const allItems = data.subject.querySelectorAll(data.selector);
355
351
 
356
- activeItem = allItems[Math.max(Math.min(data.activeIndex, allItems.length - 1), 0)];
352
+ activeItem = allItems[Math.max(Math.min(data.activeIndex, allItems.length - 1), 0)]
357
353
  }
358
- return activeItem;
354
+ return activeItem
359
355
  }
360
356
 
361
357
  /**
@@ -368,7 +364,7 @@ class Navigator extends Base {
368
364
  // Can navigate by index. This is useful if the active item is deleted.
369
365
  // We can navigate to the same index and preserve UI stability.
370
366
  if (typeof newActiveElement === 'number') {
371
- newActiveElement = allItems[Math.max(Math.min(newActiveElement, allItems.length - 1), 0)];
367
+ newActiveElement = allItems[Math.max(Math.min(newActiveElement, allItems.length - 1), 0)]
372
368
  }
373
369
 
374
370
  data.previousActiveIndex = data.activeIndex;
@@ -495,7 +491,7 @@ class Navigator extends Base {
495
491
  target.removeEventListener('mousedown', data.l2);
496
492
  target.removeEventListener('click', data.l3);
497
493
  target.removeEventListener('focusin', data.l4);
498
- target.removeEventListener('focusout', data.l5);
494
+ target.removeEventListener('focusout', data.l5)
499
495
  }
500
496
  }
501
497
  }
@@ -34,7 +34,7 @@ class Popover extends Base {
34
34
  */
35
35
  hide(data) {
36
36
  this.getPopover(data.id).hidePopover();
37
- return true;
37
+ return true
38
38
  }
39
39
 
40
40
  /**
@@ -44,7 +44,7 @@ class Popover extends Base {
44
44
  */
45
45
  show(data) {
46
46
  this.getPopover(data.id).showPopover();
47
- return true;
47
+ return true
48
48
  }
49
49
 
50
50
  /**
@@ -54,14 +54,13 @@ class Popover extends Base {
54
54
  */
55
55
  toggle(data) {
56
56
  this.getPopover(data.id).togglePopover();
57
- return true;
57
+ return true
58
58
  }
59
59
 
60
60
  getPopover(parentId) {
61
- const parent = document.getElementById(parentId),
62
- popover = document.getElementById(parent.getAttribute('popovertarget'));
61
+ const parent = DomAccess.getElement(parentId);
63
62
 
64
- return popover;
63
+ return DomAccess.getElement(parent.getAttribute('popovertarget'))
65
64
  }
66
65
  }
67
66
 
@@ -1,8 +1,7 @@
1
1
  import Base from './Base.mjs';
2
2
 
3
3
  /**
4
- * Helper class to include Google's Material Web Components into your neo.mjs app
5
- * https://www.amcharts.com/docs/v4/
4
+ * Experimental
6
5
  * @class Neo.main.addon.PrefixField
7
6
  * @extends Neo.main.addon.Base
8
7
  */
@@ -20,14 +20,14 @@ class ServiceWorker extends Base {
20
20
  */
21
21
  construct(config) {
22
22
  if ('serviceWorker' in navigator) {
23
- let me = this,
24
- config = Neo.config,
25
- devMode = config.environment === 'development',
26
- fileName = devMode ? 'ServiceWorker.mjs' : 'serviceworker.js',
27
- folder = window.location.pathname.includes('/examples/') ? 'examples/' : 'apps/',
28
- opts = devMode ? {type: 'module'} : {},
29
- path = (devMode ? config.basePath : config.workerBasePath) + (devMode ? folder : '') + fileName,
30
- serviceWorker = navigator.serviceWorker;
23
+ let me = this,
24
+ {config} = Neo,
25
+ devMode = config.environment === 'development',
26
+ fileName = devMode ? 'ServiceWorker.mjs' : 'serviceworker.js',
27
+ folder = window.location.pathname.includes('/examples/') ? 'examples/' : 'apps/',
28
+ opts = devMode ? {type: 'module'} : {},
29
+ path = (devMode ? config.basePath : config.workerBasePath) + (devMode ? folder : '') + fileName,
30
+ {serviceWorker} = navigator;
31
31
 
32
32
  window.addEventListener('beforeunload', me.onBeforeUnload.bind(me));
33
33
 
@@ -49,7 +49,7 @@ class ServiceWorker extends Base {
49
49
  action: 'registerNeoConfig',
50
50
  data : config
51
51
  })
52
- });
52
+ })
53
53
  })
54
54
  }
55
55
  }
@@ -19,7 +19,7 @@ class Siesta extends Base {
19
19
  */
20
20
  construct(config) {
21
21
  super.construct(config);
22
- this.adjustSiestaEnvironment();
22
+ this.adjustSiestaEnvironment()
23
23
  }
24
24
 
25
25
  /**
@@ -34,8 +34,9 @@ class Siesta extends Base {
34
34
 
35
35
  for (; i < len; i++) {
36
36
  sheet = document.styleSheets[i];
37
+
37
38
  if (sheet?.href.includes('highlightjs')) {
38
- sheet.ownerNode.id = 'hljs-theme';
39
+ sheet.ownerNode.id = 'hljs-theme'
39
40
  }
40
41
  }
41
42
  }
@@ -47,16 +47,16 @@ class Stylesheet extends Base {
47
47
 
48
48
  if (neoConfig.useFontAwesome) {
49
49
  if (neoConfig.environment === 'development') {
50
- faPath = neoConfig.basePath + 'node_modules/@fortawesome/fontawesome-free/css/all.min.css';
50
+ faPath = neoConfig.basePath + 'node_modules/@fortawesome/fontawesome-free/css/all.min.css'
51
51
  } else {
52
- faPath = neoConfig.basePath.substr(6) + 'resources/fontawesome-free/css/all.min.css';
52
+ faPath = neoConfig.basePath.substr(6) + 'resources/fontawesome-free/css/all.min.css'
53
53
  }
54
54
 
55
- this.createStyleSheet(null, null, faPath);
55
+ this.createStyleSheet(null, null, faPath)
56
56
  }
57
57
 
58
58
  if (neoConfig.themes.length > 0 && neoConfig.themes[0] !== '') {
59
- this.addGlobalCss();
59
+ this.addGlobalCss()
60
60
  }
61
61
  }
62
62
 
@@ -64,26 +64,26 @@ class Stylesheet extends Base {
64
64
  *
65
65
  */
66
66
  addGlobalCss() {
67
- let config = Neo.config,
68
- themes = config.themes,
67
+ let {config} = Neo,
68
+ {themes} = config,
69
69
  folders = ['src', ...themes],
70
70
  env = config.environment,
71
71
  path = env.startsWith('dist/') ? '' : config.appPath.includes('docs') ? `../dist/${env}/` : `../../dist/${env}/`,
72
- rootPath = config.basePath.substr(6);
72
+ rootPath = config.basePath.substring(6);
73
73
 
74
74
  document.body.classList.add(themes[0]);
75
75
 
76
76
  folders.forEach(folder => {
77
77
  if (folder.startsWith('neo-')) {
78
- folder = folder.substring(4);
78
+ folder = folder.substring(4)
79
79
  }
80
80
 
81
81
  this.createStyleSheet(
82
82
  null,
83
83
  null,
84
84
  `${rootPath}${path}css/${folder}/Global.css`
85
- );
86
- });
85
+ )
86
+ })
87
87
  }
88
88
 
89
89
  /**
@@ -93,14 +93,14 @@ class Stylesheet extends Base {
93
93
  * @param {String[]} data.folders
94
94
  */
95
95
  addThemeFiles(data) {
96
- let className = data.className,
97
- config = Neo.config,
98
- env = config.environment,
99
- path = env.startsWith('dist/') ? '' : config.appPath.includes('docs') ? `../dist/${env}/` : `../../dist/${env}/`,
100
- rootPath = config.basePath.substr(6);
96
+ let {className} = data,
97
+ {config} = Neo,
98
+ env = config.environment,
99
+ path = env.startsWith('dist/') ? '' : config.appPath.includes('docs') ? `../dist/${env}/` : `../../dist/${env}/`,
100
+ rootPath = config.basePath.substring(6);
101
101
 
102
102
  if (className.startsWith('Neo.')) {
103
- className = className.substring(4);
103
+ className = className.substring(4)
104
104
  }
105
105
 
106
106
  className = className.split('.').join('/');
@@ -124,13 +124,13 @@ class Stylesheet extends Base {
124
124
  */
125
125
  createStyleSheet(name, id, href) {
126
126
  if (!name && !href) {
127
- throw new Error('createStyleSheet: you need to either pass a name or a href');
127
+ throw new Error('createStyleSheet: you need to either pass a name or a href')
128
128
  }
129
129
 
130
- const link = document.createElement('link'),
131
- env = Neo.config.environment,
132
- path = env.startsWith('dist/') ? env : ('dist/' + env),
133
- url = href ? href : Neo.config.basePath + path + '/' + name;
130
+ let link = document.createElement('link'),
131
+ env = Neo.config.environment,
132
+ path = env.startsWith('dist/') ? env : ('dist/' + env),
133
+ url = href ? href : Neo.config.basePath + path + '/' + name;
134
134
 
135
135
  Object.assign(link, {
136
136
  href: url,
@@ -139,10 +139,10 @@ class Stylesheet extends Base {
139
139
  });
140
140
 
141
141
  if (id) {
142
- link.id = id;
142
+ link.id = id
143
143
  }
144
144
 
145
- document.head.appendChild(link);
145
+ document.head.appendChild(link)
146
146
  }
147
147
 
148
148
  /**
@@ -153,7 +153,7 @@ class Stylesheet extends Base {
153
153
  deleteCssRules(data) {
154
154
  let styleEl = document.getElementById(this.dynamicStyleSheetId),
155
155
  styleSheet = styleEl.sheet,
156
- cssRules = styleSheet.cssRules,
156
+ {cssRules} = styleSheet,
157
157
  i = 0,
158
158
  len = data.rules.length,
159
159
  j, rulesLen;
@@ -165,7 +165,7 @@ class Stylesheet extends Base {
165
165
  for (; j < rulesLen; j++) {
166
166
  if (cssRules[j].selectorText === data.rules[i]) {
167
167
  styleSheet.deleteRule(j);
168
- break;
168
+ break
169
169
  }
170
170
  }
171
171
  }
@@ -183,11 +183,11 @@ class Stylesheet extends Base {
183
183
  for (; i < len; i++) {
184
184
  sheet = document.styleSheets[i];
185
185
  if (sheet.href?.includes(token)) {
186
- return true;
186
+ return true
187
187
  }
188
188
  }
189
189
 
190
- return false;
190
+ return false
191
191
  }
192
192
 
193
193
  /**
@@ -205,13 +205,13 @@ class Stylesheet extends Base {
205
205
  styleEl = document.createElement('style');
206
206
 
207
207
  styleEl.id = this.dynamicStyleSheetId;
208
- document.head.appendChild(styleEl);
208
+ document.head.appendChild(styleEl)
209
209
  }
210
210
 
211
211
  styleSheet = styleEl.sheet;
212
212
 
213
213
  for (; i < len; i++) {
214
- styleSheet.insertRule(data.rules[i], styleSheet.cssRules.length);
214
+ styleSheet.insertRule(data.rules[i], styleSheet.cssRules.length)
215
215
  }
216
216
  }
217
217
 
@@ -235,19 +235,19 @@ class Stylesheet extends Base {
235
235
  if (sheet.href) {
236
236
  excluded.forEach(name => {
237
237
  if (sheet.href.includes(name)) {
238
- removeSheet = false;
238
+ removeSheet = false
239
239
  }
240
240
  });
241
241
 
242
242
  if (removeSheet) {
243
243
  included.forEach(name => {
244
244
  if (!sheet.href.includes(name)) {
245
- removeSheet = false;
245
+ removeSheet = false
246
246
  }
247
247
  });
248
248
 
249
249
  if (removeSheet) {
250
- sheet.ownerNode.parentNode.removeChild(sheet.ownerNode);
250
+ sheet.ownerNode.parentNode.removeChild(sheet.ownerNode)
251
251
  }
252
252
  }
253
253
  }
@@ -262,11 +262,11 @@ class Stylesheet extends Base {
262
262
  * @param {String} data.value
263
263
  */
264
264
  setCssVariable(data) {
265
- let key = data.key,
265
+ let {key} = data,
266
266
  rule, sheet;
267
267
 
268
268
  if (!key.startsWith('--')) {
269
- key = '--' + key;
269
+ key = '--' + key
270
270
  }
271
271
 
272
272
  for (sheet of document.styleSheets) {
@@ -275,14 +275,14 @@ class Stylesheet extends Base {
275
275
  if (Neo.typeOf(rule) === 'CSSStyleRule') {
276
276
  if (rule.style.getPropertyValue(key) !== '') {
277
277
  rule.style.setProperty(key, data.value, data.priority);
278
- return true;
278
+ return true
279
279
  }
280
280
  }
281
281
  }
282
282
  }
283
283
  }
284
284
 
285
- return false;
285
+ return false
286
286
  }
287
287
 
288
288
  /**
@@ -291,7 +291,7 @@ class Stylesheet extends Base {
291
291
  * @param {String} data.id
292
292
  */
293
293
  swapStyleSheet(data) {
294
- document.getElementById(data.id).setAttribute('href', data.href);
294
+ document.getElementById(data.id).setAttribute('href', data.href)
295
295
  }
296
296
  }
297
297
 
@@ -19,8 +19,7 @@ class WebComponent extends Base {
19
19
  */
20
20
  construct(config) {
21
21
  super.construct(config);
22
-
23
- this.registerElementLoader();
22
+ this.registerElementLoader()
24
23
  }
25
24
 
26
25
  /**
@@ -36,7 +35,7 @@ class WebComponent extends Base {
36
35
  me.attachShadow({mode: 'open'}).innerHTML = content;
37
36
 
38
37
  styles = me.querySelector('style');
39
- styles && me.shadowRoot.append(styles);
38
+ styles && me.shadowRoot.append(styles)
40
39
  }
41
40
  });
42
41
  }
@@ -113,11 +113,10 @@ class WindowPosition extends Base {
113
113
  *
114
114
  */
115
115
  checkMovement() {
116
- let me = this,
117
- Manager = Neo.worker.Manager,
118
- win = window,
119
- screenLeft = win.screenLeft,
120
- screenTop = win.screenTop,
116
+ let me = this,
117
+ {Manager} = Neo.worker,
118
+ win = window,
119
+ {screenLeft, screenTop} = win,
121
120
  winData;
122
121
 
123
122
  if (me.screenLeft !== screenLeft || me.screenTop !== screenTop) {
@@ -154,25 +153,27 @@ class WindowPosition extends Base {
154
153
  * @param {Object} data
155
154
  */
156
155
  getPosition(data) {
157
- let win = window,
156
+ let {size} = data,
157
+ win = window,
158
+ {screenLeft, screenTop} = win,
158
159
  left, top;
159
160
 
160
161
  switch(data.dock) {
161
162
  case 'bottom':
162
- left = win.screenLeft;
163
- top = win.outerHeight + win.screenTop - 50;
163
+ left = screenLeft;
164
+ top = win.outerHeight + screenTop - 50;
164
165
  break
165
166
  case 'left':
166
- left = win.screenLeft - data.size;
167
- top = win.screenTop + 28;
167
+ left = screenLeft - size;
168
+ top = screenTop + 28;
168
169
  break
169
170
  case 'right':
170
- left = win.outerWidth + win.screenLeft;
171
- top = win.screenTop + 28;
171
+ left = win.outerWidth + screenLeft;
172
+ top = screenTop + 28;
172
173
  break
173
174
  case 'top':
174
- left = win.screenLeft;
175
- top = win.screenTop - data.size + 78;
175
+ left = screenLeft;
176
+ top = screenTop - size + 78;
176
177
  break
177
178
  }
178
179
 
@@ -254,10 +255,9 @@ class WindowPosition extends Base {
254
255
  * @param {String} data.name
255
256
  */
256
257
  setDock(data) {
257
- let me = this,
258
- dock = data.dock,
259
- name = data.name,
260
- win = me.windows[name],
258
+ let me = this,
259
+ {dock, name} = data,
260
+ win = me.windows[name],
261
261
  dockDirectionChange, position;
262
262
 
263
263
  if (win) {
@@ -53,7 +53,7 @@ class Base extends CoreBase {
53
53
  */
54
54
  onConstructed() {
55
55
  this.attach();
56
- super.onConstructed();
56
+ super.onConstructed()
57
57
  }
58
58
 
59
59
  /**
@@ -69,7 +69,7 @@ class Base extends CoreBase {
69
69
  element.dispatchEvent(event);
70
70
  this.lastEvent = sensorEvent;
71
71
 
72
- return sensorEvent;
72
+ return sensorEvent
73
73
  }
74
74
  }
75
75