neo.mjs 8.0.0-beta.1 → 8.0.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 (146) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/colors/view/Viewport.mjs +9 -9
  3. package/apps/colors/view/ViewportController.mjs +13 -13
  4. package/apps/colors/view/{ViewportModel.mjs → ViewportStateProvider.mjs} +8 -8
  5. package/apps/covid/view/MainContainer.mjs +8 -8
  6. package/apps/covid/view/MainContainerController.mjs +9 -8
  7. package/apps/covid/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
  8. package/apps/covid/view/TableContainerController.mjs +1 -1
  9. package/apps/form/view/FormContainerController.mjs +2 -2
  10. package/apps/form/view/SideNavList.mjs +3 -3
  11. package/apps/form/view/Viewport.mjs +7 -7
  12. package/apps/form/view/ViewportController.mjs +4 -4
  13. package/apps/form/view/{ViewportModel.mjs → ViewportStateProvider.mjs} +8 -8
  14. package/apps/portal/index.html +1 -1
  15. package/apps/portal/resources/data/examples_devmode.json +3 -3
  16. package/apps/portal/resources/data/examples_dist_dev.json +3 -3
  17. package/apps/portal/resources/data/examples_dist_prod.json +3 -3
  18. package/apps/portal/view/Viewport.mjs +12 -12
  19. package/apps/portal/view/ViewportStateProvider.mjs +27 -0
  20. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  21. package/apps/portal/view/learn/ContentComponent.mjs +2 -2
  22. package/apps/portal/view/learn/ContentTreeList.mjs +1 -1
  23. package/apps/portal/view/learn/MainContainer.mjs +9 -9
  24. package/apps/portal/view/learn/MainContainerController.mjs +12 -12
  25. package/apps/portal/view/learn/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
  26. package/apps/portal/view/learn/PageSectionsList.mjs +1 -1
  27. package/apps/sharedcovid/view/GalleryContainer.mjs +2 -2
  28. package/apps/sharedcovid/view/HelixContainer.mjs +2 -2
  29. package/apps/sharedcovid/view/MainContainer.mjs +8 -8
  30. package/apps/sharedcovid/view/MainContainerController.mjs +11 -9
  31. package/apps/sharedcovid/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +8 -8
  32. package/apps/sharedcovid/view/TableContainerController.mjs +1 -1
  33. package/apps/sharedcovid/view/mapboxGl/Container.mjs +2 -2
  34. package/buildScripts/createClass.mjs +11 -11
  35. package/buildScripts/createComponent.mjs +4 -4
  36. package/docs/app/view/MainContainerController.mjs +6 -6
  37. package/examples/ServiceWorker.mjs +2 -2
  38. package/examples/calendar/weekview/MainContainer.mjs +6 -6
  39. package/examples/{model → stateProvider}/advanced/MainContainer.mjs +12 -12
  40. package/examples/{model → stateProvider}/advanced/MainContainerController.mjs +10 -10
  41. package/examples/stateProvider/advanced/app.mjs +6 -0
  42. package/examples/{model/dialog → stateProvider/advanced}/index.html +1 -1
  43. package/examples/{model/inline → stateProvider/advanced}/neo-config.json +1 -1
  44. package/examples/{model → stateProvider}/dialog/EditUserDialog.mjs +3 -3
  45. package/examples/{model → stateProvider}/dialog/EditUserDialogController.mjs +5 -5
  46. package/examples/{model → stateProvider}/dialog/MainContainer.mjs +7 -7
  47. package/examples/{model → stateProvider}/dialog/MainContainerController.mjs +5 -5
  48. package/examples/{model → stateProvider}/dialog/app.mjs +1 -1
  49. package/examples/{model/multiWindow2 → stateProvider/dialog}/index.html +1 -1
  50. package/examples/{model → stateProvider}/dialog/neo-config.json +1 -1
  51. package/examples/{model → stateProvider}/extendedClass/MainContainer.mjs +13 -13
  52. package/examples/{model/inline → stateProvider/extendedClass}/MainContainerController.mjs +7 -7
  53. package/examples/stateProvider/extendedClass/MainContainerStateProvider.mjs +24 -0
  54. package/examples/stateProvider/extendedClass/app.mjs +6 -0
  55. package/examples/stateProvider/extendedClass/index.html +11 -0
  56. package/examples/stateProvider/extendedClass/neo-config.json +7 -0
  57. package/examples/{model → stateProvider}/inline/MainContainer.mjs +10 -10
  58. package/examples/{model/extendedClass → stateProvider/inline}/MainContainerController.mjs +7 -7
  59. package/examples/{model/extendedClass → stateProvider/inline}/app.mjs +1 -1
  60. package/examples/{model/extendedClass → stateProvider/inline}/index.html +1 -1
  61. package/examples/{model/extendedClass → stateProvider/inline}/neo-config.json +1 -1
  62. package/examples/{model/inlineNoModel → stateProvider/inlineNoStateProvider}/MainContainer.mjs +4 -4
  63. package/examples/{model/inlineNoModel → stateProvider/inlineNoStateProvider}/MainContainerController.mjs +3 -3
  64. package/examples/stateProvider/inlineNoStateProvider/README.md +8 -0
  65. package/examples/stateProvider/inlineNoStateProvider/app.mjs +6 -0
  66. package/examples/{model/inline → stateProvider/inlineNoStateProvider}/index.html +1 -1
  67. package/examples/stateProvider/inlineNoStateProvider/neo-config.json +7 -0
  68. package/examples/{model → stateProvider}/multiWindow/EditUserDialog.mjs +3 -3
  69. package/examples/{model → stateProvider}/multiWindow/EditUserDialogController.mjs +5 -5
  70. package/examples/{model → stateProvider}/multiWindow/MainContainer.mjs +3 -3
  71. package/examples/{model → stateProvider}/multiWindow/MainContainerController.mjs +6 -6
  72. package/examples/{model → stateProvider}/multiWindow/Viewport.mjs +3 -3
  73. package/examples/{model → stateProvider}/multiWindow/ViewportController.mjs +14 -14
  74. package/examples/{model/multiWindow2 → stateProvider/multiWindow}/app.mjs +1 -1
  75. package/examples/{model/advanced → stateProvider/multiWindow}/index.html +1 -1
  76. package/examples/{model → stateProvider}/multiWindow/neo-config.json +1 -1
  77. package/examples/{model → stateProvider}/multiWindow2/Viewport.mjs +3 -3
  78. package/examples/{model/multiWindow → stateProvider/multiWindow2}/app.mjs +1 -1
  79. package/examples/{model/multiWindow → stateProvider/multiWindow2}/index.html +1 -1
  80. package/examples/{model → stateProvider}/multiWindow2/neo-config.json +1 -1
  81. package/examples/{model → stateProvider}/nestedData/MainContainer.mjs +9 -9
  82. package/examples/{model → stateProvider}/nestedData/MainContainerController.mjs +7 -7
  83. package/examples/stateProvider/nestedData/app.mjs +6 -0
  84. package/examples/stateProvider/nestedData/index.html +11 -0
  85. package/examples/stateProvider/nestedData/neo-config.json +7 -0
  86. package/examples/{model → stateProvider}/table/MainContainer.mjs +8 -8
  87. package/examples/stateProvider/table/MainContainerStateProvider.mjs +24 -0
  88. package/examples/{model → stateProvider}/table/MainModel.mjs +2 -2
  89. package/examples/{model → stateProvider}/table/MainStore.mjs +2 -2
  90. package/examples/{model/advanced → stateProvider/table}/app.mjs +1 -1
  91. package/examples/{model/advanced → stateProvider/table}/neo-config.json +1 -1
  92. package/examples/{model → stateProvider}/twoWay/MainContainer.mjs +9 -9
  93. package/examples/{model/inline → stateProvider/twoWay}/app.mjs +1 -1
  94. package/examples/stateProvider/twoWay/index.html +11 -0
  95. package/examples/{model → stateProvider}/twoWay/neo-config.json +1 -1
  96. package/examples/table/nestedRecordFields/EditUserDialog.mjs +3 -3
  97. package/examples/table/nestedRecordFields/MainContainer.mjs +8 -8
  98. package/examples/table/nestedRecordFields/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +10 -10
  99. package/examples/toolbar/paging/view/MainContainer.mjs +7 -7
  100. package/examples/toolbar/paging/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +8 -8
  101. package/examples/treeAccordion/MainContainer.mjs +2 -2
  102. package/package.json +6 -6
  103. package/resources/data/deck/learnneo/pages/guides/{ViewModels.md → StateProviders.md} +52 -58
  104. package/resources/data/deck/learnneo/tree.json +46 -46
  105. package/src/DefaultConfig.mjs +2 -2
  106. package/src/Neo.mjs +2 -2
  107. package/src/button/Base.mjs +7 -7
  108. package/src/calendar/view/EditEventContainer.mjs +3 -3
  109. package/src/calendar/view/MainContainer.mjs +27 -27
  110. package/src/calendar/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
  111. package/src/calendar/view/YearComponent.mjs +5 -5
  112. package/src/calendar/view/calendars/EditContainer.mjs +1 -1
  113. package/src/calendar/view/calendars/List.mjs +1 -1
  114. package/src/calendar/view/month/Component.mjs +6 -6
  115. package/src/calendar/view/settings/GeneralContainer.mjs +2 -2
  116. package/src/calendar/view/week/Component.mjs +10 -10
  117. package/src/calendar/view/week/EventDragZone.mjs +1 -1
  118. package/src/code/LivePreview.mjs +2 -2
  119. package/src/component/Base.mjs +77 -61
  120. package/src/container/Base.mjs +3 -3
  121. package/src/controller/Component.mjs +29 -12
  122. package/src/core/Base.mjs +1 -2
  123. package/src/core/Compare.mjs +128 -83
  124. package/src/date/SelectorContainer.mjs +12 -12
  125. package/src/date/{SelectorContainerModel.mjs → SelectorContainerStateProvider.mjs} +7 -7
  126. package/src/layout/Base.mjs +6 -6
  127. package/src/{model/Component.mjs → state/Provider.mjs} +67 -69
  128. package/src/tooltip/Base.mjs +17 -17
  129. package/src/tree/Accordion.mjs +15 -13
  130. package/src/vdom/Helper.mjs +1 -3
  131. package/src/worker/App.mjs +2 -2
  132. package/apps/portal/view/ViewportModel.mjs +0 -27
  133. package/examples/model/extendedClass/MainContainerModel.mjs +0 -24
  134. package/examples/model/inlineNoModel/README.md +0 -8
  135. package/examples/model/inlineNoModel/app.mjs +0 -6
  136. package/examples/model/inlineNoModel/index.html +0 -11
  137. package/examples/model/inlineNoModel/neo-config.json +0 -7
  138. package/examples/model/nestedData/app.mjs +0 -6
  139. package/examples/model/nestedData/index.html +0 -11
  140. package/examples/model/nestedData/neo-config.json +0 -7
  141. package/examples/model/table/MainContainerModel.mjs +0 -24
  142. package/examples/model/table/app.mjs +0 -6
  143. package/examples/model/table/neo-config.json +0 -7
  144. package/examples/model/twoWay/app.mjs +0 -6
  145. package/examples/model/twoWay/index.html +0 -11
  146. /package/examples/{model → stateProvider}/table/index.html +0 -0
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='8.0.0-beta.1'
23
+ * @member {String} version='8.0.0'
24
24
  */
25
- version: '8.0.0-beta.1'
25
+ version: '8.0.0'
26
26
  }
27
27
 
28
28
  /**
@@ -1,10 +1,10 @@
1
- import BaseViewport from '../../../src/container/Viewport.mjs';
2
- import BarChartComponent from './BarChartComponent.mjs';
3
- import HeaderToolbar from './HeaderToolbar.mjs';
4
- import PieChartComponent from './PieChartComponent.mjs';
5
- import TableContainer from './TableContainer.mjs';
6
- import ViewportController from './ViewportController.mjs';
7
- import ViewportModel from './ViewportModel.mjs';
1
+ import BaseViewport from '../../../src/container/Viewport.mjs';
2
+ import BarChartComponent from './BarChartComponent.mjs';
3
+ import HeaderToolbar from './HeaderToolbar.mjs';
4
+ import PieChartComponent from './PieChartComponent.mjs';
5
+ import TableContainer from './TableContainer.mjs';
6
+ import ViewportController from './ViewportController.mjs';
7
+ import ViewportStateProvider from './ViewportStateProvider.mjs';
8
8
 
9
9
  /**
10
10
  * @class Colors.view.Viewport
@@ -46,9 +46,9 @@ class Viewport extends BaseViewport {
46
46
  reference: 'bar-chart'
47
47
  }],
48
48
  /**
49
- * @member {Neo.model.Component} model=ViewportModel
49
+ * @member {Neo.state.Provider} stateProvider=ViewportStateProvider
50
50
  */
51
- model: ViewportModel
51
+ stateProvider: ViewportStateProvider
52
52
  }
53
53
  }
54
54
 
@@ -48,7 +48,7 @@ class ViewportController extends Controller {
48
48
 
49
49
  url = `${basePath}apps/colors/childapps/widget/index.html?name=${name}`;
50
50
 
51
- if (me.getModel().getData('openWidgetsAsPopups')) {
51
+ if (me.getStateProvider().getData('openWidgetsAsPopups')) {
52
52
  let widget = me.getReference(name),
53
53
  winData = await Neo.Main.getWindowData({windowId} ),
54
54
  rect = await me.component.getDomRect(widget.vdom.id), // using the vdom id to always get the top-level node
@@ -152,7 +152,7 @@ class ViewportController extends Controller {
152
152
  * @param {Object} data
153
153
  */
154
154
  onChangeOpenWidgetsAsPopups(data) {
155
- this.getModel().setData('openWidgetsAsPopups', data.value)
155
+ this.setState('openWidgetsAsPopups', data.value)
156
156
  }
157
157
 
158
158
  /**
@@ -206,7 +206,7 @@ class ViewportController extends Controller {
206
206
  let me = this,
207
207
  intervalTime = 1000 / 60; // assuming 60 FPS
208
208
 
209
- me.getModel().setData({isUpdating: true});
209
+ me.setState({isUpdating: true});
210
210
 
211
211
  if (!me.intervalId) {
212
212
  me.intervalId = setInterval(() => {
@@ -221,7 +221,7 @@ class ViewportController extends Controller {
221
221
  onStopButtonClick(data) {
222
222
  let me = this;
223
223
 
224
- me.getModel().setData({isUpdating: false});
224
+ me.setState({isUpdating: false});
225
225
 
226
226
  if (me.intervalId) {
227
227
  clearInterval(me.intervalId);
@@ -244,11 +244,11 @@ class ViewportController extends Controller {
244
244
  * @param {Number|Object|null} value The new VM data property value
245
245
  */
246
246
  updateDataProperty(data, name, value) {
247
- let model = this.getModel();
247
+ let stateProvider = this.getStateProvider();
248
248
 
249
- model.setData(name, value);
249
+ stateProvider.setData(name, value);
250
250
 
251
- if (data.oldValue !== null && !model.getData('isUpdating')) {
251
+ if (data.oldValue !== null && !stateProvider.getData('isUpdating')) {
252
252
  this.updateWidgets()
253
253
  }
254
254
  }
@@ -265,7 +265,7 @@ class ViewportController extends Controller {
265
265
  } else {
266
266
  // Depending on the delay of the Socket Connection,
267
267
  // the next data package could still contain the old settings
268
- if (this.getModel().getData('amountRows') === records.length) {
268
+ if (this.getStateProvider().getData('amountRows') === records.length) {
269
269
  store.data = records
270
270
  }
271
271
  }
@@ -275,13 +275,13 @@ class ViewportController extends Controller {
275
275
  *
276
276
  */
277
277
  updateWidgets() {
278
- let me = this,
279
- model = me.getModel();
278
+ let me = this,
279
+ stateProvider = me.getStateProvider();
280
280
 
281
281
  Colors.backend.ColorService.read({
282
- amountColors : model.getData('amountColors'),
283
- amountColumns: model.getData('amountColumns'),
284
- amountRows : model.getData('amountRows')
282
+ amountColors : stateProvider.getData('amountColors'),
283
+ amountColumns: stateProvider.getData('amountColumns'),
284
+ amountRows : stateProvider.getData('amountRows')
285
285
  }).then(response => {
286
286
  if (!me.isDestroyed) {
287
287
  let {data} = response;
@@ -1,17 +1,17 @@
1
- import Component from '../../../src/model/Component.mjs';
2
- import ColorsStore from '../store/Colors.mjs';
1
+ import ColorsStore from '../store/Colors.mjs';
2
+ import StateProvider from '../../../src/state/Provider.mjs';
3
3
 
4
4
  /**
5
- * @class Colors.view.ViewportModel
6
- * @extends Neo.model.Component
5
+ * @class Colors.view.ViewportStateProvider
6
+ * @extends Neo.state.Provider
7
7
  */
8
- class ViewportModel extends Component {
8
+ class ViewportStateProvider extends StateProvider {
9
9
  static config = {
10
10
  /**
11
- * @member {String} className='Colors.view.ViewportModel'
11
+ * @member {String} className='Colors.view.ViewportStateProvider'
12
12
  * @protected
13
13
  */
14
- className: 'Colors.view.ViewportModel',
14
+ className: 'Colors.view.ViewportStateProvider',
15
15
  /**
16
16
  * @member {Object} data
17
17
  */
@@ -48,4 +48,4 @@ class ViewportModel extends Component {
48
48
  }
49
49
  }
50
50
 
51
- export default Neo.setupClass(ViewportModel);
51
+ export default Neo.setupClass(ViewportStateProvider);
@@ -1,9 +1,9 @@
1
- import FooterContainer from './FooterContainer.mjs';
2
- import HeaderContainer from './HeaderContainer.mjs';
3
- import MainContainerController from './MainContainerController.mjs';
4
- import MainContainerModel from './MainContainerModel.mjs';
5
- import TabContainer from '../../../src/tab/Container.mjs';
6
- import Viewport from '../../../src/container/Viewport.mjs';
1
+ import FooterContainer from './FooterContainer.mjs';
2
+ import HeaderContainer from './HeaderContainer.mjs';
3
+ import MainContainerController from './MainContainerController.mjs';
4
+ import MainContainerStateProvider from './MainContainerStateProvider.mjs';
5
+ import TabContainer from '../../../src/tab/Container.mjs';
6
+ import Viewport from '../../../src/container/Viewport.mjs';
7
7
 
8
8
  /**
9
9
  * @class Covid.view.MainContainer
@@ -86,9 +86,9 @@ class MainContainer extends Viewport {
86
86
  */
87
87
  layout: {ntype: 'vbox', align: 'stretch'},
88
88
  /**
89
- * @member {Neo.model.Component} model=MainContainerModel
89
+ * @member {Neo.state.Provider} stateProvider=MainContainerStateProvider
90
90
  */
91
- model: MainContainerModel
91
+ stateProvider: MainContainerStateProvider
92
92
  }
93
93
  }
94
94
 
@@ -119,15 +119,16 @@ class MainContainerController extends ComponentController {
119
119
  applySummaryData(data) {
120
120
  let me = this,
121
121
  container = me.getReference('total-stats'),
122
- vdom = container.vdom;
122
+ vdom;
123
123
 
124
124
  me.summaryData = data;
125
125
 
126
- vdom.cn[0].cn[1].html = Util.formatNumber({value: data.cases});
127
- vdom.cn[1].cn[1].html = Util.formatNumber({value: data.active});
128
- vdom.cn[2].cn[1].html = Util.formatNumber({value: data.recovered});
129
- vdom.cn[3].cn[1].html = Util.formatNumber({value: data.deaths});
126
+ container.items[0].vdom.cn[1].html = Util.formatNumber({value: data.cases});
127
+ container.items[1].vdom.cn[1].html = Util.formatNumber({value: data.active});
128
+ container.items[2].vdom.cn[1].html = Util.formatNumber({value: data.recovered});
129
+ container.items[3].vdom.cn[1].html = Util.formatNumber({value: data.deaths});
130
130
 
131
+ container.updateDepth = 2;
131
132
  container.update();
132
133
 
133
134
  container = me.getReference('last-update');
@@ -239,7 +240,7 @@ class MainContainerController extends ComponentController {
239
240
  record = value && store.find('country', value)?.[0];
240
241
  }
241
242
 
242
- this.getModel().setData({
243
+ this.setState({
243
244
  country : value,
244
245
  countryRecord: record || null
245
246
  });
@@ -268,7 +269,7 @@ class MainContainerController extends ComponentController {
268
269
  return
269
270
  }
270
271
 
271
- me.getModel().setData({
272
+ me.setState({
272
273
  country: country || null
273
274
  });
274
275
 
@@ -290,7 +291,7 @@ class MainContainerController extends ComponentController {
290
291
  me.mapboxglMapHasData = true;
291
292
  }
292
293
 
293
- countryRecord = me.getModel().data.countryRecord;
294
+ countryRecord = me.getStateProvider().data.countryRecord;
294
295
  countryRecord && MainContainerController.selectMapboxGlCountry(activeView, countryRecord);
295
296
 
296
297
  activeView.autoResize();
@@ -1,16 +1,16 @@
1
- import Component from '../../../src/model/Component.mjs';
1
+ import StateProvider from '../../../src/state/Provider.mjs';
2
2
 
3
3
  /**
4
- * @class Covid.view.MainContainerModel
5
- * @extends Neo.model.Component
4
+ * @class Covid.view.MainContainerStateProvider
5
+ * @extends Neo.state.Provider
6
6
  */
7
- class MainContainerModel extends Component {
7
+ class MainContainerStateProvider extends StateProvider {
8
8
  static config = {
9
9
  /**
10
- * @member {String} className='Covid.view.MainContainerModel'
10
+ * @member {String} className='Covid.view.MainContainerStateProvider'
11
11
  * @protected
12
12
  */
13
- className: 'Covid.view.MainContainerModel',
13
+ className: 'Covid.view.MainContainerStateProvider',
14
14
  /**
15
15
  * @member {Object} data
16
16
  */
@@ -45,4 +45,4 @@ class MainContainerModel extends Component {
45
45
  }
46
46
  }
47
47
 
48
- export default Neo.setupClass(MainContainerModel);
48
+ export default Neo.setupClass(MainContainerStateProvider);
@@ -97,7 +97,7 @@ class TableContainerController extends ComponentController {
97
97
  }
98
98
 
99
99
  // the array is sorted by date ASC
100
- Object.assign(dataArray[0], {
100
+ dataArray[0] && Object.assign(dataArray[0], {
101
101
  dailyActive : dataArray[0].active,
102
102
  dailyCases : dataArray[0].cases,
103
103
  dailyDeaths : dataArray[0].deaths,
@@ -30,14 +30,14 @@ class FormContainerController extends Component {
30
30
  * @param {Object} data
31
31
  */
32
32
  onNextPageButtonClick(data) {
33
- this.getModel().data.activeIndex++;
33
+ this.getStateProvider().data.activeIndex++;
34
34
  }
35
35
 
36
36
  /**
37
37
  * @param {Object} data
38
38
  */
39
39
  onPrevPageButtonClick(data) {
40
- this.getModel().data.activeIndex--;
40
+ this.getStateProvider().data.activeIndex--;
41
41
  }
42
42
 
43
43
  /**
@@ -64,14 +64,14 @@ class SideNavList extends List {
64
64
  }
65
65
 
66
66
  /**
67
- * Saves activeIndex & activeTitle into the closest view model
67
+ * Saves activeIndex & activeTitle into the closest stateProvider
68
68
  * @param {String[]} items
69
69
  */
70
70
  onSelect(items) {
71
71
  let me = this,
72
72
  record = me.store.get(me.getItemRecordId(items[0]));
73
73
 
74
- me.getModel().setData({
74
+ me.setState({
75
75
  activeIndex: record.cardIndex,
76
76
  activeTitle: record.name
77
77
  })
@@ -89,7 +89,7 @@ class SideNavList extends List {
89
89
  }
90
90
  });
91
91
 
92
- this.getModel().data.maxIndex = maxIndex;
92
+ this.getStateProvider().data.maxIndex = maxIndex;
93
93
 
94
94
  super.onStoreLoad()
95
95
  }
@@ -1,8 +1,8 @@
1
- import BaseViewport from '../../../src/container/Viewport.mjs';
2
- import FormContainer from './FormContainer.mjs';
3
- import SideNavList from './SideNavList.mjs';
4
- import ViewportController from './ViewportController.mjs';
5
- import ViewportModel from './ViewportModel.mjs';
1
+ import BaseViewport from '../../../src/container/Viewport.mjs';
2
+ import FormContainer from './FormContainer.mjs';
3
+ import SideNavList from './SideNavList.mjs';
4
+ import ViewportController from './ViewportController.mjs';
5
+ import ViewportStateProvider from './ViewportStateProvider.mjs';
6
6
 
7
7
  /**
8
8
  * @class Form.view.Viewport
@@ -49,9 +49,9 @@ class Viewport extends BaseViewport {
49
49
  */
50
50
  layout: {ntype: 'hbox', align: 'stretch'},
51
51
  /**
52
- * @member {Neo.model.Component} model=ViewportModel
52
+ * @member {Neo.state.Provider} stateProvider=ViewportStateProvider
53
53
  */
54
- model: ViewportModel
54
+ stateProvider: ViewportStateProvider
55
55
  }
56
56
  }
57
57
 
@@ -32,7 +32,7 @@ class ViewportController extends Component {
32
32
  */
33
33
  async onValidatePageButtonClick(data) {
34
34
  let me = this,
35
- activeIndex = me.getModel().data.activeIndex,
35
+ activeIndex = me.getStateProvider().data.activeIndex,
36
36
  activeCard = me.getReference('pages-container').items[activeIndex],
37
37
  formValues = await activeCard.getSubmitValues();
38
38
 
@@ -48,10 +48,10 @@ class ViewportController extends Component {
48
48
  */
49
49
  async updateRecordValidityState(pageIndex=null) {
50
50
  let me = this,
51
- model = me.getModel(),
51
+ stateProvider = me.getStateProvider(),
52
52
  pagesContainer = me.getReference('pages-container'),
53
53
  sideNav = me.getReference('side-nav'),
54
- store = model.getStore('sideNav'),
54
+ store = stateProvider.getStore('sideNav'),
55
55
  i = 0,
56
56
  len = pagesContainer.items.length,
57
57
  formState, listIndex, page;
@@ -63,7 +63,7 @@ class ViewportController extends Component {
63
63
 
64
64
  for (; i < len; i++) {
65
65
  page = pagesContainer.items[i];
66
- listIndex = sideNav.getActiveIndex(i);
66
+ listIndex = sideNav.getSelectedIndex(i);
67
67
  formState = await page.getFormState();
68
68
 
69
69
  store.getAt(listIndex).formState = formState
@@ -1,17 +1,17 @@
1
- import Component from '../../../src/model/Component.mjs';
2
- import SideNavStore from '../store/SideNav.mjs'
1
+ import SideNavStore from '../store/SideNav.mjs'
2
+ import StateProvider from '../../../src/state/Provider.mjs';
3
3
 
4
4
  /**
5
- * @class Form.view.ViewportModel
6
- * @extends Neo.model.Component
5
+ * @class Form.view.ViewportStateProvider
6
+ * @extends Neo.state.Provider
7
7
  */
8
- class ViewportModel extends Component {
8
+ class ViewportStateProvider extends StateProvider {
9
9
  static config = {
10
10
  /**
11
- * @member {String} className='Form.view.ViewportModel'
11
+ * @member {String} className='Form.view.ViewportStateProvider'
12
12
  * @protected
13
13
  */
14
- className: 'Form.view.ViewportModel',
14
+ className: 'Form.view.ViewportStateProvider',
15
15
  /**
16
16
  * @member {Object} data
17
17
  */
@@ -90,4 +90,4 @@ class ViewportModel extends Component {
90
90
  }
91
91
  }
92
92
 
93
- export default Neo.setupClass(ViewportModel);
93
+ export default Neo.setupClass(ViewportStateProvider);
@@ -16,7 +16,7 @@
16
16
  "@type": "Organization",
17
17
  "name": "Neo.mjs"
18
18
  },
19
- "datePublished": "2024-11-21",
19
+ "datePublished": "2024-12-14",
20
20
  "publisher": {
21
21
  "@type": "Organization",
22
22
  "name": "Neo.mjs"
@@ -53,9 +53,9 @@
53
53
  }, {
54
54
  "id" : 15,
55
55
  "image" : "devmode/model-component-example.png",
56
- "name" : "View Models Example",
57
- "sourceUrl": "examples/model/advanced",
58
- "url" : "examples/model/advanced/index.html"
56
+ "name" : "State Provider Example",
57
+ "sourceUrl": "examples/stateProvider/advanced",
58
+ "url" : "examples/stateProvider/advanced/index.html"
59
59
  }, {
60
60
  "id" : 14,
61
61
  "image" : "devmode/dragdrop.png",
@@ -53,9 +53,9 @@
53
53
  }, {
54
54
  "id" : 14,
55
55
  "image" : "devmode/model-component-example.png",
56
- "name" : "View Models Example",
57
- "sourceUrl": "examples/model/advanced",
58
- "url" : "dist/development/examples/model/advanced/index.html"
56
+ "name" : "State Provider Example",
57
+ "sourceUrl": "examples/stateProvider/advanced",
58
+ "url" : "dist/development/examples/stateProvider/advanced/index.html"
59
59
  }, {
60
60
  "id" : 13,
61
61
  "image" : "devmode/dragdrop.png",
@@ -53,9 +53,9 @@
53
53
  }, {
54
54
  "id" : 14,
55
55
  "image" : "devmode/model-component-example.png",
56
- "name" : "View Models Example",
57
- "sourceUrl": "examples/model/advanced",
58
- "url" : "dist/production/examples/model/advanced/index.html"
56
+ "name" : "State Provider Example",
57
+ "sourceUrl": "examples/stateProvider/advanced",
58
+ "url" : "dist/production/examples/stateProvider/advanced/index.html"
59
59
  }, {
60
60
  "id" : 13,
61
61
  "image" : "devmode/dragdrop.png",
@@ -1,9 +1,9 @@
1
- import BaseViewport from '../../../src/container/Viewport.mjs';
2
- import Container from '../../../src/container/Base.mjs';
3
- import HeaderToolbar from './HeaderToolbar.mjs';
4
- import NeoArray from '../../../src/util/Array.mjs';
5
- import ViewportController from './ViewportController.mjs';
6
- import ViewportModel from './ViewportModel.mjs';
1
+ import BaseViewport from '../../../src/container/Viewport.mjs';
2
+ import Container from '../../../src/container/Base.mjs';
3
+ import HeaderToolbar from './HeaderToolbar.mjs';
4
+ import NeoArray from '../../../src/util/Array.mjs';
5
+ import ViewportController from './ViewportController.mjs';
6
+ import ViewportStateProvider from './ViewportStateProvider.mjs';
7
7
 
8
8
  /**
9
9
  * @class Portal.view.Viewport
@@ -55,10 +55,6 @@ class Viewport extends BaseViewport {
55
55
  {module: () => import('../../../docs/app/view/MainContainer.mjs')}
56
56
  ]
57
57
  }],
58
- /**
59
- * @member {Neo.model.Component} model=ViewportModel
60
- */
61
- model: ViewportModel,
62
58
  /**
63
59
  * @member {Boolean} monitorSize=true
64
60
  */
@@ -67,7 +63,11 @@ class Viewport extends BaseViewport {
67
63
  * Values are: large, medium, small, xSmall
68
64
  * @member {String|null} size_=null
69
65
  */
70
- size_: null
66
+ size_: null,
67
+ /**
68
+ * @member {Neo.state.Provider} stateProvider=ViewportStateProvider
69
+ */
70
+ stateProvider: ViewportStateProvider
71
71
  }
72
72
 
73
73
  /**
@@ -96,7 +96,7 @@ class Viewport extends BaseViewport {
96
96
  NeoArray.add( cls, 'portal-size-' + value);
97
97
  me.cls = cls;
98
98
 
99
- me.model.setData({size: value});
99
+ me.stateProvider.setData({size: value});
100
100
 
101
101
  me.controller.size = value
102
102
  }
@@ -0,0 +1,27 @@
1
+ import StateProvider from '../../../src/state/Provider.mjs';
2
+
3
+ /**
4
+ * @class Portal.view.ViewportStateProvider
5
+ * @extends Neo.state.Provider
6
+ */
7
+ class ViewportStateProvider extends StateProvider {
8
+ static config = {
9
+ /**
10
+ * @member {String} className='Portal.view.ViewportStateProvider'
11
+ * @protected
12
+ */
13
+ className: 'Portal.view.ViewportStateProvider',
14
+ /**
15
+ * @member {Object} data
16
+ */
17
+ data: {
18
+ /**
19
+ * Values are: large, medium, small, xSmall, null
20
+ * @member {String|null} size
21
+ */
22
+ size: null
23
+ }
24
+ }
25
+ }
26
+
27
+ export default Neo.setupClass(ViewportStateProvider);
@@ -111,7 +111,7 @@ class FooterContainer extends Container {
111
111
  }, {
112
112
  module: Component,
113
113
  cls : ['neo-version'],
114
- html : 'v8.0.0-beta.1'
114
+ html : 'v8.0.0'
115
115
  }]
116
116
  }],
117
117
  /**
@@ -174,7 +174,7 @@ class ContentComponent extends Component {
174
174
  async doFetchContent(record) {
175
175
  let me = this,
176
176
  {appName, windowId} = me,
177
- path = me.getModel().getData('contentPath'),
177
+ path = me.getStateProvider().getData('contentPath'),
178
178
  baseConfigs, content, data, html, instance, modifiedHtml, neoComponents, neoDivs;
179
179
 
180
180
  path += `/pages/${record.id.replaceAll('.', '/')}.md`;
@@ -380,7 +380,7 @@ class ContentComponent extends Component {
380
380
  }
381
381
  });
382
382
 
383
- me.getModel().getStore('contentSections').data = storeData;
383
+ me.getStateProvider().getStore('contentSections').data = storeData;
384
384
 
385
385
  return contentArray.join('\n')
386
386
  }
@@ -83,7 +83,7 @@ class ContentTreeList extends TreeList {
83
83
  onStoreLoad() {
84
84
  super.onStoreLoad();
85
85
 
86
- this.getModel().data.countPages = this.store.getCount()
86
+ this.getStateProvider().data.countPages = this.store.getCount()
87
87
  }
88
88
  }
89
89
 
@@ -1,10 +1,10 @@
1
- import Container from '../../../../src/container/Base.mjs';
2
- import ContentTreeList from './ContentTreeList.mjs';
3
- import MainContainerController from './MainContainerController.mjs';
4
- import MainContainerModel from './MainContainerModel.mjs';
5
- import PageContainer from './PageContainer.mjs';
6
- import PageSectionsContainer from './PageSectionsContainer.mjs';
7
- import Splitter from '../../../../src/component/Splitter.mjs';
1
+ import Container from '../../../../src/container/Base.mjs';
2
+ import ContentTreeList from './ContentTreeList.mjs';
3
+ import MainContainerController from './MainContainerController.mjs';
4
+ import MainContainerStateProvider from './MainContainerStateProvider.mjs';
5
+ import PageContainer from './PageContainer.mjs';
6
+ import PageSectionsContainer from './PageSectionsContainer.mjs';
7
+ import Splitter from '../../../../src/component/Splitter.mjs';
8
8
 
9
9
  /**
10
10
  * @class Portal.view.learn.MainContainer
@@ -64,9 +64,9 @@ class MainContainer extends Container {
64
64
  */
65
65
  layout: {ntype: 'hbox', align: 'stretch'},
66
66
  /**
67
- * @member {Neo.model.Component} model=MainContainerModel
67
+ * @member {Neo.state.Provider} stateProvider=MainContainerStateProvider
68
68
  */
69
- model: MainContainerModel
69
+ stateProvider: MainContainerStateProvider
70
70
  }
71
71
  }
72
72