neo.mjs 6.9.10 → 6.9.11
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 +2 -2
- package/apps/learnneo/neo-config.json +5 -1
- package/apps/learnneo/store/Content.mjs +1 -1
- package/apps/learnneo/view/Viewport.mjs +12 -1
- package/apps/learnneo/view/home/ContentTreeList.mjs +8 -5
- package/apps/learnneo/view/home/ContentView.mjs +60 -0
- package/apps/learnneo/view/home/MainContainer.mjs +22 -14
- package/apps/learnneo/view/home/MainContainerController.mjs +57 -18
- package/apps/newwebsite/app.mjs +6 -0
- package/apps/newwebsite/index.html +10 -0
- package/apps/newwebsite/neo-config.json +7 -0
- package/apps/newwebsite/view/MainContainer.mjs +59 -0
- package/buildScripts/webpack/json/myApps.template.json +1 -0
- package/examples/ConfigurationViewport.mjs +12 -9
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/button/base/neo-config.json +1 -2
- package/package.json +2 -2
- package/resources/data/{learnneo → deck/learnneo}/p/2023-10-01T18-29-19-158Z.md +3 -6
- package/resources/data/deck/learnneo/p/stylesheet.md +40 -0
- package/resources/data/{learnneo → deck/learnneo}/t.json +19 -2
- package/resources/data/deck/training/p/2022-12-27T21-54-52-300Z.md +11 -0
- package/resources/data/deck/training/p/2022-12-27T21-55-23-144Z.md +43 -0
- package/resources/data/deck/training/p/2022-12-27T21-55-30-948Z.md +1 -0
- package/resources/data/deck/training/p/2022-12-27T21-55-43-542Z.md +84 -0
- package/resources/data/deck/training/p/2022-12-27T22-23-55-083Z.md +1 -0
- package/resources/data/deck/training/p/2022-12-27T22-24-07-886Z.md +8 -0
- package/resources/data/deck/training/p/2022-12-27T22-24-52-295Z.md +8 -0
- package/resources/data/deck/training/p/2022-12-27T22-25-03-853Z.md +5 -0
- package/resources/data/deck/training/p/2022-12-27T22-43-58-924Z.md +10 -0
- package/resources/data/deck/training/p/2022-12-27T22-44-28-881Z.md +3 -0
- package/resources/data/deck/training/p/2022-12-27T22-44-41-791Z.md +4 -0
- package/resources/data/deck/training/p/2022-12-27T22-45-21-032Z.md +7 -0
- package/resources/data/deck/training/p/2022-12-27T22-49-22-078Z.md +4 -0
- package/resources/data/deck/training/p/2022-12-27T22-50-20-626Z.md +4 -0
- package/resources/data/deck/training/p/2022-12-28T16-58-47-786Z.md +0 -0
- package/resources/data/deck/training/p/2022-12-28T16-58-55-192Z.md +9 -0
- package/resources/data/deck/training/p/2022-12-28T17-10-18-058Z.md +15 -0
- package/resources/data/deck/training/p/2022-12-28T17-10-42-296Z.md +40 -0
- package/resources/data/deck/training/p/2022-12-28T17-11-34-653Z.md +41 -0
- package/resources/data/deck/training/p/2022-12-28T17-13-09-994Z.md +0 -0
- package/resources/data/deck/training/p/2022-12-28T21-32-14-420Z.md +0 -0
- package/resources/data/deck/training/p/2022-12-29T01-43-32-431Z.md +7 -0
- package/resources/data/deck/training/p/2022-12-29T15-56-54-485Z.md +7 -0
- package/resources/data/deck/training/p/2022-12-29T15-57-11-499Z.md +7 -0
- package/resources/data/deck/training/p/2022-12-29T16-00-13-223Z.md +7 -0
- package/resources/data/deck/training/p/2022-12-29T18-34-25-826Z.md +4 -0
- package/resources/data/deck/training/p/2022-12-29T18-36-08-226Z.md +106 -0
- package/resources/data/deck/training/p/2022-12-29T18-36-56-893Z.md +112 -0
- package/resources/data/deck/training/p/2022-12-29T19-31-30-507Z.md +31 -0
- package/resources/data/deck/training/p/2022-12-29T19-31-55-091Z.md +14 -0
- package/resources/data/deck/training/p/2022-12-29T20-03-42-628Z.md +9 -0
- package/resources/data/deck/training/p/2022-12-29T20-21-20-669Z.md +7 -0
- package/resources/data/deck/training/p/2022-12-29T20-37-08-919Z.md +46 -0
- package/resources/data/deck/training/p/2022-12-29T20-37-20-344Z.md +43 -0
- package/resources/data/deck/training/p/2022-12-30T19-04-30-990Z.md +8 -0
- package/resources/data/deck/training/p/2022-12-31T18-43-56-338Z.md +7 -0
- package/resources/data/deck/training/p/2022-12-31T18-51-50-682Z.md +1 -0
- package/resources/data/deck/training/p/2022-12-31T18-54-04-176Z.md +4 -0
- package/resources/data/deck/training/p/2022-12-31T22-11-55-555Z.md +112 -0
- package/resources/data/deck/training/p/2022-12-31T23-00-41-222Z.md +6 -0
- package/resources/data/deck/training/p/2022-12-31T23-18-55-655Z.md +69 -0
- package/resources/data/deck/training/p/2022-12-31T23-25-40-735Z.md +21 -0
- package/resources/data/deck/training/p/2022-12-31T23-25-51-014Z.md +7 -0
- package/resources/data/deck/training/p/2023-01-01T17-49-18-429Z.md +3 -0
- package/resources/data/deck/training/p/2023-01-01T18-44-07-034Z.md +34 -0
- package/resources/data/deck/training/p/2023-01-01T18-47-39-766Z.md +15 -0
- package/resources/data/deck/training/p/2023-01-01T19-04-22-830Z.md +4 -0
- package/resources/data/deck/training/p/2023-01-01T21-11-58-025Z.md +25 -0
- package/resources/data/deck/training/p/2023-01-01T21-12-37-340Z.md +23 -0
- package/resources/data/deck/training/p/2023-01-01T21-13-13-880Z.md +8 -0
- package/resources/data/deck/training/p/2023-01-01T21-14-45-740Z.md +98 -0
- package/resources/data/deck/training/p/2023-01-01T21-18-23-886Z.md +26 -0
- package/resources/data/deck/training/p/2023-01-01T21-18-31-316Z.md +19 -0
- package/resources/data/deck/training/p/2023-01-01T21-18-42-290Z.md +23 -0
- package/resources/data/deck/training/p/2023-01-01T21-19-57-020Z.md +24 -0
- package/resources/data/deck/training/p/2023-01-01T21-22-31-184Z.md +13 -0
- package/resources/data/deck/training/p/2023-01-01T21-22-38-317Z.md +17 -0
- package/resources/data/deck/training/p/2023-01-01T21-22-47-693Z.md +20 -0
- package/resources/data/deck/training/p/2023-01-01T21-23-17-716Z.md +39 -0
- package/resources/data/deck/training/p/2023-01-01T21-23-28-532Z.md +22 -0
- package/resources/data/deck/training/p/2023-01-01T21-25-23-899Z.md +3 -0
- package/resources/data/deck/training/p/2023-01-01T21-25-59-742Z.md +1 -0
- package/resources/data/deck/training/p/2023-01-01T21-26-53-748Z.md +12 -0
- package/resources/data/deck/training/p/2023-01-01T23-38-42-863Z.md +2 -0
- package/resources/data/deck/training/p/2023-01-03T02-07-19-014Z.md +143 -0
- package/resources/data/deck/training/p/2023-01-04T01-52-23-454Z.md +76 -0
- package/resources/data/deck/training/p/2023-01-06T23-21-12-009Z.md +127 -0
- package/resources/data/deck/training/p/2023-01-06T23-21-31-685Z.md +81 -0
- package/resources/data/deck/training/p/2023-01-06T23-21-59-596Z.md +36 -0
- package/resources/data/deck/training/p/2023-01-06T23-34-13-897Z.md +87 -0
- package/resources/data/deck/training/p/2023-01-06T23-44-02-340Z.md +0 -0
- package/resources/data/deck/training/p/2023-01-06T23-46-36-687Z.md +1 -0
- package/resources/data/deck/training/p/2023-01-06T23-46-45-783Z.md +33 -0
- package/resources/data/deck/training/p/2023-01-08T00-45-11-144Z.md +50 -0
- package/resources/data/deck/training/p/2023-01-08T01-06-31-267Z.md +41 -0
- package/resources/data/deck/training/p/2023-01-08T01-24-21-088Z.md +95 -0
- package/resources/data/deck/training/p/2023-01-08T01-25-12-557Z.md +11 -0
- package/resources/data/deck/training/p/2023-01-08T01-46-50-723Z.md +25 -0
- package/resources/data/deck/training/p/2023-01-08T02-09-07-802Z.md +18 -0
- package/resources/data/deck/training/p/2023-01-08T02-09-19-678Z.md +66 -0
- package/resources/data/deck/training/p/2023-01-08T02-11-26-333Z.md +29 -0
- package/resources/data/deck/training/p/2023-01-08T17-22-48-841Z.md +14 -0
- package/resources/data/deck/training/p/2023-01-08T20-46-11-806Z.md +5 -0
- package/resources/data/deck/training/p/2023-01-08T20-47-23-682Z.md +5 -0
- package/resources/data/deck/training/p/2023-01-08T20-47-32-064Z.md +13 -0
- package/resources/data/deck/training/p/2023-01-08T20-47-57-045Z.md +0 -0
- package/resources/data/deck/training/p/2023-01-08T20-48-03-791Z.md +18 -0
- package/resources/data/deck/training/p/2023-01-08T20-48-32-466Z.md +9 -0
- package/resources/data/deck/training/p/2023-01-08T20-48-51-322Z.md +20 -0
- package/resources/data/deck/training/p/2023-01-08T20-49-52-741Z.md +0 -0
- package/resources/data/deck/training/p/2023-01-08T20-52-03-556Z.md +0 -0
- package/resources/data/deck/training/p/2023-01-08T20-57-36-333Z.md +2 -0
- package/resources/data/deck/training/p/2023-01-08T20-57-51-136Z.md +5 -0
- package/resources/data/deck/training/p/2023-01-09T00-07-37-951Z.md +0 -0
- package/resources/data/deck/training/p/2023-01-09T00-35-40-671Z.md +3 -0
- package/resources/data/deck/training/p/2023-01-10T01-29-38-148Z.md +10 -0
- package/resources/data/deck/training/p/2023-01-10T01-43-12-166Z.md +31 -0
- package/resources/data/deck/training/p/2023-01-10T02-21-54-303Z.md +10 -0
- package/resources/data/deck/training/p/2023-01-12T01-50-54-617Z.md +74 -0
- package/resources/data/deck/training/p/2023-01-13T19-55-24-735Z.md +14 -0
- package/resources/data/deck/training/p/2023-01-13T20-08-27-068Z.md +28 -0
- package/resources/data/deck/training/p/2023-01-13T20-23-38-411Z.md +25 -0
- package/resources/data/deck/training/p/2023-01-13T20-37-06-267Z.md +13 -0
- package/resources/data/deck/training/p/2023-01-13T21-05-57-708Z.md +8 -0
- package/resources/data/deck/training/p/2023-01-13T21-48-17-258Z.md +20 -0
- package/resources/data/deck/training/p/2023-01-13T22-05-05-799Z.md +14 -0
- package/resources/data/deck/training/p/2023-01-13T22-08-30-863Z.md +17 -0
- package/resources/data/deck/training/p/2023-01-13T23-01-50-449Z.md +4 -0
- package/resources/data/deck/training/p/2023-01-14T00-33-05-958Z.md +62 -0
- package/resources/data/deck/training/p/2023-01-14T00-40-27-784Z.md +229 -0
- package/resources/data/deck/training/p/2023-01-14T00-41-59-081Z.md +153 -0
- package/resources/data/deck/training/p/2023-01-14T13-50-28-199Z.md +19 -0
- package/resources/data/deck/training/p/2023-01-14T13-59-20-275Z.md +6 -0
- package/resources/data/deck/training/p/2023-01-14T14-03-29-456Z.md +3 -0
- package/resources/data/deck/training/p/2023-01-14T14-27-57-678Z.md +7 -0
- package/resources/data/deck/training/p/2023-01-14T17-30-18-228Z.md +33 -0
- package/resources/data/deck/training/p/2023-01-14T18-28-39-316Z.md +1 -0
- package/resources/data/deck/training/p/2023-01-14T18-28-44-115Z.md +4 -0
- package/resources/data/deck/training/p/2023-01-14T18-28-49-548Z.md +18 -0
- package/resources/data/deck/training/p/2023-01-14T18-40-13-758Z.md +10 -0
- package/resources/data/deck/training/p/2023-01-14T19-29-15-291Z.md +12 -0
- package/resources/data/deck/training/p/2023-01-15T18-51-52-134Z.md +83 -0
- package/resources/data/deck/training/p/2023-01-15T20-03-30-073Z.md +11 -0
- package/resources/data/deck/training/p/2023-01-15T22-07-52-073Z.md +16 -0
- package/resources/data/deck/training/p/2023-01-15T22-22-13-517Z.md +12 -0
- package/resources/data/deck/training/p/2023-01-15T22-28-57-508Z.md +131 -0
- package/resources/data/deck/training/p/2023-01-15T22-36-30-913Z.md +115 -0
- package/resources/data/deck/training/p/2023-01-16T16-03-40-770Z.md +12 -0
- package/resources/data/deck/training/p/2023-01-16T20-21-56-859Z.md +5 -0
- package/resources/data/deck/training/p/2023-01-16T20-24-09-690Z.md +24 -0
- package/resources/data/deck/training/p/2023-01-20T12-51-22-646Z.md +21 -0
- package/resources/data/deck/training/p/2023-01-20T13-06-46-614Z.md +9 -0
- package/resources/data/deck/training/p/2023-01-20T13-08-51-600Z.md +7 -0
- package/resources/data/deck/training/p/2023-01-20T15-20-13-363Z.md +26 -0
- package/resources/data/deck/training/p/2023-01-20T15-34-58-813Z.md +75 -0
- package/resources/data/deck/training/p/2023-01-21T16-33-20-458Z.md +33 -0
- package/resources/data/deck/training/p/2023-01-21T16-45-28-263Z.md +28 -0
- package/resources/data/deck/training/p/2023-01-21T16-56-25-452Z.md +3 -0
- package/resources/data/deck/training/p/2023-01-21T17-28-31-493Z.md +6 -0
- package/resources/data/deck/training/p/2023-01-21T19-49-51-918Z.md +13 -0
- package/resources/data/deck/training/p/2023-01-21T20-08-24-452Z.md +15 -0
- package/resources/data/deck/training/p/2023-01-21T20-35-54-947Z.md +20 -0
- package/resources/data/deck/training/p/2023-01-21T20-54-47-603Z.md +39 -0
- package/resources/data/deck/training/p/2023-01-21T20-56-28-184Z.md +25 -0
- package/resources/data/deck/training/p/2023-01-21T20-57-32-927Z.md +4 -0
- package/resources/data/deck/training/p/2023-01-21T23-13-33-394Z.md +6 -0
- package/resources/data/deck/training/p/2023-01-28T19-11-37-464Z.md +24 -0
- package/resources/data/deck/training/p/2023-01-28T20-43-41-188Z.md +9 -0
- package/resources/data/deck/training/p/2023-01-28T20-53-56-476Z.md +8 -0
- package/resources/data/deck/training/p/2023-01-28T20-58-43-776Z.md +10 -0
- package/resources/data/deck/training/p/2023-01-28T22-18-41-259Z.md +33 -0
- package/resources/data/deck/training/p/2023-01-28T22-24-34-808Z.md +24 -0
- package/resources/data/deck/training/p/2023-01-29T16-25-24-528Z.md +44 -0
- package/resources/data/deck/training/p/2023-01-29T21-14-32-588Z.md +12 -0
- package/resources/data/deck/training/p/2023-01-31T19-24-53-504Z.md +8 -0
- package/resources/data/deck/training/p/2023-01-31T20-33-55-855Z.md +11 -0
- package/resources/data/deck/training/p/2023-01-31T20-34-30-261Z.md +7 -0
- package/resources/data/deck/training/p/2023-01-31T20-52-53-367Z.md +43 -0
- package/resources/data/deck/training/p/2023-02-04T15-18-35-682Z.md +20 -0
- package/resources/data/deck/training/p/2023-02-04T15-49-47-597Z.md +14 -0
- package/resources/data/deck/training/p/2023-02-04T18-58-57-808Z.md +1 -0
- package/resources/data/deck/training/p/2023-02-04T20-07-11-288Z.md +1 -0
- package/resources/data/deck/training/p/2023-02-04T20-09-50-169Z.md +1 -0
- package/resources/data/deck/training/p/2023-02-04T20-19-42-740Z.md +8 -0
- package/resources/data/deck/training/p/2023-02-04T20-23-56-013Z.md +12 -0
- package/resources/data/deck/training/p/2023-02-04T20-28-12-391Z.md +20 -0
- package/resources/data/deck/training/p/2023-02-05T00-20-32-554Z.md +16 -0
- package/resources/data/deck/training/p/2023-02-05T00-35-56-282Z.md +13 -0
- package/resources/data/deck/training/p/2023-02-05T15-36-57-182Z.md +24 -0
- package/resources/data/deck/training/p/2023-02-05T17-39-51-712Z.md +70 -0
- package/resources/data/deck/training/p/2023-02-05T17-44-53-815Z.md +195 -0
- package/resources/data/deck/training/p/2023-02-05T17-45-40-114Z.md +92 -0
- package/resources/data/deck/training/p/2023-02-05T18-12-14-489Z.md +60 -0
- package/resources/data/deck/training/p/2023-02-06T00-14-54-457Z.md +9 -0
- package/resources/data/deck/training/p/2023-06-28T18-03-14-313Z.md +8 -0
- package/resources/data/deck/training/p/2023-06-28T18-26-17-290Z.md +7 -0
- package/resources/data/deck/training/p/2023-06-28T21-16-24-034Z.md +40 -0
- package/resources/data/deck/training/p/2023-06-28T21-16-34-972Z.md +16 -0
- package/resources/data/deck/training/p/2023-06-28T21-28-28-379Z.md +4 -0
- package/resources/data/deck/training/p/2023-06-29T23-15-10-411Z.md +5 -0
- package/resources/data/deck/training/p/2023-07-01T15-42-45-193Z.md +433 -0
- package/resources/data/deck/training/p/2023-07-01T21-54-31-329Z.md +6 -0
- package/resources/data/deck/training/p/2023-07-02T16-14-06-970Z.md +14 -0
- package/resources/data/deck/training/p/2023-07-31T00-26-03-842Z.md +4 -0
- package/resources/data/deck/training/p/2023-07-31T00-31-51-933Z.md +10 -0
- package/resources/data/deck/training/p/2023-07-31T00-37-21-927Z.md +205 -0
- package/resources/data/deck/training/p/2023-10-01T18-29-19-158Z.md +76 -0
- package/resources/data/deck/training/p/2023-10-07T19-18-28-517Z.md +102 -0
- package/resources/data/deck/training/p/2023-10-08T20-20-07-934Z.md +75 -0
- package/resources/data/deck/training/p/2023-10-08T20-20-37-336Z.md +29 -0
- package/resources/data/deck/training/p/2023-10-08T20-37-30-658Z.md +0 -0
- package/resources/data/deck/training/p/2023-10-08T21-58-25-809Z.md +68 -0
- package/resources/data/deck/training/p/2023-10-08T22-22-11-013Z.md +0 -0
- package/resources/data/deck/training/p/2023-10-14T19-25-08-153Z.md +119 -0
- package/resources/data/deck/training/t.json +1 -0
- package/resources/scss/src/apps/learnneo/home/{ContentComponent.scss → ContentView.scss} +9 -15
- package/resources/scss/theme-neo-light/Global.scss +46 -0
- package/resources/scss/theme-neo-light/design-tokens/Core.scss +7 -0
- package/resources/scss/theme-neo-light/design-tokens/Semantic.scss +0 -0
- package/resources/scss/theme-neo-light/design-tokens/_all.scss +4 -0
- package/src/DefaultConfig.mjs +4 -4
- package/src/form/field/Text.mjs +2 -2
- package/apps/learnneo/view/home/ContentComponent.mjs +0 -24
- /package/resources/data/{learnneo → deck/learnneo}/p/2023-10-07T19-18-28-517Z.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/p/2023-10-08T20-20-07-934Z.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/p/2023-10-08T20-20-37-336Z.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/p/2023-10-08T20-37-30-658Z.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/p/2023-10-08T21-58-25-809Z.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/p/2023-10-08T22-22-11-013Z.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/p/2023-10-14T19-25-08-153Z.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/pages/whyneo.md +0 -0
- /package/resources/data/{learnneo → deck/learnneo}/tree.json +0 -0
- /package/resources/{deck → data/deck}/whyneo.md +0 -0
- /package/resources/scss/src/apps/newwebsite/{MainContainer.css → MainContainer.scss} +0 -0
- /package/resources/scss/theme-neo-light/design-tokens/{Components.scss → Component.scss} +0 -0
package/apps/ServiceWorker.mjs
CHANGED
@@ -3,5 +3,9 @@
|
|
3
3
|
"basePath" : "../../",
|
4
4
|
"environment" : "development",
|
5
5
|
"mainPath" : "./Main.mjs",
|
6
|
-
"mainThreadAddons": ["DragDrop", "HighlightJS", "Stylesheet", "Markdown"]
|
6
|
+
"mainThreadAddons": ["DragDrop", "HighlightJS", "Stylesheet", "Markdown"],
|
7
|
+
"themes": [
|
8
|
+
"neo-theme-neo-light"
|
9
|
+
]
|
10
|
+
|
7
11
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import BaseViewport
|
1
|
+
import BaseViewport from '../../../src/container/Viewport.mjs';
|
2
2
|
import ViewportController from './ViewportController.mjs';
|
3
3
|
|
4
4
|
/**
|
@@ -27,6 +27,17 @@ class Viewport extends BaseViewport {
|
|
27
27
|
*/
|
28
28
|
layout: {ntype: 'card'}
|
29
29
|
}
|
30
|
+
onConstructed() {
|
31
|
+
super.onConstructed();
|
32
|
+
let me = this;
|
33
|
+
Neo.Main.getByPath({path: 'location.search'})
|
34
|
+
.then(data => {
|
35
|
+
const searchString = data?.substr(1) || '';
|
36
|
+
const search = searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {};
|
37
|
+
me.deck = search.deck || 'learnneo';
|
38
|
+
me.addCls(me.deck);
|
39
|
+
});
|
40
|
+
}
|
30
41
|
}
|
31
42
|
|
32
43
|
Neo.applyClassConfig(Viewport);
|
@@ -19,13 +19,11 @@ class ContentTreeList extends TreeList {
|
|
19
19
|
/**
|
20
20
|
* @member {Neo.data.Store} store=ContentStore
|
21
21
|
*/
|
22
|
-
store: ContentStore
|
23
|
-
|
24
|
-
cls: 'topics-tree'
|
22
|
+
store: ContentStore
|
25
23
|
}
|
26
24
|
|
27
25
|
get contentPath() {
|
28
|
-
return `../../../resources/data/${this.deck}`;
|
26
|
+
return `../../../resources/data/deck/${this.deck}`;
|
29
27
|
}
|
30
28
|
|
31
29
|
/**
|
@@ -44,7 +42,12 @@ class ContentTreeList extends TreeList {
|
|
44
42
|
|
45
43
|
await Neo.main.addon.Markdown.markdownToHtml(content)
|
46
44
|
.then(
|
47
|
-
html => me.fire('contentChange', {
|
45
|
+
html => me.fire('contentChange', {
|
46
|
+
component: me,
|
47
|
+
html,
|
48
|
+
record,
|
49
|
+
isLab: record.name?.startsWith('Lab:')
|
50
|
+
}),
|
48
51
|
() => me.fire('contentChange', {component: me}));
|
49
52
|
}
|
50
53
|
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import Component from '../../../../src/component/Base.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class LearnNeo.view.home.ContentView
|
5
|
+
* @extends Neo.component.Base
|
6
|
+
*/
|
7
|
+
class ContentView extends Component {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='LearnNeo.view.home.ContentView'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'LearnNeo.view.home.ContentView',
|
14
|
+
/**
|
15
|
+
* @member {String[]} baseCls=['learn-content']
|
16
|
+
* @protected
|
17
|
+
*/
|
18
|
+
baseCls: ['learn-content']
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @member {Object} record=null
|
23
|
+
*/
|
24
|
+
record = null
|
25
|
+
|
26
|
+
/**
|
27
|
+
* @param {Object} data
|
28
|
+
*/
|
29
|
+
onClick(data) {
|
30
|
+
let me = this,
|
31
|
+
record = me.record;
|
32
|
+
|
33
|
+
if (data.altKey && data.shiftKey && !data.metaKey) {
|
34
|
+
me.fire('edit', {component: me, record})
|
35
|
+
}
|
36
|
+
// Command/windows shift click = refresh
|
37
|
+
else if (!data.altKey && data.shiftKey && data.metaKey) {
|
38
|
+
me.fire('refresh', {component: me, record})
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
*
|
44
|
+
*/
|
45
|
+
onConstructed() {
|
46
|
+
super.onConstructed();
|
47
|
+
|
48
|
+
let me = this;
|
49
|
+
|
50
|
+
me.addDomListeners({
|
51
|
+
click: me.onClick,
|
52
|
+
scope: me
|
53
|
+
})
|
54
|
+
}
|
55
|
+
|
56
|
+
}
|
57
|
+
|
58
|
+
Neo.applyClassConfig(ContentView);
|
59
|
+
|
60
|
+
export default ContentView;
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import Container
|
2
|
-
import
|
3
|
-
import ContentTreeList
|
1
|
+
import Container from '../../../../src/container/Base.mjs';
|
2
|
+
import ContentView from './ContentView.mjs';
|
3
|
+
import ContentTreeList from './ContentTreeList.mjs';
|
4
4
|
import MainContainerController from './MainContainerController.mjs';
|
5
|
-
import MainContainerModel
|
6
|
-
import Splitter
|
5
|
+
import MainContainerModel from './MainContainerModel.mjs';
|
6
|
+
import Splitter from '../../../../src/component/Splitter.mjs';
|
7
7
|
|
8
8
|
/**
|
9
9
|
* @class LearnNeo.view.home.MainContainer
|
@@ -24,23 +24,29 @@ class MainContainer extends Container {
|
|
24
24
|
* @member {Object[]} items
|
25
25
|
*/
|
26
26
|
items: [{
|
27
|
-
module
|
28
|
-
layout
|
27
|
+
module: Container,
|
28
|
+
layout: 'fit',
|
29
29
|
minWidth: 350,
|
30
|
-
width
|
30
|
+
width: 350,
|
31
31
|
|
32
32
|
items: [{
|
33
|
-
module
|
33
|
+
module: ContentTreeList,
|
34
34
|
reference: 'tree',
|
35
|
-
listeners: {
|
35
|
+
listeners: {
|
36
|
+
contentChange: 'onContentChange',
|
37
|
+
}
|
36
38
|
}]
|
37
39
|
}, {
|
38
|
-
module
|
40
|
+
module: Splitter,
|
39
41
|
resizeTarget: 'previous',
|
40
|
-
size
|
42
|
+
size: 5
|
41
43
|
}, {
|
42
|
-
module
|
43
|
-
reference: 'content'
|
44
|
+
module: ContentView,
|
45
|
+
reference: 'content',
|
46
|
+
listeners: {
|
47
|
+
edit: 'onContentEdit',
|
48
|
+
refresh: 'onContentRefresh'
|
49
|
+
}
|
44
50
|
}],
|
45
51
|
/**
|
46
52
|
* @member {Object} layout={ntype:'hbox',align:'stretch'}
|
@@ -51,6 +57,8 @@ class MainContainer extends Container {
|
|
51
57
|
*/
|
52
58
|
model: MainContainerModel
|
53
59
|
}
|
60
|
+
|
61
|
+
|
54
62
|
}
|
55
63
|
|
56
64
|
Neo.applyClassConfig(MainContainer);
|
@@ -1,11 +1,10 @@
|
|
1
|
-
import
|
2
|
-
|
1
|
+
import Controller from '../../../../src/controller/Component.mjs';
|
3
2
|
|
4
3
|
/**
|
5
4
|
* @class LearnNeo.view.home.MainContainerController
|
6
5
|
* @extends Neo.controller.Component
|
7
6
|
*/
|
8
|
-
class MainContainerController extends
|
7
|
+
class MainContainerController extends Controller {
|
9
8
|
static config = {
|
10
9
|
/**
|
11
10
|
* @member {String} className='LearnNeo.view.home.MainContainerController'
|
@@ -14,17 +13,40 @@ class MainContainerController extends Component {
|
|
14
13
|
className: 'LearnNeo.view.home.MainContainerController'
|
15
14
|
}
|
16
15
|
|
16
|
+
/**
|
17
|
+
*
|
18
|
+
*/
|
19
|
+
onConstructed() {
|
20
|
+
super.onConstructed();
|
21
|
+
|
22
|
+
Neo.Main.getByPath({path: 'location.search'})
|
23
|
+
.then(data => {
|
24
|
+
const searchString = data?.substr(1) || '';
|
25
|
+
const search = searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {};
|
26
|
+
this.getModel().setData('deck', search.deck || 'learnneo');
|
27
|
+
});
|
28
|
+
|
29
|
+
fetch('../../../../resources/data/deck/EditorConfig.json')
|
30
|
+
.then(response => response.json()
|
31
|
+
.then(data =>
|
32
|
+
this.getModel().setData('editorConfig', data)
|
33
|
+
))
|
34
|
+
}
|
35
|
+
|
17
36
|
/**
|
18
37
|
* @param {Object} data
|
38
|
+
* @returns {Promise<void>}
|
19
39
|
*/
|
20
|
-
async
|
21
|
-
|
22
|
-
me = this,
|
40
|
+
async onContentChange(data) {
|
41
|
+
let me = this,
|
23
42
|
content = me.getReference('content');
|
24
43
|
|
25
|
-
content.
|
44
|
+
content.toggleCls('lab', data.isLab);
|
45
|
+
|
46
|
+
content.html = data.html;
|
47
|
+
content.record = data.record;
|
26
48
|
|
27
|
-
await
|
49
|
+
await me.timeout(200);
|
28
50
|
|
29
51
|
// todo: we need to add the links as neo configs
|
30
52
|
await Neo.main.addon.HighlightJS.loadLibrary({
|
@@ -33,25 +55,42 @@ class MainContainerController extends Component {
|
|
33
55
|
themePath : '../../docs/resources/highlightjs-custom-github-theme.css'
|
34
56
|
});
|
35
57
|
|
36
|
-
await
|
58
|
+
await me.timeout(200);
|
37
59
|
|
38
60
|
Neo.main.addon.HighlightJS.syntaxHighlightInit({
|
39
61
|
appName: me.appName,
|
40
62
|
vnodeId: content.id
|
41
63
|
})
|
42
|
-
|
43
|
-
// contentContainer.removeAll();
|
44
|
-
// contentContainer.add({
|
45
|
-
// ntype: 'component',
|
46
|
-
// html: data.html
|
47
|
-
// });
|
48
|
-
// contentContainer.layout.activeIndex = 0;
|
49
64
|
}
|
50
65
|
|
51
|
-
|
52
|
-
|
66
|
+
/**
|
67
|
+
* @param {Object} data
|
68
|
+
* @returns {Promise<void>}
|
69
|
+
*/
|
70
|
+
async onContentEdit(data) {
|
71
|
+
const vm = this.getModel();
|
72
|
+
console.log(data);
|
73
|
+
const editorConfig = vm.getData('editorConfig');
|
74
|
+
const subDir = vm.getData('deck')
|
75
|
+
if (!editorConfig || !subDir) return;
|
76
|
+
|
77
|
+
const filePath = `${editorConfig.root}/${subDir}/p/${data.record.id}.md`;
|
78
|
+
|
79
|
+
await fetch('http://localhost:3000/openInEditor', {
|
80
|
+
method: 'POST',
|
81
|
+
headers: {
|
82
|
+
"Content-Type": "application/json",
|
83
|
+
},
|
84
|
+
body: JSON.stringify({path: filePath, editor: editorConfig.editor})
|
85
|
+
})
|
53
86
|
}
|
54
87
|
|
88
|
+
/**
|
89
|
+
* @param {Object} data
|
90
|
+
*/
|
91
|
+
onContentRefresh(data) {
|
92
|
+
this.getReference('tree').doFetchContent(data.record)
|
93
|
+
}
|
55
94
|
}
|
56
95
|
|
57
96
|
Neo.applyClassConfig(MainContainerController);
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import Button from '../../../src/button/Base.mjs';
|
2
|
+
import Container from '../../../src/container/Base.mjs';
|
3
|
+
import Viewport from '../../../src/container/Viewport.mjs';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @class NewWebsite.view.MainContainer
|
7
|
+
* @extends Neo.container.Viewport
|
8
|
+
*/
|
9
|
+
class MainContainer extends Viewport {
|
10
|
+
static config = {
|
11
|
+
/**
|
12
|
+
* @member {String} className='NewWebsite.view.MainContainer'
|
13
|
+
* @protected
|
14
|
+
*/
|
15
|
+
className: 'NewWebsite.view.MainContainer',
|
16
|
+
/**
|
17
|
+
* @member {String[]} cls=['newwebsite-main-container']
|
18
|
+
*/
|
19
|
+
cls: ['newwebsite-main-container'],
|
20
|
+
/**
|
21
|
+
* @member {Object[]} items
|
22
|
+
*/
|
23
|
+
items: [{
|
24
|
+
module: Container,
|
25
|
+
cls : ['vector'],
|
26
|
+
flex : 'none'
|
27
|
+
}, {
|
28
|
+
cls : 'neo-h1',
|
29
|
+
flex: 'none',
|
30
|
+
html: 'The High-Performance Web Framework for Next Generation Interfaces'
|
31
|
+
}, {
|
32
|
+
module: Container,
|
33
|
+
cls : ['button-group'],
|
34
|
+
flex : 'none',
|
35
|
+
|
36
|
+
items: [{
|
37
|
+
module : Button,
|
38
|
+
cls : 'get-started-button',
|
39
|
+
text : 'Get started',
|
40
|
+
flex : 'none',
|
41
|
+
tooltip: {
|
42
|
+
text : 'Coming soon',
|
43
|
+
showDelay: 0,
|
44
|
+
hideDelay: 0
|
45
|
+
}
|
46
|
+
}, {
|
47
|
+
module: Button,
|
48
|
+
flex : 'none',
|
49
|
+
text : 'View on GitHub',
|
50
|
+
ui : 'secondary',
|
51
|
+
url : 'https://github.com/neomjs/neo'
|
52
|
+
}]
|
53
|
+
}]
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
Neo.applyClassConfig(MainContainer);
|
58
|
+
|
59
|
+
export default MainContainer;
|
@@ -6,8 +6,9 @@ import Viewport from '../src/container/Viewport.mjs';
|
|
6
6
|
|
7
7
|
// add custom themes here
|
8
8
|
const themes = [
|
9
|
-
{name: 'neo-theme-
|
10
|
-
{name: 'neo-theme-
|
9
|
+
{name: 'neo-theme-light', label: 'Theme Light'},
|
10
|
+
{name: 'neo-theme-dark', label: 'Theme Dark'},
|
11
|
+
{name: 'neo-theme-neo-light', label: 'Theme Neo-Light'}
|
11
12
|
]
|
12
13
|
|
13
14
|
/**
|
@@ -121,12 +122,12 @@ class ConfigurationViewport extends Viewport {
|
|
121
122
|
handler: bindAppend(me.onSwitchTheme, me, 'cmp'),
|
122
123
|
style : {marginTop: '20px'},
|
123
124
|
text : theme === 'neo-theme-dark' ? 'Theme Light' : 'Theme Dark',
|
124
|
-
width :
|
125
|
+
width : 130
|
125
126
|
}, {
|
126
127
|
module : Button,
|
127
128
|
handler: me.logInstance.bind(me),
|
128
129
|
text : 'Log Instance',
|
129
|
-
width :
|
130
|
+
width : 130
|
130
131
|
}]
|
131
132
|
}]
|
132
133
|
}];
|
@@ -184,7 +185,7 @@ class ConfigurationViewport extends Viewport {
|
|
184
185
|
let me = this,
|
185
186
|
button = data.component,
|
186
187
|
countThemes = themes.length,
|
187
|
-
newTheme, oldIndex, oldTheme, themeIndex;
|
188
|
+
futureIndex, newTheme, oldIndex, oldTheme, themeIndex;
|
188
189
|
|
189
190
|
themes.forEach((theme, index) => {
|
190
191
|
if (button.text === theme.label) {
|
@@ -193,14 +194,16 @@ class ConfigurationViewport extends Viewport {
|
|
193
194
|
}
|
194
195
|
});
|
195
196
|
|
196
|
-
|
197
|
-
|
197
|
+
futureIndex = (themeIndex + countThemes +1) % countThemes;
|
198
|
+
oldIndex = (themeIndex + countThemes -1) % countThemes;
|
199
|
+
oldTheme = themes[oldIndex].name;
|
198
200
|
|
199
|
-
|
201
|
+
|
202
|
+
button.text = themes[futureIndex].label;
|
200
203
|
|
201
204
|
if (target === 'cmp') {
|
202
205
|
me.exampleComponent.theme = newTheme;
|
203
|
-
} else {
|
206
|
+
} else {console.log(newTheme, oldTheme);
|
204
207
|
Neo.applyDeltas(me.appName, {
|
205
208
|
cls: {
|
206
209
|
add : [newTheme],
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neo.mjs",
|
3
|
-
"version": "6.9.
|
3
|
+
"version": "6.9.11",
|
4
4
|
"description": "The webworkers driven UI framework",
|
5
5
|
"type": "module",
|
6
6
|
"repository": {
|
@@ -52,7 +52,7 @@
|
|
52
52
|
"envinfo": "^7.11.0",
|
53
53
|
"fs-extra": "^11.1.1",
|
54
54
|
"highlightjs-line-numbers.js": "^2.8.0",
|
55
|
-
"inquirer": "^9.2.
|
55
|
+
"inquirer": "^9.2.12",
|
56
56
|
"neo-jsdoc": "1.0.1",
|
57
57
|
"neo-jsdoc-x": "1.0.5",
|
58
58
|
"postcss": "^8.4.31",
|
@@ -1,12 +1,9 @@
|
|
1
|
-
# This is a h1
|
2
|
-
## This is a h2
|
3
|
-
### This is a h3
|
4
|
-
#### This is a h4
|
5
|
-
|
6
1
|
|
7
2
|
Neo.mjs is a framework used to create <mark>browser-based</mark> applications.
|
8
3
|
|
9
|
-
Some key features and benefits of Neo.mjs are:
|
4
|
+
# Some key features and benefits of Neo.mjs are:
|
5
|
+
|
6
|
+
<code><A code snippet></code>
|
10
7
|
|
11
8
|
<details>
|
12
9
|
<summary>Multi-Threaded</summary>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
###Advice
|
2
|
+
|
3
|
+
Training content is different than self-study content.
|
4
|
+
|
5
|
+
<details>
|
6
|
+
<summary>Training material</summary>
|
7
|
+
Training material _augments_ the lecture. The audience should be focused on what the speaker is
|
8
|
+
saying; the slides support the lecture. An important concept in writing
|
9
|
+
training material is to avoid a _wall of words_, where there are lengthy
|
10
|
+
paragraphs. People will read what's in front of them. If you have a lecture slide
|
11
|
+
with a lot of text, your audience will be reading while you are lecturing,
|
12
|
+
and information is lost.
|
13
|
+
</details>
|
14
|
+
|
15
|
+
# This is an h1
|
16
|
+
## This is an h2
|
17
|
+
### This is an h3
|
18
|
+
#### This is an h4
|
19
|
+
|
20
|
+
<br>
|
21
|
+
|
22
|
+
<code>Hi there</code>
|
23
|
+
|
24
|
+
<code>Hi there</code>
|
25
|
+
|
26
|
+
<br>
|
27
|
+
|
28
|
+
Use a <details> tag for expandable bullet points, and for lab steps.
|
29
|
+
<pre>
|
30
|
+
<details>
|
31
|
+
<summary>This describes the item</summary>
|
32
|
+
This is the item contents.
|
33
|
+
</details>
|
34
|
+
</pre>
|
35
|
+
|
36
|
+
<details>
|
37
|
+
<summary>This describes the item</summary>
|
38
|
+
This is the item contents.
|
39
|
+
</details>
|
40
|
+
|
@@ -4,7 +4,7 @@
|
|
4
4
|
"id": "2023-10-01T18-29-19-158Z",
|
5
5
|
"parentId": null,
|
6
6
|
"isLeaf": true,
|
7
|
-
"name": "Why Neo.mjs?"
|
7
|
+
"name": "Why Neo.mjs? "
|
8
8
|
},
|
9
9
|
{
|
10
10
|
"id": "2023-09-26T17-26-15-104Z",
|
@@ -124,7 +124,24 @@
|
|
124
124
|
"id": "2023-10-16T19-38-29-590Z",
|
125
125
|
"parentId": null,
|
126
126
|
"isLeaf": false,
|
127
|
-
"name": "Mixins"
|
127
|
+
"name": "Mixins "
|
128
|
+
},
|
129
|
+
{
|
130
|
+
"id": "2023-10-31T13-59-37-550Z",
|
131
|
+
"parentId": "2023-10-16T19-38-29-590Z",
|
132
|
+
"isLeaf": true,
|
133
|
+
"name": "New Node"
|
134
|
+
},
|
135
|
+
{
|
136
|
+
"id": "appendix",
|
137
|
+
"parentId": null,
|
138
|
+
"name": "Appendix"
|
139
|
+
},
|
140
|
+
{
|
141
|
+
"id": "stylesheet",
|
142
|
+
"parentId": "appendix",
|
143
|
+
"name": "Stylesheet",
|
144
|
+
"isLeaf": true
|
128
145
|
}
|
129
146
|
]
|
130
147
|
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
If you look at _package.json_ you'll see what scripts you can use.
|
2
|
+
|
3
|
+
To generate a new app run<br>
|
4
|
+
`npm run create-app`
|
5
|
+
<br>You typicically choose all defaults when prompted. We'll use `create-app` a few times
|
6
|
+
during this training, but in a work environment it's not used very often.
|
7
|
+
|
8
|
+
At the start of your coding session you'll probably run <br>
|
9
|
+
`npm run server-start`
|
10
|
+
<br>and as you write code and need new classes you might run <br>
|
11
|
+
`npm run create-class`.
|
@@ -0,0 +1,43 @@
|
|
1
|
+
Neo source files are JavaScript _modules_, using the `.msj` file extension.
|
2
|
+
|
3
|
+
JavaScript modules support `import`, `export` (to control which values are
|
4
|
+
available outside of the file).
|
5
|
+
|
6
|
+
<pre class="runnable text readonly">
|
7
|
+
import Component from '../../../node_modules/neo.mjs/src/component/Base.mjs';
|
8
|
+
import TabContainer from '../../../node_modules/neo.mjs/src/tab/Container.mjs';
|
9
|
+
import Viewport from '../../../node_modules/neo.mjs/src/container/Viewport.mjs';
|
10
|
+
|
11
|
+
class MainContainer extends Viewport {
|
12
|
+
static config = {
|
13
|
+
className: 'Starter.view.MainContainer',
|
14
|
+
ntype: 'main',
|
15
|
+
autoMount: true,
|
16
|
+
style: { padding: '20px' },
|
17
|
+
layout: { ntype: 'fit' },
|
18
|
+
items: [{
|
19
|
+
module: TabContainer,
|
20
|
+
itemDefaults: {
|
21
|
+
module: Component,
|
22
|
+
cls: ['neo-examples-tab-component'],
|
23
|
+
style: { padding: '20px' }
|
24
|
+
},
|
25
|
+
items: [{
|
26
|
+
tabButtonConfig: {
|
27
|
+
iconCls: 'fa fa-home',
|
28
|
+
text: 'Tab 1'
|
29
|
+
},
|
30
|
+
vdom: { innerHTML: 'Welcome to your new Neo App.' }
|
31
|
+
}, {
|
32
|
+
tabButtonConfig: {
|
33
|
+
iconCls: 'fa fa-play-circle',
|
34
|
+
text: 'Tab 2'
|
35
|
+
},
|
36
|
+
vdom: { innerHTML: 'Have fun creating something awesome!' }
|
37
|
+
}]
|
38
|
+
}]
|
39
|
+
}
|
40
|
+
}
|
41
|
+
Neo.applyClassConfig(MainContainer);
|
42
|
+
export default MainContainer;
|
43
|
+
</pre>
|
@@ -0,0 +1 @@
|
|
1
|
+
<img height="540" src="resources/images/FlowOfExecution.jpg"></img>
|