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
@@ -27,10 +27,12 @@ class CountryHelix extends Helix {
27
27
  /**
28
28
  * The vertical delta between each helix item (increasing this value will create a spiral)
29
29
  * @member {Number} deltaY=1.2
30
+ * @reactive
30
31
  */
31
32
  deltaY: 1.2,
32
33
  /**
33
34
  * @member {Object} itemTpl_
35
+ * @reactive
34
36
  */
35
37
  itemTpl:
36
38
  {cls: ['surface', 'neo-helix-item'], style: {}, tabIndex: '-1', cn: [
@@ -74,11 +76,13 @@ class CountryHelix extends Helix {
74
76
  /**
75
77
  * The radius of the Helix in px
76
78
  * @member {Number} radius=2500
79
+ * @reactive
77
80
  */
78
81
  radius: 2500,
79
82
  /**
80
83
  * The rotationAngle of the Helix in degrees
81
84
  * @member {Number} rotationAngle=720
85
+ * @reactive
82
86
  */
83
87
  rotationAngle: 720,
84
88
  /**
@@ -88,16 +92,19 @@ class CountryHelix extends Helix {
88
92
  showCloneInfo: false,
89
93
  /**
90
94
  * @member {Neo.data.Store} store=CountryStore
95
+ * @reactive
91
96
  */
92
97
  store: CountryStore,
93
98
  /**
94
99
  * The translateX value gets included into each helix item
95
100
  * @member {Number} translateY=500
101
+ * @reactive
96
102
  */
97
103
  translateY: 500,
98
104
  /**
99
105
  * The translateX value gets included into each helix item
100
106
  * @member {Number} translateZ_=-2300
107
+ * @reactive
101
108
  */
102
109
  translateZ: -2300
103
110
  }
@@ -29,6 +29,7 @@ class MainContainer extends Viewport {
29
29
  helixConfig: null,
30
30
  /**
31
31
  * @member {Object|null} layout={ntype: 'hbox',align:'stretch'}
32
+ * @reactive
32
33
  */
33
34
  layout: {ntype: 'hbox', align: 'stretch'},
34
35
  /**
@@ -18,6 +18,7 @@ class ImageStore extends Store {
18
18
  autoLoad: true,
19
19
  /**
20
20
  * @member {Neo.data.Model} model=ImageModel
21
+ * @reactive
21
22
  */
22
23
  model: ImageModel,
23
24
  /**
@@ -18,6 +18,7 @@ class ImageStore extends Store {
18
18
  autoLoad: true,
19
19
  /**
20
20
  * @member {Neo.data.Model} model=ImageModel
21
+ * @reactive
21
22
  */
22
23
  model: ImageModel,
23
24
  /**
@@ -28,6 +28,7 @@ class Viewport extends BaseViewport {
28
28
  className: 'Neo.examples.component.helix.Viewport',
29
29
  /**
30
30
  * @member {Neo.controller.Component} controller=ViewportController
31
+ * @reactive
31
32
  */
32
33
  controller: ViewportController,
33
34
  /**
@@ -40,10 +41,12 @@ class Viewport extends BaseViewport {
40
41
  helixConfig: null,
41
42
  /**
42
43
  * @member {Object|null} layout={ntype: 'hbox',align:'stretch'}
44
+ * @reactive
43
45
  */
44
46
  layout: {ntype: 'hbox', align: 'stretch'},
45
47
  /**
46
48
  * @member {Boolean} showGitHubStarButton_=true
49
+ * @reactive
47
50
  */
48
51
  showGitHubStarButton_: true,
49
52
  /**
@@ -14,6 +14,7 @@ class ViewportController extends Controller {
14
14
  /**
15
15
  * @member {Neo.component.Helix|null} helix_=null
16
16
  * @protected
17
+ * @reactive
17
18
  */
18
19
  helix_: null
19
20
  }
@@ -13,6 +13,7 @@ class Viewport extends BaseViewport {
13
13
  className: 'Neo.examples.component.multiWindowCoronaGallery.childapp.Viewport',
14
14
  /**
15
15
  * @member {Object} layout={ntype:'fit'}
16
+ * @reactive
16
17
  */
17
18
  layout: {ntype: 'fit'}
18
19
  }
@@ -13,6 +13,7 @@ class Viewport extends BaseViewport {
13
13
  className: 'Neo.examples.component.multiWindowHelix.childapp.Viewport',
14
14
  /**
15
15
  * @member {Object} layout={ntype:'fit'}
16
+ * @reactive
16
17
  */
17
18
  layout: {ntype: 'fit'}
18
19
  }
@@ -15,6 +15,7 @@ class MapComponent extends GoogleMapsComponent {
15
15
  /**
16
16
  * Center the map initially to Island
17
17
  * @member {Object} center={lat: 64.963051,lng: -19.020835}
18
+ * @reactive
18
19
  */
19
20
  center: {
20
21
  lat: 64.963051,
@@ -53,6 +54,7 @@ class MapComponent extends GoogleMapsComponent {
53
54
  /**
54
55
  * Ensure only Island is visible
55
56
  * @member {Number} zoom=6
57
+ * @reactive
56
58
  */
57
59
  zoom: 6
58
60
  }
@@ -14,10 +14,12 @@ class MainContainer extends Viewport {
14
14
  className: 'Neo.examples.core.config.MainContainer',
15
15
  /**
16
16
  * @member {Number|null} a_=null
17
+ * @reactive
17
18
  */
18
19
  a_: null,
19
20
  /**
20
21
  * @member {Number|null} b_=null
22
+ * @reactive
21
23
  */
22
24
  b_: null,
23
25
  /**
@@ -16,6 +16,7 @@ class DemoDialog extends Dialog {
16
16
  /**
17
17
  * Custom config to dynamically enable / disable the animateTargetId
18
18
  * @member {Boolean} animated_=true
19
+ * @reactive
19
20
  */
20
21
  animated_: true,
21
22
  /**
@@ -33,6 +34,7 @@ class DemoDialog extends Dialog {
33
34
  index: 1,
34
35
  /**
35
36
  * @member {Boolean} modal=true
37
+ * @reactive
36
38
  */
37
39
  modal: true,
38
40
  /**
@@ -19,6 +19,7 @@ class MainContainer extends Viewport {
19
19
  /**
20
20
  * We are not using a container layout here
21
21
  * @member {String} layout='base'
22
+ * @reactive
22
23
  */
23
24
  layout: 'base',
24
25
  /**
@@ -25,6 +25,7 @@ class MainStore extends Store {
25
25
  ],
26
26
  /**
27
27
  * @member {Neo.data.Model} model=MainModel
28
+ * @reactive
28
29
  */
29
30
  model: MainModel
30
31
  }
@@ -0,0 +1,18 @@
1
+ import {defineComponent, useConfig, useEvent} from '../../../src/functional/_export.mjs';
2
+
3
+ export default defineComponent({
4
+ config: {
5
+ className: 'Neo.examples.functional.defineComponent.Component',
6
+ greeting_: 'Hello'
7
+ },
8
+ createVdom(config) {
9
+ const [name, setName] = useConfig('World');
10
+
11
+ useEvent('click', () => setName(prev => prev === 'Neo' ? 'World' : 'Neo'));
12
+
13
+ return {
14
+ // tag : 'div', // div is the default value
15
+ text: `${config.greeting}, ${name}!`
16
+ }
17
+ }
18
+ });
@@ -0,0 +1,41 @@
1
+ import ConfigurationViewport from '../../ConfigurationViewport.mjs';
2
+ import MyFunctionalComponent from './Component.mjs';
3
+ import TextField from '../../../src/form/field/Text.mjs';
4
+
5
+ /**
6
+ * @class Neo.examples.functional.defineComponent.MainContainer
7
+ * @extends Neo.examples.ConfigurationViewport
8
+ */
9
+ class MainContainer extends ConfigurationViewport {
10
+ static config = {
11
+ className : 'Neo.examples.functional.defineComponent.MainContainer',
12
+ configItemLabelWidth: 160,
13
+ configItemWidth : 280,
14
+ layout : {ntype: 'hbox', align: 'stretch'}
15
+ }
16
+
17
+ createConfigurationComponents() {
18
+ let me = this;
19
+
20
+ return [{
21
+ module : TextField,
22
+ clearable : true,
23
+ labelText : 'greeting',
24
+ listeners : {change: me.onConfigChange.bind(me, 'greeting')},
25
+ style : {marginTop: '10px'},
26
+ value : me.exampleComponent.greeting
27
+ }]
28
+ }
29
+
30
+ /**
31
+ * @returns {Neo.functional.Component}
32
+ */
33
+ createExampleComponent() {
34
+ return {
35
+ module : MyFunctionalComponent,
36
+ greeting: 'Hi'
37
+ }
38
+ }
39
+ }
40
+
41
+ export default Neo.setupClass(MainContainer);
@@ -0,0 +1,6 @@
1
+ import MainContainer from './MainContainer.mjs';
2
+
3
+ export const onStart = () => Neo.app({
4
+ mainView: MainContainer,
5
+ name : 'Neo.examples.functional.defineComponent'
6
+ });
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <meta charset="UTF-8">
6
+ <title>Neo Functional Component</title>
7
+ </head>
8
+ <body>
9
+ <script src="../../../src/MicroLoader.mjs" type="module"></script>
10
+ </body>
11
+ </html>
@@ -0,0 +1,6 @@
1
+ {
2
+ "appPath" : "examples/functional/defineComponent/app.mjs",
3
+ "basePath" : "../../../",
4
+ "environment": "development",
5
+ "mainPath" : "./Main.mjs"
6
+ }
@@ -0,0 +1,32 @@
1
+ import {defineComponent, useConfig} from '../../../src/functional/_export.mjs';
2
+ import Button from '../../../src/button/Base.mjs';
3
+
4
+ export default defineComponent({
5
+ config: {
6
+ className: 'Neo.examples.functional.hostComponent.Component'
7
+ },
8
+ createVdom() {
9
+ const [count, setCount] = useConfig(0);
10
+
11
+ const style = {
12
+ display : 'flex',
13
+ flexDirection : 'column',
14
+ alignItems : 'center',
15
+ justifyContent: 'center',
16
+ fontSize : '20px'
17
+ };
18
+
19
+ return {style, cn: [
20
+ {
21
+ tag : 'p',
22
+ text: `Button clicked ${count} times`
23
+ }, {
24
+ module : Button,
25
+ id : 'myButtonModule',
26
+ theme : 'neo-theme-neo-light',
27
+ text : 'Click Me (Neo Button)',
28
+ handler: () => setCount(prev => prev + 1)
29
+ }
30
+ ]}
31
+ }
32
+ });
@@ -0,0 +1,48 @@
1
+ import ConfigurationViewport from '../../ConfigurationViewport.mjs';
2
+ import MyFunctionalComponent from './Component.mjs';
3
+ import TextField from '../../../src/form/field/Text.mjs';
4
+
5
+ /**
6
+ * @class Neo.examples.functional.hostComponent.MainContainer
7
+ * @extends Neo.examples.ConfigurationViewport
8
+ */
9
+ class MainContainer extends ConfigurationViewport {
10
+ static config = {
11
+ className : 'Neo.examples.functional.hostComponent.MainContainer',
12
+ configItemLabelWidth: 120,
13
+ configItemWidth : 300,
14
+ layout : {ntype: 'hbox', align: 'stretch'}
15
+ }
16
+
17
+ async createConfigurationComponents() {
18
+ // Wait one micro task queue tick, to ensure the fn render Effect is done
19
+ await Promise.resolve();
20
+
21
+ const button = Neo.getComponent('myButtonModule');
22
+
23
+ return [{
24
+ module : TextField,
25
+ clearable : true,
26
+ labelText : 'Button Text',
27
+ style : {marginTop: '10px'},
28
+ value : button.text,
29
+
30
+ listeners : {
31
+ change({value}) {
32
+ button.text = value
33
+ }
34
+ }
35
+ }]
36
+ }
37
+
38
+ /**
39
+ * @returns {Neo.functional.Component}
40
+ */
41
+ createExampleComponent() {
42
+ return {
43
+ module: MyFunctionalComponent
44
+ }
45
+ }
46
+ }
47
+
48
+ export default Neo.setupClass(MainContainer);
@@ -0,0 +1,6 @@
1
+ import MainContainer from './MainContainer.mjs';
2
+
3
+ export const onStart = () => Neo.app({
4
+ mainView: MainContainer,
5
+ name : 'Neo.examples.functional.hostComponent'
6
+ });
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <meta charset="UTF-8">
6
+ <title>Functional Component Hosting Component</title>
7
+ </head>
8
+ <body>
9
+ <script src="../../../src/MicroLoader.mjs" type="module"></script>
10
+ </body>
11
+ </html>
@@ -0,0 +1,6 @@
1
+ {
2
+ "appPath" : "examples/functional/hostComponent/app.mjs",
3
+ "basePath" : "../../../",
4
+ "environment": "development",
5
+ "mainPath" : "./Main.mjs"
6
+ }
@@ -52,7 +52,7 @@ class Viewport extends BaseViewport {
52
52
  store : MainStore,
53
53
  wrapperStyle: {maxWidth: '902px'},
54
54
 
55
- bodyConfig: {
55
+ body: {
56
56
  animatedRowSorting: true
57
57
  },
58
58
 
@@ -17,6 +17,7 @@ class ControlsContainer extends Container {
17
17
  className: 'Neo.examples.grid.bigData.ControlsContainer',
18
18
  /**
19
19
  * @member {String[]} cls=['neo-examples-bigdata-controls-container']
20
+ * @reactive
20
21
  */
21
22
  cls: ['neo-examples-bigdata-controls-container'],
22
23
  /**
@@ -170,10 +171,12 @@ class ControlsContainer extends Container {
170
171
  }],
171
172
  /**
172
173
  * @member {Object} layout={ntype:'vbox'}
174
+ * @reactive
173
175
  */
174
176
  layout: {ntype: 'fit'},
175
177
  /**
176
178
  * @member {String} tag='aside'
179
+ * @reactive
177
180
  */
178
181
  tag: 'aside'
179
182
  }
@@ -15,12 +15,13 @@ class GridContainer extends BaseGridContainer {
15
15
  className: 'Neo.examples.grid.bigData.GridContainer',
16
16
  /**
17
17
  * @member {Number} amountColumns_=50
18
+ * @reactive
18
19
  */
19
20
  amountColumns_: 50,
20
21
  /**
21
- * @member {Object} bodyConfig
22
+ * @member {Object} body
22
23
  */
23
- bodyConfig: {
24
+ body: {
24
25
  bufferColumnRange: 3,
25
26
  bufferRowRange : 5
26
27
  },
@@ -35,6 +36,7 @@ class GridContainer extends BaseGridContainer {
35
36
  },
36
37
  /**
37
38
  * @member {Object[]} store=MainStore
39
+ * @reactive
38
40
  */
39
41
  store: MainStore
40
42
  }
@@ -15,10 +15,12 @@ class MainContainer extends Viewport {
15
15
  className: 'Neo.examples.grid.bigData.MainContainer',
16
16
  /**
17
17
  * @member {String[]} cls=['neo-examples-bigdata-maincontainer']
18
+ * @reactive
18
19
  */
19
20
  cls: ['neo-examples-bigdata-maincontainer'],
20
21
  /**
21
22
  * @member {Object} layout={ntype:'hbox',align:'stretch'}
23
+ * @reactive
22
24
  */
23
25
  layout: {ntype: 'hbox', align: 'stretch'},
24
26
  /**
@@ -13,6 +13,7 @@ class MainModel extends Model {
13
13
  className: 'Neo.examples.grid.bigData.MainModel',
14
14
  /**
15
15
  * @member {Number} amountColumns_=50
16
+ * @reactive
16
17
  */
17
18
  amountColumns_: 50
18
19
  }
@@ -14,10 +14,12 @@ class MainStore extends Store {
14
14
  className: 'Neo.examples.grid.bigData.MainStore',
15
15
  /**
16
16
  * @member {Number} amountColumns_=50
17
+ * @reactive
17
18
  */
18
19
  amountColumns_: 50,
19
20
  /**
20
21
  * @member {Number} amountRows_=1000
22
+ * @reactive
21
23
  */
22
24
  amountRows_: 1000,
23
25
  /**
@@ -34,6 +36,7 @@ class MainStore extends Store {
34
36
  }],
35
37
  /**
36
38
  * @member {Neo.data.Model} model=Model
39
+ * @reactive
37
40
  */
38
41
  model: Model
39
42
  }
@@ -114,7 +114,7 @@ class MainContainer extends ConfigurationViewport {
114
114
  store : MainStore,
115
115
  wrapperStyle: {maxWidth: '1002px'},
116
116
 
117
- bodyConfig: {
117
+ body: {
118
118
  selectionModel: CellModel
119
119
  },
120
120
 
@@ -88,7 +88,7 @@ class MainContainer extends ConfigurationViewport {
88
88
  width: 200
89
89
  },
90
90
 
91
- bodyConfig: {
91
+ body: {
92
92
  selectionModel: CellModel
93
93
  },
94
94
 
@@ -16,6 +16,7 @@ class GridContainer extends BaseGridContainer {
16
16
  className: 'Neo.examples.grid.covid.GridContainer',
17
17
  /**
18
18
  * @member {String[]} cls=['covid-country-grid']
19
+ * @reactive
19
20
  */
20
21
  cls: ['covid-country-grid'],
21
22
  /**
@@ -99,10 +100,12 @@ class GridContainer extends BaseGridContainer {
99
100
  }],
100
101
  /**
101
102
  * @member {Neo.controller.Component} controller=GridContainerController
103
+ * @reactive
102
104
  */
103
105
  controller: GridContainerController,
104
106
  /**
105
107
  * @member {Object[]} store=Store
108
+ * @reactive
106
109
  */
107
110
  store: Store
108
111
  }
@@ -14,10 +14,12 @@ class MainContainer extends Viewport {
14
14
  className: 'Neo.examples.grid.covid.MainContainer',
15
15
  /**
16
16
  * @member {Object[]} items=[GridContainer]
17
+ * @reactive
17
18
  */
18
19
  items: [GridContainer],
19
20
  /**
20
21
  * @member {Object} layout={ntype:'fit'}
22
+ * @reactive
21
23
  */
22
24
  layout: {ntype: 'fit'},
23
25
  /**
@@ -18,6 +18,7 @@ class Store extends BaseStore {
18
18
  keyProperty: 'country',
19
19
  /**
20
20
  * @member {Neo.data.Model} model=Model
21
+ * @reactive
21
22
  */
22
23
  model: Model,
23
24
  /**
@@ -29,14 +29,17 @@ class EditUserDialog extends Dialog {
29
29
  },
30
30
  /**
31
31
  * @member {Boolean} modal=true
32
+ * @reactive
32
33
  */
33
34
  modal: true,
34
35
  /**
35
36
  * @member {Record|null} record_=null
37
+ * @reactive
36
38
  */
37
39
  record_: null,
38
40
  /**
39
41
  * @member {String} title='Edit User'
42
+ * @reactive
40
43
  */
41
44
  title: 'Edit User',
42
45
  /**
@@ -17,10 +17,12 @@ class Viewport extends BaseViewport {
17
17
  className: 'Neo.examples.grid.nestedRecordFields.Viewport',
18
18
  /**
19
19
  * @member {Neo.controller.Component} controller=ViewportController
20
+ * @reactive
20
21
  */
21
22
  controller: ViewportController,
22
23
  /**
23
24
  * @member {Neo.state.Provider} stateProvider=ViewportStateProvider
25
+ * @reactive
24
26
  */
25
27
  stateProvider: ViewportStateProvider,
26
28
  /**
@@ -51,7 +53,7 @@ class Viewport extends BaseViewport {
51
53
  bind : {store: 'stores.mainStore'},
52
54
  reference: 'grid',
53
55
 
54
- bodyConfig: {
56
+ body: {
55
57
  highlightModifiedCells: true
56
58
  },
57
59
 
@@ -13,15 +13,18 @@ class List extends BaseList {
13
13
  className: 'Neo.examples.list.animate.List',
14
14
  /**
15
15
  * @member {Boolean} animate=true
16
+ * @reactive
16
17
  */
17
18
  animate: true,
18
19
  /**
19
20
  * @member {String[]} cls=['neo-examples-list-animate']
21
+ * @reactive
20
22
  */
21
23
  cls: ['neo-examples-list-animate'],
22
24
  /**
23
25
  * Value in px
24
26
  * @member {Number} itemHeight=200
27
+ * @reactive
25
28
  */
26
29
  itemHeight: 200,
27
30
  /**
@@ -31,6 +34,7 @@ class List extends BaseList {
31
34
  /**
32
35
  * Value in px
33
36
  * @member {Number} itemWidth=300
37
+ * @reactive
34
38
  */
35
39
  itemWidth: 300
36
40
  }
@@ -20,10 +20,12 @@ class MainContainer extends Viewport {
20
20
  className: 'Neo.examples.list.animate.MainContainer',
21
21
  /**
22
22
  * @member {Neo.controller.Component} controller=MainContainerController
23
+ * @reactive
23
24
  */
24
25
  controller: MainContainerController,
25
26
  /**
26
27
  * @member {Object} layout={ntype:'vbox',align:'stretch'}
28
+ * @reactive
27
29
  */
28
30
  layout: {ntype: 'vbox', align: 'stretch'},
29
31
  /**
@@ -25,6 +25,7 @@ class MainStore extends Store {
25
25
  ],
26
26
  /**
27
27
  * @member {Neo.data.Model} model=MainModel
28
+ * @reactive
28
29
  */
29
30
  model: MainModel,
30
31
  /**
@@ -25,6 +25,7 @@ class MainStore extends Store {
25
25
  ],
26
26
  /**
27
27
  * @member {Neo.data.Model} model=MainModel
28
+ * @reactive
28
29
  */
29
30
  model: MainModel
30
31
  }