neo.mjs 6.8.2 → 6.9.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/.github/PULL_REQUEST_TEMPLATE.md +1 -1
- package/apps/ServiceWorker.mjs +2 -2
- package/apps/learnneo/app.mjs +6 -0
- package/apps/learnneo/index.html +11 -0
- package/apps/learnneo/model/Content.mjs +44 -0
- package/apps/learnneo/neo-config.json +6 -0
- package/apps/learnneo/store/Content.mjs +24 -0
- package/apps/learnneo/view/Viewport.mjs +34 -0
- package/apps/learnneo/view/ViewportController.mjs +19 -0
- package/apps/learnneo/view/home/ContentTreeList.mjs +41 -0
- package/apps/learnneo/view/home/MainContainer.mjs +51 -0
- package/apps/learnneo/view/home/MainContainerController.mjs +50 -0
- package/apps/route/app.mjs +6 -0
- package/apps/route/index.html +11 -0
- package/apps/route/neo-config.json +6 -0
- package/apps/route/view/ButtonBar.mjs +57 -0
- package/apps/route/view/CenterContainer.mjs +37 -0
- package/apps/route/view/FooterContainer.mjs +47 -0
- package/apps/route/view/HeaderContainer.mjs +47 -0
- package/apps/route/view/MainView.mjs +66 -0
- package/apps/route/view/MainViewController.mjs +210 -0
- package/apps/route/view/MetaContainer.mjs +52 -0
- package/apps/route/view/Viewport.mjs +15 -0
- package/apps/route/view/center/CardAdministration.mjs +36 -0
- package/apps/route/view/center/CardAdministrationDenied.mjs +26 -0
- package/apps/route/view/center/CardContact.mjs +29 -0
- package/apps/route/view/center/CardHome.mjs +26 -0
- package/apps/route/view/center/CardSection1.mjs +26 -0
- package/apps/route/view/center/CardSection2.mjs +27 -0
- package/examples/ConfigurationViewport.mjs +1 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/form/field/select/MainContainer.mjs +7 -2
- package/examples/table/container/MainContainer.mjs +4 -2
- package/examples/table/container/MainModel.mjs +3 -0
- package/examples/table/container/MainStore.mjs +10 -10
- package/examples/todoList/version1/MainComponent.mjs +5 -5
- package/examples/toolbar/paging/view/MainContainer.mjs +31 -3
- package/package.json +1 -1
- package/resources/data/learnneo/content.json +27 -0
- package/resources/data/learnneo/pages/whyneo.md +76 -0
- package/resources/scss/src/apps/route/CenterContainer.scss +29 -0
- package/resources/scss/src/apps/route/HeaderContainer.scss +122 -0
- package/resources/scss/src/apps/route/MainView.scss +3 -0
- package/resources/scss/src/apps/route/MetaContainer.scss +44 -0
- package/resources/scss/src/apps/route/_all.scss +1 -0
- package/resources/scss/src/form/field/Picker.scss +0 -1
- package/src/DefaultConfig.mjs +2 -2
- package/src/Neo.mjs +15 -14
- package/src/button/Base.mjs +2 -2
- package/src/component/Base.mjs +41 -50
- package/src/container/Base.mjs +59 -2
- package/src/controller/Base.mjs +84 -4
- package/src/controller/Component.mjs +22 -7
- package/src/core/Observable.mjs +50 -9
- package/src/dialog/Base.mjs +1 -4
- package/src/form/field/FileUpload.mjs +11 -0
- package/src/form/field/Picker.mjs +0 -17
- package/src/form/field/Range.mjs +8 -0
- package/src/form/field/Text.mjs +29 -0
- package/src/form/field/trigger/Picker.mjs +7 -0
- package/src/main/DomEvents.mjs +9 -3
- package/src/manager/DomEvent.mjs +3 -0
- package/src/menu/List.mjs +1 -1
- package/src/table/View.mjs +78 -53
- package/src/toolbar/Paging.mjs +68 -76
- package/src/tooltip/Base.mjs +111 -11
@@ -23,7 +23,7 @@ If yes, please describe the impact and migration path for existing applications:
|
|
23
23
|
|
24
24
|
**The PR fulfills these requirements:**
|
25
25
|
|
26
|
-
- [ ] It's submitted to the `dev` branch, _not_ the `
|
26
|
+
- [ ] It's submitted to the `dev` branch, _not_ the `main` branch
|
27
27
|
- [ ] When resolving a specific issue, it's referenced in the PR's title (e.g. `fix #xxx[,#xxx]`, where "xxx" is the issue number)
|
28
28
|
|
29
29
|
If adding a **new feature**, the PR's description includes:
|
package/apps/ServiceWorker.mjs
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
<title>LearnNeo</title>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<script src="../../src/MicroLoader.mjs" type="module"></script>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import Model from '../../../src/data/Model.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class LearnNeo.model.Content
|
5
|
+
* @extends Neo.data.Model
|
6
|
+
*/
|
7
|
+
class Content extends Model {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='LearnNeo.model.Content'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'LearnNeo.model.Content',
|
14
|
+
/**
|
15
|
+
* @member {Object[]} fields
|
16
|
+
*/
|
17
|
+
fields: [{
|
18
|
+
name: 'className',
|
19
|
+
type: 'String'
|
20
|
+
}, {
|
21
|
+
name: 'collapsed',
|
22
|
+
type: 'Boolean'
|
23
|
+
}, {
|
24
|
+
name: 'id',
|
25
|
+
type: 'Integer'
|
26
|
+
}, {
|
27
|
+
name: 'isLeaf',
|
28
|
+
type: 'Boolean'
|
29
|
+
}, {
|
30
|
+
name: 'name',
|
31
|
+
type: 'String'
|
32
|
+
}, {
|
33
|
+
name: 'parentId',
|
34
|
+
type: 'Integer'
|
35
|
+
}, {
|
36
|
+
name: 'path',
|
37
|
+
type: 'String'
|
38
|
+
}]
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
Neo.applyClassConfig(Content);
|
43
|
+
|
44
|
+
export default Content;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import ContentModel from '../model/Content.mjs';
|
2
|
+
import Store from '../../../src/data/Store.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class LearnNeo.store.Content
|
6
|
+
* @extends Neo.data.Store
|
7
|
+
*/
|
8
|
+
class Content extends Store {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='LearnNeo.store.Content'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'LearnNeo.store.Content',
|
15
|
+
/**
|
16
|
+
* @member {Neo.data.Model} model=ContentModel
|
17
|
+
*/
|
18
|
+
model: ContentModel
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
Neo.applyClassConfig(Content);
|
23
|
+
|
24
|
+
export default Content;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import BaseViewport from '../../../src/container/Viewport.mjs';
|
2
|
+
import ViewportController from './ViewportController.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class LearnNeo.view.Viewport
|
6
|
+
* @extends Neo.container.Viewport
|
7
|
+
*/
|
8
|
+
class Viewport extends BaseViewport {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='LearnNeo.view.Viewport'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'LearnNeo.view.Viewport',
|
15
|
+
/**
|
16
|
+
* @member {Neo.controller.Component} controller=ViewportController
|
17
|
+
*/
|
18
|
+
controller: ViewportController,
|
19
|
+
/**
|
20
|
+
* @member {Object[]} items
|
21
|
+
*/
|
22
|
+
items: [{
|
23
|
+
module: () => import('./home/MainContainer.mjs')
|
24
|
+
}],
|
25
|
+
/**
|
26
|
+
* @member {Object} layout={ntype:'card'}
|
27
|
+
*/
|
28
|
+
layout: {ntype: 'card'}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
Neo.applyClassConfig(Viewport);
|
33
|
+
|
34
|
+
export default Viewport;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import Component from '../../../src/controller/Component.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class LearnNeo.view.ViewportController
|
5
|
+
* @extends Neo.controller.Component
|
6
|
+
*/
|
7
|
+
class ViewportController extends Component {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='LearnNeo.view.ViewportController'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'LearnNeo.view.ViewportController'
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
Neo.applyClassConfig(ViewportController);
|
18
|
+
|
19
|
+
export default ViewportController;
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import ContentStore from '../../store/Content.mjs'
|
2
|
+
import TreeList from '../../../../src/tree/List.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class LearnNeo.view.home.ContentTreeList
|
6
|
+
* @extends Neo.container.Base
|
7
|
+
*/
|
8
|
+
class ContentTreeList extends TreeList {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='LearnNeo.view.home.ContentTreeList'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'LearnNeo.view.home.ContentTreeList',
|
15
|
+
/**
|
16
|
+
* @member {Neo.data.Store} store=ContentStore
|
17
|
+
*/
|
18
|
+
store: ContentStore
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* todo: createItems() should get triggered onStoreLoad()
|
23
|
+
*/
|
24
|
+
onConstructed() {
|
25
|
+
super.onConstructed();
|
26
|
+
|
27
|
+
let me = this;
|
28
|
+
|
29
|
+
Neo.Xhr.promiseJson({
|
30
|
+
url: '../../../resources/data/learnneo/content.json'
|
31
|
+
}).then(data => {
|
32
|
+
me.store.data = data.json.data;
|
33
|
+
me.createItems(null, me.getListItemsRoot(), 0);
|
34
|
+
me.update();
|
35
|
+
})
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
Neo.applyClassConfig(ContentTreeList);
|
40
|
+
|
41
|
+
export default ContentTreeList;
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import Container from '../../../../src/container/Base.mjs';
|
2
|
+
import ContentTreeList from './ContentTreeList.mjs';
|
3
|
+
import MainContainerController from './MainContainerController.mjs';
|
4
|
+
import Splitter from '../../../../src/component/Splitter.mjs';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* @class LearnNeo.view.home.MainContainer
|
8
|
+
* @extends Neo.container.Base
|
9
|
+
*/
|
10
|
+
class MainContainer extends Container {
|
11
|
+
static config = {
|
12
|
+
/**
|
13
|
+
* @member {String} className='LearnNeo.view.home.MainContainer'
|
14
|
+
* @protected
|
15
|
+
*/
|
16
|
+
className: 'LearnNeo.view.home.MainContainer',
|
17
|
+
/**
|
18
|
+
* @member {Neo.controller.Component} controller=MainContainerController
|
19
|
+
*/
|
20
|
+
controller: MainContainerController,
|
21
|
+
/**
|
22
|
+
* @member {Object[]} items
|
23
|
+
*/
|
24
|
+
items: [{
|
25
|
+
module : Container,
|
26
|
+
layout : 'fit',
|
27
|
+
minWidth: 350,
|
28
|
+
width : 350,
|
29
|
+
|
30
|
+
items: [{
|
31
|
+
module : ContentTreeList,
|
32
|
+
listeners: {leafItemClick: 'onContentListLeafClick'}
|
33
|
+
}]
|
34
|
+
}, {
|
35
|
+
module : Splitter,
|
36
|
+
resizeTarget: 'previous'
|
37
|
+
}, {
|
38
|
+
module : Container,
|
39
|
+
layout : {ntype: 'card', activeIndex: null},
|
40
|
+
reference: 'content-container'
|
41
|
+
}],
|
42
|
+
/**
|
43
|
+
* @member {Object} layout={ntype:'hbox',align:'stretch'}
|
44
|
+
*/
|
45
|
+
layout: {ntype: 'hbox', align: 'stretch'}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
Neo.applyClassConfig(MainContainer);
|
50
|
+
|
51
|
+
export default MainContainer;
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import Component from '../../../../src/controller/Component.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class LearnNeo.view.home.MainContainerController
|
5
|
+
* @extends Neo.controller.Component
|
6
|
+
*/
|
7
|
+
class MainContainerController extends Component {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='LearnNeo.view.home.MainContainerController'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'LearnNeo.view.home.MainContainerController'
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* @param {Object} record
|
18
|
+
*/
|
19
|
+
async onContentListLeafClick(record) {
|
20
|
+
const
|
21
|
+
contentContainer = this.getReference('content-container'),
|
22
|
+
path = '../../../resources/data/learnneo/pages';
|
23
|
+
|
24
|
+
console.log('onContentListLeafClick', {contentContainer, record});
|
25
|
+
console.log('onContentListLeafClick', {contentContainer, record});
|
26
|
+
|
27
|
+
if (record.isLeaf && record.path) {
|
28
|
+
const data = await fetch(`${path}/${record.path}`);
|
29
|
+
const content = await data.text();
|
30
|
+
|
31
|
+
contentContainer.removeAll();
|
32
|
+
|
33
|
+
await this.timeout(50);
|
34
|
+
|
35
|
+
contentContainer.add({
|
36
|
+
ntype: 'component',
|
37
|
+
html : content
|
38
|
+
});
|
39
|
+
|
40
|
+
await this.timeout(50);
|
41
|
+
|
42
|
+
|
43
|
+
contentContainer.layout.activeIndex = 0;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
Neo.applyClassConfig(MainContainerController);
|
49
|
+
|
50
|
+
export default MainContainerController;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
<title>Route</title>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<script src="../../src/MicroLoader.mjs" type="module"></script>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import Base from '../../../src/container/Base.mjs';
|
2
|
+
import Button from '../../../src/button/Base.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Route.view.ButtonBar
|
6
|
+
* @extends Neo.container.Base
|
7
|
+
*/
|
8
|
+
class ButtonBar extends Base {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Route.view.ButtonBar'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Route.view.ButtonBar',
|
15
|
+
baseCls: ['route', 'neo-container'],
|
16
|
+
cls: ['route_buttonbar', 'centerPanel'],
|
17
|
+
/**
|
18
|
+
* @member {Object[]} items
|
19
|
+
*/
|
20
|
+
items: [{
|
21
|
+
module: Button,
|
22
|
+
flex: 'none',
|
23
|
+
handler: 'onSwitchButtonCardHome',
|
24
|
+
cls: ['route_button', 'neo-button'],
|
25
|
+
iconCls: 'fa-solid fa-home',
|
26
|
+
reference: 'home_button',
|
27
|
+
text: 'Home',
|
28
|
+
}, {
|
29
|
+
module: Button,
|
30
|
+
flex: 'none',
|
31
|
+
handler: 'onSwitchButtonCardSection1',
|
32
|
+
cls: ['route_button', 'neo-button'],
|
33
|
+
iconCls: 'fa-solid fa-globe',
|
34
|
+
text: 'Section 1'
|
35
|
+
}, {
|
36
|
+
module: Button,
|
37
|
+
flex: 'none',
|
38
|
+
handler: 'onSwitchButtonCardSection2',
|
39
|
+
cls: ['route_button', 'neo-button'],
|
40
|
+
iconCls: 'fa-solid fa-globe',
|
41
|
+
text: 'Section 2'
|
42
|
+
},{
|
43
|
+
module: Button,
|
44
|
+
flex: 'none',
|
45
|
+
handler: 'onSwitchButtonAdministration',
|
46
|
+
cls: ['route_button', 'neo-button'],
|
47
|
+
iconCls: 'fa-solid fa-building-user',
|
48
|
+
text: 'Administration',
|
49
|
+
}],
|
50
|
+
layout: { ntype: 'flexbox', wrap: 'wrap' },
|
51
|
+
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
Neo.applyClassConfig(ButtonBar);
|
56
|
+
|
57
|
+
export default ButtonBar;
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import Base from '../../../src/container/Base.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class Route.view.CenterContainer
|
5
|
+
* @extends Neo.container.Base
|
6
|
+
*/
|
7
|
+
class CenterContainer extends Base {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='Route.view.CenterContainer'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'Route.view.CenterContainer',
|
14
|
+
baseCls: ['route_center', 'neo-container'],
|
15
|
+
|
16
|
+
/**
|
17
|
+
* @member {Object[]} items
|
18
|
+
*/
|
19
|
+
items: [
|
20
|
+
{module: () => import('./center/CardContact.mjs')},
|
21
|
+
{module: () => import('./center/CardAdministration.mjs')},
|
22
|
+
{module: () => import('./center/CardSection1.mjs')},
|
23
|
+
{module: () => import('./center/CardSection2.mjs')},
|
24
|
+
{module: () => import('./center/CardHome.mjs')},
|
25
|
+
{module: () => import('./center/CardAdministrationDenied.mjs')},
|
26
|
+
],
|
27
|
+
|
28
|
+
/**
|
29
|
+
* @member {Object} layout={ntype: 'vbox', align: 'stretch'}
|
30
|
+
*/
|
31
|
+
layout: {ntype: 'card', align: 'stretch', activeIndex: 4},
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
Neo.applyClassConfig(CenterContainer);
|
36
|
+
|
37
|
+
export default CenterContainer;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import Container from '../../../src/container/Base.mjs';
|
2
|
+
import Button from '../../../src/button/Base.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Route.view.FooterContainer
|
6
|
+
* @extends Neo.container.Base
|
7
|
+
*/
|
8
|
+
class FooterContainer extends Container {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Route.view.FooterContainer'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Route.view.FooterContainer',
|
15
|
+
|
16
|
+
baseCls: ['route_footer', 'neo-container'],
|
17
|
+
|
18
|
+
height: 55,
|
19
|
+
/**
|
20
|
+
* @member {Object[]} items
|
21
|
+
*/
|
22
|
+
items: [
|
23
|
+
{
|
24
|
+
module: Container,
|
25
|
+
reference: 'footer-container',
|
26
|
+
cls: ['centerPanel'],
|
27
|
+
items: [
|
28
|
+
{
|
29
|
+
module: Button,
|
30
|
+
flex: 'none',
|
31
|
+
handler: 'onSwitchButtonCardContact',
|
32
|
+
cls: ['route_button', 'neo-button'],
|
33
|
+
text: 'Contact'
|
34
|
+
}
|
35
|
+
],
|
36
|
+
layout: { ntype: 'hbox', align: 'stretch' },
|
37
|
+
|
38
|
+
}
|
39
|
+
|
40
|
+
],
|
41
|
+
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
Neo.applyClassConfig(FooterContainer);
|
46
|
+
|
47
|
+
export default FooterContainer;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import Container from '../../../src/container/Base.mjs';
|
2
|
+
import Label from '../../../src/component/Label.mjs';
|
3
|
+
import Button from '../../../src/button/Base.mjs';
|
4
|
+
import Component from '../../../src/component/Base.mjs';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* @class Route.view.HeaderContainer
|
8
|
+
* @extends Neo.container.Base
|
9
|
+
*/
|
10
|
+
class HeaderContainer extends Container {
|
11
|
+
static config = {
|
12
|
+
/**
|
13
|
+
* @member {String} className='Route.view.HeaderContainer'
|
14
|
+
* @protected
|
15
|
+
*/
|
16
|
+
className: 'Route.view.HeaderContainer',
|
17
|
+
baseCls: ['route', 'neo-container', 'route_header'],
|
18
|
+
height: 242,
|
19
|
+
/**
|
20
|
+
* @member {Object[]} items
|
21
|
+
*/
|
22
|
+
items: [
|
23
|
+
{
|
24
|
+
module: Component,
|
25
|
+
reference: 'logo',
|
26
|
+
width: 140,
|
27
|
+
height: 140,
|
28
|
+
cls: ['center'],
|
29
|
+
vdom: {
|
30
|
+
tag: 'img',
|
31
|
+
src: 'https://raw.githubusercontent.com/neomjs/pages/master/resources/images/logo_rounded.svg'
|
32
|
+
}
|
33
|
+
},
|
34
|
+
{
|
35
|
+
module: Label,
|
36
|
+
text: 'neo.mjs routes showcase',
|
37
|
+
cls: ['headline-caption']
|
38
|
+
},
|
39
|
+
],
|
40
|
+
layout: { ntype: 'vbox', align: 'stretch' },
|
41
|
+
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
Neo.applyClassConfig(HeaderContainer);
|
46
|
+
|
47
|
+
export default HeaderContainer;
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import MainViewController from './MainViewController.mjs';
|
2
|
+
import HeaderContainer from './HeaderContainer.mjs';
|
3
|
+
import FooterContainer from './FooterContainer.mjs';
|
4
|
+
import CenterContainer from './CenterContainer.mjs';
|
5
|
+
import ButtonBar from './ButtonBar.mjs';
|
6
|
+
import Panel from '../../../src/container/Panel.mjs';
|
7
|
+
import MetaContainer from './MetaContainer.mjs';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @class Route.view.MainContainer
|
11
|
+
* @extends Neo.container.Viewport
|
12
|
+
*/
|
13
|
+
class MainContainer extends Panel {
|
14
|
+
static config = {
|
15
|
+
/**
|
16
|
+
* @member {String} className='Route.view.MainContainer'
|
17
|
+
* @protected
|
18
|
+
*/
|
19
|
+
className: 'Route.view.MainView',
|
20
|
+
baseCls: ['route'],
|
21
|
+
/**
|
22
|
+
* @member {Boolean} autoMount=true
|
23
|
+
*/
|
24
|
+
// autoMount: true,
|
25
|
+
/**
|
26
|
+
* @member {Neo.controller.Component} controller=MainViewController
|
27
|
+
*/
|
28
|
+
controller: MainViewController,
|
29
|
+
/**
|
30
|
+
* @member {headers[]} items
|
31
|
+
*/
|
32
|
+
headers: [
|
33
|
+
{
|
34
|
+
module: HeaderContainer,
|
35
|
+
dock: 'top'
|
36
|
+
},
|
37
|
+
{
|
38
|
+
module: ButtonBar,
|
39
|
+
dock: 'top',
|
40
|
+
reference: 'buttonbar',
|
41
|
+
|
42
|
+
},
|
43
|
+
{
|
44
|
+
module: FooterContainer,
|
45
|
+
dock: 'bottom'
|
46
|
+
},
|
47
|
+
{
|
48
|
+
module: MetaContainer,
|
49
|
+
dock: 'bottom',
|
50
|
+
reference: 'metabar',
|
51
|
+
}
|
52
|
+
],
|
53
|
+
items: [
|
54
|
+
{
|
55
|
+
module: CenterContainer,
|
56
|
+
reference: 'center-container'
|
57
|
+
|
58
|
+
}
|
59
|
+
],
|
60
|
+
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
Neo.applyClassConfig(MainContainer);
|
65
|
+
|
66
|
+
export default MainContainer;
|