neo.mjs 6.12.1 → 6.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/ServiceWorker.mjs +1 -1
- package/apps/covid/Util.mjs +1 -1
- package/apps/covid/model/Country.mjs +1 -1
- package/apps/covid/model/HistoricalData.mjs +1 -1
- package/apps/covid/store/Countries.mjs +1 -1
- package/apps/covid/store/HistoricalData.mjs +1 -1
- package/apps/covid/view/AttributionComponent.mjs +1 -1
- package/apps/covid/view/FooterContainer.mjs +1 -1
- package/apps/covid/view/GalleryContainer.mjs +1 -1
- package/apps/covid/view/GalleryContainerController.mjs +1 -1
- package/apps/covid/view/HeaderContainer.mjs +1 -1
- package/apps/covid/view/HelixContainer.mjs +1 -1
- package/apps/covid/view/HelixContainerController.mjs +1 -1
- package/apps/covid/view/MainContainer.mjs +1 -1
- package/apps/covid/view/MainContainerController.mjs +1 -1
- package/apps/covid/view/MainContainerModel.mjs +1 -1
- package/apps/covid/view/TableContainer.mjs +1 -1
- package/apps/covid/view/TableContainerController.mjs +1 -1
- package/apps/covid/view/WorldMapComponent.mjs +1 -1
- package/apps/covid/view/WorldMapContainer.mjs +1 -1
- package/apps/covid/view/WorldMapContainerController.mjs +1 -1
- package/apps/covid/view/country/Gallery.mjs +1 -1
- package/apps/covid/view/country/Helix.mjs +1 -1
- package/apps/covid/view/country/HistoricalDataTable.mjs +1 -1
- package/apps/covid/view/country/LineChartComponent.mjs +1 -1
- package/apps/covid/view/country/Table.mjs +1 -1
- package/apps/covid/view/mapboxGl/Component.mjs +1 -1
- package/apps/covid/view/mapboxGl/Container.mjs +1 -1
- package/apps/covid/view/mapboxGl/ContainerController.mjs +1 -1
- package/apps/form/model/SideNav.mjs +1 -1
- package/apps/form/store/SideNav.mjs +1 -1
- package/apps/form/view/FormContainer.mjs +1 -1
- package/apps/form/view/FormContainerController.mjs +1 -1
- package/apps/form/view/FormPageContainer.mjs +1 -1
- package/apps/form/view/SideNavList.mjs +1 -1
- package/apps/form/view/Viewport.mjs +3 -3
- package/apps/form/view/ViewportController.mjs +1 -1
- package/apps/form/view/ViewportModel.mjs +1 -1
- package/apps/form/view/pages/Page1.mjs +1 -1
- package/apps/form/view/pages/Page10.mjs +1 -1
- package/apps/form/view/pages/Page11.mjs +1 -1
- package/apps/form/view/pages/Page12.mjs +1 -1
- package/apps/form/view/pages/Page13.mjs +1 -1
- package/apps/form/view/pages/Page14.mjs +1 -1
- package/apps/form/view/pages/Page15.mjs +1 -1
- package/apps/form/view/pages/Page2.mjs +1 -1
- package/apps/form/view/pages/Page3.mjs +1 -1
- package/apps/form/view/pages/Page4.mjs +1 -1
- package/apps/form/view/pages/Page5.mjs +1 -1
- package/apps/form/view/pages/Page6.mjs +1 -1
- package/apps/form/view/pages/Page7.mjs +1 -1
- package/apps/form/view/pages/Page8.mjs +1 -1
- package/apps/form/view/pages/Page9.mjs +1 -1
- package/apps/krausest/TableCollection.mjs +1 -1
- package/apps/krausest/view/MainComponent.mjs +1 -1
- package/apps/krausest/view/MainComponentController.mjs +1 -1
- package/apps/krausest/view/TableComponent.mjs +1 -1
- package/apps/portal/childapps/preview/MainContainer.mjs +23 -0
- package/apps/portal/childapps/preview/app.mjs +6 -0
- package/apps/portal/childapps/preview/index.html +11 -0
- package/apps/portal/childapps/preview/neo-config.json +9 -0
- package/apps/portal/model/BlogPost.mjs +1 -1
- package/apps/portal/model/Content.mjs +5 -5
- package/apps/portal/model/ContentSection.mjs +32 -0
- package/apps/portal/neo-config.json +3 -2
- package/apps/portal/store/BlogPosts.mjs +1 -1
- package/apps/portal/store/Content.mjs +4 -51
- package/apps/portal/store/ContentSections.mjs +24 -0
- package/apps/portal/view/HeaderToolbar.mjs +14 -6
- package/apps/portal/view/Viewport.mjs +3 -2
- package/apps/portal/view/ViewportController.mjs +11 -1
- package/apps/portal/view/blog/Container.mjs +1 -1
- package/apps/portal/view/blog/List.mjs +1 -1
- package/apps/portal/view/home/MainContainer.mjs +1 -1
- package/apps/portal/view/learn/ContentTreeList.mjs +34 -147
- package/apps/portal/view/learn/ContentView.mjs +229 -17
- package/apps/portal/view/learn/LivePreview.mjs +175 -76
- package/apps/portal/view/learn/MainContainer.mjs +20 -18
- package/apps/portal/view/learn/MainContainerController.mjs +135 -23
- package/apps/portal/view/learn/MainContainerModel.mjs +99 -7
- package/apps/portal/view/learn/PageContainer.mjs +110 -0
- package/apps/portal/view/learn/PageSectionsPanel.mjs +88 -0
- package/apps/realworld/api/Article.mjs +1 -5
- package/apps/realworld/api/Base.mjs +1 -1
- package/apps/realworld/api/Favorite.mjs +1 -5
- package/apps/realworld/api/Profile.mjs +1 -5
- package/apps/realworld/api/Tag.mjs +1 -5
- package/apps/realworld/api/User.mjs +1 -5
- package/apps/realworld/view/FooterComponent.mjs +1 -1
- package/apps/realworld/view/HeaderComponent.mjs +1 -1
- package/apps/realworld/view/HomeComponent.mjs +1 -1
- package/apps/realworld/view/MainContainer.mjs +1 -1
- package/apps/realworld/view/MainContainerController.mjs +1 -1
- package/apps/realworld/view/article/CommentComponent.mjs +1 -1
- package/apps/realworld/view/article/Component.mjs +1 -1
- package/apps/realworld/view/article/CreateCommentComponent.mjs +1 -1
- package/apps/realworld/view/article/CreateComponent.mjs +1 -1
- package/apps/realworld/view/article/PreviewComponent.mjs +1 -1
- package/apps/realworld/view/article/TagListComponent.mjs +1 -1
- package/apps/realworld/view/user/ProfileComponent.mjs +1 -1
- package/apps/realworld/view/user/SettingsComponent.mjs +1 -1
- package/apps/realworld/view/user/SignUpComponent.mjs +1 -1
- package/apps/realworld2/api/Article.mjs +1 -5
- package/apps/realworld2/api/Base.mjs +1 -1
- package/apps/realworld2/api/Favorite.mjs +1 -5
- package/apps/realworld2/api/Profile.mjs +1 -5
- package/apps/realworld2/api/Tag.mjs +1 -5
- package/apps/realworld2/api/User.mjs +1 -5
- package/apps/realworld2/model/ArticlePreview.mjs +1 -1
- package/apps/realworld2/store/ArticlePreviews.mjs +1 -1
- package/apps/realworld2/view/FooterComponent.mjs +1 -1
- package/apps/realworld2/view/HeaderToolbar.mjs +1 -1
- package/apps/realworld2/view/HeaderToolbarController.mjs +1 -1
- package/apps/realworld2/view/HomeContainer.mjs +1 -1
- package/apps/realworld2/view/MainContainer.mjs +1 -1
- package/apps/realworld2/view/MainContainerController.mjs +1 -1
- package/apps/realworld2/view/article/DetailsContainer.mjs +1 -1
- package/apps/realworld2/view/article/FormContainer.mjs +1 -1
- package/apps/realworld2/view/article/Gallery.mjs +1 -1
- package/apps/realworld2/view/article/GalleryContainer.mjs +1 -1
- package/apps/realworld2/view/article/Helix.mjs +1 -1
- package/apps/realworld2/view/article/HelixContainer.mjs +1 -1
- package/apps/realworld2/view/article/PreviewComponent.mjs +1 -1
- package/apps/realworld2/view/article/PreviewList.mjs +1 -1
- package/apps/realworld2/view/article/TagListComponent.mjs +1 -1
- package/apps/realworld2/view/user/LoginFormContainer.mjs +1 -1
- package/apps/realworld2/view/user/ProfileContainer.mjs +1 -1
- package/apps/realworld2/view/user/SettingsFormContainer.mjs +1 -1
- package/apps/route/view/ButtonBar.mjs +1 -1
- package/apps/route/view/CenterContainer.mjs +1 -1
- package/apps/route/view/FooterContainer.mjs +1 -1
- package/apps/route/view/HeaderContainer.mjs +1 -1
- package/apps/route/view/MainView.mjs +4 -4
- package/apps/route/view/MainViewController.mjs +1 -1
- package/apps/route/view/MetaContainer.mjs +2 -2
- package/apps/route/view/Viewport.mjs +1 -1
- package/apps/route/view/center/CardAdministration.mjs +1 -1
- package/apps/route/view/center/CardAdministrationDenied.mjs +1 -1
- package/apps/route/view/center/CardContact.mjs +1 -1
- package/apps/route/view/center/CardHome.mjs +1 -1
- package/apps/route/view/center/CardSection1.mjs +1 -1
- package/apps/route/view/center/CardSection2.mjs +1 -1
- package/apps/sharedcovid/Util.mjs +1 -1
- package/apps/sharedcovid/childapps/sharedcovidchart/MainContainer.mjs +1 -1
- package/apps/sharedcovid/childapps/sharedcovidgallery/MainContainer.mjs +1 -1
- package/apps/sharedcovid/childapps/sharedcovidhelix/MainContainer.mjs +1 -1
- package/apps/sharedcovid/childapps/sharedcovidmap/MainContainer.mjs +1 -1
- package/apps/sharedcovid/model/Country.mjs +1 -1
- package/apps/sharedcovid/model/HistoricalData.mjs +1 -1
- package/apps/sharedcovid/store/Countries.mjs +1 -1
- package/apps/sharedcovid/store/HistoricalData.mjs +1 -1
- package/apps/sharedcovid/view/AttributionComponent.mjs +1 -1
- package/apps/sharedcovid/view/FooterContainer.mjs +1 -1
- package/apps/sharedcovid/view/GalleryContainer.mjs +1 -1
- package/apps/sharedcovid/view/GalleryContainerController.mjs +1 -1
- package/apps/sharedcovid/view/HeaderContainer.mjs +1 -1
- package/apps/sharedcovid/view/HelixContainer.mjs +1 -1
- package/apps/sharedcovid/view/HelixContainerController.mjs +1 -1
- package/apps/sharedcovid/view/MainContainer.mjs +1 -1
- package/apps/sharedcovid/view/MainContainerController.mjs +1 -1
- package/apps/sharedcovid/view/MainContainerModel.mjs +1 -1
- package/apps/sharedcovid/view/TableContainer.mjs +1 -1
- package/apps/sharedcovid/view/TableContainerController.mjs +1 -1
- package/apps/sharedcovid/view/WorldMapComponent.mjs +1 -1
- package/apps/sharedcovid/view/WorldMapContainer.mjs +1 -1
- package/apps/sharedcovid/view/WorldMapContainerController.mjs +1 -1
- package/apps/sharedcovid/view/country/Gallery.mjs +1 -1
- package/apps/sharedcovid/view/country/Helix.mjs +1 -1
- package/apps/sharedcovid/view/country/HistoricalDataTable.mjs +1 -1
- package/apps/sharedcovid/view/country/LineChartComponent.mjs +1 -1
- package/apps/sharedcovid/view/country/Table.mjs +1 -1
- package/apps/sharedcovid/view/mapboxGl/Component.mjs +1 -1
- package/apps/sharedcovid/view/mapboxGl/Container.mjs +1 -1
- package/apps/sharedcovid/view/mapboxGl/ContainerController.mjs +1 -1
- package/apps/shareddialog/childapps/shareddialog2/view/MainContainer.mjs +1 -1
- package/apps/shareddialog/childapps/shareddialog2/view/MainContainerController.mjs +1 -1
- package/apps/shareddialog/view/DemoDialog.mjs +1 -1
- package/apps/shareddialog/view/MainContainer.mjs +1 -1
- package/apps/shareddialog/view/MainContainerController.mjs +1 -1
- package/apps/website/model/BlogPost.mjs +1 -1
- package/apps/website/model/Example.mjs +1 -1
- package/apps/website/store/BlogPosts.mjs +1 -1
- package/apps/website/store/Examples.mjs +1 -1
- package/apps/website/view/HeaderContainer.mjs +1 -1
- package/apps/website/view/MainContainer.mjs +1 -1
- package/apps/website/view/MainContainerController.mjs +1 -1
- package/apps/website/view/blog/Container.mjs +1 -1
- package/apps/website/view/blog/List.mjs +1 -1
- package/apps/website/view/examples/List.mjs +1 -1
- package/apps/website/view/examples/TabContainer.mjs +1 -1
- package/apps/website/view/home/DeveloperIntroComponent.mjs +1 -1
- package/apps/website/view/home/ExecutiveIntroComponent.mjs +1 -1
- package/apps/website/view/home/TabContainer.mjs +1 -1
- package/buildScripts/createApp.mjs +1 -1
- package/buildScripts/createAppMinimal.mjs +4 -4
- package/buildScripts/createClass.mjs +2 -2
- package/buildScripts/docs/jsdocx.mjs +3 -4
- package/buildScripts/tools/createExample.mjs +1 -1
- package/docs/app/model/Api.mjs +1 -1
- package/docs/app/model/Example.mjs +1 -1
- package/docs/app/model/Tutorial.mjs +1 -1
- package/docs/app/store/Api.mjs +1 -1
- package/docs/app/store/Examples.mjs +1 -1
- package/docs/app/store/Tutorials.mjs +1 -1
- package/docs/app/view/ApiTreeList.mjs +1 -1
- package/docs/app/view/ContentTabContainer.mjs +1 -1
- package/docs/app/view/ExamplesTreeList.mjs +1 -1
- package/docs/app/view/HeaderContainer.mjs +1 -1
- package/docs/app/view/MainContainer.mjs +1 -1
- package/docs/app/view/MainContainerController.mjs +54 -40
- package/docs/app/view/TutorialsTreeList.mjs +1 -1
- package/docs/app/view/classdetails/HeaderComponent.mjs +4 -4
- package/docs/app/view/classdetails/HierarchyTreeList.mjs +1 -1
- package/docs/app/view/classdetails/MainContainer.mjs +1 -1
- package/docs/app/view/classdetails/MainContainerController.mjs +4 -17
- package/docs/app/view/classdetails/MembersList.mjs +3 -3
- package/docs/app/view/classdetails/SourceViewComponent.mjs +5 -5
- package/docs/app/view/classdetails/TutorialComponent.mjs +1 -1
- package/docs/neo-config.json +1 -1
- package/examples/ConfigurationViewport.mjs +3 -2
- package/examples/ServiceWorker.mjs +1 -1
- package/examples/button/base/MainContainer.mjs +1 -1
- package/examples/button/split/MainContainer.mjs +1 -1
- package/examples/calendar/basic/MainContainer.mjs +1 -1
- package/examples/calendar/basic/MainContainerController.mjs +1 -1
- package/examples/calendar/weekview/MainContainer.mjs +1 -1
- package/examples/charts/MainContainer.mjs +1 -1
- package/examples/component/canvas/MainContainer.mjs +1 -1
- package/examples/component/carousel/MainContainer.mjs +1 -1
- package/examples/component/chip/MainContainer.mjs +1 -1
- package/examples/component/circle/MainContainer.mjs +1 -1
- package/examples/component/clock/MainContainer.mjs +1 -1
- package/examples/component/coronaGallery/CountryGallery.mjs +1 -1
- package/examples/component/coronaGallery/CountryModel.mjs +1 -1
- package/examples/component/coronaGallery/CountryStore.mjs +1 -1
- package/examples/component/coronaGallery/MainContainer.mjs +1 -1
- package/examples/component/coronaHelix/CountryHelix.mjs +1 -1
- package/examples/component/coronaHelix/CountryModel.mjs +1 -1
- package/examples/component/coronaHelix/CountryStore.mjs +1 -1
- package/examples/component/coronaHelix/MainContainer.mjs +1 -1
- package/examples/component/dateSelector/MainContainer.mjs +1 -1
- package/examples/component/gallery/ImageModel.mjs +1 -1
- package/examples/component/gallery/ImageStore.mjs +1 -1
- package/examples/component/gallery/MainContainer.mjs +1 -1
- package/examples/component/helix/ImageModel.mjs +1 -1
- package/examples/component/helix/ImageStore.mjs +1 -1
- package/examples/component/helix/MainContainer.mjs +1 -1
- package/examples/component/mwc/button/MainContainer.mjs +1 -1
- package/examples/component/mwc/buttons/MainContainer.mjs +1 -1
- package/examples/component/mwc/textField/MainContainer.mjs +1 -1
- package/examples/component/mwc/textFields/MainContainer.mjs +1 -1
- package/examples/component/process/MainContainer.mjs +1 -1
- package/examples/component/process/realWorldExample/MainContainer.mjs +1 -1
- package/examples/component/progress/MainContainer.mjs +1 -1
- package/examples/component/splitter/MainContainer.mjs +1 -1
- package/examples/component/statusbadge/MainContainer.mjs +1 -1
- package/examples/component/timer/MainContainer.mjs +1 -1
- package/examples/component/timer/MainContainerController.mjs +1 -1
- package/examples/component/toast/MainContainer.mjs +1 -1
- package/examples/component/toast/MainContainerController.mjs +1 -1
- package/examples/component/video/MainContainer.mjs +1 -1
- package/examples/component/video/MainContainerController.mjs +1 -1
- package/examples/component/wrapper/cesiumJS/MainContainer.mjs +1 -1
- package/examples/component/wrapper/cesiumJS/MainContainerController.mjs +1 -1
- package/examples/component/wrapper/googleMaps/MainContainer.mjs +1 -1
- package/examples/component/wrapper/googleMaps/MainContainerController.mjs +1 -1
- package/examples/component/wrapper/googleMaps/MapComponent.mjs +1 -1
- package/examples/component/wrapper/googleMaps/MarkerDialog.mjs +1 -1
- package/examples/component/wrapper/monacoEditor/MainContainer.mjs +187 -0
- package/examples/component/wrapper/monacoEditor/app.mjs +7 -0
- package/examples/component/wrapper/monacoEditor/index.html +11 -0
- package/examples/component/wrapper/monacoEditor/neo-config.json +7 -0
- package/examples/container/accordion/MainContainer.mjs +1 -1
- package/examples/container/base/MainContainer.mjs +1 -1
- package/examples/core/config/MainContainer.mjs +1 -1
- package/examples/dashboard/MainContainer.mjs +1 -1
- package/examples/dialog/DemoDialog.mjs +1 -1
- package/examples/dialog/MainContainer.mjs +1 -1
- package/examples/fieldWithPrefix/MainContainer.mjs +1 -1
- package/examples/fields/MainContainer.mjs +1 -1
- package/examples/form/field/checkbox/MainContainer.mjs +1 -1
- package/examples/form/field/chip/MainContainer.mjs +1 -1
- package/examples/form/field/chip/MainModel.mjs +1 -1
- package/examples/form/field/chip/MainStore.mjs +1 -1
- package/examples/form/field/color/MainContainer.mjs +1 -1
- package/examples/form/field/color/MainModel.mjs +1 -1
- package/examples/form/field/color/MainStore.mjs +1 -1
- package/examples/form/field/date/MainContainer.mjs +1 -1
- package/examples/form/field/email/MainContainer.mjs +1 -1
- package/examples/form/field/fileupload/MainContainer.mjs +1 -1
- package/examples/form/field/number/MainContainer.mjs +1 -1
- package/examples/form/field/picker/MainContainer.mjs +1 -1
- package/examples/form/field/radio/MainContainer.mjs +1 -1
- package/examples/form/field/select/MainContainer.mjs +7 -1
- package/examples/form/field/select/MainModel.mjs +1 -1
- package/examples/form/field/select/MainStore.mjs +1 -1
- package/examples/form/field/switch/MainContainer.mjs +1 -1
- package/examples/form/field/text/MainContainer.mjs +1 -1
- package/examples/form/field/textarea/MainContainer.mjs +1 -1
- package/examples/form/field/time/MainContainer.mjs +1 -1
- package/examples/form/field/trigger/copyToClipboard/MainContainer.mjs +1 -1
- package/examples/form/field/url/MainContainer.mjs +1 -1
- package/examples/form/fieldset/MainContainer.mjs +1 -1
- package/examples/grid/container/MainContainer.mjs +1 -1
- package/examples/grid/container/MainModel.mjs +1 -1
- package/examples/grid/container/MainStore.mjs +1 -1
- package/examples/grid/covid/GridContainer.mjs +1 -1
- package/examples/grid/covid/GridContainerController.mjs +1 -1
- package/examples/grid/covid/MainContainer.mjs +1 -1
- package/examples/grid/covid/Model.mjs +1 -1
- package/examples/grid/covid/Store.mjs +1 -1
- package/examples/grid/covid/Util.mjs +1 -1
- package/examples/layout/form/MainContainer.mjs +1 -1
- package/examples/list/animate/List.mjs +1 -1
- package/examples/list/animate/MainContainer.mjs +1 -1
- package/examples/list/animate/MainContainerController.mjs +1 -1
- package/examples/list/animate/MainModel.mjs +1 -1
- package/examples/list/animate/MainStore.mjs +1 -1
- package/examples/list/base/MainContainer.mjs +1 -1
- package/examples/list/base/MainModel.mjs +1 -1
- package/examples/list/base/MainStore.mjs +1 -1
- package/examples/list/base/neo-config.json +1 -1
- package/examples/list/chip/MainContainer.mjs +1 -1
- package/examples/list/chip/MainModel.mjs +1 -1
- package/examples/list/chip/MainStore.mjs +1 -1
- package/examples/list/circle/MainContainer.mjs +1 -1
- package/examples/list/circle/MainModel.mjs +1 -1
- package/examples/list/circle/MainStore.mjs +1 -1
- package/examples/list/color/MainContainer.mjs +1 -1
- package/examples/list/color/MainModel.mjs +1 -1
- package/examples/list/color/MainStore.mjs +1 -1
- package/examples/menu/list/MainContainer.mjs +1 -1
- package/examples/menu/list/MainStore.mjs +1 -1
- package/examples/menu/panel/MainContainer.mjs +1 -1
- package/examples/model/advanced/MainContainer.mjs +1 -1
- package/examples/model/advanced/MainContainerController.mjs +1 -1
- package/examples/model/dialog/EditUserDialog.mjs +1 -1
- package/examples/model/dialog/EditUserDialogController.mjs +1 -1
- package/examples/model/dialog/MainContainer.mjs +1 -1
- package/examples/model/dialog/MainContainerController.mjs +1 -1
- package/examples/model/extendedClass/MainContainer.mjs +1 -1
- package/examples/model/extendedClass/MainContainerController.mjs +1 -1
- package/examples/model/extendedClass/MainContainerModel.mjs +1 -1
- package/examples/model/inline/MainContainer.mjs +1 -1
- package/examples/model/inline/MainContainerController.mjs +1 -1
- package/examples/model/inlineNoModel/MainContainer.mjs +1 -1
- package/examples/model/inlineNoModel/MainContainerController.mjs +1 -1
- package/examples/model/multiWindow/EditUserDialog.mjs +1 -1
- package/examples/model/multiWindow/EditUserDialogController.mjs +1 -1
- package/examples/model/multiWindow/MainContainer.mjs +1 -1
- package/examples/model/multiWindow/MainContainerController.mjs +1 -1
- package/examples/model/multiWindow/Viewport.mjs +1 -1
- package/examples/model/multiWindow/ViewportController.mjs +1 -1
- package/examples/model/multiWindow2/Viewport.mjs +1 -1
- package/examples/model/nestedData/MainContainer.mjs +1 -1
- package/examples/model/nestedData/MainContainerController.mjs +1 -1
- package/examples/model/table/MainContainer.mjs +1 -1
- package/examples/model/table/MainContainerModel.mjs +1 -1
- package/examples/model/table/MainModel.mjs +1 -1
- package/examples/model/table/MainStore.mjs +1 -1
- package/examples/panel/MainContainer.mjs +1 -1
- package/examples/panel/MainContainerController.mjs +1 -1
- package/examples/popover/MainContainer.mjs +1 -1
- package/examples/preloadingAssets/view/MainContainer.mjs +1 -1
- package/examples/preloadingAssets/view/MainContainerController.mjs +1 -1
- package/examples/remotesApi/basic/MainContainer.mjs +1 -1
- package/examples/remotesApi/basic/MainContainerController.mjs +1 -1
- package/examples/sitemap/MainContainer.mjs +1 -1
- package/examples/tab/container/MainContainer.mjs +1 -1
- package/examples/table/container/MainContainer.mjs +1 -1
- package/examples/table/container/MainModel.mjs +1 -1
- package/examples/table/container/MainStore.mjs +1 -1
- package/examples/table/covid/MainContainer.mjs +1 -1
- package/examples/table/covid/Model.mjs +1 -1
- package/examples/table/covid/Store.mjs +1 -1
- package/examples/table/covid/TableContainer.mjs +1 -1
- package/examples/table/covid/TableContainerController.mjs +1 -1
- package/examples/table/covid/Util.mjs +1 -1
- package/examples/tableFiltering/MainContainer.mjs +1 -1
- package/examples/tableFiltering/MainModel.mjs +1 -1
- package/examples/tableFiltering/MainStore.mjs +1 -1
- package/examples/tablePerformance/MainContainer.mjs +1 -1
- package/examples/tablePerformance/MainContainer2.mjs +1 -1
- package/examples/tablePerformance/MainContainer3.mjs +1 -1
- package/examples/tablePerformance/Viewport.mjs +1 -1
- package/examples/tableStore/MainContainer.mjs +1 -1
- package/examples/tableStore/MainModel.mjs +1 -1
- package/examples/tableStore/MainStore.mjs +1 -1
- package/examples/tabs/MainContainer.mjs +1 -1
- package/examples/tabs/MainContainer2.mjs +1 -1
- package/examples/todoList/version1/MainComponent.mjs +1 -1
- package/examples/todoList/version2/MainContainer.mjs +1 -1
- package/examples/todoList/version2/TodoList.mjs +1 -1
- package/examples/todoList/version2/TodoListModel.mjs +1 -1
- package/examples/todoList/version2/TodoListStore.mjs +1 -1
- package/examples/toolbar/breadcrumb/view/MainContainer.mjs +1 -1
- package/examples/toolbar/breadcrumb/view/MainContainerController.mjs +1 -1
- package/examples/toolbar/paging/model/User.mjs +1 -1
- package/examples/toolbar/paging/store/Users.mjs +1 -1
- package/examples/toolbar/paging/view/AddUserDialog.mjs +1 -1
- package/examples/toolbar/paging/view/MainContainer.mjs +1 -1
- package/examples/toolbar/paging/view/MainContainerController.mjs +1 -1
- package/examples/toolbar/paging/view/MainContainerModel.mjs +1 -1
- package/examples/toolbar/paging/view/UserTableContainer.mjs +1 -1
- package/examples/tree/MainContainer.mjs +1 -1
- package/examples/treeAccordion/MainContainer.mjs +1 -1
- package/examples/viewport/MainContainer.mjs +1 -1
- package/examples/worker/task/MainContainer.mjs +48 -0
- package/examples/worker/task/MyTasks.mjs +48 -0
- package/examples/worker/task/app.mjs +6 -0
- package/examples/worker/task/index.html +11 -0
- package/examples/worker/task/neo-config.json +7 -0
- package/examples/worker/task/task.mjs +5 -0
- package/package.json +10 -8
- package/resources/data/deck/learnneo/{p → pages}/2023-10-07T19-18-28-517Z.md +3 -3
- package/resources/data/deck/learnneo/{p → pages}/2023-10-08T20-20-07-934Z.md +3 -3
- package/resources/data/deck/learnneo/{p → pages}/2023-10-08T20-20-37-336Z.md +1 -1
- package/resources/data/deck/learnneo/{p → pages}/2023-10-08T21-58-25-809Z.md +5 -5
- package/resources/data/deck/learnneo/{p → pages}/2023-10-14T19-25-08-153Z.md +15 -14
- package/resources/data/deck/learnneo/{p → pages}/2023-10-31T13-59-37-550Z.md +2 -2
- package/resources/data/deck/learnneo/{p → pages}/ComponentModels.md +23 -23
- package/resources/data/deck/learnneo/{p → pages}/Config.md +17 -23
- package/resources/data/deck/learnneo/{p → pages}/DescribingTheUI.md +31 -25
- package/resources/data/deck/learnneo/{p → pages}/Earthquakes.md +119 -120
- package/resources/data/deck/learnneo/{p → pages}/Events.md +9 -20
- package/resources/data/deck/learnneo/{p → pages}/Extending.md +39 -42
- package/resources/data/deck/learnneo/pages/GuideEvents.md +12 -0
- package/resources/data/deck/learnneo/{p → pages}/References.md +38 -38
- package/resources/data/deck/learnneo/pages/Setup.md +27 -0
- package/resources/data/deck/learnneo/{p → pages}/TestLivePreview.md +1 -1
- package/resources/data/deck/learnneo/pages/WhyNeo-Effort.md +4 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Intro.md +11 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Multi-Threaded.md +13 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Multi-Window.md +36 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Quick.md +21 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Speed.md +27 -0
- package/resources/data/deck/learnneo/tree.json +44 -27
- package/resources/data/deck/training/{p → pages}/2022-12-27T21-55-23-144Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2022-12-27T21-55-43-542Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2022-12-29T18-36-56-893Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2022-12-29T20-37-08-919Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2022-12-29T20-37-20-344Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2022-12-31T23-18-55-655Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-01-01T18-44-07-034Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-01T21-14-45-740Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-03T02-07-19-014Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-01-04T01-52-23-454Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-06T23-21-12-009Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-01-06T23-34-13-897Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-08T00-45-11-144Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-08T01-24-21-088Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-01-08T01-46-50-723Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-12T01-50-54-617Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-01-14T00-40-27-784Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-15T18-51-52-134Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-15T22-28-57-508Z.md +2 -2
- package/resources/data/deck/training/{p → pages}/2023-01-15T22-36-30-913Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-07-01T15-42-45-193Z.md +5 -5
- package/resources/data/deck/training/{p → pages}/2023-07-02T16-14-06-970Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-07-31T00-37-21-927Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-10-07T19-18-28-517Z.md +3 -3
- package/resources/data/deck/training/{p → pages}/2023-10-08T20-20-07-934Z.md +3 -3
- package/resources/data/deck/training/{p → pages}/2023-10-08T20-20-37-336Z.md +1 -1
- package/resources/data/deck/training/{p → pages}/2023-10-08T21-58-25-809Z.md +5 -5
- package/resources/data/deck/training/{p → pages}/2023-10-14T19-25-08-153Z.md +2 -2
- package/resources/design-tokens/json/component.json +30 -30
- package/resources/design-tokens/json/core.json +19 -9
- package/resources/design-tokens/json/semantic.json +90 -0
- package/resources/scss/src/apps/portal/HeaderToolbar.scss +2 -1
- package/resources/scss/src/apps/portal/learn/ContentTreeList.scss +8 -7
- package/resources/scss/src/apps/portal/learn/ContentView.scss +5 -13
- package/resources/scss/src/apps/portal/learn/MainContainer.scss +18 -7
- package/resources/scss/src/apps/portal/learn/PageSectionsPanel.scss +8 -0
- package/resources/scss/src/list/Base.scss +2 -2
- package/resources/scss/theme-dark/list/Base.scss +2 -1
- package/resources/scss/theme-light/list/Base.scss +2 -1
- package/resources/scss/theme-neo-light/Global.scss +5 -1
- package/resources/scss/theme-neo-light/apps/portal/learn/ContentTreeList.scss +23 -0
- package/resources/scss/theme-neo-light/button/Base.scss +127 -88
- package/resources/scss/theme-neo-light/design-tokens/Component.scss +48 -54
- package/resources/scss/theme-neo-light/design-tokens/Core.scss +70 -69
- package/resources/scss/theme-neo-light/design-tokens/Semantic.scss +87 -67
- package/resources/scss/theme-neo-light/list/Base.scss +14 -26
- package/resources/scss/theme-neo-light/tooltip/Base.scss +2 -4
- package/src/DefaultConfig.mjs +26 -2
- package/src/Fetch.mjs +1 -1
- package/src/Main.mjs +53 -37
- package/src/Neo.mjs +122 -116
- package/src/Xhr.mjs +1 -1
- package/src/button/Base.mjs +1 -1
- package/src/button/Menu.mjs +1 -1
- package/src/button/Split.mjs +1 -1
- package/src/calendar/model/Calendar.mjs +1 -1
- package/src/calendar/model/Color.mjs +1 -1
- package/src/calendar/model/Event.mjs +1 -1
- package/src/calendar/store/Calendars.mjs +1 -1
- package/src/calendar/store/Colors.mjs +1 -1
- package/src/calendar/store/Events.mjs +1 -1
- package/src/calendar/view/DayComponent.mjs +1 -1
- package/src/calendar/view/EditEventContainer.mjs +1 -1
- package/src/calendar/view/MainContainer.mjs +1 -1
- package/src/calendar/view/MainContainerModel.mjs +1 -1
- package/src/calendar/view/SettingsContainer.mjs +1 -1
- package/src/calendar/view/YearComponent.mjs +1 -1
- package/src/calendar/view/calendars/ColorsList.mjs +1 -1
- package/src/calendar/view/calendars/Container.mjs +1 -1
- package/src/calendar/view/calendars/EditContainer.mjs +1 -1
- package/src/calendar/view/calendars/List.mjs +1 -1
- package/src/calendar/view/month/Component.mjs +1 -1
- package/src/calendar/view/settings/GeneralContainer.mjs +1 -1
- package/src/calendar/view/settings/MonthContainer.mjs +1 -1
- package/src/calendar/view/settings/WeekContainer.mjs +1 -1
- package/src/calendar/view/settings/YearContainer.mjs +1 -1
- package/src/calendar/view/week/Component.mjs +1 -1
- package/src/calendar/view/week/EventDragZone.mjs +1 -1
- package/src/calendar/view/week/TimeAxisComponent.mjs +1 -1
- package/src/calendar/view/week/plugin/DragDrop.mjs +1 -1
- package/src/calendar/view/week/plugin/EventResizable.mjs +1 -1
- package/src/collection/Base.mjs +4 -4
- package/src/collection/Filter.mjs +1 -1
- package/src/collection/Sorter.mjs +1 -1
- package/src/component/Base.mjs +48 -25
- package/src/component/BoxLabel.mjs +1 -1
- package/src/component/Canvas.mjs +1 -1
- package/src/component/Carousel.mjs +1 -1
- package/src/component/Chip.mjs +1 -1
- package/src/component/Circle.mjs +1 -1
- package/src/component/Clock.mjs +1 -1
- package/src/component/DateSelector.mjs +1 -1
- package/src/component/Gallery.mjs +1 -1
- package/src/component/Helix.mjs +1 -1
- package/src/component/Iframe.mjs +1 -1
- package/src/component/Label.mjs +1 -1
- package/src/component/Legend.mjs +1 -1
- package/src/component/Process.mjs +2 -2
- package/src/component/Progress.mjs +1 -1
- package/src/component/Splitter.mjs +1 -1
- package/src/component/StatusBadge.mjs +1 -1
- package/src/component/Timer.mjs +1 -1
- package/src/component/Toast.mjs +1 -1
- package/src/component/Video.mjs +1 -1
- package/src/component/mwc/Button.mjs +1 -1
- package/src/component/mwc/TextField.mjs +1 -1
- package/src/component/wrapper/AmChart.mjs +1 -1
- package/src/component/wrapper/CesiumJS.mjs +1 -1
- package/src/component/wrapper/GoogleMaps.mjs +1 -1
- package/src/component/wrapper/MapboxGL.mjs +1 -1
- package/src/component/wrapper/MonacoEditor.mjs +420 -0
- package/src/container/Accordion.mjs +1 -1
- package/src/container/AccordionItem.mjs +1 -1
- package/src/container/Base.mjs +18 -6
- package/src/container/Panel.mjs +1 -1
- package/src/container/Viewport.mjs +1 -1
- package/src/controller/Application.mjs +1 -1
- package/src/controller/Base.mjs +2 -2
- package/src/controller/Component.mjs +1 -1
- package/src/core/Base.mjs +7 -6
- package/src/core/Compare.mjs +1 -1
- package/src/core/IdGenerator.mjs +1 -1
- package/src/core/Observable.mjs +1 -1
- package/src/core/Util.mjs +1 -1
- package/src/dashboard/Container.mjs +1 -1
- package/src/data/Model.mjs +1 -1
- package/src/data/RecordFactory.mjs +35 -31
- package/src/data/Store.mjs +1 -1
- package/src/data/connection/Fetch.mjs +1 -1
- package/src/data/connection/WebSocket.mjs +1 -1
- package/src/data/connection/Xhr.mjs +1 -1
- package/src/dialog/Base.mjs +1 -1
- package/src/dialog/header/Toolbar.mjs +1 -1
- package/src/draggable/DragProxyComponent.mjs +1 -1
- package/src/draggable/DragZone.mjs +2 -2
- package/src/draggable/DropZone.mjs +1 -1
- package/src/draggable/list/DragZone.mjs +1 -1
- package/src/draggable/list/SortZone.mjs +1 -1
- package/src/draggable/tab/header/toolbar/SortZone.mjs +1 -1
- package/src/draggable/toolbar/DragZone.mjs +1 -1
- package/src/draggable/toolbar/SortZone.mjs +1 -1
- package/src/draggable/tree/DragZone.mjs +1 -1
- package/src/draggable/tree/SortZone.mjs +1 -1
- package/src/filter/BooleanContainer.mjs +1 -1
- package/src/filter/DateContainer.mjs +1 -1
- package/src/filter/NumberContainer.mjs +1 -1
- package/src/filter/ToggleOperatorsButton.mjs +1 -1
- package/src/form/Container.mjs +1 -1
- package/src/form/Fieldset.mjs +1 -1
- package/src/form/field/Base.mjs +57 -2
- package/src/form/field/CheckBox.mjs +1 -1
- package/src/form/field/Chip.mjs +1 -1
- package/src/form/field/Color.mjs +1 -1
- package/src/form/field/Country.mjs +1 -1
- package/src/form/field/Currency.mjs +1 -1
- package/src/form/field/Date.mjs +1 -1
- package/src/form/field/Display.mjs +1 -1
- package/src/form/field/Email.mjs +1 -1
- package/src/form/field/FileUpload.mjs +2 -2
- package/src/form/field/Hidden.mjs +1 -1
- package/src/form/field/Number.mjs +1 -1
- package/src/form/field/Password.mjs +1 -1
- package/src/form/field/Phone.mjs +1 -1
- package/src/form/field/Picker.mjs +1 -1
- package/src/form/field/Radio.mjs +1 -1
- package/src/form/field/Range.mjs +1 -1
- package/src/form/field/Search.mjs +1 -1
- package/src/form/field/Select.mjs +58 -63
- package/src/form/field/Switch.mjs +1 -1
- package/src/form/field/Text.mjs +103 -52
- package/src/form/field/TextArea.mjs +1 -1
- package/src/form/field/Time.mjs +1 -1
- package/src/form/field/Url.mjs +1 -1
- package/src/form/field/ZipCode.mjs +1 -1
- package/src/form/field/trigger/Base.mjs +1 -1
- package/src/form/field/trigger/Clear.mjs +1 -1
- package/src/form/field/trigger/CopyToClipboard.mjs +1 -1
- package/src/form/field/trigger/Date.mjs +1 -1
- package/src/form/field/trigger/Picker.mjs +1 -1
- package/src/form/field/trigger/Search.mjs +1 -1
- package/src/form/field/trigger/SpinDown.mjs +1 -1
- package/src/form/field/trigger/SpinUp.mjs +1 -1
- package/src/form/field/trigger/SpinUpDown.mjs +1 -1
- package/src/form/field/trigger/Time.mjs +1 -1
- package/src/grid/Container.mjs +1 -1
- package/src/grid/View.mjs +1 -1
- package/src/grid/header/Button.mjs +1 -1
- package/src/grid/header/Toolbar.mjs +1 -1
- package/src/layout/Base.mjs +18 -7
- package/src/layout/Card.mjs +1 -1
- package/src/layout/Fit.mjs +1 -1
- package/src/layout/Flexbox.mjs +1 -1
- package/src/layout/Form.mjs +1 -1
- package/src/layout/Grid.mjs +1 -1
- package/src/layout/HBox.mjs +1 -1
- package/src/layout/VBox.mjs +1 -1
- package/src/list/Base.mjs +60 -54
- package/src/list/Chip.mjs +6 -1
- package/src/list/Circle.mjs +1 -1
- package/src/list/Color.mjs +1 -1
- package/src/list/Component.mjs +1 -1
- package/src/list/plugin/Animate.mjs +1 -1
- package/src/main/DomAccess.mjs +49 -24
- package/src/main/DomEvents.mjs +2 -2
- package/src/main/addon/AmCharts.mjs +1 -1
- package/src/main/addon/AnalyticsByGoogle.mjs +1 -1
- package/src/main/addon/Base.mjs +1 -1
- package/src/main/addon/CesiumJS.mjs +1 -1
- package/src/main/addon/CloneNode.mjs +1 -1
- package/src/main/addon/Cookie.mjs +1 -1
- package/src/main/addon/DragDrop.mjs +1 -1
- package/src/main/addon/GoogleMaps.mjs +1 -1
- package/src/main/addon/HighlightJS.mjs +20 -29
- package/src/main/addon/IntersectionObserver.mjs +134 -0
- package/src/main/addon/LocalStorage.mjs +1 -1
- package/src/main/addon/MapboxGL.mjs +1 -1
- package/src/main/addon/Markdown.mjs +2 -2
- package/src/main/addon/MonacoEditor.mjs +179 -0
- package/src/main/addon/Mwc.mjs +1 -1
- package/src/main/addon/Navigator.mjs +1 -1
- package/src/main/addon/Popover.mjs +1 -1
- package/src/main/addon/PrefixField.mjs +1 -1
- package/src/main/addon/ResizeObserver.mjs +1 -1
- package/src/main/addon/ServiceWorker.mjs +1 -1
- package/src/main/addon/Siesta.mjs +1 -1
- package/src/main/addon/Stylesheet.mjs +1 -1
- package/src/main/addon/WebComponent.mjs +1 -1
- package/src/main/addon/WindowPosition.mjs +1 -1
- package/src/main/draggable/sensor/Base.mjs +1 -1
- package/src/main/draggable/sensor/Mouse.mjs +1 -1
- package/src/main/draggable/sensor/Touch.mjs +1 -1
- package/src/main/mixin/DeltaUpdates.mjs +1 -1
- package/src/main/mixin/TouchDomEvents.mjs +1 -1
- package/src/manager/Base.mjs +1 -1
- package/src/manager/Component.mjs +1 -1
- package/src/manager/DomEvent.mjs +4 -3
- package/src/manager/Focus.mjs +1 -1
- package/src/manager/Instance.mjs +1 -1
- package/src/manager/Store.mjs +1 -1
- package/src/manager/Task.mjs +1 -1
- package/src/manager/Toast.mjs +1 -1
- package/src/manager/rpc/Api.mjs +1 -1
- package/src/manager/rpc/Message.mjs +1 -1
- package/src/menu/List.mjs +1 -5
- package/src/menu/Model.mjs +1 -1
- package/src/menu/Panel.mjs +1 -1
- package/src/menu/Store.mjs +1 -1
- package/src/model/Component.mjs +1 -1
- package/src/plugin/Base.mjs +1 -1
- package/src/plugin/Popover.mjs +1 -1
- package/src/plugin/PrefixField.mjs +10 -9
- package/src/plugin/Resizable.mjs +3 -3
- package/src/remotes/Api.mjs +1 -1
- package/src/selection/CircleModel.mjs +1 -1
- package/src/selection/DateSelectorModel.mjs +1 -1
- package/src/selection/GalleryModel.mjs +1 -1
- package/src/selection/HelixModel.mjs +1 -1
- package/src/selection/ListModel.mjs +1 -1
- package/src/selection/Model.mjs +1 -1
- package/src/selection/TreeAccordionModel.mjs +2 -2
- package/src/selection/TreeModel.mjs +4 -4
- package/src/selection/grid/CellColumnModel.mjs +1 -1
- package/src/selection/grid/CellColumnRowModel.mjs +1 -1
- package/src/selection/grid/CellModel.mjs +1 -1
- package/src/selection/grid/CellRowModel.mjs +1 -1
- package/src/selection/grid/ColumnModel.mjs +1 -1
- package/src/selection/grid/RowModel.mjs +1 -1
- package/src/selection/menu/ListModel.mjs +1 -1
- package/src/selection/table/CellColumnModel.mjs +1 -1
- package/src/selection/table/CellColumnRowModel.mjs +1 -1
- package/src/selection/table/CellModel.mjs +1 -1
- package/src/selection/table/CellRowModel.mjs +1 -1
- package/src/selection/table/ColumnModel.mjs +1 -1
- package/src/selection/table/RowModel.mjs +1 -1
- package/src/sitemap/Component.mjs +1 -1
- package/src/sitemap/Model.mjs +1 -1
- package/src/sitemap/Store.mjs +1 -1
- package/src/tab/Container.mjs +1 -1
- package/src/tab/Strip.mjs +1 -1
- package/src/tab/header/Button.mjs +1 -1
- package/src/tab/header/Toolbar.mjs +1 -1
- package/src/table/Container.mjs +1 -1
- package/src/table/View.mjs +1 -1
- package/src/table/header/Button.mjs +1 -1
- package/src/table/header/Toolbar.mjs +1 -1
- package/src/toolbar/Base.mjs +1 -1
- package/src/toolbar/Breadcrumb.mjs +1 -1
- package/src/toolbar/Paging.mjs +1 -1
- package/src/tooltip/Base.mjs +10 -7
- package/src/tree/Accordion.mjs +1 -1
- package/src/tree/List.mjs +52 -46
- package/src/util/Array.mjs +1 -1
- package/src/util/ClassSystem.mjs +1 -1
- package/src/util/Css.mjs +1 -1
- package/src/util/Date.mjs +1 -1
- package/src/util/Function.mjs +31 -31
- package/src/util/HashHistory.mjs +1 -1
- package/src/util/KeyNavigation.mjs +1 -1
- package/src/util/Logger.mjs +9 -27
- package/src/util/Matrix.mjs +1 -1
- package/src/util/String.mjs +2 -2
- package/src/util/Style.mjs +1 -1
- package/src/util/VDom.mjs +1 -1
- package/src/util/VNode.mjs +1 -1
- package/src/util/_export.mjs +1 -1
- package/src/vdom/Helper.mjs +7 -3
- package/src/worker/App.mjs +10 -9
- package/src/worker/Base.mjs +1 -1
- package/src/worker/Canvas.mjs +1 -1
- package/src/worker/Data.mjs +1 -1
- package/src/worker/Manager.mjs +38 -33
- package/src/worker/ServiceBase.mjs +1 -1
- package/src/worker/Task.mjs +67 -0
- package/src/worker/VDom.mjs +1 -1
- package/src/worker/mixin/RemoteMethodAccess.mjs +1 -1
- package/test/components/app.mjs +1 -1
- package/test/components/files/form/field/Select.mjs +2 -2
- package/test/components/files/form/field/Text.mjs +90 -0
- package/test/components/files/{component/ChipList.mjs → list/Chip.mjs} +3 -3
- package/test/components/siesta.js +23 -24
- package/resources/data/deck/learnneo/p/2023-10-01T18-29-19-158Z.md +0 -97
- package/resources/data/deck/learnneo/p/GuideEvents.md +0 -153
- package/resources/data/deck/learnneo/p/Setup.md +0 -1
- package/resources/data/deck/learnneo/pages/whyneo.md +0 -80
- package/resources/data/deck/learnneo/t.json +0 -38
- package/src/data/field/Field.mjs +0 -48
- package/src/data/field/Float.mjs +0 -42
- package/src/data/field/Integer.mjs +0 -42
- package/src/data/field/String.mjs +0 -42
- /package/resources/data/deck/learnneo/{p → pages}/2023-10-08T20-37-30-658Z.md +0 -0
- /package/resources/data/deck/learnneo/{p → pages}/2023-10-08T22-22-11-013Z.md +0 -0
- /package/resources/data/deck/learnneo/{p → pages}/MainThreadAddonExample.md +0 -0
- /package/resources/data/deck/learnneo/{p → pages}/MainThreadAddonIntro.md +0 -0
- /package/resources/data/deck/learnneo/{p → pages}/RSP.md +0 -0
- /package/resources/data/deck/learnneo/{p → pages}/WhatAboutHTML.md +0 -0
- /package/resources/data/deck/learnneo/{p → pages}/stylesheet.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T21-54-52-300Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T21-55-30-948Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-23-55-083Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-24-07-886Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-24-52-295Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-25-03-853Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-43-58-924Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-44-28-881Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-44-41-791Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-45-21-032Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-49-22-078Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-27T22-50-20-626Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-28T16-58-47-786Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-28T16-58-55-192Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-28T17-10-18-058Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-28T17-10-42-296Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-28T17-11-34-653Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-28T17-13-09-994Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-28T21-32-14-420Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T01-43-32-431Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T15-56-54-485Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T15-57-11-499Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T16-00-13-223Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T18-34-25-826Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T18-36-08-226Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T19-31-30-507Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T19-31-55-091Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T20-03-42-628Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-29T20-21-20-669Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-30T19-04-30-990Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-31T18-43-56-338Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-31T18-51-50-682Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-31T18-54-04-176Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-31T22-11-55-555Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-31T23-00-41-222Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-31T23-25-40-735Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2022-12-31T23-25-51-014Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T17-49-18-429Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T18-47-39-766Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T19-04-22-830Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-11-58-025Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-12-37-340Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-13-13-880Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-18-23-886Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-18-31-316Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-18-42-290Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-19-57-020Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-22-31-184Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-22-38-317Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-22-47-693Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-23-17-716Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-23-28-532Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-25-23-899Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-25-59-742Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T21-26-53-748Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-01T23-38-42-863Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-06T23-21-31-685Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-06T23-21-59-596Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-06T23-44-02-340Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-06T23-46-36-687Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-06T23-46-45-783Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T01-06-31-267Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T01-25-12-557Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T02-09-07-802Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T02-09-19-678Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T02-11-26-333Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T17-22-48-841Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-46-11-806Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-47-23-682Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-47-32-064Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-47-57-045Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-48-03-791Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-48-32-466Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-48-51-322Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-49-52-741Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-52-03-556Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-57-36-333Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-08T20-57-51-136Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-09T00-07-37-951Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-09T00-35-40-671Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-10T01-29-38-148Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-10T01-43-12-166Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-10T02-21-54-303Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T19-55-24-735Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T20-08-27-068Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T20-23-38-411Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T20-37-06-267Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T21-05-57-708Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T21-48-17-258Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T22-05-05-799Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T22-08-30-863Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-13T23-01-50-449Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T00-33-05-958Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T00-41-59-081Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T13-50-28-199Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T13-59-20-275Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T14-03-29-456Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T14-27-57-678Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T17-30-18-228Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T18-28-39-316Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T18-28-44-115Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T18-28-49-548Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T18-40-13-758Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-14T19-29-15-291Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-15T20-03-30-073Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-15T22-07-52-073Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-15T22-22-13-517Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-16T16-03-40-770Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-16T20-21-56-859Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-16T20-24-09-690Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-20T12-51-22-646Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-20T13-06-46-614Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-20T13-08-51-600Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-20T15-20-13-363Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-20T15-34-58-813Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T16-33-20-458Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T16-45-28-263Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T16-56-25-452Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T17-28-31-493Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T19-49-51-918Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T20-08-24-452Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T20-35-54-947Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T20-54-47-603Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T20-56-28-184Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T20-57-32-927Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-21T23-13-33-394Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-28T19-11-37-464Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-28T20-43-41-188Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-28T20-53-56-476Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-28T20-58-43-776Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-28T22-18-41-259Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-28T22-24-34-808Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-29T16-25-24-528Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-29T21-14-32-588Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-31T19-24-53-504Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-31T20-33-55-855Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-31T20-34-30-261Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-01-31T20-52-53-367Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T15-18-35-682Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T15-49-47-597Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T18-58-57-808Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T20-07-11-288Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T20-09-50-169Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T20-19-42-740Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T20-23-56-013Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-04T20-28-12-391Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-05T00-20-32-554Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-05T00-35-56-282Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-05T15-36-57-182Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-05T17-39-51-712Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-05T17-44-53-815Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-05T17-45-40-114Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-05T18-12-14-489Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-02-06T00-14-54-457Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-06-28T18-03-14-313Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-06-28T18-26-17-290Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-06-28T21-16-24-034Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-06-28T21-16-34-972Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-06-28T21-28-28-379Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-06-29T23-15-10-411Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-07-01T21-54-31-329Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-07-31T00-26-03-842Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-07-31T00-31-51-933Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-10-01T18-29-19-158Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-10-08T20-37-30-658Z.md +0 -0
- /package/resources/data/deck/training/{p → pages}/2023-10-08T22-22-11-013Z.md +0 -0
- /package/resources/data/deck/training/{t.json → tree.json} +0 -0
@@ -1,31 +1,21 @@
|
|
1
|
-
##Introduction
|
1
|
+
## Introduction
|
2
2
|
|
3
3
|
In this topic you'll create an application that fetches data on earthquakes in Iceland,
|
4
4
|
and show the information in two views: a table, and a map.
|
5
5
|
|
6
|
-
You'll do this in a series of labs
|
7
|
-
|
8
|
-
1. Generate a workspace
|
9
|
-
1. Generate a starter app
|
10
|
-
1. Learn some debugging tricks
|
11
|
-
1. Generate the earthquakes starter app
|
12
|
-
1. Refactor a config into its own class
|
13
|
-
1. Add a map
|
14
|
-
1. Listen to events
|
15
|
-
1. Make the app multi-window
|
6
|
+
You'll do this in a series of labs.
|
16
7
|
|
17
8
|
## Goals
|
18
9
|
|
19
|
-
What
|
10
|
+
What are the goals of this lengthy topic?
|
20
11
|
|
21
12
|
- To give you hands-on coding a simple app
|
22
13
|
- To introduce fundamental Neo concepts
|
23
|
-
- To do some coding without emphasizing syntax details
|
24
14
|
|
25
|
-
Most of these labs are copy-and-paste because we're focusing on _what_
|
15
|
+
Most of these labs are copy-and-paste because we're focusing on _what_ the code is doing on rather than _how_.
|
26
16
|
|
27
|
-
|
28
|
-
|
17
|
+
For this tutorial don't worry about syntax details. Other tutorials and guides will spend more and
|
18
|
+
more time on syntax.e
|
29
19
|
|
30
20
|
## Key concepts
|
31
21
|
|
@@ -45,11 +35,19 @@ A word of advice: Keep a high-level perspective, especially early on. We'll have
|
|
45
35
|
into the code, and we'll do most things multiple times. In other words, focus on what you're accomplishing,
|
46
36
|
and don't worry about syntax details.
|
47
37
|
|
48
|
-
## Lab. Generate a
|
38
|
+
## Lab. Generate a Workspace
|
49
39
|
|
50
40
|
In this lab, you'll generate a Neo.mjs workspace and run the starter app.
|
51
41
|
|
52
42
|
<!-- lab -->
|
43
|
+
|
44
|
+
<details>
|
45
|
+
<summary>Wait!</summary>
|
46
|
+
You may already have a workspace! If so, you can skip this lab. For example, if you followed the _Getting Started > Setup_ topic, above, you should already have a workspace.
|
47
|
+
|
48
|
+
If you don't have a workspace, then continue on to the next step.
|
49
|
+
</details>
|
50
|
+
|
53
51
|
<details>
|
54
52
|
<summary>Use the command-line to generate the workspace</summary>
|
55
53
|
|
@@ -58,7 +56,7 @@ then run
|
|
58
56
|
|
59
57
|
npx neo-app@latest
|
60
58
|
|
61
|
-
You'll be
|
59
|
+
You'll be prompted for a workspace name, starter app name, etc — accept the default for everything.
|
62
60
|
As the command finishes it starts a server and opens a browser window.
|
63
61
|
</details>
|
64
62
|
|
@@ -126,8 +124,8 @@ Parallel processing — along wih the efficient way the `neomjs-vdom-worker`
|
|
126
124
|
|
127
125
|
##Commonly-used Scripts
|
128
126
|
|
129
|
-
If you look in the `package.json` script block you'll see several scripts used for generating applications
|
130
|
-
doing builds, and starting a server. We'll use several of them throughout the tutorials.
|
127
|
+
If you look in the `package.json` script block you'll see several scripts used for generating applications
|
128
|
+
and classes, doing builds, and starting a server. We'll use several of them throughout the tutorials.
|
131
129
|
|
132
130
|
- create-app — creates a simple demo app
|
133
131
|
- create-app-minimal — creates a application shell with no content
|
@@ -137,7 +135,7 @@ doing builds, and starting a server. We'll use several of them throughout the tu
|
|
137
135
|
- watch-themes — creates app .css as you save changes to any app
|
138
136
|
|
139
137
|
|
140
|
-
##Lab. Create the
|
138
|
+
##Lab. Create the Earthquakes Starter App
|
141
139
|
|
142
140
|
<!-- lab -->
|
143
141
|
|
@@ -193,9 +191,9 @@ following class definition:
|
|
193
191
|
|
194
192
|
<pre data-javascript>
|
195
193
|
|
196
|
-
import Base
|
197
|
-
import Controller
|
198
|
-
import ViewModel
|
194
|
+
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
195
|
+
import Controller from './MainViewController.mjs';
|
196
|
+
import ViewModel from './MainViewModel.mjs';
|
199
197
|
|
200
198
|
class MainView extends Base {
|
201
199
|
static config = {
|
@@ -210,7 +208,7 @@ class MainView extends Base {
|
|
210
208
|
}
|
211
209
|
}
|
212
210
|
|
213
|
-
Neo.
|
211
|
+
Neo.setupClass(MainView);
|
214
212
|
|
215
213
|
export default MainView;
|
216
214
|
</pre>
|
@@ -227,15 +225,15 @@ are no items in the starter app. The `layout` config specifies how the items are
|
|
227
225
|
Let's add a button. To do that, add an import for the button base class, then configure it
|
228
226
|
in the container's `items:[]`. If you were to read the API docs for buttons, you'd see
|
229
227
|
that buttons have various configs, such as `text`, which is the button text, `iconCls`, which
|
230
|
-
is typically a FontAwesome CSS class used to show an icon, and `handler`, which
|
228
|
+
is typically a FontAwesome CSS class used to show an icon, and `handler`, which specifies
|
231
229
|
which method to run when the button is clicked. We'll use `text`.
|
232
230
|
|
233
231
|
<pre data-javascript>
|
234
232
|
|
235
|
-
import Base
|
236
|
-
import Button
|
237
|
-
import Controller
|
238
|
-
import ViewModel
|
233
|
+
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
234
|
+
import Button from '../../../node_modules/neo.mjs/src/button/Base.mjs';
|
235
|
+
import Controller from './MainViewController.mjs';
|
236
|
+
import ViewModel from './MainViewModel.mjs';
|
239
237
|
|
240
238
|
class MainView extends Base {
|
241
239
|
static config = {
|
@@ -253,7 +251,7 @@ class MainView extends Base {
|
|
253
251
|
}
|
254
252
|
}
|
255
253
|
|
256
|
-
Neo.
|
254
|
+
Neo.setupClass(MainView);
|
257
255
|
|
258
256
|
export default MainView;
|
259
257
|
</pre>
|
@@ -307,19 +305,20 @@ choose that worker in the DevTools JavaScript context dropdown.
|
|
307
305
|
|
308
306
|
<img width="80%" src="https://s3.amazonaws.com/mjs.neo.learning.images/DevToolsJavaScriptContext.png">
|
309
307
|
|
310
|
-
A basic debugging (and coding!) task is getting a
|
311
|
-
You can then
|
308
|
+
A basic debugging (and coding!) task is getting a reference to a component.
|
309
|
+
You can then get or update the component's state and run its methods.
|
310
|
+
|
311
|
+
When you're debugging, there are a few ways to get a component reference.
|
312
312
|
|
313
|
-
There are a few ways to get a component reference.
|
314
|
-
- `Neo.manager.Component.items` <tt>// Returns [Component]</tt>
|
315
|
-
- `Neo.find({property:'value'})` <tt>// Returns [{}] of instances<t/t>
|
316
|
-
- `Neo.findFirst({property:'value'})` <tt>// Returns first instance</tt>
|
317
313
|
- Doing a Shift-Ctrl-right-click on a component
|
314
|
+
- `Neo.manager.Component.items` — Returns an array of all components in the app
|
315
|
+
- `Neo.find({property:'value'})` — Returns an array of components matching the specified properties
|
316
|
+
- `Neo.findFirst({property:'value'})` — Returns the first component that matches the specified properties
|
318
317
|
|
319
318
|
Keep in mind that `Neo.manager.Component.items`, `Neo.find()` and `Neo.findFirst()`
|
320
|
-
are debugging aids _only_, and _should never be used in app logic_
|
319
|
+
are debugging aids _only_, and <u>_should never be used in app logic_</u>.
|
321
320
|
|
322
|
-
Why? There's nothing stopping you from using
|
321
|
+
Why? There's nothing stopping you from using these statements, and they would work fine,
|
323
322
|
but those methods completely break encapsulation and scoping principles! Their
|
324
323
|
use would make an application brittle and hard to maintain.
|
325
324
|
|
@@ -331,7 +330,7 @@ context, we can inspect the button.
|
|
331
330
|
<img width="80%" src="https://s3.amazonaws.com/mjs.neo.learning.images/earthquakes/EarthquakesFindFirstButton.png">
|
332
331
|
|
333
332
|
Once we find the component, we can expand it and scroll down until we see the grayed-out properties —
|
334
|
-
those are
|
333
|
+
those are set/get properties.
|
335
334
|
|
336
335
|
We can choose whatever property we're interested in, and click on the ellipses. That runs the getter, and if
|
337
336
|
we change the value we'll be running the setter. An obvious button property to change is `text`.
|
@@ -355,6 +354,8 @@ and inspect or update component.
|
|
355
354
|
In this lab you'll get a little debugging practice by getting component references, changing properties,
|
356
355
|
and runing methods.
|
357
356
|
|
357
|
+
Remember that when using the debugger console you need to be in the _neo-app-worker_ context.
|
358
|
+
|
358
359
|
<!-- lab -->
|
359
360
|
|
360
361
|
<details>
|
@@ -430,10 +431,10 @@ Edit `apps/earthquakes/view/MainView.mjs` and add a method.
|
|
430
431
|
|
431
432
|
<pre data-javascript>
|
432
433
|
|
433
|
-
import Base
|
434
|
-
import Button
|
435
|
-
import Controller
|
436
|
-
import ViewModel
|
434
|
+
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
435
|
+
import Button from '../../../node_modules/neo.mjs/src/button/Base.mjs';
|
436
|
+
import Controller from './MainViewController.mjs';
|
437
|
+
import ViewModel from './MainViewModel.mjs';
|
437
438
|
|
438
439
|
class MainView extends Base {
|
439
440
|
static config = {
|
@@ -453,12 +454,12 @@ class MainView extends Base {
|
|
453
454
|
text: 'Button!'
|
454
455
|
}],
|
455
456
|
}
|
456
|
-
doFoo
|
457
|
+
doFoo() {
|
457
458
|
console.log('foo!');
|
458
459
|
}
|
459
460
|
}
|
460
461
|
|
461
|
-
Neo.
|
462
|
+
Neo.setupClass(MainView);
|
462
463
|
|
463
464
|
export default MainView;
|
464
465
|
</pre>
|
@@ -491,9 +492,9 @@ Then run `doFoo()` using that variable.
|
|
491
492
|
|
492
493
|
<!-- /lab -->
|
493
494
|
|
494
|
-
At this point we have a application with minimal content. You also know how to do some debugging.
|
495
|
+
At this point we have a application with minimal content. You also know how to do some debugging. Now let's do something more interesting.
|
495
496
|
|
496
|
-
##Lab. Fetch
|
497
|
+
##Lab. Fetch Earthquakes Data and Show it in a Table
|
497
498
|
|
498
499
|
<!-- lab -->
|
499
500
|
|
@@ -504,11 +505,11 @@ Replace the button with a table by replacing `MainView.mjs` with the following c
|
|
504
505
|
|
505
506
|
<pre data-javascript>
|
506
507
|
|
507
|
-
import Base
|
508
|
-
import Table
|
509
|
-
import Store
|
510
|
-
import Controller
|
511
|
-
import ViewModel
|
508
|
+
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
509
|
+
import Table from '../../../node_modules/neo.mjs/src/table/Container.mjs';
|
510
|
+
import Store from '../../../node_modules/neo.mjs/src/data/Store.mjs';
|
511
|
+
import Controller from './MainViewController.mjs';
|
512
|
+
import ViewModel from './MainViewModel.mjs';
|
512
513
|
|
513
514
|
class MainView extends Base {
|
514
515
|
static config = {
|
@@ -541,21 +542,23 @@ class MainView extends Base {
|
|
541
542
|
columns: [{
|
542
543
|
dataField: "timestamp",
|
543
544
|
text: "Date",
|
544
|
-
renderer: (data) => data.value.toLocaleDateString(undefined,
|
545
|
+
renderer: (data) => data.value.toLocaleDateString(undefined,
|
546
|
+
{weekday: "long", year: "numeric", month: "long", day: "numeric"}
|
547
|
+
)
|
545
548
|
}, {
|
546
549
|
dataField: "humanReadableLocation",
|
547
|
-
text: "Location"
|
550
|
+
text: "Location"
|
548
551
|
}, {
|
549
552
|
dataField: "size",
|
550
553
|
text: "Magnitude",
|
551
554
|
align: "right",
|
552
|
-
renderer: (data) => data.value.toLocaleString()
|
553
|
-
}]
|
554
|
-
}]
|
555
|
+
renderer: (data) => data.value.toLocaleString()
|
556
|
+
}]
|
557
|
+
}]
|
555
558
|
}
|
556
559
|
}
|
557
560
|
|
558
|
-
Neo.
|
561
|
+
Neo.setupClass(MainView);
|
559
562
|
|
560
563
|
export default MainView;
|
561
564
|
</pre>
|
@@ -657,7 +660,7 @@ By default, a column just runs `toString()` on the record property specified in
|
|
657
660
|
You can also provide a `renderer`, which is a function you provide to format the value any way you'd like.
|
658
661
|
In the code above it's using standard JavaScript methods to format the data and magnitude.
|
659
662
|
|
660
|
-
##
|
663
|
+
## Defining Views as Reusable Components
|
661
664
|
|
662
665
|
The way we've coded the app, the grid is _not_ reusable. In other words, if we needed two identical grids we'd
|
663
666
|
have to copy-and-paste the same config block.
|
@@ -702,7 +705,7 @@ class Table extends Base {
|
|
702
705
|
}
|
703
706
|
}
|
704
707
|
|
705
|
-
Neo.
|
708
|
+
Neo.setupClass(Table);
|
706
709
|
|
707
710
|
export default Table;
|
708
711
|
</pre>
|
@@ -744,9 +747,9 @@ You can confirm that an instance _was created_ by using the DevTools console and
|
|
744
747
|
|
745
748
|
<pre data-javascript>
|
746
749
|
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
750
|
+
import Controller from './MainViewController.mjs';
|
747
751
|
import EarthquakesTable from './earthquakes/Table.mjs';
|
748
752
|
import Store from '../../../node_modules/neo.mjs/src/data/Store.mjs';
|
749
|
-
import Controller from './MainViewController.mjs';
|
750
753
|
import ViewModel from './MainViewModel.mjs';
|
751
754
|
|
752
755
|
class MainView extends Base {
|
@@ -781,7 +784,7 @@ static config = {
|
|
781
784
|
}
|
782
785
|
}
|
783
786
|
|
784
|
-
Neo.
|
787
|
+
Neo.setupClass(MainView);
|
785
788
|
|
786
789
|
export default MainView;
|
787
790
|
</pre>
|
@@ -868,11 +871,10 @@ View models have two key configs: `data` and `stores`.
|
|
868
871
|
Add a `stores` property to the view model config that holds a copy of the store.
|
869
872
|
|
870
873
|
<pre data-javascript>
|
871
|
-
|
872
874
|
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
875
|
+
import Controller from './MainViewController.mjs';
|
873
876
|
import EarthquakesTable from './earthquakes/Table.mjs';
|
874
877
|
import Store from '../../../node_modules/neo.mjs/src/data/Store.mjs';
|
875
|
-
import Controller from './MainViewController.mjs';
|
876
878
|
import ViewModel from './MainViewModel.mjs';
|
877
879
|
|
878
880
|
class MainView extends Base {
|
@@ -888,17 +890,17 @@ class MainView extends Base {
|
|
888
890
|
module: Store,
|
889
891
|
model: {
|
890
892
|
fields: [{
|
891
|
-
name: "humanReadableLocation"
|
893
|
+
name: "humanReadableLocation"
|
892
894
|
}, {
|
893
|
-
name: "size"
|
895
|
+
name: "size"
|
894
896
|
}, {
|
895
897
|
name: "timestamp",
|
896
|
-
type: "Date"
|
897
|
-
}]
|
898
|
+
type: "Date"
|
899
|
+
}]
|
898
900
|
},
|
899
901
|
url: "https://apis.is/earthquake/is",
|
900
902
|
responseRoot: "results",
|
901
|
-
autoLoad: true
|
903
|
+
autoLoad: true
|
902
904
|
},
|
903
905
|
}
|
904
906
|
},
|
@@ -912,43 +914,43 @@ class MainView extends Base {
|
|
912
914
|
module: Store,
|
913
915
|
model: {
|
914
916
|
fields: [{
|
915
|
-
name: "humanReadableLocation"
|
917
|
+
name: "humanReadableLocation"
|
916
918
|
}, {
|
917
|
-
name: "size"
|
919
|
+
name: "size"
|
918
920
|
}, {
|
919
921
|
name: "timestamp",
|
920
|
-
type: "Date"
|
921
|
-
}]
|
922
|
+
type: "Date"
|
923
|
+
}]
|
922
924
|
},
|
923
925
|
url: "https://apis.is/earthquake/is",
|
924
926
|
responseRoot: "results",
|
925
|
-
autoLoad: true
|
927
|
+
autoLoad: true
|
926
928
|
},
|
927
|
-
style: {width: '100%'}
|
929
|
+
style: {width: '100%'}
|
928
930
|
},{
|
929
931
|
module: EarthquakesTable,
|
930
932
|
store: {
|
931
933
|
module: Store,
|
932
934
|
model: {
|
933
935
|
fields: [{
|
934
|
-
name: "humanReadableLocation"
|
936
|
+
name: "humanReadableLocation"
|
935
937
|
}, {
|
936
|
-
name: "size"
|
938
|
+
name: "size"
|
937
939
|
}, {
|
938
940
|
name: "timestamp",
|
939
|
-
type: "Date"
|
940
|
-
}]
|
941
|
+
type: "Date"
|
942
|
+
}]
|
941
943
|
},
|
942
944
|
url: "https://apis.is/earthquake/is",
|
943
945
|
responseRoot: "results",
|
944
|
-
autoLoad: true
|
946
|
+
autoLoad: true
|
945
947
|
},
|
946
|
-
style: {width: '100%'}
|
948
|
+
style: {width: '100%'}
|
947
949
|
}],
|
948
950
|
}
|
949
951
|
}
|
950
952
|
|
951
|
-
Neo.
|
953
|
+
Neo.setupClass(MainView);
|
952
954
|
|
953
955
|
export default MainView;
|
954
956
|
|
@@ -987,9 +989,9 @@ Replace each table's `store` config with the binding.
|
|
987
989
|
<pre data-javascript>
|
988
990
|
|
989
991
|
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
992
|
+
import Controller from './MainViewController.mjs';
|
990
993
|
import EarthquakesTable from './earthquakes/Table.mjs';
|
991
994
|
import Store from '../../../node_modules/neo.mjs/src/data/Store.mjs';
|
992
|
-
import Controller from './MainViewController.mjs';
|
993
995
|
import ViewModel from './MainViewModel.mjs';
|
994
996
|
|
995
997
|
class MainView extends Base {
|
@@ -1004,17 +1006,17 @@ class MainView extends Base {
|
|
1004
1006
|
module: Store,
|
1005
1007
|
model: {
|
1006
1008
|
fields: [{
|
1007
|
-
name: "humanReadableLocation"
|
1009
|
+
name: "humanReadableLocation"
|
1008
1010
|
}, {
|
1009
|
-
name: "size"
|
1011
|
+
name: "size"
|
1010
1012
|
}, {
|
1011
1013
|
name: "timestamp",
|
1012
|
-
type: "Date"
|
1013
|
-
}]
|
1014
|
+
type: "Date"
|
1015
|
+
}]
|
1014
1016
|
},
|
1015
1017
|
url: "https://apis.is/earthquake/is",
|
1016
1018
|
responseRoot: "results",
|
1017
|
-
autoLoad: true
|
1019
|
+
autoLoad: true
|
1018
1020
|
},
|
1019
1021
|
}
|
1020
1022
|
},
|
@@ -1025,18 +1027,18 @@ class MainView extends Base {
|
|
1025
1027
|
bind: {
|
1026
1028
|
store: 'stores.earthquakes'
|
1027
1029
|
},
|
1028
|
-
style: {width: '100%'}
|
1030
|
+
style: {width: '100%'}
|
1029
1031
|
},{
|
1030
1032
|
module: EarthquakesTable,
|
1031
1033
|
bind: {
|
1032
1034
|
store: 'stores.earthquakes'
|
1033
1035
|
},
|
1034
|
-
style: {width: '100%'}
|
1036
|
+
style: {width: '100%'}
|
1035
1037
|
}],
|
1036
1038
|
}
|
1037
1039
|
}
|
1038
1040
|
|
1039
|
-
Neo.
|
1041
|
+
Neo.setupClass(MainView);
|
1040
1042
|
|
1041
1043
|
export default MainView;
|
1042
1044
|
</pre>
|
@@ -1071,11 +1073,10 @@ Since the starter app already provides `MainViewModel`, all we need to do is cop
|
|
1071
1073
|
Here's the resulting code you should place into `MainViewModel.mjs`.
|
1072
1074
|
|
1073
1075
|
<pre data-javascript>
|
1076
|
+
import Model from '../../../node_modules/neo.mjs/src/model/Component.mjs';
|
1077
|
+
import Store from '../../../node_modules/neo.mjs/src/data/Store.mjs';
|
1074
1078
|
|
1075
|
-
|
1076
|
-
import Store from '../../../node_modules/neo.mjs/src/data/Store.mjs';
|
1077
|
-
|
1078
|
-
class MainViewModel extends Base {
|
1079
|
+
class MainViewModel extends Model {
|
1079
1080
|
static config = {
|
1080
1081
|
className: 'Earthquakes.view.MainViewModel',
|
1081
1082
|
|
@@ -1085,23 +1086,23 @@ class MainViewModel extends Base {
|
|
1085
1086
|
module: Store,
|
1086
1087
|
model: {
|
1087
1088
|
fields: [{
|
1088
|
-
name: "humanReadableLocation"
|
1089
|
+
name: "humanReadableLocation"
|
1089
1090
|
}, {
|
1090
|
-
name: "size"
|
1091
|
+
name: "size"
|
1091
1092
|
}, {
|
1092
1093
|
name: "timestamp",
|
1093
|
-
type: "Date"
|
1094
|
-
}]
|
1094
|
+
type: "Date"
|
1095
|
+
}]
|
1095
1096
|
},
|
1096
1097
|
url: "https://apis.is/earthquake/is",
|
1097
1098
|
responseRoot: "results",
|
1098
|
-
autoLoad: true
|
1099
|
+
autoLoad: true
|
1099
1100
|
},
|
1100
1101
|
}
|
1101
1102
|
}
|
1102
1103
|
}
|
1103
1104
|
|
1104
|
-
Neo.
|
1105
|
+
Neo.setupClass(MainViewModel);
|
1105
1106
|
|
1106
1107
|
export default MainViewModel;
|
1107
1108
|
</pre>
|
@@ -1109,13 +1110,12 @@ export default MainViewModel;
|
|
1109
1110
|
And you need to remove the `stores` config from the main view as follows.
|
1110
1111
|
|
1111
1112
|
<pre data-javascript>
|
1112
|
-
|
1113
|
-
import Base from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
1114
|
-
import EarthquakesTable from './earthquakes/Table.mjs';
|
1113
|
+
import Container from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
1115
1114
|
import Controller from './MainViewController.mjs';
|
1115
|
+
import EarthquakesTable from './earthquakes/Table.mjs';
|
1116
1116
|
import ViewModel from './MainViewModel.mjs';
|
1117
1117
|
|
1118
|
-
class MainView extends
|
1118
|
+
class MainView extends Container {
|
1119
1119
|
static config = {
|
1120
1120
|
className: 'Earthquakes.view.MainView',
|
1121
1121
|
ntype: 'earthquakes-main',
|
@@ -1130,18 +1130,18 @@ class MainView extends Base {
|
|
1130
1130
|
bind: {
|
1131
1131
|
store: 'stores.earthquakes'
|
1132
1132
|
},
|
1133
|
-
style: {width: '100%'}
|
1133
|
+
style: {width: '100%'}
|
1134
1134
|
},{
|
1135
1135
|
module: EarthquakesTable,
|
1136
1136
|
bind: {
|
1137
1137
|
store: 'stores.earthquakes'
|
1138
1138
|
},
|
1139
|
-
style: {width: '100%'}
|
1140
|
-
}]
|
1139
|
+
style: {width: '100%'}
|
1140
|
+
}]
|
1141
1141
|
}
|
1142
1142
|
}
|
1143
1143
|
|
1144
|
-
Neo.
|
1144
|
+
Neo.setupClass(MainView);
|
1145
1145
|
|
1146
1146
|
export default MainView;
|
1147
1147
|
</pre>
|
@@ -1194,7 +1194,7 @@ Marker store records are required to have these properties:
|
|
1194
1194
|
<!-- lab -->
|
1195
1195
|
|
1196
1196
|
<details>
|
1197
|
-
<summary>
|
1197
|
+
<summary>Specify the main-thread add-on</summary>
|
1198
1198
|
|
1199
1199
|
Edit `apps/earthquakes/neo-config.json` and add entries for the Google Maps add-on and the map key.
|
1200
1200
|
|
@@ -1278,7 +1278,7 @@ and show it implace of the top table. The map should be centered on Iceland. To
|
|
1278
1278
|
lat: 64.8014187,
|
1279
1279
|
lng: -18.3096357
|
1280
1280
|
},
|
1281
|
-
zoom: 6
|
1281
|
+
zoom: 6
|
1282
1282
|
}
|
1283
1283
|
</pre>
|
1284
1284
|
|
@@ -1286,13 +1286,13 @@ If we replace the top table with the map, `view/MainView.mjs` ends up with this
|
|
1286
1286
|
|
1287
1287
|
<pre data-javascript>
|
1288
1288
|
|
1289
|
-
import
|
1290
|
-
import EarthquakesTable from './earthquakes/Table.mjs';
|
1289
|
+
import Container from '../../../node_modules/neo.mjs/src/container/Base.mjs';
|
1291
1290
|
import Controller from './MainViewController.mjs';
|
1292
|
-
import
|
1291
|
+
import EarthquakesTable from './earthquakes/Table.mjs';
|
1293
1292
|
import GoogleMapsComponent from '../../../src/component/wrapper/GoogleMaps.mjs';
|
1293
|
+
import ViewModel from './MainViewModel.mjs';
|
1294
1294
|
|
1295
|
-
class MainView extends
|
1295
|
+
class MainView extends Container {
|
1296
1296
|
static config = {
|
1297
1297
|
className: 'Earthquakes.view.MainView',
|
1298
1298
|
ntype: 'earthquakes-main',
|
@@ -1309,7 +1309,7 @@ class MainView extends Base {
|
|
1309
1309
|
lat: 64.8014187,
|
1310
1310
|
lng: -18.3096357
|
1311
1311
|
},
|
1312
|
-
zoom: 6
|
1312
|
+
zoom: 6
|
1313
1313
|
},{
|
1314
1314
|
module: EarthquakesTable,
|
1315
1315
|
bind: {
|
@@ -1323,10 +1323,9 @@ class MainView extends Base {
|
|
1323
1323
|
}
|
1324
1324
|
}
|
1325
1325
|
|
1326
|
-
Neo.
|
1326
|
+
Neo.setupClass(MainView);
|
1327
1327
|
|
1328
1328
|
export default MainView;
|
1329
|
-
|
1330
1329
|
</pre>
|
1331
1330
|
|
1332
1331
|
<img style="width:80%" src="https://s3.amazonaws.com/mjs.neo.learning.images/earthquakes/CenteredMap.png"></img>
|
@@ -1406,4 +1405,4 @@ Save, refresh, and confirm that you see the value logged when you click on a map
|
|
1406
1405
|
|
1407
1406
|
|
1408
1407
|
|
1409
|
-
<!-- /lab -->
|
1408
|
+
<!-- /lab -->
|
@@ -22,21 +22,21 @@ class MainView extends Base {
|
|
22
22
|
module: TextField,
|
23
23
|
labelText : 'First name',
|
24
24
|
listeners: {
|
25
|
-
change: data=>
|
26
|
-
focusEnter: data=>
|
25
|
+
change: data => Neo.Main.log({value:data.value}),
|
26
|
+
focusEnter: data => Neo.Main.log({value: `Entering ${data.component.labelText}`})
|
27
27
|
}
|
28
28
|
},
|
29
29
|
{
|
30
30
|
module: TextField,
|
31
31
|
labelText : 'Last name',
|
32
32
|
listeners: {
|
33
|
-
change: data=>
|
34
|
-
focusEnter: data=>
|
33
|
+
change: data => Neo.Main.log({value: data.value}),
|
34
|
+
focusEnter: data => Neo.Main.log({value: `Entering ${data.component.labelText}`})
|
35
35
|
}
|
36
36
|
}]
|
37
37
|
}
|
38
38
|
}
|
39
|
-
Neo.
|
39
|
+
Neo.setupClass(MainView);
|
40
40
|
</pre>
|
41
41
|
|
42
42
|
If you run the example, and open the browser's debugger, you'll see the console being logged as you type or give
|
@@ -62,7 +62,7 @@ class MainViewController extends Controller {
|
|
62
62
|
console.log(data.value);
|
63
63
|
}
|
64
64
|
}
|
65
|
-
Neo.
|
65
|
+
Neo.setupClass(MainViewController);
|
66
66
|
|
67
67
|
|
68
68
|
class MainView extends Base {
|
@@ -79,7 +79,7 @@ class MainView extends Base {
|
|
79
79
|
}]
|
80
80
|
}
|
81
81
|
}
|
82
|
-
Neo.
|
82
|
+
Neo.setupClass(MainView);
|
83
83
|
</pre>
|
84
84
|
|
85
85
|
(It's important to keep in mind that in Neo.mjs, all class definitions are coded in their own
|
@@ -122,7 +122,7 @@ class ToggleButton extends Button {
|
|
122
122
|
this.checked = !this.checked;
|
123
123
|
}
|
124
124
|
}
|
125
|
-
Neo.
|
125
|
+
Neo.setupClass(ToggleButton);
|
126
126
|
|
127
127
|
|
128
128
|
class MainView extends Base {
|
@@ -138,16 +138,5 @@ class MainView extends Base {
|
|
138
138
|
}]
|
139
139
|
}
|
140
140
|
}
|
141
|
-
Neo.
|
141
|
+
Neo.setupClass(MainView);
|
142
142
|
</pre>
|
143
|
-
|
144
|
-
How are events set up? We don't really care, but in case you're curious: Neo.mjs has a `Neo.core.Observable` class
|
145
|
-
that can be mixed into any class. It maintains a `listeners` object map that's a key-value pair, where
|
146
|
-
the key is the event name, and the value is an array of function references. The first time a listener is
|
147
|
-
added an entry is added to the map using the event name as the key, and the event handler added as the first
|
148
|
-
item in the associated array. If another listener is added for the same event, a second item is added to the
|
149
|
-
array. If a new event is added, a new entry is added. Etc. When the event is fired, Neo.mjs looks up the map
|
150
|
-
entry for the event name, then runs each function in the array, passing whatever data is specified in the
|
151
|
-
call to `fire()`.
|
152
|
-
|
153
|
-
<img style="width:80%" src="https://s3.amazonaws.com/mjs.neo.learning.images/gettingStarted/events/ObservableInMemory.png"></img>
|