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
@@ -46,6 +46,7 @@ class Text extends Field {
46
46
  autoCapitalize_: 'off',
47
47
  /**
48
48
  * @member {Boolean} autoComplete_=false
49
+ * @reactive
49
50
  */
50
51
  autoComplete_: false,
51
52
  /**
@@ -62,18 +63,21 @@ class Text extends Field {
62
63
  /**
63
64
  * True shows a clear trigger in case the field has a non-empty value.
64
65
  * @member {Boolean} clearable_=true
66
+ * @reactive
65
67
  */
66
68
  clearable_: true,
67
69
  /**
68
70
  * True will reset the field to its initial value config.
69
71
  * Recommended for fields with required: true
70
72
  * @member {Boolean} clearToOriginalValue_=false
73
+ * @reactive
71
74
  */
72
75
  clearToOriginalValue_: false,
73
76
  /**
74
77
  * Prevent users from typing specific characters.
75
78
  * E.g. disabling +-e for NumberFields
76
79
  * @member {String[]|null} disabledChars_=null
80
+ * @reactive
77
81
  */
78
82
  disabledChars_: null,
79
83
  /**
@@ -83,6 +87,7 @@ class Text extends Field {
83
87
  * For example picker fields such as `Date` and `Select` may still have their
84
88
  * values changed by selecting from the picker using keyboard or pointer.
85
89
  * @member {Boolean} editable_=true
90
+ * @reactive
86
91
  */
87
92
  editable_: true,
88
93
  /**
@@ -92,11 +97,13 @@ class Text extends Field {
92
97
  emptyValue: null,
93
98
  /**
94
99
  * @member {String|null} error_=null
100
+ * @reactive
95
101
  */
96
102
  error_: null,
97
103
  /**
98
104
  * Useful for fields inside a css grid where errors should live outside the layout
99
105
  * @member {Boolean} errorPositionAbsolute_=false
106
+ * @reactive
100
107
  */
101
108
  errorPositionAbsolute_: false,
102
109
  /**
@@ -120,10 +127,12 @@ class Text extends Field {
120
127
  errorTextRequired: 'Required',
121
128
  /**
122
129
  * @member {Boolean} hideLabel_=false
130
+ * @reactive
123
131
  */
124
132
  hideLabel_: false,
125
133
  /**
126
134
  * @member {RegExp|null} inputPattern_=null
135
+ * @reactive
127
136
  */
128
137
  inputPattern_: null,
129
138
  /**
@@ -131,14 +140,17 @@ class Text extends Field {
131
140
  * The regex support for input based patterns is not fully there yet, so feel free to disable this feature
132
141
  * if needed (E.g. form.field.Phone).
133
142
  * @member {Boolean} inputPatternDOM_=true
143
+ * @reactive
134
144
  */
135
145
  inputPatternDOM_: true,
136
146
  /**
137
147
  * @member {String} inputType_='text'
148
+ * @reactive
138
149
  */
139
150
  inputType_: 'text',
140
151
  /**
141
152
  * @member {String|null} inputValue_=null
153
+ * @reactive
142
154
  */
143
155
  inputValue_: null,
144
156
  /**
@@ -147,54 +159,65 @@ class Text extends Field {
147
159
  labelBaseCls: ['neo-textfield-label'],
148
160
  /**
149
161
  * @member {String[]} labelCls_=[]
162
+ * @reactive
150
163
  */
151
164
  labelCls_: [],
152
165
  /**
153
166
  * Edge-case config in case we want to render leading content with their own selectors like:
154
167
  * <span class="my-label-id-cls">E10</span> • Firstname
155
168
  * @member {String|null} labelId_=null
169
+ * @reactive
156
170
  */
157
171
  labelId_: null,
158
172
  /**
159
173
  * CSS rules for labelId
160
174
  * @member {String[]} labelIdCls_=[]
175
+ * @reactive
161
176
  */
162
177
  labelIdCls_: [],
163
178
  /**
164
179
  * Separator between labelId & labelText
165
180
  * @member {String} labelIdSeparator_=' · '
181
+ * @reactive
166
182
  */
167
183
  labelIdSeparator_: ' · ',
168
184
  /**
169
185
  * @member {String} labelOptionalText_=' (Optional)'
186
+ * @reactive
170
187
  */
171
188
  labelOptionalText_: ' (Optional)',
172
189
  /**
173
190
  * Valid values: 'bottom', 'inline', 'left', 'right', 'top'
174
191
  * @member {String} labelPosition_='left'
192
+ * @reactive
175
193
  */
176
194
  labelPosition_: 'left',
177
195
  /**
178
196
  * @member {String} labelText_='LabelText'
197
+ * @reactive
179
198
  */
180
199
  labelText_: 'LabelText',
181
200
  /**
182
201
  * defaults to px
183
202
  * @member {Number|String} labelWidth_=150
203
+ * @reactive
184
204
  */
185
205
  labelWidth_: 150,
186
206
  /**
187
207
  * The maximum amount of chars which you can enter into this field
188
208
  * @member {Number|null} maxLength_=null
209
+ * @reactive
189
210
  */
190
211
  maxLength_: null,
191
212
  /**
192
213
  * The minimum amount of chars which you can enter into this field
193
214
  * @member {Number|null} minLength_=null
215
+ * @reactive
194
216
  */
195
217
  minLength_: null,
196
218
  /**
197
219
  * @member {String|null} placeholderText_=null
220
+ * @reactive
198
221
  */
199
222
  placeholderText_: null,
200
223
  /**
@@ -203,19 +226,23 @@ class Text extends Field {
203
226
  * The input field will be read-only and other ways of changing the field's value
204
227
  * (such as by operating pickers) will be disabled.
205
228
  * @member {Boolean} readOnly_=false
229
+ * @reactive
206
230
  */
207
231
  readOnly_: false,
208
232
  /**
209
233
  * @member {Boolean} required_=false
234
+ * @reactive
210
235
  */
211
236
  required_: false,
212
237
  /**
213
238
  * @member {Boolean} showOptionalText_=false
239
+ * @reactive
214
240
  */
215
241
  showOptionalText_: false,
216
242
  /**
217
243
  * null => Follow the element's default behavior for spell checking
218
244
  * @member {Boolean|null} spellCheck_=false
245
+ * @reactive
219
246
  */
220
247
  spellCheck_: false,
221
248
  /**
@@ -224,14 +251,17 @@ class Text extends Field {
224
251
  subLabelBaseCls: ['neo-textfield-sublabel'],
225
252
  /**
226
253
  * @member {String[]} subLabelCls_=[]
254
+ * @reactive
227
255
  */
228
256
  subLabelCls_: [],
229
257
  /**
230
258
  * @member {String} subLabelText_=null
259
+ * @reactive
231
260
  */
232
261
  subLabelText_: null,
233
262
  /**
234
263
  * @member {Object|Object[]|null} triggers_=null
264
+ * @reactive
235
265
  */
236
266
  triggers_: null,
237
267
  /**
@@ -239,6 +269,7 @@ class Text extends Field {
239
269
  * Intended to get combined with form.Container: getFormState().
240
270
  * See apps/form as an example.
241
271
  * @member {Boolean} useAlertState_=false
272
+ * @reactive
242
273
  */
243
274
  useAlertState_: false,
244
275
  /**
@@ -249,6 +280,7 @@ class Text extends Field {
249
280
  /**
250
281
  * get value can be xssProtected and values are escaped
251
282
  * @member {Boolean} xssProtected_=false
283
+ * @reactive
252
284
  */
253
285
  xssProtected_: false,
254
286
  /**
@@ -39,6 +39,7 @@ class TextArea extends Text {
39
39
  /**
40
40
  * True shows a clear trigger in case the field has a non-empty value.
41
41
  * @member {Boolean} clearable=false
42
+ * @reactive
42
43
  */
43
44
  clearable: false,
44
45
  /**
@@ -46,10 +47,12 @@ class TextArea extends Text {
46
47
  * If it is specified, it must be a positive integer.
47
48
  * If it is not specified, the default value is 20.
48
49
  * @member {Number|null} cols_=null
50
+ * @reactive
49
51
  */
50
52
  cols_: null,
51
53
  /**
52
54
  * @member {String} inputTag_='textarea'
55
+ * @reactive
53
56
  */
54
57
  inputTag_: 'textarea',
55
58
  /**
@@ -57,16 +60,19 @@ class TextArea extends Text {
57
60
  * See: inputTag_
58
61
  * @member {String|null} inputType=null
59
62
  * @protected
63
+ * @reactive
60
64
  */
61
65
  inputType: null,
62
66
  /**
63
67
  * Use false to disable the browsers default resizing feature
64
68
  * @member {Boolean} resizable_=false
69
+ * @reactive
65
70
  */
66
71
  resizable_: false,
67
72
  /**
68
73
  * An integer > 0 or null
69
74
  * @member {Number|null} rows_=3
75
+ * @reactive
70
76
  */
71
77
  rows_: 3,
72
78
  /**
@@ -74,6 +80,7 @@ class TextArea extends Text {
74
80
  * If this attribute is not specified, soft is its default value.
75
81
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea
76
82
  * @member {String|null} wrap_=null
83
+ * @reactive
77
84
  */
78
85
  wrap_: null
79
86
  }
@@ -30,6 +30,7 @@ class Time extends Picker {
30
30
  collection: null,
31
31
  /**
32
32
  * @member {String} inputType='time'
33
+ * @reactive
33
34
  */
34
35
  inputType: 'time',
35
36
  /**
@@ -51,10 +52,12 @@ class Time extends Picker {
51
52
  listConfig: null,
52
53
  /**
53
54
  * @member {String} maxValue_='16:00'
55
+ * @reactive
54
56
  */
55
57
  maxValue_: '16:00',
56
58
  /**
57
59
  * @member {String} minValue_='08:00'
60
+ * @reactive
58
61
  */
59
62
  minValue_: '08:00',
60
63
  /**
@@ -65,11 +68,13 @@ class Time extends Picker {
65
68
  /**
66
69
  * Value in seconds, defaults to 5min
67
70
  * @member {Number} stepSize_=60*5
71
+ * @reactive
68
72
  */
69
73
  stepSize_: 60 * 5, // 5min
70
74
  /**
71
75
  * @member {Object|Object[]} triggers=[{module: TimeTrigger}]
72
76
  * @protected
77
+ * @reactive
73
78
  */
74
79
  triggers: [{
75
80
  module: TimeTrigger
@@ -77,6 +82,7 @@ class Time extends Picker {
77
82
  /**
78
83
  * @member {Intl.DateTimeFormat|null} valueFormat_=null
79
84
  * @protected
85
+ * @reactive
80
86
  */
81
87
  valueFormat_: null
82
88
  }
@@ -24,15 +24,18 @@ class Url extends Text {
24
24
  errorTextInputPattern: data => 'Not a valid URL',
25
25
  /**
26
26
  * @member {RegExp|null} inputPattern=/^(https?:\/\/)?(([a-zA-Z0-9_-]+\.)*([a-zA-Z0-9_-]+\.[a-zA-Z]{2,}))(\/([a-zA-Z0-9._-]+)\/?)*$/
27
+ * @reactive
27
28
  */
28
29
  inputPattern: /^(https?:\/\/)?(([a-zA-Z0-9_-]+\.)*([a-zA-Z0-9_-]+\.[a-zA-Z]{2,}))(\/([a-zA-Z0-9._-]+)\/?)*$/,
29
30
  /**
30
31
  * @member {Boolean} inputPatternDOM=false
32
+ * @reactive
31
33
  */
32
34
  inputPatternDOM: false,
33
35
  /**
34
36
  * Value for the inputType_ textfield config
35
37
  * @member {String} inputType='url'
38
+ * @reactive
36
39
  */
37
40
  inputType: 'url'
38
41
  }
@@ -31,11 +31,13 @@ class ZipCode extends Text {
31
31
  ntype: 'zipcodefield',
32
32
  /**
33
33
  * @member {String} countryCode_=null
34
+ * @reactive
34
35
  */
35
36
  countryCode_: null,
36
37
  /**
37
38
  * You can either pass a field instance or a field reference
38
39
  * @member {Neo.form.field.Base|String|null} countryField_=null
40
+ * @reactive
39
41
  */
40
42
  countryField_: null,
41
43
  /**
@@ -28,6 +28,7 @@ class Base extends Component {
28
28
  ntype: 'trigger',
29
29
  /**
30
30
  * @member {String} align_='end'
31
+ * @reactive
31
32
  */
32
33
  align: 'end',
33
34
  /**
@@ -40,6 +41,7 @@ class Base extends Component {
40
41
  field_: null,
41
42
  /**
42
43
  * @member {String|null} iconCls_=null
44
+ * @reactive
43
45
  */
44
46
  iconCls_: null,
45
47
  /**
@@ -64,6 +66,7 @@ class Base extends Component {
64
66
  type: 'base',
65
67
  /**
66
68
  * @member {Number} weight_=10
69
+ * @reactive
67
70
  */
68
71
  weight_: 10
69
72
  }
@@ -24,6 +24,7 @@ class Clear extends Base {
24
24
  baseCls: ['neo-field-trigger', 'neo-trigger-clear'],
25
25
  /**
26
26
  * @member {String|null} iconCls='fa fa-times'
27
+ * @reactive
27
28
  */
28
29
  iconCls: 'fa fa-times',
29
30
  /**
@@ -34,6 +35,7 @@ class Clear extends Base {
34
35
  type: 'clear',
35
36
  /**
36
37
  * @member {Number} weight_=20
38
+ * @reactive
37
39
  */
38
40
  weight: 20
39
41
  }
@@ -24,6 +24,7 @@ class CopyToClipboard extends Base {
24
24
  baseCls: ['neo-field-trigger', 'neo-trigger-clipboard'],
25
25
  /**
26
26
  * @member {String|null} iconCls='fa fa-clipboard'
27
+ * @reactive
27
28
  */
28
29
  iconCls: 'fa fa-clipboard',
29
30
  /**
@@ -38,6 +39,7 @@ class CopyToClipboard extends Base {
38
39
  type: 'copyToClipboard',
39
40
  /**
40
41
  * @member {Number} weight_=21
42
+ * @reactive
41
43
  */
42
44
  weight: 21
43
45
  }
@@ -19,6 +19,7 @@ class DateTrigger extends Picker {
19
19
  ntype: 'trigger-date',
20
20
  /**
21
21
  * @member {String|null} iconCls='fa fa-calendar-alt'
22
+ * @reactive
22
23
  */
23
24
  iconCls: 'fa fa-calendar-alt'
24
25
  }
@@ -19,6 +19,7 @@ class Picker extends Base {
19
19
  ntype: 'trigger-picker',
20
20
  /**
21
21
  * @member {String|null} iconCls='fa fa-caret-down'
22
+ * @reactive
22
23
  */
23
24
  iconCls: 'fa fa-caret-down',
24
25
  /**
@@ -18,6 +18,7 @@ class Search extends Picker {
18
18
  ntype: 'trigger-search',
19
19
  /**
20
20
  * @member {String|null} iconCls='fas fa-magnifying-glass'
21
+ * @reactive
21
22
  */
22
23
  iconCls: 'fas fa-magnifying-glass'
23
24
  }
@@ -19,10 +19,12 @@ class SpinDown extends Base {
19
19
  ntype: 'trigger-spindown',
20
20
  /**
21
21
  * @member {String} align_='start'
22
+ * @reactive
22
23
  */
23
24
  align: 'start',
24
25
  /**
25
26
  * @member {String|null} iconCls='fa fa-chevron-left'
27
+ * @reactive
26
28
  */
27
29
  iconCls: 'fa fa-chevron-left',
28
30
  /**
@@ -19,6 +19,7 @@ class SpinUp extends Base {
19
19
  ntype: 'trigger-spinup',
20
20
  /**
21
21
  * @member {String|null} iconCls='fa fa-chevron-right'
22
+ * @reactive
22
23
  */
23
24
  iconCls: 'fa fa-chevron-right',
24
25
  /**
@@ -33,6 +33,7 @@ class Time extends Picker {
33
33
  clockConfig: null,
34
34
  /**
35
35
  * @member {String|null} iconCls=null
36
+ * @reactive
36
37
  */
37
38
  iconCls: null,
38
39
  /**
@@ -43,6 +44,7 @@ class Time extends Picker {
43
44
  /**
44
45
  * Format: hh:mm
45
46
  * @member {String|null} value_=null
47
+ * @reactive
46
48
  */
47
49
  value_: null
48
50
  }
@@ -0,0 +1,6 @@
1
+ import Component from './component/Base.mjs';
2
+ import defineComponent from './defineComponent.mjs';
3
+ import useConfig from './useConfig.mjs';
4
+ import useEvent from './useEvent.mjs';
5
+
6
+ export {Component, defineComponent, useConfig, useEvent};