neo.mjs 10.0.0-beta.5 → 10.0.0-beta.6

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 (468) hide show
  1. package/.github/RELEASE_NOTES/v10.0.0-beta.5.md +70 -0
  2. package/.github/RELEASE_NOTES/v10.0.0-beta.6.md +48 -0
  3. package/.github/epic-functional-components.md +498 -0
  4. package/.github/ticket-asymmetric-vdom-updates.md +122 -0
  5. package/README.md +0 -3
  6. package/ServiceWorker.mjs +2 -2
  7. package/apps/colors/store/Colors.mjs +1 -0
  8. package/apps/colors/view/GridContainer.mjs +3 -0
  9. package/apps/colors/view/HeaderToolbar.mjs +2 -0
  10. package/apps/colors/view/Viewport.mjs +3 -0
  11. package/apps/covid/view/FooterContainer.mjs +3 -0
  12. package/apps/covid/view/GalleryContainer.mjs +2 -0
  13. package/apps/covid/view/GalleryContainerController.mjs +1 -0
  14. package/apps/covid/view/HeaderContainer.mjs +2 -0
  15. package/apps/covid/view/HelixContainer.mjs +2 -0
  16. package/apps/covid/view/HelixContainerController.mjs +1 -0
  17. package/apps/covid/view/MainContainer.mjs +3 -0
  18. package/apps/covid/view/TableContainer.mjs +3 -0
  19. package/apps/covid/view/TableContainerController.mjs +1 -0
  20. package/apps/covid/view/WorldMapContainer.mjs +2 -0
  21. package/apps/covid/view/country/Gallery.mjs +3 -0
  22. package/apps/covid/view/country/Helix.mjs +8 -0
  23. package/apps/covid/view/country/HistoricalDataTable.mjs +1 -0
  24. package/apps/covid/view/country/Table.mjs +2 -0
  25. package/apps/covid/view/mapboxGl/Component.mjs +1 -0
  26. package/apps/covid/view/mapboxGl/Container.mjs +2 -0
  27. package/apps/email/EPIC_PLAN.md +58 -0
  28. package/apps/email/neo-config.json +2 -2
  29. package/apps/email/store/Emails.mjs +11 -1
  30. package/apps/email/view/ComposeView.mjs +44 -0
  31. package/apps/email/view/MainView.mjs +89 -0
  32. package/apps/email/view/Viewport.mjs +4 -33
  33. package/apps/email/view/ViewportStateProvider.mjs +3 -3
  34. package/apps/form/store/SideNav.mjs +1 -0
  35. package/apps/form/view/FormContainer.mjs +1 -0
  36. package/apps/form/view/FormPageContainer.mjs +2 -0
  37. package/apps/form/view/SideNavList.mjs +1 -0
  38. package/apps/form/view/Viewport.mjs +3 -0
  39. package/apps/portal/childapps/preview/MainContainer.mjs +1 -0
  40. package/apps/portal/index.html +1 -1
  41. package/apps/portal/store/BlogPosts.mjs +2 -0
  42. package/apps/portal/store/Content.mjs +1 -0
  43. package/apps/portal/store/ContentSections.mjs +1 -0
  44. package/apps/portal/store/Examples.mjs +1 -0
  45. package/apps/portal/view/HeaderToolbar.mjs +1 -0
  46. package/apps/portal/view/Viewport.mjs +5 -0
  47. package/apps/portal/view/ViewportController.mjs +8 -2
  48. package/apps/portal/view/about/Container.mjs +2 -0
  49. package/apps/portal/view/about/MemberContainer.mjs +7 -0
  50. package/apps/portal/view/blog/Container.mjs +2 -0
  51. package/apps/portal/view/blog/List.mjs +2 -0
  52. package/apps/portal/view/examples/List.mjs +1 -0
  53. package/apps/portal/view/examples/TabContainer.mjs +4 -0
  54. package/apps/portal/view/home/ContentBox.mjs +3 -0
  55. package/apps/portal/view/home/FeatureSection.mjs +8 -0
  56. package/apps/portal/view/home/FooterContainer.mjs +4 -1
  57. package/apps/portal/view/home/MainContainer.mjs +2 -0
  58. package/apps/portal/view/home/parts/AfterMath.mjs +2 -0
  59. package/apps/portal/view/home/parts/BaseContainer.mjs +1 -0
  60. package/apps/portal/view/home/parts/Colors.mjs +4 -0
  61. package/apps/portal/view/home/parts/Features.mjs +2 -0
  62. package/apps/portal/view/home/parts/Helix.mjs +5 -0
  63. package/apps/portal/view/home/parts/How.mjs +4 -0
  64. package/apps/portal/view/home/parts/MainNeo.mjs +1 -0
  65. package/apps/portal/view/home/parts/References.mjs +2 -0
  66. package/apps/portal/view/learn/ContentComponent.mjs +11 -5
  67. package/apps/portal/view/learn/ContentTreeList.mjs +2 -0
  68. package/apps/portal/view/learn/CubeLayoutButton.mjs +1 -0
  69. package/apps/portal/view/learn/MainContainer.mjs +4 -0
  70. package/apps/portal/view/learn/PageContainer.mjs +2 -0
  71. package/apps/portal/view/learn/PageSectionsContainer.mjs +3 -0
  72. package/apps/portal/view/learn/PageSectionsList.mjs +1 -0
  73. package/apps/portal/view/services/Component.mjs +1 -0
  74. package/apps/realworld/api/Base.mjs +1 -0
  75. package/apps/realworld/view/HeaderComponent.mjs +4 -0
  76. package/apps/realworld/view/HomeComponent.mjs +7 -0
  77. package/apps/realworld/view/MainContainer.mjs +2 -0
  78. package/apps/realworld/view/MainContainerController.mjs +2 -0
  79. package/apps/realworld/view/article/CommentComponent.mjs +3 -0
  80. package/apps/realworld/view/article/Component.mjs +17 -10
  81. package/apps/realworld/view/article/CreateCommentComponent.mjs +2 -0
  82. package/apps/realworld/view/article/CreateComponent.mjs +5 -0
  83. package/apps/realworld/view/article/PreviewComponent.mjs +9 -0
  84. package/apps/realworld/view/article/TagListComponent.mjs +2 -0
  85. package/apps/realworld/view/user/ProfileComponent.mjs +7 -0
  86. package/apps/realworld/view/user/SettingsComponent.mjs +5 -0
  87. package/apps/realworld/view/user/SignUpComponent.mjs +3 -0
  88. package/apps/realworld2/api/Base.mjs +1 -0
  89. package/apps/realworld2/view/FooterComponent.mjs +1 -0
  90. package/apps/realworld2/view/HeaderToolbar.mjs +3 -0
  91. package/apps/realworld2/view/HomeContainer.mjs +1 -0
  92. package/apps/realworld2/view/MainContainer.mjs +2 -0
  93. package/apps/realworld2/view/MainContainerController.mjs +1 -0
  94. package/apps/realworld2/view/article/Helix.mjs +1 -0
  95. package/apps/realworld2/view/article/PreviewComponent.mjs +9 -0
  96. package/apps/realworld2/view/article/PreviewList.mjs +1 -0
  97. package/apps/realworld2/view/article/TagListComponent.mjs +2 -0
  98. package/apps/route/view/CenterContainer.mjs +1 -0
  99. package/apps/route/view/MainView.mjs +1 -0
  100. package/apps/sharedcovid/childapps/sharedcovidchart/MainContainer.mjs +1 -0
  101. package/apps/sharedcovid/childapps/sharedcovidgallery/MainContainer.mjs +1 -0
  102. package/apps/sharedcovid/childapps/sharedcovidhelix/MainContainer.mjs +1 -0
  103. package/apps/sharedcovid/childapps/sharedcovidmap/MainContainer.mjs +1 -0
  104. package/apps/sharedcovid/view/FooterContainer.mjs +3 -0
  105. package/apps/sharedcovid/view/GalleryContainer.mjs +2 -0
  106. package/apps/sharedcovid/view/GalleryContainerController.mjs +1 -0
  107. package/apps/sharedcovid/view/HeaderContainer.mjs +2 -0
  108. package/apps/sharedcovid/view/HelixContainer.mjs +2 -0
  109. package/apps/sharedcovid/view/HelixContainerController.mjs +1 -0
  110. package/apps/sharedcovid/view/MainContainer.mjs +3 -0
  111. package/apps/sharedcovid/view/TableContainer.mjs +3 -0
  112. package/apps/sharedcovid/view/TableContainerController.mjs +1 -0
  113. package/apps/sharedcovid/view/WorldMapContainer.mjs +2 -0
  114. package/apps/sharedcovid/view/country/Gallery.mjs +3 -0
  115. package/apps/sharedcovid/view/country/Helix.mjs +8 -0
  116. package/apps/sharedcovid/view/country/HistoricalDataTable.mjs +1 -0
  117. package/apps/sharedcovid/view/country/Table.mjs +2 -0
  118. package/apps/sharedcovid/view/mapboxGl/Component.mjs +1 -0
  119. package/apps/sharedcovid/view/mapboxGl/Container.mjs +2 -0
  120. package/apps/shareddialog/childapps/shareddialog2/view/MainContainer.mjs +2 -0
  121. package/apps/shareddialog/view/DemoDialog.mjs +2 -0
  122. package/apps/shareddialog/view/MainContainer.mjs +2 -0
  123. package/apps/shareddialog/view/MainContainerController.mjs +1 -0
  124. package/buildScripts/addReactiveTags.mjs +191 -0
  125. package/buildScripts/checkReactiveTags.mjs +160 -0
  126. package/docs/app/store/Api.mjs +1 -0
  127. package/docs/app/store/Examples.mjs +1 -0
  128. package/docs/app/view/ApiTreeList.mjs +1 -0
  129. package/docs/app/view/ContentTabContainer.mjs +2 -0
  130. package/docs/app/view/ExamplesTreeList.mjs +2 -0
  131. package/docs/app/view/HeaderContainer.mjs +3 -0
  132. package/docs/app/view/MainContainer.mjs +5 -0
  133. package/docs/app/view/classdetails/HeaderComponent.mjs +1 -0
  134. package/docs/app/view/classdetails/MainContainer.mjs +3 -0
  135. package/docs/app/view/classdetails/MembersList.mjs +5 -0
  136. package/docs/app/view/classdetails/SourceViewComponent.mjs +2 -0
  137. package/examples/ConfigurationViewport.mjs +14 -8
  138. package/examples/calendar/weekview/MainContainer.mjs +4 -0
  139. package/examples/component/coronaGallery/CountryGallery.mjs +2 -0
  140. package/examples/component/coronaGallery/CountryStore.mjs +1 -0
  141. package/examples/component/coronaGallery/Viewport.mjs +3 -0
  142. package/examples/component/coronaGallery/ViewportController.mjs +1 -0
  143. package/examples/component/coronaHelix/CountryHelix.mjs +7 -0
  144. package/examples/component/coronaHelix/MainContainer.mjs +1 -0
  145. package/examples/component/gallery/ImageStore.mjs +1 -0
  146. package/examples/component/helix/ImageStore.mjs +1 -0
  147. package/examples/component/helix/Viewport.mjs +3 -0
  148. package/examples/component/helix/ViewportController.mjs +1 -0
  149. package/examples/component/multiWindowCoronaGallery/childapp/Viewport.mjs +1 -0
  150. package/examples/component/multiWindowHelix/childapp/Viewport.mjs +1 -0
  151. package/examples/component/wrapper/googleMaps/MapComponent.mjs +2 -0
  152. package/examples/core/config/MainContainer.mjs +2 -0
  153. package/examples/dialog/DemoDialog.mjs +2 -0
  154. package/examples/dialog/MainContainer.mjs +1 -0
  155. package/examples/form/field/color/MainStore.mjs +1 -0
  156. package/examples/functional/defineComponent/Component.mjs +18 -0
  157. package/examples/functional/defineComponent/MainContainer.mjs +41 -0
  158. package/examples/functional/defineComponent/app.mjs +6 -0
  159. package/examples/functional/defineComponent/index.html +11 -0
  160. package/examples/functional/defineComponent/neo-config.json +6 -0
  161. package/examples/functional/hostComponent/Component.mjs +32 -0
  162. package/examples/functional/hostComponent/MainContainer.mjs +48 -0
  163. package/examples/functional/hostComponent/app.mjs +6 -0
  164. package/examples/functional/hostComponent/index.html +11 -0
  165. package/examples/functional/hostComponent/neo-config.json +6 -0
  166. package/examples/grid/animatedRowSorting/Viewport.mjs +1 -1
  167. package/examples/grid/bigData/ControlsContainer.mjs +3 -0
  168. package/examples/grid/bigData/GridContainer.mjs +4 -2
  169. package/examples/grid/bigData/MainContainer.mjs +2 -0
  170. package/examples/grid/bigData/MainModel.mjs +1 -0
  171. package/examples/grid/bigData/MainStore.mjs +3 -0
  172. package/examples/grid/cellEditing/MainContainer.mjs +1 -1
  173. package/examples/grid/container/MainContainer.mjs +1 -1
  174. package/examples/grid/covid/GridContainer.mjs +3 -0
  175. package/examples/grid/covid/MainContainer.mjs +2 -0
  176. package/examples/grid/covid/Store.mjs +1 -0
  177. package/examples/grid/nestedRecordFields/EditUserDialog.mjs +3 -0
  178. package/examples/grid/nestedRecordFields/Viewport.mjs +3 -1
  179. package/examples/list/animate/List.mjs +4 -0
  180. package/examples/list/animate/MainContainer.mjs +2 -0
  181. package/examples/list/circle/MainStore.mjs +1 -0
  182. package/examples/list/color/MainStore.mjs +1 -0
  183. package/examples/preloadingAssets/view/MainContainer.mjs +2 -0
  184. package/examples/stateProvider/advanced/MainContainer.mjs +1 -0
  185. package/examples/stateProvider/dialog/EditUserDialog.mjs +2 -0
  186. package/examples/stateProvider/dialog/MainContainer.mjs +1 -0
  187. package/examples/stateProvider/extendedClass/MainContainer.mjs +2 -0
  188. package/examples/stateProvider/inline/MainContainer.mjs +1 -0
  189. package/examples/stateProvider/inlineNoStateProvider/MainContainer.mjs +1 -0
  190. package/examples/stateProvider/inlineNoStateProvider/MainContainerController.mjs +2 -0
  191. package/examples/stateProvider/multiWindow/EditUserDialog.mjs +3 -0
  192. package/examples/stateProvider/multiWindow/MainContainer.mjs +1 -0
  193. package/examples/stateProvider/multiWindow/Viewport.mjs +1 -0
  194. package/examples/stateProvider/nestedData/MainContainer.mjs +1 -0
  195. package/examples/stateProvider/table/MainContainer.mjs +1 -0
  196. package/examples/table/covid/MainContainer.mjs +2 -0
  197. package/examples/table/covid/Store.mjs +1 -0
  198. package/examples/table/covid/TableContainer.mjs +3 -0
  199. package/examples/table/nestedRecordFields/EditUserDialog.mjs +3 -0
  200. package/examples/table/nestedRecordFields/Viewport.mjs +1 -0
  201. package/examples/todoList/version1/MainComponent.mjs +1 -1
  202. package/examples/toolbar/breadcrumb/view/MainContainer.mjs +2 -0
  203. package/examples/toolbar/paging/store/Users.mjs +1 -0
  204. package/examples/toolbar/paging/view/AddUserDialog.mjs +3 -0
  205. package/examples/toolbar/paging/view/MainContainer.mjs +3 -0
  206. package/examples/treeAccordion/MainContainer.mjs +2 -2
  207. package/examples/worker/task/MainContainer.mjs +1 -0
  208. package/learn/Glossary.md +1 -0
  209. package/learn/UsingTheseTopics.md +1 -0
  210. package/learn/benefits/ConfigSystem.md +2 -0
  211. package/learn/benefits/Effort.md +1 -0
  212. package/learn/benefits/Features.md +1 -0
  213. package/learn/benefits/FormsEngine.md +1 -0
  214. package/learn/benefits/FourEnvironments.md +2 -0
  215. package/learn/benefits/Introduction.md +2 -0
  216. package/learn/benefits/MultiWindow.md +3 -1
  217. package/learn/benefits/OffTheMainThread.md +2 -0
  218. package/learn/benefits/Quick.md +2 -0
  219. package/learn/benefits/RPCLayer.md +2 -0
  220. package/learn/benefits/Speed.md +2 -0
  221. package/learn/comparisons/NeoVsAngular.md +90 -0
  222. package/learn/comparisons/NeoVsExtJs.md +178 -0
  223. package/learn/comparisons/NeoVsNextJs.md +124 -0
  224. package/learn/comparisons/NeoVsReact.md +95 -0
  225. package/learn/comparisons/NeoVsSolid.md +78 -0
  226. package/learn/comparisons/NeoVsVue.md +92 -0
  227. package/learn/comparisons/Overview.md +46 -0
  228. package/learn/gettingstarted/ComponentModels.md +2 -0
  229. package/learn/gettingstarted/Config.md +2 -0
  230. package/learn/gettingstarted/DescribingTheUI.md +2 -0
  231. package/learn/gettingstarted/Events.md +2 -0
  232. package/learn/gettingstarted/Extending.md +2 -0
  233. package/learn/gettingstarted/References.md +2 -0
  234. package/learn/gettingstarted/Setup.md +3 -2
  235. package/learn/gettingstarted/Workspaces.md +2 -0
  236. package/learn/guides/datahandling/Collections.md +1 -0
  237. package/learn/guides/datahandling/Records.md +1 -0
  238. package/learn/guides/datahandling/StateProviders.md +130 -16
  239. package/learn/guides/datahandling/Tables.md +1 -1
  240. package/learn/guides/fundamentals/ConfigSystemDeepDive.md +1 -0
  241. package/learn/guides/fundamentals/DeclarativeComponentTreesVsImperativeVdom.md +2 -0
  242. package/learn/guides/fundamentals/DeclarativeVDOMWithEffects.md +10 -8
  243. package/learn/guides/fundamentals/ExtendingNeoClasses.md +1 -0
  244. package/learn/guides/fundamentals/InstanceLifecycle.md +3 -1
  245. package/learn/guides/fundamentals/MainThreadAddons.md +2 -0
  246. package/learn/guides/specificfeatures/Mixins.md +3 -1
  247. package/learn/guides/specificfeatures/MultiWindow.md +3 -1
  248. package/learn/guides/specificfeatures/PortalApp.md +2 -0
  249. package/learn/guides/uibuildingblocks/ComponentsAndContainers.md +2 -0
  250. package/learn/guides/uibuildingblocks/CustomComponents.md +2 -0
  251. package/learn/guides/uibuildingblocks/Layouts.md +2 -0
  252. package/learn/guides/uibuildingblocks/WorkingWithVDom.md +2 -0
  253. package/learn/guides/userinteraction/Forms.md +2 -0
  254. package/learn/guides/userinteraction/events/CustomEvents.md +2 -1
  255. package/learn/guides/userinteraction/events/DomEvents.md +2 -0
  256. package/learn/javascript/ClassFeatures.md +4 -3
  257. package/learn/javascript/Classes.md +10 -13
  258. package/learn/javascript/Overrides.md +10 -6
  259. package/learn/javascript/Super.md +12 -8
  260. package/learn/tree.json +71 -64
  261. package/learn/tutorials/Earthquakes.md +2 -0
  262. package/learn/tutorials/RSP.md +3 -1
  263. package/learn/tutorials/TodoList.md +103 -7
  264. package/package.json +6 -4
  265. package/resources/scss/src/apps/email/ComposeView.scss +16 -0
  266. package/resources/scss/src/apps/email/MainView.scss +5 -0
  267. package/resources/scss/src/apps/portal/learn/ContentComponent.scss +5 -4
  268. package/src/DefaultConfig.mjs +12 -2
  269. package/src/Main.mjs +1 -0
  270. package/src/Neo.mjs +217 -166
  271. package/src/Xhr.mjs +1 -0
  272. package/src/button/Base.mjs +13 -0
  273. package/src/button/Effect.mjs +16 -2
  274. package/src/button/Split.mjs +2 -0
  275. package/src/calendar/store/Calendars.mjs +1 -0
  276. package/src/calendar/store/Colors.mjs +1 -0
  277. package/src/calendar/store/Events.mjs +1 -0
  278. package/src/calendar/view/DayComponent.mjs +2 -0
  279. package/src/calendar/view/EditEventContainer.mjs +4 -1
  280. package/src/calendar/view/MainContainer.mjs +13 -0
  281. package/src/calendar/view/MainContainerStateProvider.mjs +14 -28
  282. package/src/calendar/view/SettingsContainer.mjs +1 -0
  283. package/src/calendar/view/YearComponent.mjs +16 -0
  284. package/src/calendar/view/calendars/ColorsList.mjs +2 -0
  285. package/src/calendar/view/calendars/Container.mjs +2 -0
  286. package/src/calendar/view/calendars/EditContainer.mjs +1 -0
  287. package/src/calendar/view/month/Component.mjs +11 -0
  288. package/src/calendar/view/settings/GeneralContainer.mjs +1 -0
  289. package/src/calendar/view/settings/MonthContainer.mjs +1 -0
  290. package/src/calendar/view/settings/WeekContainer.mjs +1 -0
  291. package/src/calendar/view/settings/YearContainer.mjs +1 -0
  292. package/src/calendar/view/week/Component.mjs +15 -1
  293. package/src/calendar/view/week/TimeAxisComponent.mjs +4 -0
  294. package/src/code/LivePreview.mjs +51 -23
  295. package/src/collection/Base.mjs +7 -10
  296. package/src/collection/Filter.mjs +6 -0
  297. package/src/collection/Sorter.mjs +3 -0
  298. package/src/component/Base.mjs +104 -771
  299. package/src/component/Canvas.mjs +1 -0
  300. package/src/component/Chip.mjs +4 -0
  301. package/src/component/Circle.mjs +14 -0
  302. package/src/component/Clock.mjs +4 -0
  303. package/src/component/DateSelector.mjs +12 -0
  304. package/src/component/Gallery.mjs +11 -0
  305. package/src/component/Helix.mjs +24 -0
  306. package/src/component/Label.mjs +1 -0
  307. package/src/component/Legend.mjs +3 -0
  308. package/src/component/MagicMoveText.mjs +4 -0
  309. package/src/component/Progress.mjs +3 -0
  310. package/src/component/Splitter.mjs +3 -0
  311. package/src/component/StatusBadge.mjs +6 -0
  312. package/src/component/Timer.mjs +4 -0
  313. package/src/component/Toast.mjs +6 -0
  314. package/src/component/Video.mjs +1 -0
  315. package/src/component/mwc/Button.mjs +7 -0
  316. package/src/component/mwc/TextField.mjs +9 -0
  317. package/src/component/wrapper/AmChart.mjs +2 -0
  318. package/src/component/wrapper/GoogleMaps.mjs +3 -0
  319. package/src/component/wrapper/MapboxGL.mjs +5 -0
  320. package/src/component/wrapper/MonacoEditor.mjs +12 -0
  321. package/src/container/Accordion.mjs +2 -0
  322. package/src/container/Base.mjs +7 -3
  323. package/src/container/Panel.mjs +1 -0
  324. package/src/container/Viewport.mjs +1 -0
  325. package/src/controller/Application.mjs +1 -0
  326. package/src/controller/Base.mjs +1 -0
  327. package/src/controller/Component.mjs +1 -0
  328. package/src/core/Base.mjs +55 -3
  329. package/src/core/Compare.mjs +4 -7
  330. package/src/core/Config.mjs +65 -52
  331. package/src/core/Effect.mjs +79 -13
  332. package/src/core/EffectBatchManager.mjs +18 -19
  333. package/src/core/EffectManager.mjs +25 -3
  334. package/src/core/IdGenerator.mjs +13 -44
  335. package/src/data/Model.mjs +2 -0
  336. package/src/data/Store.mjs +7 -0
  337. package/src/data/connection/WebSocket.mjs +2 -0
  338. package/src/date/DayViewComponent.mjs +2 -0
  339. package/src/date/SelectorContainer.mjs +14 -0
  340. package/src/dialog/Base.mjs +8 -0
  341. package/src/draggable/DragZone.mjs +5 -0
  342. package/src/draggable/tree/DragZone.mjs +1 -0
  343. package/src/filter/BooleanContainer.mjs +2 -0
  344. package/src/filter/NumberContainer.mjs +3 -0
  345. package/src/filter/ToggleOperatorsButton.mjs +2 -0
  346. package/src/form/Fieldset.mjs +6 -0
  347. package/src/form/field/Base.mjs +7 -0
  348. package/src/form/field/CheckBox.mjs +18 -0
  349. package/src/form/field/Chip.mjs +1 -0
  350. package/src/form/field/ComboBox.mjs +8 -0
  351. package/src/form/field/Country.mjs +1 -0
  352. package/src/form/field/Currency.mjs +2 -0
  353. package/src/form/field/Date.mjs +4 -0
  354. package/src/form/field/Display.mjs +1 -0
  355. package/src/form/field/Email.mjs +1 -0
  356. package/src/form/field/FileUpload.mjs +7 -0
  357. package/src/form/field/Hidden.mjs +1 -0
  358. package/src/form/field/Number.mjs +7 -0
  359. package/src/form/field/Password.mjs +1 -0
  360. package/src/form/field/Phone.mjs +3 -0
  361. package/src/form/field/Picker.mjs +2 -0
  362. package/src/form/field/Radio.mjs +1 -0
  363. package/src/form/field/Range.mjs +3 -0
  364. package/src/form/field/Search.mjs +2 -0
  365. package/src/form/field/Text.mjs +32 -0
  366. package/src/form/field/TextArea.mjs +7 -0
  367. package/src/form/field/Time.mjs +6 -0
  368. package/src/form/field/Url.mjs +3 -0
  369. package/src/form/field/ZipCode.mjs +2 -0
  370. package/src/form/field/trigger/Base.mjs +3 -0
  371. package/src/form/field/trigger/Clear.mjs +2 -0
  372. package/src/form/field/trigger/CopyToClipboard.mjs +2 -0
  373. package/src/form/field/trigger/Date.mjs +1 -0
  374. package/src/form/field/trigger/Picker.mjs +1 -0
  375. package/src/form/field/trigger/Search.mjs +1 -0
  376. package/src/form/field/trigger/SpinDown.mjs +2 -0
  377. package/src/form/field/trigger/SpinUp.mjs +1 -0
  378. package/src/form/field/trigger/Time.mjs +2 -0
  379. package/src/functional/_export.mjs +6 -0
  380. package/src/functional/component/Base.mjs +499 -0
  381. package/src/functional/defineComponent.mjs +102 -0
  382. package/src/functional/useConfig.mjs +52 -0
  383. package/src/functional/useEvent.mjs +43 -0
  384. package/src/grid/Body.mjs +20 -1
  385. package/src/grid/Container.mjs +50 -60
  386. package/src/grid/ScrollManager.mjs +2 -0
  387. package/src/grid/VerticalScrollbar.mjs +2 -0
  388. package/src/grid/column/Base.mjs +2 -0
  389. package/src/grid/header/Button.mjs +7 -0
  390. package/src/grid/header/Toolbar.mjs +6 -0
  391. package/src/grid/plugin/AnimateRows.mjs +2 -0
  392. package/src/layout/Base.mjs +3 -0
  393. package/src/layout/Card.mjs +1 -0
  394. package/src/layout/Cube.mjs +11 -1
  395. package/src/layout/Fit.mjs +1 -0
  396. package/src/layout/Flexbox.mjs +7 -0
  397. package/src/layout/Form.mjs +2 -0
  398. package/src/layout/Grid.mjs +1 -0
  399. package/src/layout/HBox.mjs +1 -0
  400. package/src/layout/VBox.mjs +1 -0
  401. package/src/list/Base.mjs +13 -0
  402. package/src/list/Chip.mjs +1 -0
  403. package/src/list/Circle.mjs +2 -0
  404. package/src/list/Color.mjs +1 -0
  405. package/src/list/plugin/Animate.mjs +2 -0
  406. package/src/main/DeltaUpdates.mjs +1 -0
  407. package/src/main/DomEvents.mjs +2 -0
  408. package/src/main/addon/CloneNode.mjs +1 -0
  409. package/src/main/addon/Cookie.mjs +1 -0
  410. package/src/main/addon/GoogleMaps.mjs +1 -0
  411. package/src/main/addon/LocalStorage.mjs +1 -0
  412. package/src/main/addon/MapboxGL.mjs +1 -0
  413. package/src/main/addon/Markdown.mjs +1 -0
  414. package/src/main/addon/Navigator.mjs +1 -0
  415. package/src/main/addon/Popover.mjs +1 -0
  416. package/src/main/addon/Stylesheet.mjs +1 -0
  417. package/src/main/addon/WindowPosition.mjs +1 -0
  418. package/src/manager/Component.mjs +0 -71
  419. package/src/manager/VDomUpdate.mjs +235 -0
  420. package/src/menu/List.mjs +6 -0
  421. package/src/menu/Model.mjs +1 -0
  422. package/src/menu/Panel.mjs +3 -0
  423. package/src/menu/Store.mjs +1 -0
  424. package/src/mixin/DomEvents.mjs +130 -0
  425. package/src/mixin/VdomLifecycle.mjs +667 -0
  426. package/src/plugin/Base.mjs +1 -0
  427. package/src/plugin/Resizable.mjs +2 -0
  428. package/src/selection/Model.mjs +15 -18
  429. package/src/selection/grid/BaseModel.mjs +1 -0
  430. package/src/sitemap/Component.mjs +1 -0
  431. package/src/state/Provider.mjs +98 -70
  432. package/src/state/createHierarchicalDataProxy.mjs +39 -25
  433. package/src/tab/Container.mjs +6 -0
  434. package/src/tab/Strip.mjs +1 -0
  435. package/src/tab/header/Button.mjs +2 -0
  436. package/src/tab/header/EffectButton.mjs +2 -0
  437. package/src/tab/header/Toolbar.mjs +1 -0
  438. package/src/table/Body.mjs +3 -0
  439. package/src/table/Container.mjs +10 -0
  440. package/src/table/header/Button.mjs +8 -0
  441. package/src/table/header/Toolbar.mjs +5 -0
  442. package/src/table/plugin/CellEditing.mjs +1 -0
  443. package/src/toolbar/Base.mjs +4 -0
  444. package/src/toolbar/Breadcrumb.mjs +3 -0
  445. package/src/toolbar/Paging.mjs +5 -0
  446. package/src/tooltip/Base.mjs +2 -0
  447. package/src/tree/List.mjs +3 -0
  448. package/src/util/HashHistory.mjs +1 -0
  449. package/src/util/KeyNavigation.mjs +2 -0
  450. package/src/util/Matrix.mjs +1 -0
  451. package/src/util/VDom.mjs +7 -1
  452. package/src/util/VNode.mjs +7 -1
  453. package/src/util/vdom/TreeBuilder.mjs +129 -0
  454. package/src/vdom/Helper.mjs +35 -23
  455. package/src/vdom/VNode.mjs +4 -6
  456. package/src/worker/App.mjs +1 -0
  457. package/src/worker/Base.mjs +2 -0
  458. package/src/worker/Manager.mjs +2 -0
  459. package/src/worker/ServiceBase.mjs +6 -1
  460. package/test/siesta/siesta.js +5 -2
  461. package/test/siesta/tests/VdomCalendar.mjs +13 -9
  462. package/test/siesta/tests/core/Effect.mjs +10 -14
  463. package/test/siesta/tests/core/EffectBatching.mjs +25 -37
  464. package/test/siesta/tests/state/ProviderNestedDataConfigs.mjs +255 -0
  465. package/test/siesta/tests/state/createHierarchicalDataProxy.mjs +42 -55
  466. package/test/siesta/tests/vdom/VdomAsymmetricUpdates.mjs +366 -0
  467. package/test/siesta/tests/vdom/VdomRealWorldUpdates.mjs +249 -0
  468. package/learn/javascript/NewNode.md +0 -31
package/src/grid/Body.mjs CHANGED
@@ -23,21 +23,25 @@ class GridBody extends Component {
23
23
  ntype: 'grid-body',
24
24
  /**
25
25
  * @member {Boolean} animatedRowSorting_=false
26
+ * @reactive
26
27
  */
27
28
  animatedRowSorting_: false,
28
29
  /**
29
30
  * Internal flag. Gets calculated when mounting the grid.Container
30
31
  * @member {Number} availableHeight_=0
32
+ * @reactive
31
33
  */
32
34
  availableHeight_: 0,
33
35
  /**
34
36
  * Internal flag. Gets calculated when changing the availableHeight config
35
37
  * @member {Number} availableRows_=0
38
+ * @reactive
36
39
  */
37
40
  availableRows_: 0,
38
41
  /**
39
42
  * Internal flag. Gets calculated after mounting grid.Body rows
40
43
  * @member {Number} availableWidth_=0
44
+ * @reactive
41
45
  */
42
46
  availableWidth_: 0,
43
47
  /**
@@ -49,12 +53,14 @@ class GridBody extends Component {
49
53
  * The number of columns (cells) to paint before the first and after the last visible column,
50
54
  * to enhance the scrolling performance
51
55
  * @member {Number} bufferColumnRange_=0
56
+ * @reactive
52
57
  */
53
58
  bufferColumnRange_: 0,
54
59
  /**
55
60
  * The number of rows to paint before the first and after the last visible row,
56
61
  * to enhance the scrolling performance
57
62
  * @member {Number} bufferRowRange_=3
63
+ * @reactive
58
64
  */
59
65
  bufferRowRange_: 3,
60
66
  /**
@@ -65,19 +71,23 @@ class GridBody extends Component {
65
71
  /**
66
72
  * Internal flag. Gets calculated after mounting grid.Body rows
67
73
  * @member {Number} containerWidth_=0
74
+ * @reactive
68
75
  */
69
76
  containerWidth_: 0,
70
77
  /**
71
78
  * @member {Neo.collection.Base|null} columnPositions_=null
72
79
  * @protected
80
+ * @reactive
73
81
  */
74
82
  columnPositions_: null,
75
83
  /**
76
84
  * @member {Boolean} highlightModifiedCells_=false
85
+ * @reactive
77
86
  */
78
87
  highlightModifiedCells_: false,
79
88
  /**
80
89
  * @member {Boolean} isScrolling_=false
90
+ * @reactive
81
91
  */
82
92
  isScrolling_: false,
83
93
  /**
@@ -89,6 +99,7 @@ class GridBody extends Component {
89
99
  * Stores the indexes of the first & last mounted columns, including bufferColumnRange
90
100
  * @member {Number[]} mountedColumns_=[0,0]
91
101
  * @protected
102
+ * @reactive
92
103
  */
93
104
  mountedColumns_: [0, 0],
94
105
  /**
@@ -104,25 +115,30 @@ class GridBody extends Component {
104
115
  pluginAnimateRowsConfig: null,
105
116
  /**
106
117
  * @member {String} role='rowgroup'
118
+ * @reactive
107
119
  */
108
120
  role: 'rowgroup',
109
121
  /**
110
122
  * Number in px
111
123
  * @member {Number} rowHeight_=0
124
+ * @reactive
112
125
  */
113
126
  rowHeight_: 0,
114
127
  /**
115
128
  * @member {Number} scrollLeft_=0
116
129
  * @protected
130
+ * @reactive
117
131
  */
118
132
  scrollLeft_: 0,
119
133
  /**
120
134
  * @member {Number} scrollTop_=0
121
135
  * @protected
136
+ * @reactive
122
137
  */
123
138
  scrollTop_: 0,
124
139
  /**
125
140
  * @member {Neo.selection.Model} selectionModel_=null
141
+ * @reactive
126
142
  */
127
143
  selectionModel_: null,
128
144
  /**
@@ -131,10 +147,12 @@ class GridBody extends Component {
131
147
  selectedRecordField: 'annotations.selected',
132
148
  /**
133
149
  * @member {Number} startIndex_=0
150
+ * @reactive
134
151
  */
135
152
  startIndex_: 0,
136
153
  /**
137
154
  * @member {Neo.data.Store|null} store_=null
155
+ * @reactive
138
156
  */
139
157
  store_: null,
140
158
  /**
@@ -151,6 +169,7 @@ class GridBody extends Component {
151
169
  visibleRows: [0, 0],
152
170
  /**
153
171
  * @member {String[]} wrapperCls=['neo-grid-body-wrapper']
172
+ * @reactive
154
173
  */
155
174
  wrapperCls: ['neo-grid-body-wrapper'],
156
175
  /**
@@ -1126,7 +1145,7 @@ class GridBody extends Component {
1126
1145
  */
1127
1146
  updateScrollHeight(silent=false) {
1128
1147
  let me = this,
1129
- countRecords = me.store.getCount(),
1148
+ countRecords = me.store?.getCount() || 0,
1130
1149
  {rowHeight} = me;
1131
1150
 
1132
1151
  if (countRecords > 0 && rowHeight > 0) {
@@ -7,6 +7,7 @@ import Store from '../data/Store.mjs';
7
7
  import VerticalScrollbar from './VerticalScrollbar.mjs';
8
8
  import * as column from './column/_export.mjs';
9
9
  import * as header from './header/_export.mjs';
10
+ import {isDescriptor} from '../core/ConfigSymbols.mjs';
10
11
 
11
12
  /**
12
13
  * @class Neo.grid.Container
@@ -54,17 +55,17 @@ class GridContainer extends BaseContainer {
54
55
  baseCls: ['neo-grid-container'],
55
56
  /**
56
57
  * Configs for Neo.grid.Body
57
- * @member {Object|null} [bodyConfig=null]
58
+ * @member {Object|null} [body_={[isDescriptor]: true, merge: 'deep', value: null}]
58
59
  */
59
- bodyConfig: null,
60
- /**
61
- * @member {String|null} bodyId_=null
62
- * @protected
63
- */
64
- bodyId_: null,
60
+ body_: {
61
+ [isDescriptor]: true,
62
+ merge : 'deep',
63
+ value : null
64
+ },
65
65
  /**
66
66
  * true uses grid.plugin.CellEditing
67
67
  * @member {Boolean} cellEditing_=false
68
+ * @reactive
68
69
  */
69
70
  cellEditing_: false,
70
71
  /**
@@ -74,28 +75,32 @@ class GridContainer extends BaseContainer {
74
75
  columnDefaults: null,
75
76
  /**
76
77
  * @member {Object[]} columns_=[]
78
+ * @reactive
77
79
  */
78
80
  columns_: [],
79
81
  /**
80
82
  * Configs for Neo.grid.header.Toolbar
81
- * @member {Object|null} [headerToolbarConfig=null]
83
+ * @member {Object|null} [headerToolbar_={[isDescriptor]: true, merge: 'deep', value: null}]
82
84
  */
83
- headerToolbarConfig: null,
84
- /**
85
- * @member {String|null} headerToolbarId_=null
86
- */
87
- headerToolbarId_: null,
85
+ headerToolbar_: {
86
+ [isDescriptor]: true,
87
+ merge : 'deep',
88
+ value : null
89
+ },
88
90
  /**
89
91
  * @member {String} layout='base'
92
+ * @reactive
90
93
  */
91
94
  layout: 'base',
92
95
  /**
93
96
  * @member {String} role='grid'
97
+ * @reactive
94
98
  */
95
99
  role: 'grid',
96
100
  /**
97
101
  * Number in px
98
102
  * @member {Number} rowHeight_=32
103
+ * @reactive
99
104
  */
100
105
  rowHeight_: 32,
101
106
  /**
@@ -105,19 +110,23 @@ class GridContainer extends BaseContainer {
105
110
  scrollbar: null,
106
111
  /**
107
112
  * @member {Boolean} showHeaderFilters_=false
113
+ * @reactive
108
114
  */
109
115
  showHeaderFilters_: false,
110
116
  /**
111
117
  * @member {Boolean} sortable_=true
118
+ * @reactive
112
119
  */
113
120
  sortable_: true,
114
121
  /**
115
122
  * @member {Neo.data.Store} store_=null
123
+ * @reactive
116
124
  */
117
125
  store_: null,
118
126
  /**
119
127
  * @member {Array|null} items=null
120
128
  * @protected
129
+ * @reactive
121
130
  */
122
131
  items: null,
123
132
  /**
@@ -141,22 +150,6 @@ class GridContainer extends BaseContainer {
141
150
  */
142
151
  scrollManager = null
143
152
 
144
- /**
145
- * Convenience method to access the Neo.grid.Body
146
- * @returns {Neo.grid.Body|null}
147
- */
148
- get body() {
149
- return Neo.getComponent(this.bodyId) || Neo.get(this.bodyId)
150
- }
151
-
152
- /**
153
- * Convenience method to access the Neo.grid.header.Toolbar
154
- * @returns {Neo.grid.header.Toolbar|null}
155
- */
156
- get headerToolbar() {
157
- return Neo.getComponent(this.headerToolbarId) || Neo.get(this.headerToolbarId)
158
- }
159
-
160
153
  /**
161
154
  * @param {Object} config
162
155
  */
@@ -166,24 +159,7 @@ class GridContainer extends BaseContainer {
166
159
  let me = this,
167
160
  {appName, rowHeight, store, windowId} = me;
168
161
 
169
- me.bodyId = Neo.getId('grid-body');
170
- me.headerToolbarId = Neo.getId('grid-header-toolbar');
171
-
172
- me.items = [{
173
- module : header.Toolbar,
174
- id : me.headerToolbarId,
175
- showHeaderFilters: me.showHeaderFilters,
176
- sortable : me.sortable,
177
- ...me.headerToolbarConfig
178
- }, {
179
- module : GridBody,
180
- flex : 1,
181
- gridContainer: me,
182
- id : me.bodyId,
183
- rowHeight,
184
- store,
185
- ...me.bodyConfig
186
- }];
162
+ me.items = [me.headerToolbar, me.body];
187
163
 
188
164
  me.scrollbar = Neo.create({
189
165
  module : VerticalScrollbar,
@@ -260,7 +236,7 @@ class GridContainer extends BaseContainer {
260
236
 
261
237
  // - If columns changed at run-time OR
262
238
  // - In case the `header.Toolbar#createItems()` method has run before columns where available
263
- if (oldValue?.getCount?.() > 0 || (value?.count && headerToolbar?.isConstructed)) {
239
+ if (oldValue?.count || (value?.count && headerToolbar?.isConstructed)) {
264
240
  headerToolbar?.createItems()
265
241
 
266
242
  await me.timeout(50);
@@ -350,13 +326,20 @@ class GridContainer extends BaseContainer {
350
326
  }
351
327
 
352
328
  /**
353
- * Triggered before the bodyId config gets changed.
354
- * @param {String} value
355
- * @param {String} oldValue
329
+ * Triggered before the body config gets changed.
330
+ * @param {Object|Neo.grid.Body|null} value
331
+ * @param {Object|Neo.grid.Body|null} oldValue
356
332
  * @protected
357
333
  */
358
- beforeSetBodyId(value, oldValue) {
359
- return value || oldValue
334
+ beforeSetBody(value, oldValue) {
335
+ const me = this;
336
+
337
+ return ClassSystemUtil.beforeSetInstance(value, GridBody, {
338
+ flex : 1,
339
+ gridContainer: me,
340
+ parentId : me.id,
341
+ store : me.store
342
+ })
360
343
  }
361
344
 
362
345
  /**
@@ -374,13 +357,19 @@ class GridContainer extends BaseContainer {
374
357
  }
375
358
 
376
359
  /**
377
- * Triggered before the headerToolbarId config gets changed.
378
- * @param {String} value
379
- * @param {String} oldValue
360
+ * Triggered before the headerToolbar config gets changed.
361
+ * @param {Object|Neo.grid.header.Toolbar|null} value
362
+ * @param {Object|Neo.grid.header.Toolbar|null} oldValue
380
363
  * @protected
381
364
  */
382
- beforeSetHeaderToolbarId(value, oldValue) {
383
- return value || oldValue
365
+ beforeSetHeaderToolbar(value, oldValue) {
366
+ const me = this;
367
+
368
+ return ClassSystemUtil.beforeSetInstance(value, header.Toolbar, {
369
+ parentId : me.id,
370
+ showHeaderFilters: me.showHeaderFilters,
371
+ sortable : me.sortable
372
+ })
384
373
  }
385
374
 
386
375
  /**
@@ -465,7 +454,8 @@ class GridContainer extends BaseContainer {
465
454
  })
466
455
  });
467
456
 
468
- me.items[0].items = headerButtons;
457
+ me.headerToolbar.items = headerButtons;
458
+ me.headerToolbar.createItems();
469
459
 
470
460
  if (Neo.typeOf(me._columns) === 'NeoInstance') {
471
461
  me._columns.clear();
@@ -594,7 +584,7 @@ class GridContainer extends BaseContainer {
594
584
  */
595
585
  async passSizeToBody(silent=false) {
596
586
  let me = this,
597
- [containerRect, headerRect] = await me.getDomRect([me.id, me.headerToolbarId]);
587
+ [containerRect, headerRect] = await me.getDomRect([me.id, me.headerToolbar.id]);
598
588
 
599
589
  // delay for slow connections, where the container-sizing is not done yet
600
590
  if (containerRect.height === headerRect.height) {
@@ -14,11 +14,13 @@ class ScrollManager extends Base {
14
14
  /**
15
15
  * @member {Number} scrollLeft_=0
16
16
  * @protected
17
+ * @reactive
17
18
  */
18
19
  scrollLeft_: 0,
19
20
  /**
20
21
  * @member {Number} scrollTop_=0
21
22
  * @protected
23
+ * @reactive
22
24
  */
23
25
  scrollTop_: 0
24
26
  }
@@ -26,10 +26,12 @@ class VerticalScrollbar extends Component {
26
26
  /**
27
27
  * Number in px
28
28
  * @member {Number} rowHeight_=0
29
+ * @reactive
29
30
  */
30
31
  rowHeight_: 0,
31
32
  /**
32
33
  * @member {Neo.data.Store|null} store_=null
34
+ * @reactive
33
35
  */
34
36
  store_: null,
35
37
  /**
@@ -22,6 +22,7 @@ class Column extends Base {
22
22
  parent: null,
23
23
  /**
24
24
  * @member {Function|String|null} renderer_='cellRenderer'
25
+ * @reactive
25
26
  */
26
27
  renderer_: 'cellRenderer',
27
28
  /**
@@ -38,6 +39,7 @@ class Column extends Base {
38
39
  type: 'column',
39
40
  /**
40
41
  * @member {Number|null} windowId_=null
42
+ * @reactive
41
43
  */
42
44
  windowId_: null
43
45
  }
@@ -33,6 +33,7 @@ class Button extends BaseButton {
33
33
  /**
34
34
  * Alignment of the matching grid cells. Valid values are left, center, right
35
35
  * @member {String} cellAlign_='left'
36
+ * @reactive
36
37
  */
37
38
  cellAlign_: 'left',
38
39
  /**
@@ -59,28 +60,34 @@ class Button extends BaseButton {
59
60
  filterField: null,
60
61
  /**
61
62
  * @member {String} iconCls='fa fa-arrow-circle-up'
63
+ * @reactive
62
64
  */
63
65
  iconCls: 'fa fa-arrow-circle-up',
64
66
  /**
65
67
  * @member {String} iconPosition='right'
68
+ * @reactive
66
69
  */
67
70
  iconPosition: 'right',
68
71
  /**
69
72
  * 'ASC', 'DESC' or null
70
73
  * @member {String|null} isSorted_=null
71
74
  * @protected
75
+ * @reactive
72
76
  */
73
77
  isSorted_: null,
74
78
  /**
75
79
  * @member {String} role='columnheader'
80
+ * @reactive
76
81
  */
77
82
  role: 'columnheader',
78
83
  /**
79
84
  * @member {Boolean} showHeaderFilter_=false
85
+ * @reactive
80
86
  */
81
87
  showHeaderFilter_: false,
82
88
  /**
83
89
  * @member {Boolean} sortable_=true
90
+ * @reactive
84
91
  */
85
92
  sortable_: true
86
93
  }
@@ -22,30 +22,36 @@ class Toolbar extends BaseToolbar {
22
22
  baseCls: ['neo-grid-header-toolbar', 'neo-toolbar'],
23
23
  /**
24
24
  * @member {Boolean} draggable_=true
25
+ * @reactive
25
26
  */
26
27
  draggable_: true,
27
28
  /**
28
29
  * @member {Object} itemDefaults={ntype: 'grid-header-button'}
30
+ * @reactive
29
31
  */
30
32
  itemDefaults: {
31
33
  ntype: 'grid-header-button'
32
34
  },
33
35
  /**
34
36
  * @member {String} role='row'
37
+ * @reactive
35
38
  */
36
39
  role: 'row',
37
40
  /**
38
41
  * @member {Number} scrollLeft_=0
42
+ * @reactive
39
43
  */
40
44
  scrollLeft_: 0,
41
45
  /**
42
46
  * @member {Boolean} showHeaderFilters_=false
47
+ * @reactive
43
48
  */
44
49
  showHeaderFilters_: false,
45
50
  /**
46
51
  * Convenience shortcut to pass sortable to all toolbar items.
47
52
  * If set to true, header clicks will sort the matching column (ASC, DESC, null)
48
53
  * @member {Boolean} sortable=true
54
+ * @reactive
49
55
  */
50
56
  sortable: true,
51
57
  /**
@@ -28,12 +28,14 @@ class AnimateRows extends Base {
28
28
  /**
29
29
  * Time in ms for the background-color, opacity & transform transitions
30
30
  * @member {Number} transitionDuration_=500
31
+ * @reactive
31
32
  */
32
33
  transitionDuration_: 500,
33
34
  /**
34
35
  * The easing used for fadeIn, fadeOut and position changes.
35
36
  * Valid values: 'ease','ease-in','ease-out','ease-in-out','linear'
36
37
  * @member {String} transitionEasing_='ease-out'
38
+ * @reactive
37
39
  */
38
40
  transitionEasing_: 'ease-out'
39
41
  }
@@ -22,6 +22,7 @@ class Layout extends Base {
22
22
  /**
23
23
  * The name of the App this layout belongs to
24
24
  * @member {String|null} appName_=null
25
+ * @reactive
25
26
  */
26
27
  appName_: null,
27
28
  /**
@@ -34,6 +35,7 @@ class Layout extends Base {
34
35
  * A layout specific CSS selector which gets added to Container the layout is bound to.
35
36
  * @member {String|null} containerCls_=null
36
37
  * @protected
38
+ * @reactive
37
39
  */
38
40
  containerCls_: null,
39
41
  /**
@@ -44,6 +46,7 @@ class Layout extends Base {
44
46
  isLayout: true,
45
47
  /**
46
48
  * @member {Number|null} windowId_=null
49
+ * @reactive
47
50
  */
48
51
  windowId_: null
49
52
  }
@@ -52,6 +52,7 @@ class Card extends Base {
52
52
  /**
53
53
  * @member {String|null} containerCls='neo-layout-card'
54
54
  * @protected
55
+ * @reactive
55
56
  */
56
57
  containerCls: 'neo-layout-card',
57
58
  /*
@@ -36,6 +36,7 @@ class Cube extends Card {
36
36
  ntype: 'layout-cube',
37
37
  /**
38
38
  * @member {String|null} activeFace_=null
39
+ * @reactive
39
40
  */
40
41
  activeFace_: null,
41
42
  /**
@@ -45,11 +46,13 @@ class Cube extends Card {
45
46
  /**
46
47
  * @member {String|null} containerCls='neo-layout-fit'
47
48
  * @protected
49
+ * @reactive
48
50
  */
49
51
  containerCls: 'neo-layout-cube',
50
52
  /**
51
53
  * Updates the cube size to fit the owner container dimensions
52
54
  * @member {Boolean} fitContainer_=false
55
+ * @reactive
53
56
  */
54
57
  fitContainer_: false,
55
58
  /**
@@ -59,30 +62,37 @@ class Cube extends Card {
59
62
  hideInactiveCardsOnDestroy: false,
60
63
  /**
61
64
  * @member {Number} perspective_=600
65
+ * @reactive
62
66
  */
63
67
  perspective_: 600,
64
68
  /**
65
69
  * @member {Number} rotateX_=0
70
+ * @reactive
66
71
  */
67
72
  rotateX_: 0,
68
73
  /**
69
74
  * @member {Number} rotateY_=0
75
+ * @reactive
70
76
  */
71
77
  rotateY_: 0,
72
78
  /**
73
79
  * @member {Number} rotateZ_=0
80
+ * @reactive
74
81
  */
75
82
  rotateZ_: 0,
76
83
  /**
77
84
  * @member {Number} sideX_=300
85
+ * @reactive
78
86
  */
79
87
  sideX_: 300,
80
88
  /**
81
89
  * @member {Number} sideY_=300
90
+ * @reactive
82
91
  */
83
92
  sideY_: 300,
84
93
  /**
85
94
  * @member {Number} sideZ_=300
95
+ * @reactive
86
96
  */
87
97
  sideZ_: 300
88
98
  }
@@ -106,7 +116,7 @@ class Cube extends Card {
106
116
 
107
117
  container.mounted && container.update();
108
118
 
109
- me.timeout(100).then(() => {
119
+ me.timeout(50).then(() => {
110
120
  container.addCls('neo-animate')
111
121
  })
112
122
  }
@@ -20,6 +20,7 @@ class Fit extends Base {
20
20
  /**
21
21
  * @member {String|null} containerCls='neo-layout-fit'
22
22
  * @protected
23
+ * @reactive
23
24
  */
24
25
  containerCls: 'neo-layout-fit'
25
26
  }
@@ -49,21 +49,25 @@ class Flexbox extends Base {
49
49
  /**
50
50
  * Valid values: 'center', 'end', 'start', 'stretch', null
51
51
  * @member {String|null} align_=null
52
+ * @reactive
52
53
  */
53
54
  align_: null,
54
55
  /**
55
56
  * Valid values: 'column', 'column-reverse', 'row', 'row-reverse', null
56
57
  * @member {String|null} direction_=null
58
+ * @reactive
57
59
  */
58
60
  direction_: null,
59
61
  /**
60
62
  * flex css allows gap. This adds it to the component style
61
63
  * @member {String} gap_=null
64
+ * @reactive
62
65
  */
63
66
  gap_: null,
64
67
  /**
65
68
  * Valid values: 'center', 'end', 'start', null
66
69
  * @member {String|null} pack_=null
70
+ * @reactive
67
71
  */
68
72
  pack_: null,
69
73
  /**
@@ -74,6 +78,7 @@ class Flexbox extends Base {
74
78
  /**
75
79
  * Valid values: nowrap, wrap, wrapreverse
76
80
  * @member {String} wrap_='nowrap'
81
+ * @reactive
77
82
  */
78
83
  wrap_: 'nowrap'
79
84
  }
@@ -141,6 +146,8 @@ class Flexbox extends Base {
141
146
  * @param {Number} index
142
147
  */
143
148
  applyChildAttributes(item, index) {
149
+ if (!item.wrapperStyle) return;
150
+
144
151
  let style = item.wrapperStyle,
145
152
  flex = style.flex || item.flex || (this.align === 'stretch' ? 1 : '0 1 auto');
146
153
 
@@ -20,11 +20,13 @@ class Form extends Base {
20
20
  /**
21
21
  * @member {String|null} containerCls='neo-layout-fit'
22
22
  * @protected
23
+ * @reactive
23
24
  */
24
25
  containerCls: 'neo-layout-form',
25
26
  /**
26
27
  * flex css allows gap. This adds it to the component style
27
28
  * @member {String} gap_=null
29
+ * @reactive
28
30
  */
29
31
  gap_: null
30
32
  }
@@ -20,6 +20,7 @@ class Grid extends Base {
20
20
  /**
21
21
  * @member {String|null} containerCls='neo-layout-fit'
22
22
  * @protected
23
+ * @reactive
23
24
  */
24
25
  containerCls: 'neo-layout-grid'
25
26
  }
@@ -19,6 +19,7 @@ class HBox extends Flexbox {
19
19
  /**
20
20
  * @member {String} direction='row'
21
21
  * @protected
22
+ * @reactive
22
23
  */
23
24
  direction: 'row'
24
25
  }
@@ -19,6 +19,7 @@ class VBox extends Flexbox {
19
19
  /**
20
20
  * @member {String} direction='column'
21
21
  * @protected
22
+ * @reactive
22
23
  */
23
24
  direction: 'column'
24
25
  }