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.
- package/apps/ServiceWorker.mjs +2 -2
- package/apps/colors/view/Viewport.mjs +9 -9
- package/apps/colors/view/ViewportController.mjs +13 -13
- package/apps/colors/view/{ViewportModel.mjs → ViewportStateProvider.mjs} +8 -8
- package/apps/covid/view/MainContainer.mjs +8 -8
- package/apps/covid/view/MainContainerController.mjs +9 -8
- package/apps/covid/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
- package/apps/covid/view/TableContainerController.mjs +1 -1
- package/apps/form/view/FormContainerController.mjs +2 -2
- package/apps/form/view/SideNavList.mjs +3 -3
- package/apps/form/view/Viewport.mjs +7 -7
- package/apps/form/view/ViewportController.mjs +4 -4
- package/apps/form/view/{ViewportModel.mjs → ViewportStateProvider.mjs} +8 -8
- package/apps/portal/index.html +1 -1
- package/apps/portal/resources/data/examples_devmode.json +3 -3
- package/apps/portal/resources/data/examples_dist_dev.json +3 -3
- package/apps/portal/resources/data/examples_dist_prod.json +3 -3
- package/apps/portal/view/Viewport.mjs +12 -12
- package/apps/portal/view/ViewportStateProvider.mjs +27 -0
- package/apps/portal/view/home/FooterContainer.mjs +1 -1
- package/apps/portal/view/learn/ContentComponent.mjs +2 -2
- package/apps/portal/view/learn/ContentTreeList.mjs +1 -1
- package/apps/portal/view/learn/MainContainer.mjs +9 -9
- package/apps/portal/view/learn/MainContainerController.mjs +12 -12
- package/apps/portal/view/learn/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
- package/apps/portal/view/learn/PageSectionsList.mjs +1 -1
- package/apps/sharedcovid/view/GalleryContainer.mjs +2 -2
- package/apps/sharedcovid/view/HelixContainer.mjs +2 -2
- package/apps/sharedcovid/view/MainContainer.mjs +8 -8
- package/apps/sharedcovid/view/MainContainerController.mjs +11 -9
- package/apps/sharedcovid/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +8 -8
- package/apps/sharedcovid/view/TableContainerController.mjs +1 -1
- package/apps/sharedcovid/view/mapboxGl/Container.mjs +2 -2
- package/buildScripts/createClass.mjs +11 -11
- package/buildScripts/createComponent.mjs +4 -4
- package/docs/app/view/MainContainerController.mjs +6 -6
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/calendar/weekview/MainContainer.mjs +6 -6
- package/examples/{model → stateProvider}/advanced/MainContainer.mjs +12 -12
- package/examples/{model → stateProvider}/advanced/MainContainerController.mjs +10 -10
- package/examples/stateProvider/advanced/app.mjs +6 -0
- package/examples/{model/dialog → stateProvider/advanced}/index.html +1 -1
- package/examples/{model/inline → stateProvider/advanced}/neo-config.json +1 -1
- package/examples/{model → stateProvider}/dialog/EditUserDialog.mjs +3 -3
- package/examples/{model → stateProvider}/dialog/EditUserDialogController.mjs +5 -5
- package/examples/{model → stateProvider}/dialog/MainContainer.mjs +7 -7
- package/examples/{model → stateProvider}/dialog/MainContainerController.mjs +5 -5
- package/examples/{model → stateProvider}/dialog/app.mjs +1 -1
- package/examples/{model/multiWindow2 → stateProvider/dialog}/index.html +1 -1
- package/examples/{model → stateProvider}/dialog/neo-config.json +1 -1
- package/examples/{model → stateProvider}/extendedClass/MainContainer.mjs +13 -13
- package/examples/{model/inline → stateProvider/extendedClass}/MainContainerController.mjs +7 -7
- package/examples/stateProvider/extendedClass/MainContainerStateProvider.mjs +24 -0
- package/examples/stateProvider/extendedClass/app.mjs +6 -0
- package/examples/stateProvider/extendedClass/index.html +11 -0
- package/examples/stateProvider/extendedClass/neo-config.json +7 -0
- package/examples/{model → stateProvider}/inline/MainContainer.mjs +10 -10
- package/examples/{model/extendedClass → stateProvider/inline}/MainContainerController.mjs +7 -7
- package/examples/{model/extendedClass → stateProvider/inline}/app.mjs +1 -1
- package/examples/{model/extendedClass → stateProvider/inline}/index.html +1 -1
- package/examples/{model/extendedClass → stateProvider/inline}/neo-config.json +1 -1
- package/examples/{model/inlineNoModel → stateProvider/inlineNoStateProvider}/MainContainer.mjs +4 -4
- package/examples/{model/inlineNoModel → stateProvider/inlineNoStateProvider}/MainContainerController.mjs +3 -3
- package/examples/stateProvider/inlineNoStateProvider/README.md +8 -0
- package/examples/stateProvider/inlineNoStateProvider/app.mjs +6 -0
- package/examples/{model/inline → stateProvider/inlineNoStateProvider}/index.html +1 -1
- package/examples/stateProvider/inlineNoStateProvider/neo-config.json +7 -0
- package/examples/{model → stateProvider}/multiWindow/EditUserDialog.mjs +3 -3
- package/examples/{model → stateProvider}/multiWindow/EditUserDialogController.mjs +5 -5
- package/examples/{model → stateProvider}/multiWindow/MainContainer.mjs +3 -3
- package/examples/{model → stateProvider}/multiWindow/MainContainerController.mjs +6 -6
- package/examples/{model → stateProvider}/multiWindow/Viewport.mjs +3 -3
- package/examples/{model → stateProvider}/multiWindow/ViewportController.mjs +14 -14
- package/examples/{model/multiWindow2 → stateProvider/multiWindow}/app.mjs +1 -1
- package/examples/{model/advanced → stateProvider/multiWindow}/index.html +1 -1
- package/examples/{model → stateProvider}/multiWindow/neo-config.json +1 -1
- package/examples/{model → stateProvider}/multiWindow2/Viewport.mjs +3 -3
- package/examples/{model/multiWindow → stateProvider/multiWindow2}/app.mjs +1 -1
- package/examples/{model/multiWindow → stateProvider/multiWindow2}/index.html +1 -1
- package/examples/{model → stateProvider}/multiWindow2/neo-config.json +1 -1
- package/examples/{model → stateProvider}/nestedData/MainContainer.mjs +9 -9
- package/examples/{model → stateProvider}/nestedData/MainContainerController.mjs +7 -7
- package/examples/stateProvider/nestedData/app.mjs +6 -0
- package/examples/stateProvider/nestedData/index.html +11 -0
- package/examples/stateProvider/nestedData/neo-config.json +7 -0
- package/examples/{model → stateProvider}/table/MainContainer.mjs +8 -8
- package/examples/stateProvider/table/MainContainerStateProvider.mjs +24 -0
- package/examples/{model → stateProvider}/table/MainModel.mjs +2 -2
- package/examples/{model → stateProvider}/table/MainStore.mjs +2 -2
- package/examples/{model/advanced → stateProvider/table}/app.mjs +1 -1
- package/examples/{model/advanced → stateProvider/table}/neo-config.json +1 -1
- package/examples/{model → stateProvider}/twoWay/MainContainer.mjs +9 -9
- package/examples/{model/inline → stateProvider/twoWay}/app.mjs +1 -1
- package/examples/stateProvider/twoWay/index.html +11 -0
- package/examples/{model → stateProvider}/twoWay/neo-config.json +1 -1
- package/examples/table/nestedRecordFields/EditUserDialog.mjs +3 -3
- package/examples/table/nestedRecordFields/MainContainer.mjs +8 -8
- package/examples/table/nestedRecordFields/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +10 -10
- package/examples/toolbar/paging/view/MainContainer.mjs +7 -7
- package/examples/toolbar/paging/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +8 -8
- package/examples/treeAccordion/MainContainer.mjs +2 -2
- package/package.json +6 -6
- package/resources/data/deck/learnneo/pages/guides/{ViewModels.md → StateProviders.md} +52 -58
- package/resources/data/deck/learnneo/tree.json +46 -46
- package/src/DefaultConfig.mjs +2 -2
- package/src/Neo.mjs +2 -2
- package/src/button/Base.mjs +7 -7
- package/src/calendar/view/EditEventContainer.mjs +3 -3
- package/src/calendar/view/MainContainer.mjs +27 -27
- package/src/calendar/view/{MainContainerModel.mjs → MainContainerStateProvider.mjs} +7 -7
- package/src/calendar/view/YearComponent.mjs +5 -5
- package/src/calendar/view/calendars/EditContainer.mjs +1 -1
- package/src/calendar/view/calendars/List.mjs +1 -1
- package/src/calendar/view/month/Component.mjs +6 -6
- package/src/calendar/view/settings/GeneralContainer.mjs +2 -2
- package/src/calendar/view/week/Component.mjs +10 -10
- package/src/calendar/view/week/EventDragZone.mjs +1 -1
- package/src/code/LivePreview.mjs +2 -2
- package/src/component/Base.mjs +77 -61
- package/src/container/Base.mjs +3 -3
- package/src/controller/Component.mjs +29 -12
- package/src/core/Base.mjs +1 -2
- package/src/core/Compare.mjs +128 -83
- package/src/date/SelectorContainer.mjs +12 -12
- package/src/date/{SelectorContainerModel.mjs → SelectorContainerStateProvider.mjs} +7 -7
- package/src/layout/Base.mjs +6 -6
- package/src/{model/Component.mjs → state/Provider.mjs} +67 -69
- package/src/tooltip/Base.mjs +17 -17
- package/src/tree/Accordion.mjs +15 -13
- package/src/vdom/Helper.mjs +1 -3
- package/src/worker/App.mjs +2 -2
- package/apps/portal/view/ViewportModel.mjs +0 -27
- package/examples/model/extendedClass/MainContainerModel.mjs +0 -24
- package/examples/model/inlineNoModel/README.md +0 -8
- package/examples/model/inlineNoModel/app.mjs +0 -6
- package/examples/model/inlineNoModel/index.html +0 -11
- package/examples/model/inlineNoModel/neo-config.json +0 -7
- package/examples/model/nestedData/app.mjs +0 -6
- package/examples/model/nestedData/index.html +0 -11
- package/examples/model/nestedData/neo-config.json +0 -7
- package/examples/model/table/MainContainerModel.mjs +0 -24
- package/examples/model/table/app.mjs +0 -6
- package/examples/model/table/neo-config.json +0 -7
- package/examples/model/twoWay/app.mjs +0 -6
- package/examples/model/twoWay/index.html +0 -11
- /package/examples/{model → stateProvider}/table/index.html +0 -0
package/apps/ServiceWorker.mjs
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
import BaseViewport
|
2
|
-
import BarChartComponent
|
3
|
-
import HeaderToolbar
|
4
|
-
import PieChartComponent
|
5
|
-
import TableContainer
|
6
|
-
import ViewportController
|
7
|
-
import
|
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.
|
49
|
+
* @member {Neo.state.Provider} stateProvider=ViewportStateProvider
|
50
50
|
*/
|
51
|
-
|
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.
|
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.
|
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.
|
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.
|
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
|
247
|
+
let stateProvider = this.getStateProvider();
|
248
248
|
|
249
|
-
|
249
|
+
stateProvider.setData(name, value);
|
250
250
|
|
251
|
-
if (data.oldValue !== null && !
|
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.
|
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
|
279
|
-
|
278
|
+
let me = this,
|
279
|
+
stateProvider = me.getStateProvider();
|
280
280
|
|
281
281
|
Colors.backend.ColorService.read({
|
282
|
-
amountColors :
|
283
|
-
amountColumns:
|
284
|
-
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
|
2
|
-
import
|
1
|
+
import ColorsStore from '../store/Colors.mjs';
|
2
|
+
import StateProvider from '../../../src/state/Provider.mjs';
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @class Colors.view.
|
6
|
-
* @extends Neo.
|
5
|
+
* @class Colors.view.ViewportStateProvider
|
6
|
+
* @extends Neo.state.Provider
|
7
7
|
*/
|
8
|
-
class
|
8
|
+
class ViewportStateProvider extends StateProvider {
|
9
9
|
static config = {
|
10
10
|
/**
|
11
|
-
* @member {String} className='Colors.view.
|
11
|
+
* @member {String} className='Colors.view.ViewportStateProvider'
|
12
12
|
* @protected
|
13
13
|
*/
|
14
|
-
className: 'Colors.view.
|
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(
|
51
|
+
export default Neo.setupClass(ViewportStateProvider);
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import FooterContainer
|
2
|
-
import HeaderContainer
|
3
|
-
import MainContainerController
|
4
|
-
import
|
5
|
-
import TabContainer
|
6
|
-
import Viewport
|
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.
|
89
|
+
* @member {Neo.state.Provider} stateProvider=MainContainerStateProvider
|
90
90
|
*/
|
91
|
-
|
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
|
122
|
+
vdom;
|
123
123
|
|
124
124
|
me.summaryData = data;
|
125
125
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
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.
|
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.
|
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.
|
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
|
1
|
+
import StateProvider from '../../../src/state/Provider.mjs';
|
2
2
|
|
3
3
|
/**
|
4
|
-
* @class Covid.view.
|
5
|
-
* @extends Neo.
|
4
|
+
* @class Covid.view.MainContainerStateProvider
|
5
|
+
* @extends Neo.state.Provider
|
6
6
|
*/
|
7
|
-
class
|
7
|
+
class MainContainerStateProvider extends StateProvider {
|
8
8
|
static config = {
|
9
9
|
/**
|
10
|
-
* @member {String} className='Covid.view.
|
10
|
+
* @member {String} className='Covid.view.MainContainerStateProvider'
|
11
11
|
* @protected
|
12
12
|
*/
|
13
|
-
className: 'Covid.view.
|
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(
|
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.
|
33
|
+
this.getStateProvider().data.activeIndex++;
|
34
34
|
}
|
35
35
|
|
36
36
|
/**
|
37
37
|
* @param {Object} data
|
38
38
|
*/
|
39
39
|
onPrevPageButtonClick(data) {
|
40
|
-
this.
|
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
|
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.
|
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.
|
92
|
+
this.getStateProvider().data.maxIndex = maxIndex;
|
93
93
|
|
94
94
|
super.onStoreLoad()
|
95
95
|
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import BaseViewport
|
2
|
-
import FormContainer
|
3
|
-
import SideNavList
|
4
|
-
import ViewportController
|
5
|
-
import
|
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.
|
52
|
+
* @member {Neo.state.Provider} stateProvider=ViewportStateProvider
|
53
53
|
*/
|
54
|
-
|
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.
|
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
|
-
|
51
|
+
stateProvider = me.getStateProvider(),
|
52
52
|
pagesContainer = me.getReference('pages-container'),
|
53
53
|
sideNav = me.getReference('side-nav'),
|
54
|
-
store =
|
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.
|
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
|
2
|
-
import
|
1
|
+
import SideNavStore from '../store/SideNav.mjs'
|
2
|
+
import StateProvider from '../../../src/state/Provider.mjs';
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @class Form.view.
|
6
|
-
* @extends Neo.
|
5
|
+
* @class Form.view.ViewportStateProvider
|
6
|
+
* @extends Neo.state.Provider
|
7
7
|
*/
|
8
|
-
class
|
8
|
+
class ViewportStateProvider extends StateProvider {
|
9
9
|
static config = {
|
10
10
|
/**
|
11
|
-
* @member {String} className='Form.view.
|
11
|
+
* @member {String} className='Form.view.ViewportStateProvider'
|
12
12
|
* @protected
|
13
13
|
*/
|
14
|
-
className: 'Form.view.
|
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(
|
93
|
+
export default Neo.setupClass(ViewportStateProvider);
|
package/apps/portal/index.html
CHANGED
@@ -53,9 +53,9 @@
|
|
53
53
|
}, {
|
54
54
|
"id" : 15,
|
55
55
|
"image" : "devmode/model-component-example.png",
|
56
|
-
"name" : "
|
57
|
-
"sourceUrl": "examples/
|
58
|
-
"url" : "examples/
|
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" : "
|
57
|
-
"sourceUrl": "examples/
|
58
|
-
"url" : "dist/development/examples/
|
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" : "
|
57
|
-
"sourceUrl": "examples/
|
58
|
-
"url" : "dist/production/examples/
|
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
|
2
|
-
import Container
|
3
|
-
import HeaderToolbar
|
4
|
-
import NeoArray
|
5
|
-
import ViewportController
|
6
|
-
import
|
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.
|
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);
|
@@ -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.
|
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.
|
383
|
+
me.getStateProvider().getStore('contentSections').data = storeData;
|
384
384
|
|
385
385
|
return contentArray.join('\n')
|
386
386
|
}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import Container
|
2
|
-
import ContentTreeList
|
3
|
-
import MainContainerController
|
4
|
-
import
|
5
|
-
import PageContainer
|
6
|
-
import PageSectionsContainer
|
7
|
-
import Splitter
|
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.
|
67
|
+
* @member {Neo.state.Provider} stateProvider=MainContainerStateProvider
|
68
68
|
*/
|
69
|
-
|
69
|
+
stateProvider: MainContainerStateProvider
|
70
70
|
}
|
71
71
|
}
|
72
72
|
|