neo.mjs 6.13.0 → 6.15.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/covid/neo-config.json +1 -1
- package/apps/covid/view/HeaderContainer.mjs +2 -2
- package/apps/form/view/pages/Page10.mjs +2 -2
- package/apps/portal/view/ViewportController.mjs +5 -4
- package/apps/portal/view/home/ContentBox.mjs +80 -0
- package/apps/portal/view/home/MainContainer.mjs +51 -15
- package/apps/portal/view/learn/ContentTreeList.mjs +10 -3
- package/apps/portal/view/learn/MainContainerController.mjs +37 -5
- package/apps/portal/view/learn/MainContainerModel.mjs +51 -7
- package/apps/portal/view/learn/PageContainer.mjs +21 -9
- package/apps/sharedcovid/neo-config.json +1 -1
- package/apps/sharedcovid/view/HeaderContainer.mjs +2 -2
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/button/base/MainContainer.mjs +2 -2
- package/examples/button/split/MainContainer.mjs +2 -2
- package/examples/component/process/MainContainer.mjs +3 -3
- package/examples/component/process/realWorldExample/MainContainer.mjs +15 -15
- package/examples/component/toast/MainContainer.mjs +4 -4
- package/examples/dialog/DemoDialog.mjs +4 -4
- package/examples/fieldWithPrefix/MainContainer.mjs +4 -5
- package/examples/form/field/{select → combobox}/MainContainer.mjs +7 -10
- package/examples/form/field/{select → combobox}/MainModel.mjs +4 -4
- package/examples/form/field/{select → combobox}/MainStore.mjs +2 -2
- package/examples/form/field/{select → combobox}/app.mjs +1 -1
- package/examples/form/field/{select → combobox}/index.html +1 -1
- package/examples/form/field/{select → combobox}/neo-config.json +1 -1
- package/examples/tableFiltering/MainContainer.mjs +2 -2
- package/package.json +4 -4
- package/resources/data/deck/learnneo/pages/2023-10-14T19-25-08-153Z.md +16 -1
- package/resources/data/deck/learnneo/pages/ComponentsAndContainers.md +180 -0
- package/resources/data/deck/learnneo/pages/Config.md +11 -4
- package/resources/data/deck/learnneo/pages/DescribingTheUI.md +6 -0
- package/resources/data/deck/learnneo/pages/Earthquakes.md +36 -9
- package/resources/data/deck/learnneo/pages/Events.md +55 -43
- package/resources/data/deck/learnneo/pages/GuideEvents.md +9 -8
- package/resources/data/deck/learnneo/pages/References.md +14 -7
- package/resources/data/deck/learnneo/pages/TodoList.md +241 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Quick.md +6 -11
- package/resources/data/deck/learnneo/tree.json +2 -0
- package/resources/scss/src/apps/portal/home/ContentBox.scss +26 -0
- package/resources/scss/src/apps/portal/home/MainContainer.scss +4 -12
- package/resources/scss/src/apps/portal/learn/MainContainer.scss +0 -7
- package/resources/scss/src/apps/portal/learn/PageContainer.scss +35 -0
- package/resources/scss/src/apps/portal/learn/PageSectionsPanel.scss +8 -0
- package/resources/scss/src/form/field/{Select.scss → ComboBox.scss} +8 -8
- package/resources/scss/theme-dark/form/field/ComboBox.scss +9 -0
- package/resources/scss/theme-light/form/field/ComboBox.scss +9 -0
- package/resources/scss/theme-neo-light/form/field/ComboBox.scss +9 -0
- package/src/DefaultConfig.mjs +2 -2
- package/src/component/Base.mjs +16 -1
- package/src/container/Viewport.mjs +5 -2
- package/src/controller/Application.mjs +12 -1
- package/src/controller/Base.mjs +15 -4
- package/src/controller/Component.mjs +5 -1
- package/src/core/Observable.mjs +62 -22
- package/src/form/field/Base.mjs +21 -9
- package/src/form/field/Chip.mjs +3 -3
- package/src/form/field/Color.mjs +3 -3
- package/src/form/field/{Select.mjs → ComboBox.mjs} +179 -130
- package/src/form/field/Country.mjs +3 -3
- package/src/form/field/Text.mjs +7 -10
- package/src/form/field/_export.mjs +2 -2
- package/src/main/DomEvents.mjs +2 -1
- package/src/main/addon/MonacoEditor.mjs +2 -2
- package/src/main/addon/Navigator.mjs +27 -24
- package/src/selection/ListModel.mjs +13 -14
- package/src/selection/Model.mjs +10 -10
- package/src/toolbar/Paging.mjs +2 -2
- package/src/util/HashHistory.mjs +1 -0
- package/src/worker/App.mjs +5 -1
- package/src/worker/Manager.mjs +14 -7
- package/test/components/app.mjs +1 -1
- package/test/components/files/form/field/{Select.mjs → ComboBox.mjs} +9 -7
- package/test/components/siesta.js +1 -1
- package/resources/scss/theme-dark/form/field/Select.scss +0 -9
- package/resources/scss/theme-light/form/field/Select.scss +0 -9
- package/resources/scss/theme-neo-light/form/field/Select.scss +0 -9
package/apps/ServiceWorker.mjs
CHANGED
@@ -3,6 +3,6 @@
|
|
3
3
|
"basePath" : "../../",
|
4
4
|
"environment" : "development",
|
5
5
|
"mainPath" : "./Main.mjs",
|
6
|
-
"mainThreadAddons": ["AmCharts", "DragDrop", "MapboxGL", "Stylesheet"],
|
6
|
+
"mainThreadAddons": ["AmCharts", "DragDrop", "MapboxGL", "Navigator", "Stylesheet"],
|
7
7
|
"themes" : ["neo-theme-dark", "neo-theme-light"]
|
8
8
|
}
|
@@ -1,6 +1,6 @@
|
|
1
|
+
import ComboBox from '../../../src/form/field/ComboBox.mjs';
|
1
2
|
import Container from '../../../src/container/Base.mjs';
|
2
3
|
import CountryStore from '../store/Countries.mjs';
|
3
|
-
import SelectField from '../../../src/form/field/Select.mjs';
|
4
4
|
|
5
5
|
/**
|
6
6
|
* @class Covid.view.HeaderContainer
|
@@ -116,7 +116,7 @@ class HeaderContainer extends Container {
|
|
116
116
|
},
|
117
117
|
|
118
118
|
items : [{
|
119
|
-
module :
|
119
|
+
module : ComboBox,
|
120
120
|
displayField : 'country',
|
121
121
|
flex : 'none',
|
122
122
|
height : 25,
|
@@ -1,5 +1,5 @@
|
|
1
|
+
import ComboBox from '../../../../src/form/field/ComboBox.mjs';
|
1
2
|
import FormPageContainer from '../FormPageContainer.mjs';
|
2
|
-
import SelectField from '../../../../src/form/field/Select.mjs';
|
3
3
|
|
4
4
|
/**
|
5
5
|
* @class Form.view.pages.Page10
|
@@ -16,7 +16,7 @@ class Page10 extends FormPageContainer {
|
|
16
16
|
* @member {Object[]} items
|
17
17
|
*/
|
18
18
|
items: [{
|
19
|
-
module :
|
19
|
+
module : ComboBox,
|
20
20
|
editable : false,
|
21
21
|
labelText: 'Page 10 Field 1',
|
22
22
|
name : 'page10field1',
|
@@ -19,10 +19,11 @@ class ViewportController extends Controller {
|
|
19
19
|
* @member {Object} routes
|
20
20
|
*/
|
21
21
|
routes: {
|
22
|
-
'/blog'
|
23
|
-
'/docs'
|
24
|
-
'/home'
|
25
|
-
'/learn': 'onLearnRoute'
|
22
|
+
'/blog' : 'onBlogRoute',
|
23
|
+
'/docs' : 'onDocsRoute',
|
24
|
+
'/home' : 'onHomeRoute',
|
25
|
+
'/learn' : 'onLearnRoute',
|
26
|
+
'/learn/{itemId}': 'onLearnRoute'
|
26
27
|
}
|
27
28
|
}
|
28
29
|
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import Base from '../../../../src/component/Base.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class Portal.view.home.ContentBox
|
5
|
+
* @extends Neo.component.Base
|
6
|
+
*/
|
7
|
+
class ContentBox extends Base {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='Portal.view.home.ContentBox'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'Portal.view.home.ContentBox',
|
14
|
+
/**
|
15
|
+
* @member {String[]} baseCls=['portal-content-box']
|
16
|
+
* @protected
|
17
|
+
*/
|
18
|
+
baseCls: ['portal-content-box'],
|
19
|
+
/**
|
20
|
+
* @member {String[]|null} content_=null
|
21
|
+
*/
|
22
|
+
content_: null,
|
23
|
+
/**
|
24
|
+
* @member {String|null} header_=null
|
25
|
+
*/
|
26
|
+
header_: null,
|
27
|
+
/**
|
28
|
+
* @member {String|null} route_=null
|
29
|
+
*/
|
30
|
+
route_: null,
|
31
|
+
/**
|
32
|
+
* @member {Object} _vdom
|
33
|
+
*/
|
34
|
+
_vdom:
|
35
|
+
{tag: 'a', cn: [
|
36
|
+
{tag: 'h3', cls: ['portal-content-box-headline']},
|
37
|
+
{tag: 'ul', cls: ['portal-content-box-content'], cn: []}
|
38
|
+
]}
|
39
|
+
}
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Triggered after the content config got changed
|
43
|
+
* @param {String[]|null} value
|
44
|
+
* @param {String[]|null} oldValue
|
45
|
+
* @protected
|
46
|
+
*/
|
47
|
+
afterSetContent(value, oldValue) {
|
48
|
+
value?.forEach(item => {
|
49
|
+
this.vdom.cn[1].cn.push({tag: 'li', html: item})
|
50
|
+
})
|
51
|
+
|
52
|
+
this.update()
|
53
|
+
}
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Triggered after the header config got changed
|
57
|
+
* @param {String|null} value
|
58
|
+
* @param {String|null} oldValue
|
59
|
+
* @protected
|
60
|
+
*/
|
61
|
+
afterSetHeader(value, oldValue) {
|
62
|
+
this.vdom.cn[0].html = value;
|
63
|
+
this.update()
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Triggered after the route config got changed
|
68
|
+
* @param {String|null} value
|
69
|
+
* @param {String|null} oldValue
|
70
|
+
* @protected
|
71
|
+
*/
|
72
|
+
afterSetRoute(value, oldValue) {
|
73
|
+
this.vdom.href = value;
|
74
|
+
this.update()
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
Neo.setupClass(ContentBox);
|
79
|
+
|
80
|
+
export default ContentBox;
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import Button
|
2
|
-
import Container
|
1
|
+
import Button from '../../../../src/button/Base.mjs';
|
2
|
+
import Container from '../../../../src/container/Base.mjs';
|
3
|
+
import ContentBox from './ContentBox.mjs';
|
3
4
|
|
4
5
|
/**
|
5
6
|
* @class Portal.view.home.MainContainer
|
@@ -16,13 +17,16 @@ class Viewport extends Container {
|
|
16
17
|
* @member {String[]} cls=['newwebsite-viewport']
|
17
18
|
*/
|
18
19
|
cls: ['newwebsite-viewport'],
|
20
|
+
/**
|
21
|
+
* @member {Object} layout={ntype:'vbox',align:'center',pack:'center'}
|
22
|
+
*/
|
23
|
+
layout: {ntype: 'vbox', align: 'center', pack: 'center'},
|
19
24
|
/**
|
20
25
|
* @member {Object[]} items
|
21
26
|
*/
|
22
27
|
items: [{
|
23
|
-
|
24
|
-
|
25
|
-
flex : 'none'
|
28
|
+
cls : ['vector'],
|
29
|
+
flex : 'none'
|
26
30
|
}, {
|
27
31
|
cls : 'neo-h1',
|
28
32
|
flex: 'none',
|
@@ -31,23 +35,55 @@ class Viewport extends Container {
|
|
31
35
|
module: Container,
|
32
36
|
cls : ['button-group'],
|
33
37
|
flex : 'none',
|
38
|
+
layout: {ntype: 'hbox'},
|
34
39
|
|
35
40
|
items: [{
|
36
|
-
module : Button,
|
37
|
-
cls : 'get-started-button',
|
38
|
-
text : 'Get started',
|
39
|
-
flex : 'none',
|
40
|
-
tooltip: {
|
41
|
-
text : 'Coming soon',
|
42
|
-
showDelay: 0,
|
43
|
-
hideDelay: 0
|
44
|
-
}
|
45
|
-
}, {
|
46
41
|
module: Button,
|
47
42
|
flex : 'none',
|
48
43
|
text : 'View on GitHub',
|
49
44
|
ui : 'secondary',
|
50
45
|
url : 'https://github.com/neomjs/neo'
|
46
|
+
}, {
|
47
|
+
module: Button,
|
48
|
+
flex : 'none',
|
49
|
+
text : 'Get started',
|
50
|
+
route : '/learn'
|
51
|
+
}]
|
52
|
+
}, {
|
53
|
+
module: Container,
|
54
|
+
flex : '1 0 auto',
|
55
|
+
layout: {ntype: 'hbox', align: 'stretch'},
|
56
|
+
|
57
|
+
items: [{
|
58
|
+
module: ContentBox,
|
59
|
+
header: 'Quick Application Development',
|
60
|
+
route : '#/learn/WhyNeo-Quick',
|
61
|
+
|
62
|
+
content: [
|
63
|
+
'Property lifecycle hooks',
|
64
|
+
'Elegant state management',
|
65
|
+
'Simple and powerful debugging'
|
66
|
+
]
|
67
|
+
}, {
|
68
|
+
module: ContentBox,
|
69
|
+
header: 'Extreme Speed',
|
70
|
+
route : '#/learn/WhyNeo-Speed',
|
71
|
+
|
72
|
+
content: [
|
73
|
+
'Item 1',
|
74
|
+
'Item 2',
|
75
|
+
'Item 3'
|
76
|
+
]
|
77
|
+
}, {
|
78
|
+
module: ContentBox,
|
79
|
+
header: 'Multi Window Apps',
|
80
|
+
route : '#/learn/WhyNeo-Multi-Window',
|
81
|
+
|
82
|
+
content: [
|
83
|
+
'Item 1',
|
84
|
+
'Item 2',
|
85
|
+
'Item 3'
|
86
|
+
]
|
51
87
|
}]
|
52
88
|
}]
|
53
89
|
}
|
@@ -51,8 +51,11 @@ class ContentTreeList extends TreeList {
|
|
51
51
|
* @param {Object} value
|
52
52
|
* @param {Object} oldValue
|
53
53
|
*/
|
54
|
-
afterSetCurrentPageRecord(value, oldValue) {
|
55
|
-
|
54
|
+
async afterSetCurrentPageRecord(value, oldValue) {
|
55
|
+
if (value) {
|
56
|
+
await this.timeout(20);
|
57
|
+
this.selectionModel.select(value)
|
58
|
+
}
|
56
59
|
}
|
57
60
|
|
58
61
|
/**
|
@@ -77,7 +80,11 @@ class ContentTreeList extends TreeList {
|
|
77
80
|
*/
|
78
81
|
onLeafItemClick(record) {
|
79
82
|
super.onLeafItemClick(record);
|
80
|
-
|
83
|
+
|
84
|
+
Neo.Main.setRoute({
|
85
|
+
value : `/learn/${record.id}`,
|
86
|
+
windowId: this.windowId
|
87
|
+
})
|
81
88
|
}
|
82
89
|
}
|
83
90
|
|
@@ -10,7 +10,13 @@ class MainContainerController extends Controller {
|
|
10
10
|
* @member {String} className='Portal.view.learn.MainContainerController'
|
11
11
|
* @protected
|
12
12
|
*/
|
13
|
-
className: 'Portal.view.learn.MainContainerController'
|
13
|
+
className: 'Portal.view.learn.MainContainerController',
|
14
|
+
/**
|
15
|
+
* @member {Object} routes
|
16
|
+
*/
|
17
|
+
routes: {
|
18
|
+
'/learn/{itemId}': 'onRouteLearnItem'
|
19
|
+
}
|
14
20
|
}
|
15
21
|
|
16
22
|
/**
|
@@ -48,6 +54,16 @@ class MainContainerController extends Controller {
|
|
48
54
|
return searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {}
|
49
55
|
}
|
50
56
|
|
57
|
+
/**
|
58
|
+
* @param {String} learnItem
|
59
|
+
*/
|
60
|
+
navigateTo(learnItem) {
|
61
|
+
Neo.Main.setRoute({
|
62
|
+
value : `/learn/${learnItem}`,
|
63
|
+
windowId: this.component.windowId
|
64
|
+
})
|
65
|
+
}
|
66
|
+
|
51
67
|
/**
|
52
68
|
* @param {Object} data
|
53
69
|
* @param {String} data.appName
|
@@ -177,16 +193,32 @@ class MainContainerController extends Controller {
|
|
177
193
|
* @param {Object} data
|
178
194
|
*/
|
179
195
|
onNextPageButtonClick(data) {
|
180
|
-
|
181
|
-
model.setData('currentPageRecord', model.getData('nextPageRecord'))
|
196
|
+
this.navigateTo(this.getModel().getData('nextPageRecord').id)
|
182
197
|
}
|
183
198
|
|
184
199
|
/**
|
185
200
|
* @param {Object} data
|
186
201
|
*/
|
187
202
|
onPreviousPageButtonClick(data) {
|
188
|
-
|
189
|
-
|
203
|
+
this.navigateTo(this.getModel().getData('previousPageRecord').id)
|
204
|
+
}
|
205
|
+
|
206
|
+
/**
|
207
|
+
* @param {Object} data
|
208
|
+
*/
|
209
|
+
onRouteLearnItem(data) {
|
210
|
+
let model = this.getModel(),
|
211
|
+
store = model.getStore('contentTree');
|
212
|
+
|
213
|
+
if (store.getCount() > 0) {
|
214
|
+
model.data.currentPageRecord = store.get(data.itemId)
|
215
|
+
} else {
|
216
|
+
store.on({
|
217
|
+
load : () => {model.data.currentPageRecord = store.get(data.itemId)},
|
218
|
+
delay: 10,
|
219
|
+
once : true
|
220
|
+
})
|
221
|
+
}
|
190
222
|
}
|
191
223
|
}
|
192
224
|
|
@@ -40,14 +40,19 @@ class MainContainerModel extends Component {
|
|
40
40
|
deck: null,
|
41
41
|
/**
|
42
42
|
* The record which gets shown as the content page
|
43
|
-
* @member {Object} data.
|
43
|
+
* @member {Object} data.nextPageRecord=null
|
44
44
|
*/
|
45
45
|
nextPageRecord: null,
|
46
46
|
/**
|
47
47
|
* The record which gets shown as the content page
|
48
|
-
* @member {Object} data.
|
48
|
+
* @member {Object} data.previousPageRecord=null
|
49
49
|
*/
|
50
|
-
previousPageRecord: null
|
50
|
+
previousPageRecord: null,
|
51
|
+
/**
|
52
|
+
* Merging the direct parent text
|
53
|
+
* @member {String|null} data.previousPageText=null
|
54
|
+
*/
|
55
|
+
previousPageText: null
|
51
56
|
},
|
52
57
|
/**
|
53
58
|
* @member {Object} stores
|
@@ -62,6 +67,22 @@ class MainContainerModel extends Component {
|
|
62
67
|
}
|
63
68
|
}
|
64
69
|
|
70
|
+
/**
|
71
|
+
* Combines the record parent node name (if available) with the record name
|
72
|
+
* @param {Object} record
|
73
|
+
* @param {Neo.data.Store} store
|
74
|
+
* @returns {String|null}
|
75
|
+
*/
|
76
|
+
getRecordTreeName(record, store) {
|
77
|
+
let parentText = record.name;
|
78
|
+
|
79
|
+
if (record.parentId !== null) {
|
80
|
+
parentText = store.get(record.parentId).name + ': ' + parentText
|
81
|
+
}
|
82
|
+
|
83
|
+
return parentText
|
84
|
+
}
|
85
|
+
|
65
86
|
/**
|
66
87
|
* @param {String} key
|
67
88
|
* @param {*} value
|
@@ -79,32 +100,36 @@ class MainContainerModel extends Component {
|
|
79
100
|
store = me.getStore('contentTree'),
|
80
101
|
index = store.indexOf(value),
|
81
102
|
nextPageRecord = null,
|
103
|
+
nextPageText = null,
|
82
104
|
previousPageRecord = null,
|
105
|
+
previousPageText = null,
|
83
106
|
i, record;
|
84
107
|
|
85
108
|
// the logic assumes that the tree store is sorted
|
86
109
|
for (i=index-1; i >= 0; i--) {
|
87
110
|
record = store.getAt(i);
|
88
111
|
|
89
|
-
if (record.isLeaf) {
|
112
|
+
if (record.isLeaf && !me.recordIsHidden(record, store)) {
|
90
113
|
previousPageRecord = record;
|
114
|
+
previousPageText = me.getRecordTreeName(record, store);
|
91
115
|
break
|
92
116
|
}
|
93
117
|
}
|
94
118
|
|
95
|
-
me.setData({previousPageRecord});
|
119
|
+
me.setData({previousPageText, previousPageRecord});
|
96
120
|
|
97
121
|
// the logic assumes that the tree store is sorted
|
98
122
|
for (i=index+1; i < countPages; i++) {
|
99
123
|
record = store.getAt(i);
|
100
124
|
|
101
|
-
if (record.isLeaf) {
|
125
|
+
if (record.isLeaf && !me.recordIsHidden(record, store)) {
|
102
126
|
nextPageRecord = record;
|
127
|
+
nextPageText = me.getRecordTreeName(record, store);
|
103
128
|
break
|
104
129
|
}
|
105
130
|
}
|
106
131
|
|
107
|
-
me.setData({nextPageRecord});
|
132
|
+
me.setData({nextPageText, nextPageRecord});
|
108
133
|
|
109
134
|
break
|
110
135
|
}
|
@@ -118,6 +143,25 @@ class MainContainerModel extends Component {
|
|
118
143
|
}
|
119
144
|
}
|
120
145
|
}
|
146
|
+
|
147
|
+
/**
|
148
|
+
* We need to check the parent-node chain inside the tree.
|
149
|
+
* => Any hidden parent-node results in a hidden record.
|
150
|
+
* @param {Object} record
|
151
|
+
* @param {Neo.data.Store} store
|
152
|
+
* @returns {Boolean}
|
153
|
+
*/
|
154
|
+
recordIsHidden(record, store) {
|
155
|
+
if (record.hidden) {
|
156
|
+
return true
|
157
|
+
}
|
158
|
+
|
159
|
+
if (record.parentId !== null) {
|
160
|
+
return this.recordIsHidden(store.get(record.parentId), store)
|
161
|
+
}
|
162
|
+
|
163
|
+
return false
|
164
|
+
}
|
121
165
|
}
|
122
166
|
|
123
167
|
Neo.setupClass(MainContainerModel);
|
@@ -38,14 +38,22 @@ class PageContainer extends Container {
|
|
38
38
|
}, {
|
39
39
|
module: Toolbar,
|
40
40
|
flex : 'none',
|
41
|
+
cls : 'content-bottom-toolbar',
|
41
42
|
items : [{
|
43
|
+
cls : ['content-bottom-toolbar-previous'],
|
42
44
|
handler : 'onPreviousPageButtonClick',
|
43
45
|
hidden : true,
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
46
|
+
iconCls : 'fa fa-chevron-left',
|
47
|
+
reference: 'prev-page-button',
|
48
|
+
ui : 'secondary'
|
49
|
+
}, {
|
50
|
+
cls : ['content-bottom-toolbar-next'],
|
51
|
+
handler : 'onNextPageButtonClick',
|
52
|
+
hidden : true,
|
53
|
+
iconCls : 'fa fa-chevron-right',
|
54
|
+
iconPosition: 'right',
|
55
|
+
reference : 'next-page-button',
|
56
|
+
ui : 'secondary'
|
49
57
|
}]
|
50
58
|
}],
|
51
59
|
/**
|
@@ -81,10 +89,12 @@ class PageContainer extends Container {
|
|
81
89
|
*/
|
82
90
|
afterSetNextPageRecord(value, oldValue) {
|
83
91
|
if (oldValue !== undefined) {
|
92
|
+
let me = this;
|
93
|
+
|
84
94
|
if (value) {
|
85
|
-
|
95
|
+
me.nextPageButton.set({hidden: false, text: me.getModel().getData('nextPageText')})
|
86
96
|
} else {
|
87
|
-
|
97
|
+
me.nextPageButton.hidden = true
|
88
98
|
}
|
89
99
|
}
|
90
100
|
}
|
@@ -96,10 +106,12 @@ class PageContainer extends Container {
|
|
96
106
|
*/
|
97
107
|
afterSetPreviousPageRecord(value, oldValue) {
|
98
108
|
if (oldValue !== undefined) {
|
109
|
+
let me = this;
|
110
|
+
|
99
111
|
if (value) {
|
100
|
-
|
112
|
+
me.prevPageButton.set({hidden: false, text: me.getModel().getData('previousPageText')})
|
101
113
|
} else {
|
102
|
-
|
114
|
+
me.prevPageButton.hidden = true
|
103
115
|
}
|
104
116
|
}
|
105
117
|
}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
"basePath" : "../../",
|
4
4
|
"environment" : "development",
|
5
5
|
"mainPath" : "./Main.mjs",
|
6
|
-
"mainThreadAddons": ["AmCharts", "DragDrop", "MapboxGL", "Stylesheet"],
|
6
|
+
"mainThreadAddons": ["AmCharts", "DragDrop", "MapboxGL", "Navigator", "Stylesheet"],
|
7
7
|
"themes" : ["neo-theme-dark", "neo-theme-light"],
|
8
8
|
"useSharedWorkers": true
|
9
9
|
}
|
@@ -1,6 +1,6 @@
|
|
1
|
+
import ComboBox from '../../../src/form/field/ComboBox.mjs';
|
1
2
|
import Container from '../../../src/container/Base.mjs';
|
2
3
|
import CountryStore from '../store/Countries.mjs';
|
3
|
-
import SelectField from '../../../src/form/field/Select.mjs';
|
4
4
|
|
5
5
|
/**
|
6
6
|
* @class SharedCovid.view.HeaderContainer
|
@@ -124,7 +124,7 @@ class HeaderContainer extends Container {
|
|
124
124
|
},
|
125
125
|
|
126
126
|
items : [{
|
127
|
-
module :
|
127
|
+
module : ComboBox,
|
128
128
|
displayField : 'country',
|
129
129
|
flex : 'none',
|
130
130
|
height : 25,
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import Button from '../../../src/button/Base.mjs';
|
2
2
|
import CheckBox from '../../../src/form/field/CheckBox.mjs';
|
3
|
+
import ComboBox from '../../../src/form/field/ComboBox.mjs';
|
3
4
|
import ConfigurationViewport from '../../ConfigurationViewport.mjs';
|
4
5
|
import NumberField from '../../../src/form/field/Number.mjs';
|
5
6
|
import Radio from '../../../src/form/field/Radio.mjs';
|
6
|
-
import SelectField from '../../../src/form/field/Select.mjs';
|
7
7
|
import TextField from '../../../src/form/field/Text.mjs';
|
8
8
|
|
9
9
|
/**
|
@@ -137,7 +137,7 @@ class MainContainer extends ConfigurationViewport {
|
|
137
137
|
style : {marginTop: '10px'},
|
138
138
|
value : me.exampleComponent.text
|
139
139
|
}, {
|
140
|
-
module :
|
140
|
+
module : ComboBox,
|
141
141
|
forceSelection: true,
|
142
142
|
labelText : 'ui',
|
143
143
|
listeners : {change: me.onConfigChange.bind(me, 'ui')},
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import CheckBox from '../../../src/form/field/CheckBox.mjs';
|
2
|
+
import ComboBox from '../../../src/form/field/ComboBox.mjs';
|
2
3
|
import ConfigurationViewport from '../../ConfigurationViewport.mjs';
|
3
4
|
import Radio from '../../../src/form/field/Radio.mjs';
|
4
5
|
import NumberField from '../../../src/form/field/Number.mjs';
|
5
|
-
import SelectField from '../../../src/form/field/Select.mjs';
|
6
6
|
import SplitButton from '../../../src/button/Split.mjs';
|
7
7
|
import TextField from '../../../src/form/field/Text.mjs';
|
8
8
|
|
@@ -89,7 +89,7 @@ class MainContainer extends ConfigurationViewport {
|
|
89
89
|
style : {marginTop: '10px'},
|
90
90
|
value : me.exampleComponent.text
|
91
91
|
}, {
|
92
|
-
module :
|
92
|
+
module : ComboBox,
|
93
93
|
forceSelection: true,
|
94
94
|
labelText : 'ui',
|
95
95
|
listeners : {change: me.onConfigChange.bind(me, 'ui')},
|
@@ -1,8 +1,8 @@
|
|
1
|
+
import CheckBox from '../../../src/form/field/CheckBox.mjs';
|
2
|
+
import ColorField from '../../../src/form/field/Color.mjs';
|
1
3
|
import ConfigurationViewport from '../../ConfigurationViewport.mjs';
|
2
|
-
import Process from '../../../src/component/Process.mjs';
|
3
4
|
import Container from '../../../src/container/Base.mjs';
|
4
|
-
import
|
5
|
-
import ColorField from "../../../src/form/field/Color.mjs"
|
5
|
+
import Process from '../../../src/component/Process.mjs';
|
6
6
|
|
7
7
|
/**
|
8
8
|
* @class Neo.examples.component.process.MainContainer
|
@@ -1,15 +1,15 @@
|
|
1
|
-
import Button from
|
2
|
-
import CheckBox from
|
1
|
+
import Button from '../../../../src/button/Base.mjs';
|
2
|
+
import CheckBox from '../../../../src/form/field/CheckBox.mjs';
|
3
3
|
import ConfigurationViewport from '../../../ConfigurationViewport.mjs';
|
4
|
+
import ComboBox from '../../../../src/form/field/ComboBox.mjs';
|
4
5
|
import Component from '../../../../src/component/Base.mjs';
|
5
6
|
import Container from '../../../../src/container/Base.mjs';
|
6
|
-
import DisplayField from
|
7
|
-
import Form from
|
8
|
-
import NumberField from
|
7
|
+
import DisplayField from '../../../../src/form/field/Display.mjs';
|
8
|
+
import Form from '../../../../src/form/Container.mjs';
|
9
|
+
import NumberField from '../../../../src/form/field/Number.mjs';
|
9
10
|
import Process from '../../../../src/component/Process.mjs';
|
10
|
-
import RangeField from
|
11
|
-
import
|
12
|
-
import TextField from "../../../../src/form/field/Text.mjs"
|
11
|
+
import RangeField from '../../../../src/form/field/Range.mjs';
|
12
|
+
import TextField from '../../../../src/form/field/Text.mjs';
|
13
13
|
import Toast from '../../../../src/component/Toast.mjs';
|
14
14
|
|
15
15
|
/**
|
@@ -188,22 +188,22 @@ class MainContainer extends ConfigurationViewport {
|
|
188
188
|
value : 20
|
189
189
|
},
|
190
190
|
items : [{
|
191
|
-
module :
|
191
|
+
module : ComboBox,
|
192
192
|
displayField: 'name',
|
193
193
|
labelText : 'Fahrstil',
|
194
194
|
value : 'normal',
|
195
195
|
|
196
196
|
store: {
|
197
197
|
data : [
|
198
|
-
{style: 'sportStyle',
|
199
|
-
{style: '
|
200
|
-
{style: 'ecoStyle',
|
198
|
+
{style: 'sportStyle', name: 'sport', code: 'sportCode'},
|
199
|
+
{style: 'normalStyle', name: 'normal', code: 'normalCode'},
|
200
|
+
{style: 'ecoStyle', name: 'eco', code: 'ecoCode'},
|
201
201
|
],
|
202
202
|
model: {
|
203
203
|
fields: [
|
204
|
-
{name: 'style', type: '
|
205
|
-
{name: 'name',
|
206
|
-
{name: 'code',
|
204
|
+
{name: 'style', type: 'String'},
|
205
|
+
{name: 'name', type: 'String'},
|
206
|
+
{name: 'code', type: 'String'}
|
207
207
|
]
|
208
208
|
}
|
209
209
|
}
|