neo.mjs 6.20.1 → 6.22.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/HeaderToolbar.mjs +7 -3
- package/apps/covid/view/MainContainerController.mjs +6 -6
- package/apps/covid/view/TableContainer.mjs +5 -3
- package/apps/covid/view/country/Gallery.mjs +6 -4
- package/apps/form/view/ViewportModel.mjs +2 -2
- package/apps/portal/index.html +23 -1
- package/apps/portal/view/HeaderToolbar.mjs +2 -2
- package/apps/portal/view/Viewport.mjs +3 -1
- package/apps/portal/view/ViewportController.mjs +10 -0
- package/apps/portal/view/about/Container.mjs +44 -0
- package/apps/portal/view/about/MemberContainer.mjs +191 -0
- package/apps/portal/view/home/MainContainer.mjs +9 -2
- package/apps/portal/view/home/parts/AfterMath.mjs +12 -8
- package/apps/portal/view/home/parts/Colors.mjs +8 -2
- package/apps/portal/view/home/parts/Features.mjs +50 -83
- package/apps/portal/view/home/parts/Helix.mjs +8 -2
- package/apps/portal/view/home/parts/MainNeo.mjs +17 -5
- package/apps/portal/view/learn/ContentView.mjs +18 -4
- package/apps/realworld/api/Base.mjs +5 -5
- package/apps/realworld/view/MainContainerController.mjs +19 -17
- package/apps/realworld2/api/Base.mjs +5 -5
- package/apps/realworld2/view/MainContainerController.mjs +11 -11
- package/apps/realworld2/view/article/Gallery.mjs +6 -4
- package/apps/sharedcovid/view/MainContainerController.mjs +11 -12
- package/apps/sharedcovid/view/TableContainer.mjs +7 -5
- package/apps/sharedcovid/view/country/Gallery.mjs +6 -4
- package/apps/shareddialog/view/MainContainerController.mjs +5 -5
- package/buildScripts/webpack/json/myApps.template.json +1 -2
- package/docs/app/view/classdetails/MembersList.mjs +8 -8
- package/docs/app/view/classdetails/SourceViewComponent.mjs +6 -6
- package/docs/app/view/classdetails/TutorialComponent.mjs +9 -9
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/component/coronaGallery/CountryGallery.mjs +6 -4
- package/examples/component/helix/Viewport.mjs +2 -2
- package/examples/list/circle/MainContainer.mjs +7 -7
- package/examples/preloadingAssets/view/MainContainerController.mjs +5 -5
- package/package.json +5 -5
- package/resources/data/deck/learnneo/pages/GuideEvents.md +2 -4
- package/resources/data/deck/learnneo/pages/WhyNeo-Features.md +46 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Intro.md +5 -6
- package/resources/data/deck/learnneo/pages/WhyNeo-Multi-Window.md +1 -1
- package/resources/data/deck/learnneo/tree.json +3 -2
- package/resources/fonts/GT-Planar-Regular.otf +0 -0
- package/resources/images/logo/neo_logo_favicon.svg +16 -0
- package/resources/images/team/tobiu.png +0 -0
- package/resources/scss/src/apps/colors/HeaderToolbar.scss +23 -1
- package/resources/scss/src/apps/colors/Viewport.scss +10 -0
- package/resources/scss/src/apps/portal/HeaderToolbar.scss +7 -7
- package/resources/scss/src/apps/portal/Viewport.scss +10 -0
- package/resources/scss/src/apps/portal/about/Container.scss +4 -0
- package/resources/scss/src/apps/portal/about/MemberContainer.scss +70 -0
- package/resources/scss/src/apps/portal/home/FooterContainer.scss +12 -0
- package/resources/scss/src/apps/portal/home/parts/BaseContainer.scss +16 -16
- package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +62 -7
- package/resources/scss/src/apps/portal/learn/ContentView.scss +1 -0
- package/resources/scss/src/apps/portal/learn/PageContainer.scss +6 -0
- package/resources/scss/src/code/LivePreview.scss +4 -1
- package/resources/scss/src/layout/Cube.scss +3 -3
- package/resources/scss/src/plugin/Resizable.scss +12 -19
- package/resources/scss/theme-neo-light/dialog/Base.scss +12 -2
- package/src/DefaultConfig.mjs +2 -2
- package/src/calendar/view/MainContainer.mjs +10 -10
- package/src/calendar/view/SettingsContainer.mjs +10 -10
- package/src/calendar/view/YearComponent.mjs +2 -2
- package/src/calendar/view/calendars/List.mjs +2 -2
- package/src/calendar/view/month/Component.mjs +4 -4
- package/src/calendar/view/week/Component.mjs +2 -2
- package/src/calendar/view/week/plugin/DragDrop.mjs +4 -4
- package/src/code/LivePreview.mjs +92 -6
- package/src/component/Base.mjs +3 -3
- package/src/component/Circle.mjs +5 -5
- package/src/component/DateSelector.mjs +4 -4
- package/src/component/Gallery.mjs +8 -8
- package/src/component/Helix.mjs +15 -12
- package/src/component/Toast.mjs +1 -1
- package/src/component/wrapper/AmChart.mjs +2 -2
- package/src/component/wrapper/CesiumJS.mjs +2 -2
- package/src/component/wrapper/GoogleMaps.mjs +2 -2
- package/src/component/wrapper/MonacoEditor.mjs +3 -3
- package/src/core/Observable.mjs +2 -2
- package/src/data/Store.mjs +2 -2
- package/src/dialog/Base.mjs +44 -14
- package/src/draggable/DragZone.mjs +4 -4
- package/src/draggable/list/DragZone.mjs +4 -4
- package/src/draggable/tab/header/toolbar/SortZone.mjs +2 -2
- package/src/draggable/toolbar/DragZone.mjs +4 -4
- package/src/draggable/toolbar/SortZone.mjs +3 -3
- package/src/form/field/ComboBox.mjs +3 -2
- package/src/form/field/FileUpload.mjs +3 -3
- package/src/form/field/Text.mjs +2 -2
- package/src/form/field/TextArea.mjs +2 -2
- package/src/grid/Container.mjs +2 -2
- package/src/layout/Cube.mjs +1 -3
- package/src/list/plugin/Animate.mjs +23 -23
- package/src/main/DomAccess.mjs +1 -1
- package/src/main/DomEvents.mjs +14 -5
- package/src/main/addon/AmCharts.mjs +2 -2
- package/src/main/addon/MapboxGL.mjs +4 -4
- package/src/manager/DomEvent.mjs +2 -2
- package/src/manager/Focus.mjs +2 -2
- package/src/manager/Toast.mjs +6 -4
- package/src/manager/rpc/Message.mjs +2 -2
- package/src/plugin/Resizable.mjs +11 -3
- package/src/selection/HelixModel.mjs +3 -3
- package/src/tab/Strip.mjs +4 -4
- package/src/table/Container.mjs +4 -4
- package/src/util/Logger.mjs +6 -4
- package/src/worker/App.mjs +2 -2
- package/src/worker/Manager.mjs +3 -2
- package/apps/website/Overwrites.mjs +0 -16
- package/apps/website/app.mjs +0 -7
- package/apps/website/data/blog.json +0 -769
- package/apps/website/data/docs.json +0 -29
- package/apps/website/data/examples_devmode.json +0 -173
- package/apps/website/data/examples_dist_dev.json +0 -164
- package/apps/website/data/examples_dist_prod.json +0 -164
- package/apps/website/index.html +0 -11
- package/apps/website/model/BlogPost.mjs +0 -60
- package/apps/website/model/Example.mjs +0 -48
- package/apps/website/neo-config.json +0 -7
- package/apps/website/store/BlogPosts.mjs +0 -39
- package/apps/website/store/Examples.mjs +0 -35
- package/apps/website/view/HeaderContainer.mjs +0 -72
- package/apps/website/view/MainContainer.mjs +0 -95
- package/apps/website/view/MainContainerController.mjs +0 -230
- package/apps/website/view/blog/Container.mjs +0 -50
- package/apps/website/view/blog/List.mjs +0 -171
- package/apps/website/view/examples/List.mjs +0 -124
- package/apps/website/view/examples/TabContainer.mjs +0 -66
- package/apps/website/view/home/DeveloperIntroComponent.mjs +0 -266
- package/apps/website/view/home/ExecutiveIntroComponent.mjs +0 -291
- package/apps/website/view/home/TabContainer.mjs +0 -56
- package/resources/scss/src/apps/website/HeaderContainer.scss +0 -136
- package/resources/scss/src/apps/website/MainContainer.scss +0 -25
- package/resources/scss/src/apps/website/blog/Container.scss +0 -18
- package/resources/scss/src/apps/website/blog/List.scss +0 -183
- package/resources/scss/src/apps/website/examples/List.scss +0 -157
- package/resources/scss/src/apps/website/home/TabContainer.scss +0 -117
- package/resources/scss/theme-dark/apps/website/HeaderContainer.scss +0 -5
- package/resources/scss/theme-dark/apps/website/MainContainer.scss +0 -4
- package/resources/scss/theme-dark/apps/website/blog/Container.scss +0 -3
- package/resources/scss/theme-dark/apps/website/home/TabContainer.scss +0 -4
- package/resources/scss/theme-light/apps/website/HeaderContainer.scss +0 -5
- package/resources/scss/theme-light/apps/website/MainContainer.scss +0 -4
- package/resources/scss/theme-light/apps/website/blog/Container.scss +0 -3
- package/resources/scss/theme-light/apps/website/home/TabContainer.scss +0 -4
- package/resources/scss/theme-neo-light/apps/website/HeaderContainer.scss +0 -5
- package/resources/scss/theme-neo-light/apps/website/MainContainer.scss +0 -4
- package/resources/scss/theme-neo-light/apps/website/blog/Container.scss +0 -3
- package/resources/scss/theme-neo-light/apps/website/home/TabContainer.scss +0 -4
@@ -1,48 +0,0 @@
|
|
1
|
-
import Model from '../../../src/data/Model.mjs';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* @class Website.model.Example
|
5
|
-
* @extends Neo.data.Model
|
6
|
-
*/
|
7
|
-
class Example extends Model {
|
8
|
-
static config = {
|
9
|
-
/**
|
10
|
-
* @member {String} className='Website.model.Example'
|
11
|
-
* @protected
|
12
|
-
*/
|
13
|
-
className: 'BlogPost.model.Example',
|
14
|
-
/**
|
15
|
-
* @member {Object[]} fields
|
16
|
-
* @protected
|
17
|
-
*/
|
18
|
-
fields: [{
|
19
|
-
name: 'backgroundColor',
|
20
|
-
type: 'String'
|
21
|
-
}, {
|
22
|
-
name: 'browsers',
|
23
|
-
type: 'Array'
|
24
|
-
}, {
|
25
|
-
name: 'environments',
|
26
|
-
type: 'Array'
|
27
|
-
}, {
|
28
|
-
name: 'id',
|
29
|
-
type: 'Integer'
|
30
|
-
}, {
|
31
|
-
name: 'image',
|
32
|
-
type: 'String'
|
33
|
-
}, {
|
34
|
-
name: 'name',
|
35
|
-
type: 'String'
|
36
|
-
}, {
|
37
|
-
name: 'sourceUrl',
|
38
|
-
type: 'String'
|
39
|
-
}, {
|
40
|
-
name: 'url',
|
41
|
-
type: 'String'
|
42
|
-
}]
|
43
|
-
}
|
44
|
-
}
|
45
|
-
|
46
|
-
Neo.setupClass(Example);
|
47
|
-
|
48
|
-
export default Example;
|
@@ -1,39 +0,0 @@
|
|
1
|
-
import BlogPost from '../model/BlogPost.mjs';
|
2
|
-
import Store from '../../../src/data/Store.mjs';
|
3
|
-
|
4
|
-
/**
|
5
|
-
* @class Website.store.BlogPosts
|
6
|
-
* @extends Neo.data.Store
|
7
|
-
*/
|
8
|
-
class BlogPosts extends Store {
|
9
|
-
static config = {
|
10
|
-
/**
|
11
|
-
* @member {String} className='Website.store.BlogPosts'
|
12
|
-
* @protected
|
13
|
-
*/
|
14
|
-
className: 'Website.store.BlogPosts',
|
15
|
-
/**
|
16
|
-
* @member {String} keyProperty='id'
|
17
|
-
*/
|
18
|
-
keyProperty: 'id',
|
19
|
-
/**
|
20
|
-
* @member {Neo.data.Model} model=BlogPost
|
21
|
-
*/
|
22
|
-
model: BlogPost,
|
23
|
-
/**
|
24
|
-
* @member {Object[]} sorters=[{property: 'id', direction: 'DESC'}]
|
25
|
-
*/
|
26
|
-
sorters: [{
|
27
|
-
property : 'id',
|
28
|
-
direction: 'DESC'
|
29
|
-
}],
|
30
|
-
/**
|
31
|
-
* @member {String} url='../../apps/website/data/blog.json'
|
32
|
-
*/
|
33
|
-
url: '../../apps/website/data/blog.json'
|
34
|
-
}
|
35
|
-
}
|
36
|
-
|
37
|
-
Neo.setupClass(BlogPosts);
|
38
|
-
|
39
|
-
export default BlogPosts;
|
@@ -1,35 +0,0 @@
|
|
1
|
-
import Example from '../model/Example.mjs';
|
2
|
-
import Store from '../../../src/data/Store.mjs';
|
3
|
-
|
4
|
-
/**
|
5
|
-
* @class Website.store.Examples
|
6
|
-
* @extends Neo.data.Store
|
7
|
-
*/
|
8
|
-
class Examples extends Store {
|
9
|
-
static config = {
|
10
|
-
/**
|
11
|
-
* @member {String} className='Website.store.Examples'
|
12
|
-
* @protected
|
13
|
-
*/
|
14
|
-
className: 'Website.store.Examples',
|
15
|
-
/**
|
16
|
-
* @member {String} keyProperty='id'
|
17
|
-
*/
|
18
|
-
keyProperty: 'id',
|
19
|
-
/**
|
20
|
-
* @member {Neo.data.Model} model=Example
|
21
|
-
*/
|
22
|
-
model: Example,
|
23
|
-
/**
|
24
|
-
* @member {Object[]} sorters=[{property: 'id', direction: 'ASC'}]
|
25
|
-
*/
|
26
|
-
sorters: [{
|
27
|
-
property : 'id',
|
28
|
-
direction: 'DESC'
|
29
|
-
}]
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
|
-
Neo.setupClass(Examples);
|
34
|
-
|
35
|
-
export default Examples;
|
@@ -1,72 +0,0 @@
|
|
1
|
-
import Container from '../../../src/container/Base.mjs';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* @class Website.view.HeaderContainer
|
5
|
-
* @extends Neo.container.Base
|
6
|
-
*/
|
7
|
-
class HeaderContainer extends Container {
|
8
|
-
static config = {
|
9
|
-
/**
|
10
|
-
* @member {String} className='Website.view.HeaderContainer'
|
11
|
-
* @protected
|
12
|
-
*/
|
13
|
-
className: 'Website.view.HeaderContainer',
|
14
|
-
/**
|
15
|
-
* @member {String[]} baseCls=['website-header-container']
|
16
|
-
*/
|
17
|
-
baseCls: ['website-header-container'],
|
18
|
-
/**
|
19
|
-
* @member {Object} layout={ntype: 'hbox', align: 'stretch'}
|
20
|
-
*/
|
21
|
-
layout: {ntype: 'fit'},
|
22
|
-
/**
|
23
|
-
* @member {Array} items
|
24
|
-
*/
|
25
|
-
items: [{
|
26
|
-
ntype : 'component',
|
27
|
-
reference: 'logo',
|
28
|
-
|
29
|
-
vdom:
|
30
|
-
{cn: [
|
31
|
-
{cls: ['neo-full-size', 'neo-logo']},
|
32
|
-
{cls: ['neo-relative'], cn: [
|
33
|
-
{cls: ['neo-absolute', 'neo-item-bottom-position'], cn: [
|
34
|
-
{cls: ['neo-title'], html: 'neo.mjs'},
|
35
|
-
{cls: ['neo-inner-content'], cn: [
|
36
|
-
{cls : ['neo-inner-details'], html: 'Create multithreaded Web Apps'}
|
37
|
-
]}
|
38
|
-
]}
|
39
|
-
]}
|
40
|
-
]}
|
41
|
-
}, {
|
42
|
-
ntype : 'container',
|
43
|
-
cls : ['website-header-buttons'],
|
44
|
-
layout: {ntype: 'hbox', align: 'stretch'},
|
45
|
-
|
46
|
-
itemDefaults: {
|
47
|
-
ntype: 'button'
|
48
|
-
},
|
49
|
-
|
50
|
-
items: [{
|
51
|
-
handler: 'onSwitchThemeButtonClick',
|
52
|
-
iconCls: 'fa fa-moon'
|
53
|
-
}, {
|
54
|
-
iconCls: 'fab fa-github',
|
55
|
-
url : 'https://github.com/neomjs/neo'
|
56
|
-
}, {
|
57
|
-
iconCls: 'fab fa-facebook-f',
|
58
|
-
url : 'https://www.facebook.com/Neomjs-101788847886539/'
|
59
|
-
}, {
|
60
|
-
iconCls: 'fab fa-linkedin-in',
|
61
|
-
url : 'https://www.linkedin.com/company/26254666/'
|
62
|
-
}, {
|
63
|
-
iconCls: 'fab fa-twitter',
|
64
|
-
url : 'https://twitter.com/UhligTobias'
|
65
|
-
}]
|
66
|
-
}]
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
|
-
Neo.setupClass(HeaderContainer);
|
71
|
-
|
72
|
-
export default HeaderContainer;
|
@@ -1,95 +0,0 @@
|
|
1
|
-
import Container from '../../../src/container/Base.mjs';
|
2
|
-
import HeaderContainer from './HeaderContainer.mjs';
|
3
|
-
import MainContainerController from './MainContainerController.mjs';
|
4
|
-
import TabContainer from '../../../src/tab/Container.mjs';
|
5
|
-
import Viewport from '../../../src/container/Viewport.mjs';
|
6
|
-
|
7
|
-
/**
|
8
|
-
* @class Website.view.MainContainer
|
9
|
-
* @extends Neo.container.Viewport
|
10
|
-
*/
|
11
|
-
class MainContainer extends Viewport {
|
12
|
-
static config = {
|
13
|
-
/**
|
14
|
-
* @member {String} className='Website.view.MainContainer'
|
15
|
-
* @protected
|
16
|
-
*/
|
17
|
-
className: 'Website.view.MainContainer',
|
18
|
-
/**
|
19
|
-
* @member {String[]} baseCls=['website-main-container','neo-viewport']
|
20
|
-
*/
|
21
|
-
baseCls: ['website-main-container', 'neo-viewport'],
|
22
|
-
/**
|
23
|
-
* @member {Neo.controller.Component} controller=MainContainerController
|
24
|
-
*/
|
25
|
-
controller: MainContainerController,
|
26
|
-
/**
|
27
|
-
* @member {Object} layout={ntype: 'hbox',align: 'stretch'}
|
28
|
-
*/
|
29
|
-
layout: {ntype: 'hbox', align: 'stretch'},
|
30
|
-
/**
|
31
|
-
* @member {Array} items
|
32
|
-
*/
|
33
|
-
items: [{
|
34
|
-
module: Container,
|
35
|
-
cls : ['website-center-region'],
|
36
|
-
layout: {ntype: 'vbox', align: 'stretch'},
|
37
|
-
items : [{
|
38
|
-
module : HeaderContainer,
|
39
|
-
flex : 'none',
|
40
|
-
reference: 'header-container'
|
41
|
-
}, {
|
42
|
-
module : TabContainer,
|
43
|
-
activeIndex: null, // render no items initially
|
44
|
-
cls : ['website-main-tabcontainer', 'neo-tab-container'],
|
45
|
-
flex : 1,
|
46
|
-
reference : 'main-tab-container',
|
47
|
-
sortable : true,
|
48
|
-
|
49
|
-
items: [{
|
50
|
-
module : () => import('./home/TabContainer.mjs'),
|
51
|
-
reference : 'home',
|
52
|
-
tabButtonConfig: {
|
53
|
-
editRoute: false,
|
54
|
-
iconCls : 'fa fa-home',
|
55
|
-
route : 'mainview=home',
|
56
|
-
text : 'Home'
|
57
|
-
}
|
58
|
-
}, {
|
59
|
-
module : () => import('./blog/Container.mjs'),
|
60
|
-
reference : 'blog',
|
61
|
-
tabButtonConfig: {
|
62
|
-
editRoute: false,
|
63
|
-
iconCls : 'fa fa-rss',
|
64
|
-
reference: 'blog-header-button',
|
65
|
-
route : 'mainview=blog',
|
66
|
-
text : 'Blog'
|
67
|
-
}
|
68
|
-
}, {
|
69
|
-
module : () => import('./examples/TabContainer.mjs'),
|
70
|
-
reference : 'examples',
|
71
|
-
tabButtonConfig: {
|
72
|
-
editRoute: false,
|
73
|
-
iconCls : 'fa fa-images',
|
74
|
-
route : 'mainview=examples',
|
75
|
-
text : 'Examples'
|
76
|
-
}
|
77
|
-
}, {
|
78
|
-
module : () => import('./examples/List.mjs'),
|
79
|
-
reference : 'docs',
|
80
|
-
storeUrl : '../../apps/website/data/docs.json',
|
81
|
-
tabButtonConfig: {
|
82
|
-
editRoute: false,
|
83
|
-
iconCls : 'fa fa-hands-helping',
|
84
|
-
route : 'mainview=docs',
|
85
|
-
text : 'Docs'
|
86
|
-
}
|
87
|
-
}]
|
88
|
-
}]
|
89
|
-
}]
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
Neo.setupClass(MainContainer);
|
94
|
-
|
95
|
-
export default MainContainer;
|
@@ -1,230 +0,0 @@
|
|
1
|
-
import ComponentController from '../../../src/controller/Component.mjs';
|
2
|
-
import NeoArray from '../../../src/util/Array.mjs';
|
3
|
-
|
4
|
-
/**
|
5
|
-
* @class Website.view.MainContainerController
|
6
|
-
* @extends Neo.controller.Component
|
7
|
-
*/
|
8
|
-
class MainContainerController extends ComponentController {
|
9
|
-
static config = {
|
10
|
-
/**
|
11
|
-
* @member {String} className='Website.view.MainContainerController'
|
12
|
-
* @protected
|
13
|
-
*/
|
14
|
-
className: 'Website.view.MainContainerController',
|
15
|
-
/**
|
16
|
-
* @member {String[]} examplesTabs=['devmode','dist_dev','dist_prod']
|
17
|
-
* @protected
|
18
|
-
*/
|
19
|
-
examplesTabs: ['devmode', 'dist_dev', 'dist_prod'],
|
20
|
-
/**
|
21
|
-
* @member {String[]} homeTabs=['developers','executives']
|
22
|
-
* @protected
|
23
|
-
*/
|
24
|
-
homeTabs: ['developers', 'executives'],
|
25
|
-
/**
|
26
|
-
* @member {String[]} mainTabs=['home','blog','examples','docs']
|
27
|
-
* @protected
|
28
|
-
*/
|
29
|
-
mainTabs: ['home', 'blog', 'examples', 'docs'],
|
30
|
-
/**
|
31
|
-
* @member {String[]} mainTabsListeners=[]
|
32
|
-
* @protected
|
33
|
-
*/
|
34
|
-
mainTabsListeners: []
|
35
|
-
}
|
36
|
-
|
37
|
-
/**
|
38
|
-
* @param {Number} tabIndex
|
39
|
-
* @returns {Neo.component.Base}
|
40
|
-
*/
|
41
|
-
getView(tabIndex) {
|
42
|
-
return this.getReference(this.mainTabs[tabIndex]);
|
43
|
-
}
|
44
|
-
|
45
|
-
/**
|
46
|
-
* @param {Object[]} records
|
47
|
-
*/
|
48
|
-
onBlogPostStoreLoad(records) {
|
49
|
-
this.getReference('blog-header-button').badgeText = records.length + ''
|
50
|
-
}
|
51
|
-
|
52
|
-
/**
|
53
|
-
*
|
54
|
-
*/
|
55
|
-
onComponentConstructed() {
|
56
|
-
let me = this;
|
57
|
-
|
58
|
-
me.getReference('main-tab-container').on('moveTo', me.onTabMove.bind(me, 'mainTabs'));
|
59
|
-
}
|
60
|
-
|
61
|
-
/**
|
62
|
-
*
|
63
|
-
*/
|
64
|
-
onConstructed() {
|
65
|
-
super.onConstructed();
|
66
|
-
|
67
|
-
if (!Neo.config.hash) {
|
68
|
-
this.onHashChange({
|
69
|
-
hash : {mainview: 'home'},
|
70
|
-
hashString: 'mainview=home'
|
71
|
-
}, null);
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
/**
|
76
|
-
* @param {Object} value
|
77
|
-
* @param {Object} oldValue
|
78
|
-
*/
|
79
|
-
onHashChange(value, oldValue) {
|
80
|
-
let me = this,
|
81
|
-
hash = value?.hash,
|
82
|
-
tabContainer = me.getReference('main-tab-container'),
|
83
|
-
activeIndex = me.mainTabs.indexOf(hash.mainview),
|
84
|
-
activeView = me.getView(activeIndex),
|
85
|
-
listeners = me.mainTabsListeners,
|
86
|
-
store;
|
87
|
-
|
88
|
-
if (tabContainer && activeIndex > -1) {
|
89
|
-
tabContainer.activeIndex = activeIndex;
|
90
|
-
}
|
91
|
-
|
92
|
-
if (!activeView || !activeView.isConstructed) {
|
93
|
-
setTimeout(() => {
|
94
|
-
me.onHashChange(value, oldValue);
|
95
|
-
}, 10);
|
96
|
-
|
97
|
-
return;
|
98
|
-
}
|
99
|
-
|
100
|
-
switch (hash.mainview) {
|
101
|
-
case 'home': {
|
102
|
-
if (!listeners['home']) {
|
103
|
-
listeners.push('home');
|
104
|
-
activeView.on('moveTo', me.onTabMove.bind(me, 'homeTabs'));
|
105
|
-
}
|
106
|
-
|
107
|
-
if (hash.childview) {
|
108
|
-
activeView.activeIndex = me.homeTabs.indexOf(hash.childview);
|
109
|
-
}
|
110
|
-
break;
|
111
|
-
}
|
112
|
-
case 'blog': {
|
113
|
-
store = me.getReference('blog-list').store;
|
114
|
-
break;
|
115
|
-
}
|
116
|
-
case 'examples': {
|
117
|
-
if (!listeners['examples']) {
|
118
|
-
listeners.push('examples');
|
119
|
-
activeView.on('moveTo', me.onTabMove.bind(me, 'examplesTabs'));
|
120
|
-
}
|
121
|
-
|
122
|
-
switch (hash.childview) {
|
123
|
-
case 'devmode':
|
124
|
-
store = me.getReference('examples-devmode-list').store;
|
125
|
-
break;
|
126
|
-
case 'dist_dev':
|
127
|
-
store = me.getReference('examples-dist-dev-list').store;
|
128
|
-
break;
|
129
|
-
default:
|
130
|
-
store = me.getReference('examples-dist-prod-list').store;
|
131
|
-
break;
|
132
|
-
}
|
133
|
-
|
134
|
-
if (hash.childview) {
|
135
|
-
activeView.activeIndex = me.examplesTabs.indexOf(hash.childview);
|
136
|
-
}
|
137
|
-
break;
|
138
|
-
}
|
139
|
-
case 'docs': {
|
140
|
-
store = me.getReference('docs').store;
|
141
|
-
break;
|
142
|
-
}
|
143
|
-
}
|
144
|
-
|
145
|
-
if (store?.getCount() < 1) {
|
146
|
-
setTimeout(() => {
|
147
|
-
store.load();
|
148
|
-
}, 50);
|
149
|
-
}
|
150
|
-
}
|
151
|
-
|
152
|
-
/**
|
153
|
-
* @param {Object} data
|
154
|
-
*/
|
155
|
-
onNavLinkClick(data) {
|
156
|
-
const targetId = data.target.data.target;
|
157
|
-
|
158
|
-
Neo.main.DomAccess.scrollIntoView({
|
159
|
-
id: targetId
|
160
|
-
}).then(() => {
|
161
|
-
setTimeout(() => {
|
162
|
-
Neo.main.DomAccess.setStyle({
|
163
|
-
id: targetId,
|
164
|
-
style: {
|
165
|
-
color: 'red'
|
166
|
-
}
|
167
|
-
}).then(() => {
|
168
|
-
setTimeout(() => {
|
169
|
-
Neo.main.DomAccess.setStyle({
|
170
|
-
id: targetId,
|
171
|
-
style: {
|
172
|
-
color: null
|
173
|
-
}
|
174
|
-
});
|
175
|
-
}, 300)
|
176
|
-
});
|
177
|
-
}, 900)
|
178
|
-
});
|
179
|
-
}
|
180
|
-
|
181
|
-
/**
|
182
|
-
* @param {Object} data
|
183
|
-
*/
|
184
|
-
onSearchFieldChange(data) {
|
185
|
-
this.getReference('blog-list').filterItems(data);
|
186
|
-
}
|
187
|
-
|
188
|
-
/**
|
189
|
-
* @param {Object} data
|
190
|
-
*/
|
191
|
-
onSwitchThemeButtonClick(data) {
|
192
|
-
let me = this,
|
193
|
-
button = data.component,
|
194
|
-
component = me.component,
|
195
|
-
cls, iconCls, theme;
|
196
|
-
|
197
|
-
if (button.iconCls === 'fa fa-sun') {
|
198
|
-
iconCls = 'fa fa-moon';
|
199
|
-
theme = 'neo-theme-light';
|
200
|
-
} else {
|
201
|
-
iconCls = 'fa fa-sun';
|
202
|
-
theme = 'neo-theme-dark';
|
203
|
-
}
|
204
|
-
|
205
|
-
cls = [...component.cls];
|
206
|
-
|
207
|
-
component.cls.forEach(item => {
|
208
|
-
if (item.includes('neo-theme')) {
|
209
|
-
NeoArray.remove(cls, item);
|
210
|
-
}
|
211
|
-
});
|
212
|
-
|
213
|
-
NeoArray.add(cls, theme);
|
214
|
-
component.cls = cls;
|
215
|
-
|
216
|
-
button.iconCls = iconCls;
|
217
|
-
}
|
218
|
-
|
219
|
-
/**
|
220
|
-
* @param {String} target examplesTabs, homeTabs, mainTabs
|
221
|
-
* @param {Object} data
|
222
|
-
*/
|
223
|
-
onTabMove(target, data) {
|
224
|
-
NeoArray.move(this[target], data.fromIndex, data.toIndex);
|
225
|
-
}
|
226
|
-
}
|
227
|
-
|
228
|
-
Neo.setupClass(MainContainerController);
|
229
|
-
|
230
|
-
export default MainContainerController;
|
@@ -1,50 +0,0 @@
|
|
1
|
-
import BaseContainer from '../../../../src/container/Base.mjs';
|
2
|
-
import List from './List.mjs';
|
3
|
-
import SearchField from '../../../../src/form/field/Search.mjs';
|
4
|
-
|
5
|
-
/**
|
6
|
-
* @class Website.view.blog.Container
|
7
|
-
* @extends Neo.container.Base
|
8
|
-
*/
|
9
|
-
class Container extends BaseContainer {
|
10
|
-
static config = {
|
11
|
-
/**
|
12
|
-
* @member {String} className='Website.view.blog.Container'
|
13
|
-
* @protected
|
14
|
-
*/
|
15
|
-
className: 'Website.view.blog.Container',
|
16
|
-
/**
|
17
|
-
* @member {String[]} baseCls=['website-blog-container','neo-container']
|
18
|
-
*/
|
19
|
-
baseCls: ['website-blog-container', 'neo-container'],
|
20
|
-
/**
|
21
|
-
* @member {Array} items
|
22
|
-
*/
|
23
|
-
items: [{ //#323232
|
24
|
-
module: BaseContainer,
|
25
|
-
cls : ['website-blog-toolbar', 'neo-container'],
|
26
|
-
flex : 'none',
|
27
|
-
layout: {ntype: 'hbox', align: 'stretch'},
|
28
|
-
|
29
|
-
items: [{
|
30
|
-
module : SearchField,
|
31
|
-
cls : ['website-blog-searchfield', 'neo-searchfield', 'neo-textfield'],
|
32
|
-
listeners : {change: 'onSearchFieldChange'},
|
33
|
-
placeholderText: 'Filter Items',
|
34
|
-
width : 240
|
35
|
-
}]
|
36
|
-
}, {
|
37
|
-
module : List,
|
38
|
-
flex : 1,
|
39
|
-
reference: 'blog-list'
|
40
|
-
}],
|
41
|
-
/**
|
42
|
-
* @member {Object} layout={ntype: 'vbox', align: 'stretch'}
|
43
|
-
*/
|
44
|
-
layout: {ntype: 'vbox', align: 'stretch'}
|
45
|
-
}
|
46
|
-
}
|
47
|
-
|
48
|
-
Neo.setupClass(Container);
|
49
|
-
|
50
|
-
export default Container;
|