neo.mjs 6.17.2 → 6.18.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.
Files changed (316) hide show
  1. package/apps/ServiceWorker.mjs +3 -5
  2. package/apps/colors/README.md +8 -0
  3. package/apps/colors/app.mjs +6 -0
  4. package/apps/colors/childapps/widget/app.mjs +7 -0
  5. package/apps/colors/childapps/widget/index.html +11 -0
  6. package/apps/colors/childapps/widget/neo-config.json +10 -0
  7. package/apps/colors/childapps/widget/view/Viewport.mjs +19 -0
  8. package/apps/colors/index.html +11 -0
  9. package/apps/colors/model/Color.mjs +43 -0
  10. package/apps/colors/neo-config.json +10 -0
  11. package/apps/colors/remotes-api.json +13 -0
  12. package/apps/colors/store/Colors.mjs +24 -0
  13. package/apps/colors/view/BarChartComponent.mjs +64 -0
  14. package/apps/colors/view/HeaderToolbar.mjs +95 -0
  15. package/apps/colors/view/PieChartComponent.mjs +58 -0
  16. package/apps/colors/view/TableContainer.mjs +91 -0
  17. package/apps/colors/view/Viewport.mjs +57 -0
  18. package/apps/colors/view/ViewportController.mjs +277 -0
  19. package/apps/colors/view/ViewportModel.mjs +53 -0
  20. package/apps/portal/Util.mjs +11 -0
  21. package/apps/portal/childapps/preview/neo-config.json +2 -2
  22. package/apps/portal/neo-config.json +2 -1
  23. package/apps/portal/remotes-api.json +13 -0
  24. package/apps/portal/view/HeaderToolbar.mjs +1 -1
  25. package/apps/portal/view/ViewportController.mjs +89 -1
  26. package/apps/portal/view/home/MainContainer.mjs +5 -6
  27. package/apps/portal/view/home/parts/AfterMath.mjs +1 -1
  28. package/apps/portal/view/home/parts/{CoolStuff.mjs → Colors.mjs} +20 -28
  29. package/apps/portal/view/home/parts/Helix.mjs +75 -0
  30. package/apps/portal/view/learn/LivePreview.mjs +56 -15
  31. package/apps/portal/view/learn/MainContainerController.mjs +10 -90
  32. package/apps/realworld/api/Article.mjs +1 -3
  33. package/apps/realworld/api/Favorite.mjs +1 -3
  34. package/apps/realworld/api/Profile.mjs +1 -3
  35. package/apps/realworld/api/Tag.mjs +1 -3
  36. package/apps/realworld/api/User.mjs +1 -3
  37. package/apps/realworld2/api/Article.mjs +1 -3
  38. package/apps/realworld2/api/Favorite.mjs +1 -3
  39. package/apps/realworld2/api/Profile.mjs +1 -3
  40. package/apps/realworld2/api/Tag.mjs +1 -3
  41. package/apps/realworld2/api/User.mjs +1 -3
  42. package/apps/realworld2/view/article/HelixContainer.mjs +5 -5
  43. package/buildScripts/webpack/json/myApps.template.json +1 -0
  44. package/docs/app/view/MainContainer.mjs +5 -0
  45. package/docs/app/view/classdetails/MembersList.mjs +1 -1
  46. package/examples/ServiceWorker.mjs +3 -5
  47. package/examples/component/helix/Viewport.mjs +309 -0
  48. package/examples/component/helix/ViewportController.mjs +122 -0
  49. package/examples/component/helix/app.mjs +2 -2
  50. package/examples/component/helix/neo-config.json +0 -1
  51. package/examples/component/multiWindowHelix/Viewport.mjs +11 -3
  52. package/examples/component/multiWindowHelix/ViewportController.mjs +21 -9
  53. package/examples/component/multiWindowHelix/neo-config.json +0 -1
  54. package/examples/fieldWithPrefix/MainContainer.mjs +1 -6
  55. package/examples/list/animate/MainContainerController.mjs +1 -1
  56. package/examples/worker/task/MyTasks.mjs +1 -3
  57. package/package.json +2 -2
  58. package/resources/data/deck/learnneo/pages/GuideEvents.md +131 -0
  59. package/resources/data/deck/learnneo/pages/WhyNeo-Speed.md +1 -1
  60. package/resources/images/logo/neo_logo_primary.svg +6 -0
  61. package/resources/images/logo/neo_logo_text_primary.svg +5 -0
  62. package/resources/scss/src/apps/colors/BarChartComponent.scss +3 -0
  63. package/resources/scss/src/apps/colors/HeaderToolbar.scss +11 -0
  64. package/resources/scss/src/apps/colors/PieChartComponent.scss +3 -0
  65. package/resources/scss/src/apps/colors/TableContainer.scss +64 -0
  66. package/resources/scss/src/apps/colors/Viewport.scss +9 -0
  67. package/resources/scss/src/apps/portal/HeaderToolbar.scss +1 -1
  68. package/resources/scss/src/apps/portal/home/MainContainer.scss +1 -1
  69. package/resources/scss/src/apps/portal/home/preview/PageCodeContainer.scss +1 -1
  70. package/resources/scss/src/examples/component/multiWindowHelix/Viewport.scss +3 -0
  71. package/resources/scss/src/form/field/CheckBox.scss +1 -0
  72. package/resources/scss/src/tab/header/Button.scss +2 -1
  73. package/resources/scss/theme-dark/Global.scss +8 -0
  74. package/resources/scss/theme-dark/button/Base.scss +1 -1
  75. package/resources/scss/theme-dark/tab/header/Button.scss +1 -0
  76. package/resources/scss/theme-light/Global.scss +8 -0
  77. package/resources/scss/theme-light/button/Base.scss +1 -1
  78. package/resources/scss/theme-light/tab/header/Button.scss +1 -0
  79. package/resources/scss/theme-neo-light/Global.scss +53 -53
  80. package/resources/scss/theme-neo-light/button/Base.scss +3 -4
  81. package/resources/scss/theme-neo-light/tab/header/Button.scss +6 -8
  82. package/src/DefaultConfig.mjs +2 -2
  83. package/src/Fetch.mjs +1 -3
  84. package/src/Main.mjs +13 -11
  85. package/src/MicroLoader.mjs +2 -2
  86. package/src/Neo.mjs +27 -26
  87. package/src/Xhr.mjs +1 -3
  88. package/src/button/Base.mjs +6 -4
  89. package/src/button/Split.mjs +10 -9
  90. package/src/calendar/view/EditEventContainer.mjs +13 -12
  91. package/src/calendar/view/MainContainer.mjs +40 -40
  92. package/src/calendar/view/MainContainerModel.mjs +5 -5
  93. package/src/calendar/view/SettingsContainer.mjs +11 -11
  94. package/src/calendar/view/YearComponent.mjs +73 -75
  95. package/src/calendar/view/calendars/ColorsList.mjs +2 -2
  96. package/src/calendar/view/calendars/EditContainer.mjs +2 -2
  97. package/src/calendar/view/calendars/List.mjs +12 -13
  98. package/src/calendar/view/month/Component.mjs +72 -73
  99. package/src/calendar/view/settings/GeneralContainer.mjs +5 -5
  100. package/src/calendar/view/settings/MonthContainer.mjs +5 -5
  101. package/src/calendar/view/settings/WeekContainer.mjs +6 -6
  102. package/src/calendar/view/settings/YearContainer.mjs +4 -4
  103. package/src/calendar/view/week/Component.mjs +47 -57
  104. package/src/calendar/view/week/EventDragZone.mjs +43 -50
  105. package/src/calendar/view/week/TimeAxisComponent.mjs +21 -21
  106. package/src/calendar/view/week/plugin/DragDrop.mjs +53 -45
  107. package/src/calendar/view/week/plugin/EventResizable.mjs +8 -3
  108. package/src/collection/Base.mjs +15 -22
  109. package/src/collection/Filter.mjs +4 -9
  110. package/src/collection/Sorter.mjs +6 -7
  111. package/src/component/Base.mjs +25 -31
  112. package/src/component/Canvas.mjs +9 -9
  113. package/src/component/Carousel.mjs +31 -33
  114. package/src/component/Chip.mjs +9 -9
  115. package/src/component/Circle.mjs +84 -91
  116. package/src/component/Clock.mjs +8 -8
  117. package/src/component/DateSelector.mjs +14 -15
  118. package/src/component/Gallery.mjs +82 -80
  119. package/src/component/Helix.mjs +131 -126
  120. package/src/component/Iframe.mjs +1 -1
  121. package/src/component/Label.mjs +1 -1
  122. package/src/component/Legend.mjs +3 -3
  123. package/src/component/Process.mjs +39 -37
  124. package/src/component/Splitter.mjs +9 -11
  125. package/src/component/StatusBadge.mjs +2 -3
  126. package/src/component/Timer.mjs +62 -68
  127. package/src/component/Toast.mjs +11 -11
  128. package/src/component/Video.mjs +7 -8
  129. package/src/component/mwc/Button.mjs +10 -10
  130. package/src/component/mwc/TextField.mjs +17 -17
  131. package/src/component/wrapper/AmChart.mjs +5 -5
  132. package/src/component/wrapper/CesiumJS.mjs +11 -17
  133. package/src/component/wrapper/GoogleMaps.mjs +58 -35
  134. package/src/component/wrapper/MapboxGL.mjs +112 -79
  135. package/src/container/Accordion.mjs +18 -20
  136. package/src/container/AccordionItem.mjs +12 -11
  137. package/src/container/Base.mjs +24 -23
  138. package/src/container/Panel.mjs +9 -9
  139. package/src/controller/Base.mjs +12 -14
  140. package/src/controller/Component.mjs +60 -66
  141. package/src/core/Base.mjs +5 -8
  142. package/src/core/IdGenerator.mjs +1 -3
  143. package/src/core/Observable.mjs +17 -17
  144. package/src/core/Util.mjs +5 -5
  145. package/src/data/Model.mjs +3 -3
  146. package/src/data/RecordFactory.mjs +3 -6
  147. package/src/data/Store.mjs +34 -34
  148. package/src/data/connection/Fetch.mjs +3 -3
  149. package/src/data/connection/WebSocket.mjs +21 -25
  150. package/src/data/connection/Xhr.mjs +31 -28
  151. package/src/date/DayViewComponent.mjs +1 -1
  152. package/src/date/SelectorContainer.mjs +2 -2
  153. package/src/dialog/Base.mjs +27 -25
  154. package/src/dialog/header/Toolbar.mjs +5 -4
  155. package/src/draggable/DragProxyComponent.mjs +7 -4
  156. package/src/draggable/DragZone.mjs +30 -30
  157. package/src/draggable/DropZone.mjs +7 -7
  158. package/src/draggable/list/DragZone.mjs +18 -18
  159. package/src/draggable/tab/header/toolbar/SortZone.mjs +7 -7
  160. package/src/draggable/toolbar/DragZone.mjs +15 -15
  161. package/src/draggable/toolbar/SortZone.mjs +30 -31
  162. package/src/draggable/tree/DragZone.mjs +9 -9
  163. package/src/filter/BooleanContainer.mjs +3 -3
  164. package/src/filter/NumberContainer.mjs +5 -5
  165. package/src/filter/ToggleOperatorsButton.mjs +5 -5
  166. package/src/form/Fieldset.mjs +26 -26
  167. package/src/form/field/Base.mjs +1 -1
  168. package/src/form/field/CheckBox.mjs +15 -16
  169. package/src/form/field/Color.mjs +13 -15
  170. package/src/form/field/ComboBox.mjs +16 -24
  171. package/src/form/field/Country.mjs +1 -1
  172. package/src/form/field/Date.mjs +3 -4
  173. package/src/form/field/Display.mjs +1 -1
  174. package/src/form/field/Email.mjs +2 -2
  175. package/src/form/field/Number.mjs +51 -56
  176. package/src/form/field/Picker.mjs +2 -2
  177. package/src/form/field/Radio.mjs +1 -1
  178. package/src/form/field/Range.mjs +7 -6
  179. package/src/form/field/Text.mjs +29 -36
  180. package/src/form/field/TextArea.mjs +9 -9
  181. package/src/form/field/Time.mjs +30 -30
  182. package/src/form/field/trigger/Base.mjs +19 -13
  183. package/src/form/field/trigger/Clear.mjs +13 -13
  184. package/src/form/field/trigger/CopyToClipboard.mjs +7 -7
  185. package/src/form/field/trigger/Picker.mjs +2 -2
  186. package/src/form/field/trigger/SpinDown.mjs +1 -1
  187. package/src/form/field/trigger/SpinUp.mjs +1 -1
  188. package/src/form/field/trigger/SpinUpDown.mjs +3 -3
  189. package/src/form/field/trigger/Time.mjs +3 -3
  190. package/src/grid/Container.mjs +33 -33
  191. package/src/grid/View.mjs +20 -22
  192. package/src/grid/header/Button.mjs +12 -12
  193. package/src/grid/header/Toolbar.mjs +4 -4
  194. package/src/layout/Base.mjs +5 -4
  195. package/src/layout/Card.mjs +15 -16
  196. package/src/layout/Fit.mjs +22 -8
  197. package/src/layout/Flexbox.mjs +30 -29
  198. package/src/layout/Form.mjs +15 -15
  199. package/src/layout/Grid.mjs +2 -2
  200. package/src/layout/HBox.mjs +3 -2
  201. package/src/layout/VBox.mjs +3 -2
  202. package/src/list/Base.mjs +45 -47
  203. package/src/list/Chip.mjs +4 -4
  204. package/src/list/Circle.mjs +3 -3
  205. package/src/list/Color.mjs +4 -4
  206. package/src/list/Component.mjs +10 -10
  207. package/src/list/plugin/Animate.mjs +18 -13
  208. package/src/main/DomAccess.mjs +92 -56
  209. package/src/main/DomEvents.mjs +38 -39
  210. package/src/main/addon/AmCharts.mjs +37 -37
  211. package/src/main/addon/AnalyticsByGoogle.mjs +4 -4
  212. package/src/main/addon/CesiumJS.mjs +8 -8
  213. package/src/main/addon/CloneNode.mjs +5 -5
  214. package/src/main/addon/Cookie.mjs +4 -4
  215. package/src/main/addon/DragDrop.mjs +35 -34
  216. package/src/main/addon/GoogleMaps.mjs +19 -19
  217. package/src/main/addon/LocalStorage.mjs +3 -3
  218. package/src/main/addon/MapboxGL.mjs +40 -41
  219. package/src/main/addon/MonacoEditor.mjs +5 -5
  220. package/src/main/addon/Mwc.mjs +6 -6
  221. package/src/main/addon/Navigator.mjs +35 -39
  222. package/src/main/addon/Popover.mjs +5 -6
  223. package/src/main/addon/PrefixField.mjs +1 -2
  224. package/src/main/addon/ServiceWorker.mjs +9 -9
  225. package/src/main/addon/Siesta.mjs +3 -2
  226. package/src/main/addon/Stylesheet.mjs +37 -37
  227. package/src/main/addon/WebComponent.mjs +2 -3
  228. package/src/main/addon/WindowPosition.mjs +18 -18
  229. package/src/main/draggable/sensor/Base.mjs +2 -2
  230. package/src/main/draggable/sensor/Mouse.mjs +15 -15
  231. package/src/main/draggable/sensor/Touch.mjs +24 -23
  232. package/src/main/mixin/DeltaUpdates.mjs +10 -12
  233. package/src/main/mixin/TouchDomEvents.mjs +6 -6
  234. package/src/manager/Base.mjs +4 -4
  235. package/src/manager/Component.mjs +41 -41
  236. package/src/manager/DomEvent.mjs +41 -44
  237. package/src/manager/Focus.mjs +14 -16
  238. package/src/manager/Instance.mjs +2 -4
  239. package/src/manager/Store.mjs +4 -8
  240. package/src/manager/Task.mjs +20 -22
  241. package/src/manager/Toast.mjs +14 -16
  242. package/src/manager/rpc/Api.mjs +1 -3
  243. package/src/manager/rpc/Message.mjs +16 -18
  244. package/src/menu/List.mjs +16 -16
  245. package/src/menu/Panel.mjs +4 -4
  246. package/src/model/Component.mjs +5 -5
  247. package/src/plugin/Base.mjs +2 -0
  248. package/src/plugin/Popover.mjs +1 -1
  249. package/src/plugin/PrefixField.mjs +35 -45
  250. package/src/plugin/Resizable.mjs +86 -101
  251. package/src/plugin/Responsive.mjs +1 -1
  252. package/src/remotes/Api.mjs +4 -6
  253. package/src/selection/CircleModel.mjs +12 -16
  254. package/src/selection/DateSelectorModel.mjs +21 -23
  255. package/src/selection/GalleryModel.mjs +49 -63
  256. package/src/selection/HelixModel.mjs +35 -41
  257. package/src/selection/ListModel.mjs +9 -14
  258. package/src/selection/Model.mjs +31 -31
  259. package/src/selection/TreeAccordionModel.mjs +74 -80
  260. package/src/selection/grid/CellColumnModel.mjs +10 -10
  261. package/src/selection/grid/CellColumnRowModel.mjs +10 -10
  262. package/src/selection/grid/CellModel.mjs +26 -28
  263. package/src/selection/grid/CellRowModel.mjs +24 -24
  264. package/src/selection/grid/ColumnModel.mjs +16 -20
  265. package/src/selection/grid/RowModel.mjs +27 -29
  266. package/src/selection/menu/ListModel.mjs +2 -2
  267. package/src/selection/table/CellColumnModel.mjs +12 -12
  268. package/src/selection/table/CellColumnRowModel.mjs +12 -12
  269. package/src/selection/table/CellModel.mjs +26 -29
  270. package/src/selection/table/CellRowModel.mjs +19 -19
  271. package/src/selection/table/ColumnModel.mjs +18 -22
  272. package/src/selection/table/RowModel.mjs +27 -29
  273. package/src/sitemap/Component.mjs +20 -20
  274. package/src/sitemap/Store.mjs +1 -1
  275. package/src/tab/Container.mjs +15 -15
  276. package/src/tab/Strip.mjs +1 -1
  277. package/src/tab/header/Toolbar.mjs +4 -4
  278. package/src/table/Container.mjs +8 -10
  279. package/src/table/View.mjs +29 -34
  280. package/src/table/header/Button.mjs +18 -18
  281. package/src/table/header/Toolbar.mjs +2 -2
  282. package/src/toolbar/Base.mjs +14 -14
  283. package/src/toolbar/Breadcrumb.mjs +11 -11
  284. package/src/toolbar/Paging.mjs +18 -18
  285. package/src/tooltip/Base.mjs +20 -22
  286. package/src/tree/Accordion.mjs +69 -75
  287. package/src/tree/List.mjs +22 -25
  288. package/src/util/Array.mjs +19 -18
  289. package/src/util/ClassSystem.mjs +9 -9
  290. package/src/util/Css.mjs +2 -2
  291. package/src/util/Date.mjs +9 -9
  292. package/src/util/Function.mjs +2 -2
  293. package/src/util/HashHistory.mjs +3 -5
  294. package/src/util/KeyNavigation.mjs +17 -17
  295. package/src/util/Logger.mjs +9 -9
  296. package/src/util/Matrix.mjs +19 -19
  297. package/src/util/String.mjs +9 -9
  298. package/src/util/Style.mjs +11 -11
  299. package/src/util/VDom.mjs +12 -14
  300. package/src/util/VNode.mjs +29 -29
  301. package/src/vdom/Helper.mjs +84 -93
  302. package/src/vdom/VNode.mjs +1 -1
  303. package/src/worker/App.mjs +19 -16
  304. package/src/worker/Base.mjs +14 -15
  305. package/src/worker/Canvas.mjs +1 -3
  306. package/src/worker/Data.mjs +4 -8
  307. package/src/worker/Manager.mjs +27 -32
  308. package/src/worker/Message.mjs +1 -1
  309. package/src/worker/ServiceBase.mjs +38 -42
  310. package/src/worker/Task.mjs +1 -3
  311. package/src/worker/VDom.mjs +2 -4
  312. package/src/worker/mixin/RemoteMethodAccess.mjs +5 -6
  313. package/examples/component/helix/MainContainer.mjs +0 -340
  314. /package/resources/images/{Neo_Logo_Blue.svg → logo/neo_logo_secondary.svg} +0 -0
  315. /package/resources/images/{Neo_Logo_Text.svg → logo/neo_logo_text_secondary.svg} +0 -0
  316. /package/resources/images/{Neo_Logo_White.svg → logo/neo_logo_white.svg} +0 -0
@@ -0,0 +1,75 @@
1
+ import Container from '../../../../../src/container/Base.mjs';
2
+ import LivePreview from '../../learn/LivePreview.mjs';
3
+
4
+ /**
5
+ * @class Portal.view.home.parts.Helix
6
+ * @extends Neo.container.Base
7
+ */
8
+ class Helix extends Container {
9
+ static config = {
10
+ /**
11
+ * @member {String} className='Portal.view.home.parts.Helix'
12
+ * @protected
13
+ */
14
+ className: 'Portal.view.home.parts.Helix',
15
+
16
+ cls: ['page', 'cool-stuff'],
17
+
18
+ responsive: {
19
+ medium: {layout: {ntype: 'vbox', align: 'stretch', pack: 'center'}},
20
+ large : {layout: {ntype: 'hbox', align: 'stretch', pack: 'center'}}
21
+ },
22
+
23
+ /**
24
+ * @member {Object[]} items
25
+ */
26
+ items: [{
27
+ module: Container,
28
+ flex : '1',
29
+ style : {padding: '2rem'},
30
+ layout: {ntype: 'vbox', align: 'center', pack: 'center'},
31
+ items : [{
32
+ cls : 'neo-h1',
33
+ flex: 'none',
34
+ html: 'Interactive Views'
35
+ }, {
36
+ cls : 'neo-h2',
37
+ flex: 'none',
38
+ html: 'Expand the widget into multiple Windows'
39
+ }, {
40
+ cls : 'neo-content',
41
+ flex: 'none',
42
+ html: 'The State Management will continue to work.'
43
+ }]
44
+ }, {
45
+ module: Container,
46
+ flex : '2',
47
+ style : {background: 'grey', padding: '20px'},
48
+ layout: {ntype: 'vbox', align: 'stretch', pack: 'center'},
49
+ items : [{
50
+ module : LivePreview,
51
+ activeView: 'preview',
52
+ cls : ['page-live-preview'],
53
+ height : '100%',
54
+
55
+ value: [
56
+ "import Viewport from '../../../../examples/component/multiWindowHelix/Viewport.mjs';",
57
+ "",
58
+ "class MainView extends Viewport {",
59
+ " static config = {",
60
+ " className : 'Portal.view.MultiWindowHelix',",
61
+ " showGitHubStarButton: false,",
62
+ " theme : 'neo-theme-dark'",
63
+ " }",
64
+ "}",
65
+ "",
66
+ "Neo.setupClass(MainView);"
67
+ ].join('\n')
68
+ }]
69
+ }]
70
+ }
71
+ }
72
+
73
+ Neo.setupClass(Helix);
74
+
75
+ export default Helix;
@@ -12,6 +12,14 @@ const
12
12
  * @extends Neo.container.Base
13
13
  */
14
14
  class LivePreview extends Container {
15
+ /**
16
+ * Valid values for iconPosition
17
+ * @member {String[]} activeViews=['preview','source']
18
+ * @protected
19
+ * @static
20
+ */
21
+ static activeViews = ['preview', 'source']
22
+
15
23
  static config = {
16
24
  /**
17
25
  * @member {String} className='Portal.view.learn.LivePreview'
@@ -23,13 +31,19 @@ class LivePreview extends Container {
23
31
  * @protected
24
32
  */
25
33
  ntype: 'live-preview',
26
-
27
- baseCls : ['learn-live-preview'],
28
- value_ : null,
29
- autoMount : true,
30
- autoRender: true,
31
- height : 400,
32
- layout : 'fit',
34
+ /**
35
+ * Valid values are 'preview' and 'source'
36
+ * @member {String} activeView_='source'
37
+ */
38
+ activeView_: 'source',
39
+
40
+ baseCls : ['learn-live-preview'],
41
+ value_ : null,
42
+ autoMount : true,
43
+ autoRender : true,
44
+ disableRunSource: false,
45
+ height : 400,
46
+ layout : 'fit',
33
47
  /**
34
48
  * @member {Object[]} items
35
49
  */
@@ -75,7 +89,17 @@ class LivePreview extends Container {
75
89
  * @returns {Neo.component.Base|null}
76
90
  */
77
91
  get tabContainer() {
78
- return this.getReference('tab-container')
92
+ return this.getItem('tab-container')
93
+ }
94
+
95
+ /**
96
+ * Triggered after the activeView config got changed
97
+ * @param {String} value
98
+ * @param {String} oldValue
99
+ * @protected
100
+ */
101
+ afterSetActiveView(value, oldValue) {
102
+ this.tabContainer.activeIndex = value === 'source' ? 0 : 1
79
103
  }
80
104
 
81
105
  /**
@@ -90,6 +114,17 @@ class LivePreview extends Container {
90
114
  }
91
115
  }
92
116
 
117
+ /**
118
+ * Triggered before the activeView config gets changed
119
+ * @param {String} value
120
+ * @param {String} oldValue
121
+ * @returns {String}
122
+ * @protected
123
+ */
124
+ beforeSetActiveView(value, oldValue) {
125
+ return this.beforeSetEnumValue(value, oldValue, 'activeView')
126
+ }
127
+
93
128
  /**
94
129
  *
95
130
  */
@@ -115,10 +150,12 @@ class LivePreview extends Container {
115
150
  *
116
151
  */
117
152
  doRunSource() {
118
- let me = this,
119
- source = me.editorValue || me.value;
153
+ if (this.disableRunSource) {
154
+ return
155
+ }
120
156
 
121
- const
157
+ let me = this,
158
+ source = me.editorValue || me.value,
122
159
  cleanLines = [],
123
160
  importModuleNames = [],
124
161
  moduleNameAndPath = [],
@@ -235,6 +272,7 @@ class LivePreview extends Container {
235
272
  }
236
273
 
237
274
  this.getReference('popout-window-button').hidden = data.value !== 1
275
+ this.disableRunSource = false;
238
276
  }
239
277
 
240
278
  /**
@@ -243,8 +281,8 @@ class LivePreview extends Container {
243
281
  onConstructed() {
244
282
  super.onConstructed();
245
283
 
246
- let me = this,
247
- tabContainer = me.getReference('tab-container');
284
+ let me = this,
285
+ {tabContainer} = me;
248
286
 
249
287
  // we want to add a normal (non-header) button
250
288
  tabContainer.getTabBar().add({
@@ -256,7 +294,10 @@ class LivePreview extends Container {
256
294
  ui : 'ghost'
257
295
  });
258
296
 
259
- tabContainer.on('activeIndexChange', me.onActiveIndexChange, me)
297
+ tabContainer.on('activeIndexChange', me.onActiveIndexChange, me);
298
+
299
+ // changing the activeView initially will not trigger our onActiveIndexChange() logic
300
+ me.activeView === 'preview' && me.doRunSource()
260
301
  }
261
302
 
262
303
  /**
@@ -269,7 +310,7 @@ class LivePreview extends Container {
269
310
  await me.createPopupWindow();
270
311
 
271
312
  // this component requires a view controller to manage connected apps
272
- me.getController()?.connectedApps.push(me.id)
313
+ me.getController('viewport-controller')?.connectedApps.push(me.id)
273
314
  }
274
315
  }
275
316
 
@@ -1,4 +1,5 @@
1
- import Controller from '../../../../src/controller/Component.mjs';
1
+ import Controller from '../../../../src/controller/Component.mjs';
2
+ import {getSearchParams} from '../../Util.mjs';
2
3
 
3
4
  /**
4
5
  * @class Portal.view.learn.MainContainerController
@@ -19,41 +20,24 @@ class MainContainerController extends Controller {
19
20
  }
20
21
  }
21
22
 
22
- /**
23
- * @member {String[]} connectedApps=[]
24
- */
25
- connectedApps = []
26
-
27
23
  /**
28
24
  * @param {Object} config
29
25
  */
30
26
  construct(config) {
31
27
  super.construct(config);
32
28
 
33
- let me = this,
34
- search, searchString;
29
+ let {windowId} = this;
35
30
 
36
31
  Neo.Main.getByPath({
37
- path : 'location.search',
38
- windowId: me.windowId
32
+ path: 'location.search',
33
+ windowId
39
34
  }).then(data => {
40
- searchString = data?.substr(1) || '';
41
- search = searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {};
42
-
43
- me.getModel().setData({
44
- deck: search.deck || 'learnneo'
35
+ this.getModel().setData({
36
+ deck: getSearchParams(data).deck || 'learnneo'
45
37
  })
46
38
  })
47
39
  }
48
40
 
49
- /**
50
- * @param {String} searchString
51
- * @returns {Object}
52
- */
53
- decodeUri(searchString) {
54
- return searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {}
55
- }
56
-
57
41
  /**
58
42
  * @param {String} learnItem
59
43
  */
@@ -64,65 +48,6 @@ class MainContainerController extends Controller {
64
48
  })
65
49
  }
66
50
 
67
- /**
68
- * @param {Object} data
69
- * @param {String} data.appName
70
- * @param {Number} data.windowId
71
- */
72
- async onAppConnect(data) {
73
- let me = this,
74
- app = Neo.apps[data.appName],
75
- mainView = app.mainView,
76
- {windowId} = data,
77
- searchString = await Neo.Main.getByPath({path: 'location.search', windowId}),
78
- livePreviewId = me.decodeUri(searchString.substring(1)).id,
79
- livePreview = Neo.getComponent(livePreviewId),
80
- sourceContainer = livePreview.getReference('preview'),
81
- tabContainer = livePreview.tabContainer,
82
- sourceView = sourceContainer.removeAt(0, false);
83
-
84
- livePreview.previewContainer = mainView;
85
- mainView.add(sourceView);
86
-
87
- tabContainer.activeIndex = 0; // switch to the source view
88
-
89
- tabContainer.getTabAtIndex(1).disabled = true
90
- }
91
-
92
- /**
93
- * @param {Object} data
94
- * @param {String} data.appName
95
- * @param {Number} data.windowId
96
- */
97
- async onAppDisconnect(data) {
98
- let me = this,
99
- {appName, windowId} = data,
100
- app = Neo.apps[appName],
101
- mainView = app.mainView;
102
-
103
- // Closing a code preview window needs to drop the preview back into the related main app
104
- if (appName !== 'Portal') {
105
- let searchString = await Neo.Main.getByPath({path: 'location.search', windowId}),
106
- livePreviewId = me.decodeUri(searchString.substring(1)).id,
107
- livePreview = Neo.getComponent(livePreviewId),
108
- sourceContainer = livePreview.getReference('preview'),
109
- tabContainer = livePreview.tabContainer,
110
- sourceView = mainView.removeAt(0, false);
111
-
112
- livePreview.previewContainer = null;
113
- sourceContainer.add(sourceView);
114
-
115
- tabContainer.activeIndex = 1; // switch to the source view
116
-
117
- livePreview.getReference('popout-window-button').disabled = false;
118
- tabContainer.getTabAtIndex(1).disabled = false
119
- }
120
- // Close popup windows when closing or reloading the main window
121
- else {
122
- Neo.Main.windowClose({names: me.connectedApps, windowId})
123
- }
124
- }
125
-
126
51
  /**
127
52
  *
128
53
  */
@@ -131,16 +56,11 @@ class MainContainerController extends Controller {
131
56
 
132
57
  let me = this;
133
58
 
134
- Neo.currentWorker.on({
135
- connect : me.onAppConnect,
136
- disconnect: me.onAppDisconnect,
137
- scope : me
138
- });
139
-
140
59
  Neo.Main.getByPath({path: 'location.search'})
141
60
  .then(data => {
142
- const search = me.decodeUri(data?.substring(1) || '');
143
- me.getModel().setData('deck', search.deck || 'learnneo');
61
+ me.getModel().setData({
62
+ deck: getSearchParams(data).deck || 'learnneo'
63
+ });
144
64
  });
145
65
 
146
66
  // todo: target file does not exist inside the repo
@@ -48,6 +48,4 @@ class Article extends Base {
48
48
  }
49
49
  }
50
50
 
51
- let instance = Neo.setupClass(Article);
52
-
53
- export default instance;
51
+ export default Neo.setupClass(Article);
@@ -32,6 +32,4 @@ class Favorite extends Base {
32
32
  }
33
33
  }
34
34
 
35
- let instance = Neo.setupClass(Favorite);
36
-
37
- export default instance;
35
+ export default Neo.setupClass(Favorite);
@@ -36,6 +36,4 @@ class Profile extends Base {
36
36
  }
37
37
  }
38
38
 
39
- let instance = Neo.setupClass(Profile);
40
-
41
- export default instance;
39
+ export default Neo.setupClass(Profile);
@@ -18,6 +18,4 @@ class Tag extends Base {
18
18
  }
19
19
  }
20
20
 
21
- let instance = Neo.setupClass(Tag);
22
-
23
- export default instance;
21
+ export default Neo.setupClass(Tag);
@@ -18,6 +18,4 @@ class User extends Base {
18
18
  }
19
19
  }
20
20
 
21
- let instance = Neo.setupClass(User);
22
-
23
- export default instance;
21
+ export default Neo.setupClass(User);
@@ -48,6 +48,4 @@ class Article extends Base {
48
48
  }
49
49
  }
50
50
 
51
- let instance = Neo.setupClass(Article);
52
-
53
- export default instance;
51
+ export default Neo.setupClass(Article);
@@ -32,6 +32,4 @@ class Favorite extends Base {
32
32
  }
33
33
  }
34
34
 
35
- let instance = Neo.setupClass(Favorite);
36
-
37
- export default instance;
35
+ export default Neo.setupClass(Favorite);
@@ -36,6 +36,4 @@ class Profile extends Base {
36
36
  }
37
37
  }
38
38
 
39
- let instance = Neo.setupClass(Profile);
40
-
41
- export default instance;
39
+ export default Neo.setupClass(Profile);
@@ -18,6 +18,4 @@ class Tag extends Base {
18
18
  }
19
19
  }
20
20
 
21
- let instance = Neo.setupClass(Tag);
22
-
23
- export default instance;
21
+ export default Neo.setupClass(Tag);
@@ -18,6 +18,4 @@ class User extends Base {
18
18
  }
19
19
  }
20
20
 
21
- let instance = Neo.setupClass(User);
22
-
23
- export default instance;
21
+ export default Neo.setupClass(User);
@@ -1,12 +1,12 @@
1
- import ArticlePreviews from '../../store/ArticlePreviews.mjs'
2
- import Helix from './Helix.mjs'
3
- import HelixMainContainer from '../../../../examples/component/helix/MainContainer.mjs';
1
+ import ArticlePreviews from '../../store/ArticlePreviews.mjs'
2
+ import Helix from './Helix.mjs'
3
+ import Viewport from '../../../../examples/component/helix/Viewport.mjs';
4
4
 
5
5
  /**
6
6
  * @class RealWorld2.view.article.HelixContainer
7
- * @extends Neo.examples.component.helix.MainContainer
7
+ * @extends Neo.examples.component.helix.Viewport
8
8
  */
9
- class HelixContainer extends HelixMainContainer {
9
+ class HelixContainer extends Viewport {
10
10
  static config = {
11
11
  /**
12
12
  * @member {String} className='RealWorld2.view.article.HelixContainer'
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "apps": [
3
+ "Colors",
3
4
  "Covid",
4
5
  "Docs",
5
6
  "Form",
@@ -42,6 +42,11 @@ class MainContainer extends Viewport {
42
42
  * @member {Neo.collection.Base|null} store_=null
43
43
  */
44
44
  store_: null,
45
+ /**
46
+ * Important for the Portal App, until the new theme fully supports it
47
+ * @member {String} theme='neo-theme-light'
48
+ */
49
+ theme: 'neo-theme-light',
45
50
  /**
46
51
  * @member {Array} items=[//...]
47
52
  */
@@ -246,7 +246,7 @@ class MembersList extends Base {
246
246
 
247
247
  // methods
248
248
  if (item.params && item.kind !== 'event') {
249
- if (item.$kind === 'property') {console.log(item);
249
+ if (item.$kind === 'property') {
250
250
  headerText = 'get ' + headerText
251
251
  }
252
252
 
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.17.2'
23
+ * @member {String} version='6.18.0'
24
24
  */
25
- version: '6.17.2'
25
+ version: '6.18.0'
26
26
  }
27
27
 
28
28
  /**
@@ -32,6 +32,4 @@ class ServiceWorker extends ServiceBase {
32
32
  workerId = 'service'
33
33
  }
34
34
 
35
- let instance = Neo.setupClass(ServiceWorker);
36
-
37
- export default instance;
35
+ export default Neo.setupClass(ServiceWorker);