neo.mjs 6.17.1 → 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 (329) 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 +44 -27
  25. package/apps/portal/view/Viewport.mjs +12 -1
  26. package/apps/portal/view/ViewportController.mjs +89 -1
  27. package/apps/portal/view/home/MainContainer.mjs +27 -60
  28. package/apps/portal/view/home/parts/AfterMath.mjs +58 -0
  29. package/apps/portal/view/home/parts/Colors.mjs +74 -0
  30. package/apps/portal/view/home/parts/Features.mjs +52 -0
  31. package/apps/portal/view/home/parts/Helix.mjs +75 -0
  32. package/apps/portal/view/home/parts/HelloWorld.mjs +82 -0
  33. package/apps/portal/view/home/parts/MainNeo.mjs +55 -0
  34. package/apps/portal/view/home/preview/PageCodeContainer.mjs +55 -0
  35. package/apps/portal/view/learn/LivePreview.mjs +72 -29
  36. package/apps/portal/view/learn/MainContainerController.mjs +10 -90
  37. package/apps/realworld/api/Article.mjs +1 -3
  38. package/apps/realworld/api/Favorite.mjs +1 -3
  39. package/apps/realworld/api/Profile.mjs +1 -3
  40. package/apps/realworld/api/Tag.mjs +1 -3
  41. package/apps/realworld/api/User.mjs +1 -3
  42. package/apps/realworld2/api/Article.mjs +1 -3
  43. package/apps/realworld2/api/Favorite.mjs +1 -3
  44. package/apps/realworld2/api/Profile.mjs +1 -3
  45. package/apps/realworld2/api/Tag.mjs +1 -3
  46. package/apps/realworld2/api/User.mjs +1 -3
  47. package/apps/realworld2/view/article/HelixContainer.mjs +5 -5
  48. package/buildScripts/webpack/json/myApps.template.json +1 -0
  49. package/buildScripts/webpack/webpack.server.config.mjs +4 -1
  50. package/docs/app/view/MainContainer.mjs +5 -0
  51. package/docs/app/view/classdetails/MembersList.mjs +1 -1
  52. package/examples/ServiceWorker.mjs +3 -5
  53. package/examples/component/helix/Viewport.mjs +309 -0
  54. package/examples/component/helix/ViewportController.mjs +122 -0
  55. package/examples/component/helix/app.mjs +2 -2
  56. package/examples/component/helix/neo-config.json +0 -1
  57. package/examples/component/multiWindowHelix/Viewport.mjs +11 -3
  58. package/examples/component/multiWindowHelix/ViewportController.mjs +21 -9
  59. package/examples/component/multiWindowHelix/neo-config.json +0 -1
  60. package/examples/fieldWithPrefix/MainContainer.mjs +1 -6
  61. package/examples/list/animate/MainContainerController.mjs +1 -1
  62. package/examples/worker/task/MyTasks.mjs +1 -3
  63. package/package.json +5 -5
  64. package/resources/data/deck/learnneo/pages/GuideEvents.md +131 -0
  65. package/resources/data/deck/learnneo/pages/WhyNeo-Speed.md +1 -1
  66. package/resources/images/logo/neo_logo_primary.svg +6 -0
  67. package/resources/images/logo/neo_logo_secondary.svg +6 -0
  68. package/resources/images/logo/neo_logo_text_primary.svg +5 -0
  69. package/resources/images/logo/neo_logo_text_secondary.svg +5 -0
  70. package/resources/images/logo/neo_logo_white.svg +6 -0
  71. package/resources/scss/src/apps/colors/BarChartComponent.scss +3 -0
  72. package/resources/scss/src/apps/colors/HeaderToolbar.scss +11 -0
  73. package/resources/scss/src/apps/colors/PieChartComponent.scss +3 -0
  74. package/resources/scss/src/apps/colors/TableContainer.scss +64 -0
  75. package/resources/scss/src/apps/colors/Viewport.scss +9 -0
  76. package/resources/scss/src/apps/portal/HeaderToolbar.scss +189 -17
  77. package/resources/scss/src/apps/portal/home/MainContainer.scss +46 -20
  78. package/resources/scss/src/apps/portal/home/parts/Features.scss +3 -0
  79. package/resources/scss/src/apps/portal/home/preview/PageCodeContainer.scss +115 -0
  80. package/resources/scss/src/component/Base.scss +2 -0
  81. package/resources/scss/src/examples/component/multiWindowHelix/Viewport.scss +3 -0
  82. package/resources/scss/src/form/field/CheckBox.scss +1 -0
  83. package/resources/scss/src/tab/header/Button.scss +2 -1
  84. package/resources/scss/theme-dark/Global.scss +8 -0
  85. package/resources/scss/theme-dark/button/Base.scss +1 -1
  86. package/resources/scss/theme-dark/tab/header/Button.scss +1 -0
  87. package/resources/scss/theme-light/Global.scss +8 -0
  88. package/resources/scss/theme-light/button/Base.scss +1 -1
  89. package/resources/scss/theme-light/tab/header/Button.scss +1 -0
  90. package/resources/scss/theme-neo-light/Global.scss +53 -53
  91. package/resources/scss/theme-neo-light/button/Base.scss +3 -4
  92. package/resources/scss/theme-neo-light/tab/header/Button.scss +6 -8
  93. package/src/DefaultConfig.mjs +2 -2
  94. package/src/Fetch.mjs +1 -3
  95. package/src/Main.mjs +13 -11
  96. package/src/MicroLoader.mjs +2 -2
  97. package/src/Neo.mjs +27 -26
  98. package/src/Xhr.mjs +1 -3
  99. package/src/button/Base.mjs +6 -4
  100. package/src/button/Split.mjs +10 -9
  101. package/src/calendar/view/EditEventContainer.mjs +13 -12
  102. package/src/calendar/view/MainContainer.mjs +40 -40
  103. package/src/calendar/view/MainContainerModel.mjs +5 -5
  104. package/src/calendar/view/SettingsContainer.mjs +11 -11
  105. package/src/calendar/view/YearComponent.mjs +73 -75
  106. package/src/calendar/view/calendars/ColorsList.mjs +2 -2
  107. package/src/calendar/view/calendars/EditContainer.mjs +2 -2
  108. package/src/calendar/view/calendars/List.mjs +12 -13
  109. package/src/calendar/view/month/Component.mjs +72 -73
  110. package/src/calendar/view/settings/GeneralContainer.mjs +5 -5
  111. package/src/calendar/view/settings/MonthContainer.mjs +5 -5
  112. package/src/calendar/view/settings/WeekContainer.mjs +6 -6
  113. package/src/calendar/view/settings/YearContainer.mjs +4 -4
  114. package/src/calendar/view/week/Component.mjs +47 -57
  115. package/src/calendar/view/week/EventDragZone.mjs +43 -50
  116. package/src/calendar/view/week/TimeAxisComponent.mjs +21 -21
  117. package/src/calendar/view/week/plugin/DragDrop.mjs +53 -45
  118. package/src/calendar/view/week/plugin/EventResizable.mjs +8 -3
  119. package/src/collection/Base.mjs +15 -22
  120. package/src/collection/Filter.mjs +4 -9
  121. package/src/collection/Sorter.mjs +6 -7
  122. package/src/component/Base.mjs +149 -87
  123. package/src/component/Canvas.mjs +9 -9
  124. package/src/component/Carousel.mjs +31 -33
  125. package/src/component/Chip.mjs +9 -9
  126. package/src/component/Circle.mjs +84 -91
  127. package/src/component/Clock.mjs +8 -8
  128. package/src/component/DateSelector.mjs +14 -15
  129. package/src/component/Gallery.mjs +82 -80
  130. package/src/component/Helix.mjs +131 -126
  131. package/src/component/Iframe.mjs +1 -1
  132. package/src/component/Label.mjs +1 -1
  133. package/src/component/Legend.mjs +3 -3
  134. package/src/component/Process.mjs +39 -37
  135. package/src/component/Splitter.mjs +9 -11
  136. package/src/component/StatusBadge.mjs +2 -3
  137. package/src/component/Timer.mjs +62 -68
  138. package/src/component/Toast.mjs +11 -11
  139. package/src/component/Video.mjs +7 -8
  140. package/src/component/mwc/Button.mjs +10 -10
  141. package/src/component/mwc/TextField.mjs +17 -17
  142. package/src/component/wrapper/AmChart.mjs +5 -5
  143. package/src/component/wrapper/CesiumJS.mjs +11 -17
  144. package/src/component/wrapper/GoogleMaps.mjs +58 -35
  145. package/src/component/wrapper/MapboxGL.mjs +112 -79
  146. package/src/component/wrapper/MonacoEditor.mjs +1 -6
  147. package/src/container/Accordion.mjs +18 -20
  148. package/src/container/AccordionItem.mjs +12 -11
  149. package/src/container/Base.mjs +29 -28
  150. package/src/container/Panel.mjs +9 -9
  151. package/src/container/Viewport.mjs +30 -1
  152. package/src/controller/Base.mjs +12 -14
  153. package/src/controller/Component.mjs +60 -66
  154. package/src/core/Base.mjs +5 -8
  155. package/src/core/IdGenerator.mjs +1 -3
  156. package/src/core/Observable.mjs +17 -17
  157. package/src/core/Util.mjs +5 -5
  158. package/src/data/Model.mjs +3 -3
  159. package/src/data/RecordFactory.mjs +3 -6
  160. package/src/data/Store.mjs +34 -34
  161. package/src/data/connection/Fetch.mjs +3 -3
  162. package/src/data/connection/WebSocket.mjs +21 -25
  163. package/src/data/connection/Xhr.mjs +31 -28
  164. package/src/date/DayViewComponent.mjs +1 -1
  165. package/src/date/SelectorContainer.mjs +2 -2
  166. package/src/dialog/Base.mjs +27 -25
  167. package/src/dialog/header/Toolbar.mjs +5 -4
  168. package/src/draggable/DragProxyComponent.mjs +7 -4
  169. package/src/draggable/DragZone.mjs +30 -30
  170. package/src/draggable/DropZone.mjs +7 -7
  171. package/src/draggable/list/DragZone.mjs +18 -18
  172. package/src/draggable/tab/header/toolbar/SortZone.mjs +7 -7
  173. package/src/draggable/toolbar/DragZone.mjs +15 -15
  174. package/src/draggable/toolbar/SortZone.mjs +30 -31
  175. package/src/draggable/tree/DragZone.mjs +9 -9
  176. package/src/filter/BooleanContainer.mjs +3 -3
  177. package/src/filter/NumberContainer.mjs +5 -5
  178. package/src/filter/ToggleOperatorsButton.mjs +5 -5
  179. package/src/form/Fieldset.mjs +26 -26
  180. package/src/form/field/Base.mjs +1 -1
  181. package/src/form/field/CheckBox.mjs +15 -16
  182. package/src/form/field/Color.mjs +13 -15
  183. package/src/form/field/ComboBox.mjs +16 -24
  184. package/src/form/field/Country.mjs +1 -1
  185. package/src/form/field/Date.mjs +3 -4
  186. package/src/form/field/Display.mjs +1 -1
  187. package/src/form/field/Email.mjs +2 -2
  188. package/src/form/field/Number.mjs +51 -56
  189. package/src/form/field/Picker.mjs +2 -2
  190. package/src/form/field/Radio.mjs +1 -1
  191. package/src/form/field/Range.mjs +7 -6
  192. package/src/form/field/Text.mjs +29 -36
  193. package/src/form/field/TextArea.mjs +9 -9
  194. package/src/form/field/Time.mjs +30 -30
  195. package/src/form/field/trigger/Base.mjs +19 -13
  196. package/src/form/field/trigger/Clear.mjs +13 -13
  197. package/src/form/field/trigger/CopyToClipboard.mjs +7 -7
  198. package/src/form/field/trigger/Picker.mjs +2 -2
  199. package/src/form/field/trigger/SpinDown.mjs +1 -1
  200. package/src/form/field/trigger/SpinUp.mjs +1 -1
  201. package/src/form/field/trigger/SpinUpDown.mjs +3 -3
  202. package/src/form/field/trigger/Time.mjs +3 -3
  203. package/src/grid/Container.mjs +33 -33
  204. package/src/grid/View.mjs +20 -22
  205. package/src/grid/header/Button.mjs +12 -12
  206. package/src/grid/header/Toolbar.mjs +4 -4
  207. package/src/layout/Base.mjs +5 -4
  208. package/src/layout/Card.mjs +15 -16
  209. package/src/layout/Fit.mjs +22 -8
  210. package/src/layout/Flexbox.mjs +30 -29
  211. package/src/layout/Form.mjs +15 -15
  212. package/src/layout/Grid.mjs +2 -2
  213. package/src/layout/HBox.mjs +3 -2
  214. package/src/layout/VBox.mjs +3 -2
  215. package/src/list/Base.mjs +45 -47
  216. package/src/list/Chip.mjs +4 -4
  217. package/src/list/Circle.mjs +3 -3
  218. package/src/list/Color.mjs +4 -4
  219. package/src/list/Component.mjs +10 -10
  220. package/src/list/plugin/Animate.mjs +18 -13
  221. package/src/main/DomAccess.mjs +92 -56
  222. package/src/main/DomEvents.mjs +38 -39
  223. package/src/main/addon/AmCharts.mjs +37 -37
  224. package/src/main/addon/AnalyticsByGoogle.mjs +4 -4
  225. package/src/main/addon/CesiumJS.mjs +8 -8
  226. package/src/main/addon/CloneNode.mjs +5 -5
  227. package/src/main/addon/Cookie.mjs +4 -4
  228. package/src/main/addon/DragDrop.mjs +35 -34
  229. package/src/main/addon/GoogleMaps.mjs +19 -19
  230. package/src/main/addon/LocalStorage.mjs +3 -3
  231. package/src/main/addon/MapboxGL.mjs +40 -41
  232. package/src/main/addon/MonacoEditor.mjs +5 -5
  233. package/src/main/addon/Mwc.mjs +6 -6
  234. package/src/main/addon/Navigator.mjs +35 -39
  235. package/src/main/addon/Popover.mjs +5 -6
  236. package/src/main/addon/PrefixField.mjs +1 -2
  237. package/src/main/addon/ServiceWorker.mjs +9 -9
  238. package/src/main/addon/Siesta.mjs +3 -2
  239. package/src/main/addon/Stylesheet.mjs +37 -37
  240. package/src/main/addon/WebComponent.mjs +2 -3
  241. package/src/main/addon/WindowPosition.mjs +18 -18
  242. package/src/main/draggable/sensor/Base.mjs +2 -2
  243. package/src/main/draggable/sensor/Mouse.mjs +15 -15
  244. package/src/main/draggable/sensor/Touch.mjs +24 -23
  245. package/src/main/mixin/DeltaUpdates.mjs +10 -12
  246. package/src/main/mixin/TouchDomEvents.mjs +6 -6
  247. package/src/manager/Base.mjs +4 -4
  248. package/src/manager/Component.mjs +41 -41
  249. package/src/manager/DomEvent.mjs +52 -50
  250. package/src/manager/Focus.mjs +14 -16
  251. package/src/manager/Instance.mjs +2 -4
  252. package/src/manager/Store.mjs +4 -8
  253. package/src/manager/Task.mjs +20 -22
  254. package/src/manager/Toast.mjs +14 -16
  255. package/src/manager/rpc/Api.mjs +1 -3
  256. package/src/manager/rpc/Message.mjs +16 -18
  257. package/src/menu/List.mjs +16 -16
  258. package/src/menu/Panel.mjs +4 -4
  259. package/src/model/Component.mjs +5 -5
  260. package/src/plugin/Base.mjs +2 -0
  261. package/src/plugin/Popover.mjs +1 -1
  262. package/src/plugin/PrefixField.mjs +35 -45
  263. package/src/plugin/Resizable.mjs +86 -101
  264. package/src/plugin/Responsive.mjs +175 -0
  265. package/src/remotes/Api.mjs +4 -6
  266. package/src/selection/CircleModel.mjs +12 -16
  267. package/src/selection/DateSelectorModel.mjs +21 -23
  268. package/src/selection/GalleryModel.mjs +49 -63
  269. package/src/selection/HelixModel.mjs +35 -41
  270. package/src/selection/ListModel.mjs +9 -14
  271. package/src/selection/Model.mjs +31 -31
  272. package/src/selection/TreeAccordionModel.mjs +74 -80
  273. package/src/selection/grid/CellColumnModel.mjs +10 -10
  274. package/src/selection/grid/CellColumnRowModel.mjs +10 -10
  275. package/src/selection/grid/CellModel.mjs +26 -28
  276. package/src/selection/grid/CellRowModel.mjs +24 -24
  277. package/src/selection/grid/ColumnModel.mjs +16 -20
  278. package/src/selection/grid/RowModel.mjs +27 -29
  279. package/src/selection/menu/ListModel.mjs +2 -2
  280. package/src/selection/table/CellColumnModel.mjs +12 -12
  281. package/src/selection/table/CellColumnRowModel.mjs +12 -12
  282. package/src/selection/table/CellModel.mjs +26 -29
  283. package/src/selection/table/CellRowModel.mjs +19 -19
  284. package/src/selection/table/ColumnModel.mjs +18 -22
  285. package/src/selection/table/RowModel.mjs +27 -29
  286. package/src/sitemap/Component.mjs +20 -20
  287. package/src/sitemap/Store.mjs +1 -1
  288. package/src/tab/Container.mjs +15 -15
  289. package/src/tab/Strip.mjs +1 -1
  290. package/src/tab/header/Toolbar.mjs +4 -4
  291. package/src/table/Container.mjs +8 -10
  292. package/src/table/View.mjs +29 -34
  293. package/src/table/header/Button.mjs +18 -18
  294. package/src/table/header/Toolbar.mjs +2 -2
  295. package/src/toolbar/Base.mjs +14 -14
  296. package/src/toolbar/Breadcrumb.mjs +11 -11
  297. package/src/toolbar/Paging.mjs +18 -18
  298. package/src/tooltip/Base.mjs +20 -22
  299. package/src/tree/Accordion.mjs +69 -75
  300. package/src/tree/List.mjs +22 -25
  301. package/src/util/Array.mjs +19 -18
  302. package/src/util/ClassSystem.mjs +9 -9
  303. package/src/util/Css.mjs +2 -2
  304. package/src/util/Date.mjs +9 -9
  305. package/src/util/Function.mjs +2 -2
  306. package/src/util/HashHistory.mjs +3 -5
  307. package/src/util/KeyNavigation.mjs +17 -17
  308. package/src/util/Logger.mjs +9 -9
  309. package/src/util/Matrix.mjs +19 -19
  310. package/src/util/String.mjs +9 -9
  311. package/src/util/Style.mjs +11 -11
  312. package/src/util/VDom.mjs +12 -14
  313. package/src/util/VNode.mjs +29 -29
  314. package/src/vdom/Helper.mjs +84 -93
  315. package/src/vdom/VNode.mjs +1 -1
  316. package/src/worker/App.mjs +19 -16
  317. package/src/worker/Base.mjs +14 -15
  318. package/src/worker/Canvas.mjs +1 -3
  319. package/src/worker/Data.mjs +4 -8
  320. package/src/worker/Manager.mjs +27 -32
  321. package/src/worker/Message.mjs +1 -1
  322. package/src/worker/ServiceBase.mjs +38 -42
  323. package/src/worker/Task.mjs +1 -3
  324. package/src/worker/VDom.mjs +2 -4
  325. package/src/worker/mixin/RemoteMethodAccess.mjs +5 -6
  326. package/examples/component/helix/MainContainer.mjs +0 -340
  327. package/resources/images/Neo_Vector.svg +0 -3
  328. package/resources/images/logos/Github-logo-black.svg +0 -1
  329. package/resources/images/logos/Slack-logo-black.svg +0 -17
@@ -86,12 +86,9 @@ class Helper extends Base {
86
86
  * @returns {Neo.vdom.VNode|Promise<Neo.vdom.VNode>}
87
87
  */
88
88
  create(opts) {
89
- let me = this,
90
- appName = opts.appName,
91
- autoMount = opts.autoMount === true,
92
- parentId = opts.parentId,
93
- parentIndex = opts.parentIndex,
94
- windowId = opts.windowId,
89
+ let me = this,
90
+ autoMount = opts.autoMount === true,
91
+ {appName, parentId, parentIndex, windowId} = opts,
95
92
  node;
96
93
 
97
94
  delete opts.appName;
@@ -113,7 +110,7 @@ class Helper extends Base {
113
110
  })
114
111
  }
115
112
 
116
- return Neo.config.useVdomWorker ? node : Promise.resolve(node);
113
+ return Neo.config.useVdomWorker ? node : Promise.resolve(node)
117
114
  }
118
115
 
119
116
  /**
@@ -121,7 +118,7 @@ class Helper extends Base {
121
118
  * @protected
122
119
  */
123
120
  createCloseTag(vnode) {
124
- return this.voidElements.indexOf(vnode.nodeName) > -1 ? '' : '</' + vnode.nodeName + '>';
121
+ return this.voidElements.indexOf(vnode.nodeName) > -1 ? '' : '</' + vnode.nodeName + '>'
125
122
  }
126
123
 
127
124
  /**
@@ -136,21 +133,17 @@ class Helper extends Base {
136
133
  * @returns {Array} deltas
137
134
  */
138
135
  createDeltas(config) {
139
- let me = this,
140
- deltas = config.deltas || [],
141
- index = config.index,
142
- newVnode = config.newVnode,
136
+ let {deltas=[], index, newVnode, oldVnode, parentId} = config,
137
+ me = this,
143
138
  newVnodeRoot = config.newVnodeRoot || newVnode,
144
- oldVnode = config.oldVnode,
145
139
  oldVnodeRoot = config.oldVnodeRoot || oldVnode,
146
- parentId = config.parentId,
147
140
  attributes, delta, value, i, indexDelta, keys, len, movedNode, movedOldNode, styles, add, remove, returnValue, tmp, wrappedNode;
148
141
 
149
142
  // console.log('createDeltas', newVnode && newVnode.id, oldVnode && oldVnode.id, newVnode, oldVnode);
150
143
 
151
144
  if (newVnode && !oldVnode) { // new node at top level or at the end of a child array
152
145
  if (oldVnodeRoot) {
153
- movedOldNode = me.findVnode(oldVnodeRoot, newVnode.id, oldVnode);
146
+ movedOldNode = me.findVnode(oldVnodeRoot, newVnode.id, oldVnode)
154
147
  }
155
148
 
156
149
  if (!movedOldNode) {
@@ -162,11 +155,11 @@ class Helper extends Base {
162
155
  index,
163
156
  outerHTML: me.createStringFromVnode(newVnode),
164
157
  parentId
165
- });
158
+ })
166
159
  }
167
160
  } else if (!newVnode && oldVnode) {
168
161
  if (newVnodeRoot) {
169
- movedNode = me.findVnode(newVnodeRoot, oldVnode.id, newVnode);
162
+ movedNode = me.findVnode(newVnodeRoot, oldVnode.id, newVnode)
170
163
  }
171
164
 
172
165
  // use case: calendar week view => move an event into a column on the right side
@@ -190,7 +183,7 @@ class Helper extends Base {
190
183
  parentId: movedNode.parentNode.id
191
184
  });
192
185
 
193
- movedOldNode.vnode.childNodes.splice(movedNode.index, 0, movedNode.vnode);
186
+ movedOldNode.vnode.childNodes.splice(movedNode.index, 0, movedNode.vnode)
194
187
  } else {
195
188
  // console.log('top level removed node', oldVnode.id, oldVnode);
196
189
 
@@ -256,7 +249,7 @@ class Helper extends Base {
256
249
  });
257
250
 
258
251
  // see: https://github.com/neomjs/neo/issues/3116
259
- movedOldNode.parentNode.childNodes.splice(index, 0, movedOldNode);
252
+ movedOldNode.parentNode.childNodes.splice(index, 0, movedOldNode)
260
253
  } else if (!movedNode && movedOldNode) {
261
254
  if (newVnode.id === movedOldNode.vnode.id) {
262
255
  indexDelta = 0;
@@ -270,7 +263,7 @@ class Helper extends Base {
270
263
  fromId: oldVnode.id,
271
264
  parentId,
272
265
  toId : newVnode.id
273
- });
266
+ })
274
267
  } else {
275
268
  // the old vnode got moved into a different higher level branch
276
269
  // and its parent got removed
@@ -299,7 +292,7 @@ class Helper extends Base {
299
292
  // console.log(tmp[i]);
300
293
  if (!VNodeUtil.findChildVnode(newVnodeDetails.parentNode, tmp[i].id)) {
301
294
  // console.log('not found');
302
- targetIndex ++;
295
+ targetIndex ++
303
296
  }
304
297
  }
305
298
 
@@ -314,19 +307,19 @@ class Helper extends Base {
314
307
  id : movedOldNode.vnode.id,
315
308
  index,
316
309
  parentId
317
- });
310
+ })
318
311
  }
319
312
 
320
313
  // console.log(movedOldNodeDetails);
321
314
 
322
- indexDelta = 0;
315
+ indexDelta = 0
323
316
  }
324
317
 
325
318
  deltas.push({
326
319
  action: 'removeNode',
327
320
  id : oldVnode.id,
328
321
  parentId
329
- });
322
+ })
330
323
  }
331
324
 
332
325
  me.createDeltas({
@@ -338,7 +331,7 @@ class Helper extends Base {
338
331
  parentId
339
332
  });
340
333
 
341
- return {indexDelta};
334
+ return {indexDelta}
342
335
  } else {
343
336
  // console.log('removed node', oldVnode.id, '('+newVnode.id+')');
344
337
 
@@ -349,7 +342,7 @@ class Helper extends Base {
349
342
 
350
343
  return {
351
344
  indexDelta: 1
352
- };
345
+ }
353
346
  }
354
347
  } else if (!movedOldNode) {
355
348
  // new node inside of a child array
@@ -366,7 +359,7 @@ class Helper extends Base {
366
359
  deltas.push({
367
360
  action: 'removeNode',
368
361
  id : movedNode.vnode.id
369
- });
362
+ })
370
363
  }
371
364
 
372
365
  deltas.push({
@@ -392,7 +385,7 @@ class Helper extends Base {
392
385
  if (sameParent) {
393
386
  if (newVnodeDetails.index > movedNode.index) {
394
387
  // todo: needs testing => index gaps > 1
395
- indexDelta = newVnodeDetails.index - movedNode.index;
388
+ indexDelta = newVnodeDetails.index - movedNode.index
396
389
  }
397
390
  }
398
391
 
@@ -402,7 +395,7 @@ class Helper extends Base {
402
395
  id : movedNode.vnode.id,
403
396
  index : movedNode.index,
404
397
  parentId: movedNode.parentNode.id
405
- });
398
+ })
406
399
  }
407
400
 
408
401
  me.createDeltas({
@@ -433,13 +426,13 @@ class Helper extends Base {
433
426
 
434
427
  Object.keys(oldVnode).forEach(prop => {
435
428
  if (!newVnode.hasOwnProperty(prop)) {
436
- keys.push(prop);
429
+ keys.push(prop)
437
430
  } else if (prop === 'attributes') { // find removed attributes
438
431
  Object.keys(oldVnode[prop]).forEach(attr => {
439
432
  if (!newVnode[prop].hasOwnProperty(attr)) {
440
433
  newVnode[prop][attr] = null;
441
434
  }
442
- });
435
+ })
443
436
  }
444
437
  });
445
438
 
@@ -456,7 +449,7 @@ class Helper extends Base {
456
449
  if (value !== null && !Neo.isString(value) && Neo.isEmpty(value)) {
457
450
  // ignore empty arrays & objects
458
451
  } else {
459
- attributes[key] = value;
452
+ attributes[key] = value
460
453
  }
461
454
  }
462
455
  });
@@ -466,11 +459,11 @@ class Helper extends Base {
466
459
 
467
460
  Object.entries(attributes).forEach(([key, value]) => {
468
461
  if (value === null || value === '') {
469
- delete newVnode.attributes[key];
462
+ delete newVnode.attributes[key]
470
463
  }
471
- });
464
+ })
472
465
  }
473
- break;
466
+ break
474
467
  case 'childNodes':
475
468
  i = 0;
476
469
  indexDelta = 0;
@@ -488,7 +481,7 @@ class Helper extends Base {
488
481
  });
489
482
 
490
483
  if (returnValue && returnValue.indexDelta) {
491
- indexDelta += returnValue.indexDelta;
484
+ indexDelta += returnValue.indexDelta
492
485
  }
493
486
  }
494
487
 
@@ -499,48 +492,48 @@ class Helper extends Base {
499
492
  deltas.push({
500
493
  action: 'removeNode',
501
494
  id : oldVnode.childNodes[i].id
502
- });
495
+ })
503
496
  }
504
497
  }
505
498
 
506
- break;
499
+ break
507
500
  case 'nodeName':
508
501
  case 'innerHTML':
509
502
  if (value !== oldVnode[prop]) {
510
- delta[prop] = value;
503
+ delta[prop] = value
511
504
  }
512
- break;
505
+ break
513
506
  case 'style':
514
507
  styles = Style.compareStyles(value, oldVnode.style);
515
508
  if (styles) {
516
- delta.style = styles;
509
+ delta.style = styles
517
510
  }
518
- break;
511
+ break
519
512
  case 'className':
520
513
  if (oldVnode.className) {
521
514
  add = NeoArray.difference(value, oldVnode.className);
522
- remove = NeoArray.difference(oldVnode.className, value);
515
+ remove = NeoArray.difference(oldVnode.className, value)
523
516
  } else {
524
517
  add = value;
525
- remove = [];
518
+ remove = []
526
519
  }
527
520
 
528
521
  if (add.length > 0 || remove.length > 0) {
529
- delta.cls = {add, remove};
522
+ delta.cls = {add, remove}
530
523
  }
531
- break;
524
+ break
532
525
  }
533
526
 
534
527
  if (Object.keys(delta).length > 0) {
535
528
  delta.id = newVnode.id;
536
- deltas.push(delta);
529
+ deltas.push(delta)
537
530
  }
538
- });
531
+ })
539
532
  }
540
533
  }
541
534
  }
542
535
 
543
- return deltas;
536
+ return deltas
544
537
  }
545
538
 
546
539
  /**
@@ -548,34 +541,34 @@ class Helper extends Base {
548
541
  * @protected
549
542
  */
550
543
  createOpenTag(vnode) {
551
- let string = '<' + vnode.nodeName,
552
- attributes = vnode.attributes,
553
- cls = vnode.className,
544
+ let string = '<' + vnode.nodeName,
545
+ {attributes} = vnode,
546
+ cls = vnode.className,
554
547
  style;
555
548
 
556
549
  if (vnode.style) {
557
550
  style = Neo.createStyles(vnode.style);
558
551
 
559
552
  if (style !== '') {
560
- string += ` style="${style}"`;
553
+ string += ` style="${style}"`
561
554
  }
562
555
  }
563
556
 
564
557
  if (cls) {
565
558
  if (Array.isArray(cls)) {
566
- cls = cls.join(' ');
559
+ cls = cls.join(' ')
567
560
  }
568
561
 
569
562
  if (cls !== '') {
570
- string += ` class="${cls}"`;
563
+ string += ` class="${cls}"`
571
564
  }
572
565
  }
573
566
 
574
567
  if (vnode.id) {
575
568
  if (Neo.config.useDomIds) {
576
- string += ` id="${vnode.id}"`;
569
+ string += ` id="${vnode.id}"`
577
570
  } else {
578
- string += ` data-neo-id="${vnode.id}"`;
571
+ string += ` data-neo-id="${vnode.id}"`
579
572
  }
580
573
  }
581
574
 
@@ -604,13 +597,13 @@ class Helper extends Base {
604
597
 
605
598
  switch (vnode.vtype) {
606
599
  case 'root':
607
- return me.createStringFromVnode(vnode.childNodes[0]);
600
+ return me.createStringFromVnode(vnode.childNodes[0])
608
601
  case 'text':
609
- return vnode.innerHTML === undefined ? '' : String(vnode.innerHTML);
602
+ return vnode.innerHTML === undefined ? '' : String(vnode.innerHTML)
610
603
  case 'vnode':
611
- return me.createOpenTag(vnode) + me.createTagContent(vnode) + me.createCloseTag(vnode);
604
+ return me.createOpenTag(vnode) + me.createTagContent(vnode) + me.createCloseTag(vnode)
612
605
  default:
613
- return '';
606
+ return ''
614
607
  }
615
608
  }
616
609
 
@@ -620,7 +613,7 @@ class Helper extends Base {
620
613
  */
621
614
  createTagContent(vnode) {
622
615
  if (vnode.innerHTML) {
623
- return vnode.innerHTML;
616
+ return vnode.innerHTML
624
617
  }
625
618
 
626
619
  let string = '',
@@ -634,14 +627,14 @@ class Helper extends Base {
634
627
 
635
628
  if (childNode.innerHTML !== outerHTML) {
636
629
  if (this.returnChildNodeOuterHtml) {
637
- childNode.outerHTML = outerHTML;
630
+ childNode.outerHTML = outerHTML
638
631
  }
639
632
  }
640
633
 
641
- string += outerHTML;
634
+ string += outerHTML
642
635
  }
643
636
 
644
- return string;
637
+ return string
645
638
  }
646
639
 
647
640
  /**
@@ -656,14 +649,14 @@ class Helper extends Base {
656
649
  */
657
650
  findVnode(vnode, id, parentNode, index) {
658
651
  if (!index) {
659
- index = 0;
652
+ index = 0
660
653
  }
661
654
 
662
655
  let returnValue = null,
663
656
  children, childValue, i, len;
664
657
 
665
658
  if (vnode.id === id) {
666
- returnValue = {index, parentNode, vnode};
659
+ returnValue = {index, parentNode, vnode}
667
660
  } else if (vnode.vtype !== 'text') {
668
661
  children = vnode.childNodes;
669
662
  i = 0;
@@ -674,13 +667,13 @@ class Helper extends Base {
674
667
 
675
668
  if (childValue && childValue.vnode.id === id) {
676
669
  returnValue = childValue;
677
- break;
670
+ break
678
671
  }
679
672
  }
680
673
  }
681
674
 
682
675
  if (returnValue && returnValue.parentId === 'root') {
683
- returnValue.index = null;
676
+ returnValue.index = null
684
677
  }
685
678
 
686
679
  return returnValue;
@@ -692,7 +685,7 @@ class Helper extends Base {
692
685
  */
693
686
  parseHelper(opts) {
694
687
  if (opts.removeDom === true) {
695
- return null;
688
+ return null
696
689
  }
697
690
 
698
691
  if (typeof opts === 'string') {
@@ -701,12 +694,12 @@ class Helper extends Base {
701
694
 
702
695
  if (opts.vtype === 'text') {
703
696
  if (!opts.id) {
704
- opts.id = Neo.getId('vtext'); // adding an id to be able to find vtype='text' items inside the vnode tree
697
+ opts.id = Neo.getId('vtext') // adding an id to be able to find vtype='text' items inside the vnode tree
705
698
  }
706
699
 
707
700
  opts.innerHTML = `<!-- ${opts.id} -->${opts.html || ''}<!-- /neo-vtext -->`;
708
701
  delete opts.html;
709
- return opts;
702
+ return opts
710
703
  }
711
704
 
712
705
  let me = this,
@@ -714,7 +707,7 @@ class Helper extends Base {
714
707
  potentialNode;
715
708
 
716
709
  if (!opts.tag) {
717
- opts.tag = 'div';
710
+ opts.tag = 'div'
718
711
  }
719
712
 
720
713
  Object.entries(opts).forEach(([key, value]) => {
@@ -725,16 +718,16 @@ class Helper extends Base {
725
718
  case 'tag':
726
719
  case 'nodeName':
727
720
  node.nodeName = value;
728
- break;
721
+ break
729
722
  case 'html':
730
723
  case 'innerHTML':
731
724
  node.innerHTML = value.toString(); // support for numbers
732
- break;
725
+ break
733
726
  case 'children':
734
727
  case 'childNodes':
735
728
  case 'cn':
736
729
  if (!Array.isArray(value)) {
737
- value = [value];
730
+ value = [value]
738
731
  }
739
732
 
740
733
  newValue = [];
@@ -745,20 +738,20 @@ class Helper extends Base {
745
738
  potentialNode = me.parseHelper(item);
746
739
 
747
740
  if (potentialNode) { // don't add null values
748
- newValue.push(potentialNode);
741
+ newValue.push(potentialNode)
749
742
  }
750
743
  }
751
744
  });
752
745
 
753
746
  node.childNodes = newValue;
754
- break;
747
+ break
755
748
  case 'cls':
756
749
  if (value && !Array.isArray(value)) {
757
- node.className = [value];
750
+ node.className = [value]
758
751
  } else if (!(Array.isArray(value) && value.length < 1)) {
759
- node.className = value;
752
+ node.className = value
760
753
  }
761
- break;
754
+ break
762
755
  case 'data':
763
756
  if (value && Neo.typeOf(value) === 'Object') {
764
757
  Object.entries(value).forEach(([key, val]) => {
@@ -774,28 +767,28 @@ class Helper extends Base {
774
767
  case 'width':
775
768
  hasUnit = value != parseInt(value);
776
769
  node.style[key] = value + (hasUnit ? '' : 'px');
777
- break;
770
+ break
778
771
  case 'id':
779
772
  node.id = value;
780
- break;
773
+ break
781
774
  case 'style':
782
775
  style = node.style;
783
776
  if (Neo.isString(value)) {
784
- node.style = Object.assign(style, Neo.core.Util.createStyleObject(value));
777
+ node.style = Object.assign(style, Neo.core.Util.createStyleObject(value))
785
778
  } else {
786
- node.style = Object.assign(style, value);
779
+ node.style = Object.assign(style, value)
787
780
  }
788
- break;
781
+ break
789
782
  default:
790
783
  if (key !== 'removeDom') { // could be set to false
791
- node.attributes[key] = value + '';
784
+ node.attributes[key] = value + ''
792
785
  }
793
- break;
786
+ break
794
787
  }
795
788
  }
796
789
  });
797
790
 
798
- return new VNode(node);
791
+ return new VNode(node)
799
792
  }
800
793
 
801
794
  /**
@@ -821,10 +814,8 @@ class Helper extends Base {
821
814
  vnode : node
822
815
  };
823
816
 
824
- return Neo.config.useVdomWorker ? returnObj : Promise.resolve(returnObj);
817
+ return Neo.config.useVdomWorker ? returnObj : Promise.resolve(returnObj)
825
818
  }
826
819
  }
827
820
 
828
- let instance = Neo.setupClass(Helper);
829
-
830
- export default instance;
821
+ export default Neo.setupClass(Helper);
@@ -48,7 +48,7 @@ class VNode {
48
48
  nodeName : config.nodeName,
49
49
  style : config.style,
50
50
  vtype : config.vtype || 'vnode'
51
- });
51
+ })
52
52
  }
53
53
  }
54
54
 
@@ -238,7 +238,7 @@ class App extends Base {
238
238
  */
239
239
  getConfigs(data) {
240
240
  let instance = Neo.get(data.id),
241
- keys = data.keys,
241
+ {keys} = data,
242
242
  returnArray = [];
243
243
 
244
244
  if (instance) {
@@ -284,24 +284,24 @@ class App extends Base {
284
284
  if (Neo.config.themes.length > 0) {
285
285
  className = className || proto.className;
286
286
  //console.log(windowId, className);
287
- let me = this,
288
- lAppName = appName.toLowerCase(),
289
- cssMap = Neo.cssMap,
290
- parent = proto?.__proto__,
291
- classPath, classRoot, fileName, mapClassName, ns, themeFolders;
287
+ let me = this,
288
+ cssMap = Neo.cssMap,
289
+ parent = proto?.__proto__,
290
+ classPath, classRoot, fileName, lClassRoot, mapClassName, ns, themeFolders;
292
291
 
293
292
  if (!cssMap) {
294
293
  me.themeFilesCache.push([appName, windowId, proto])
295
294
  } else {
296
295
  // we need to modify app related class names
297
296
  if (!className.startsWith('Neo.')) {
298
- className = className.split('.');
299
- classRoot = className.shift().toLowerCase();
297
+ className = className.split('.');
298
+ classRoot = className.shift();
299
+ lClassRoot = classRoot.toLowerCase();
300
300
 
301
301
  className[0] === 'view' && className.shift();
302
302
 
303
- mapClassName = `apps.${Neo.apps[appName].appThemeFolder || classRoot}.${className.join('.')}`;
304
- className = `apps.${lAppName}.${className.join('.')}`
303
+ mapClassName = `apps.${Neo.apps[classRoot]?.appThemeFolder || lClassRoot}.${className.join('.')}`;
304
+ className = `apps.${lClassRoot}.${className.join('.')}`;
305
305
  }
306
306
 
307
307
  if (parent && parent !== Neo.core.Base.prototype) {
@@ -352,8 +352,8 @@ class App extends Base {
352
352
  * @param {Object} data
353
353
  */
354
354
  onLoadApplication(data) {
355
- let me = this,
356
- config = Neo.config,
355
+ let me = this,
356
+ {config} = Neo,
357
357
  app, path;
358
358
 
359
359
  if (data) {
@@ -399,8 +399,13 @@ class App extends Base {
399
399
  super.onRegisterNeoConfig(msg);
400
400
 
401
401
  let config = Neo.config,
402
+ {data} = msg,
402
403
  url = 'resources/theme-map.json';
403
404
 
405
+ Neo.windowConfigs = Neo.windowConfigs || {};
406
+
407
+ Neo.windowConfigs[data.windowId] = data;
408
+
404
409
  if (config.environment === 'development') {
405
410
  url = `../../${url}`
406
411
  }
@@ -506,7 +511,7 @@ class App extends Base {
506
511
  return Promise.reject('Neo.main.addon.Stylesheet not imported')
507
512
  } else {
508
513
  if (theme.startsWith('neo-')) {
509
- theme = theme.substring(4);
514
+ theme = theme.substring(4)
510
515
  }
511
516
 
512
517
  return addon.setCssVariable({theme, ...data})
@@ -514,6 +519,4 @@ class App extends Base {
514
519
  }
515
520
  }
516
521
 
517
- let instance = Neo.setupClass(App);
518
-
519
- export default instance;
522
+ export default Neo.setupClass(App);