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,5 +1,8 @@
|
|
1
1
|
import BaseContainer from './BaseContainer.mjs';
|
2
2
|
import ContentBox from '../ContentBox.mjs';
|
3
|
+
import Component from '../../../../../src/component/Base.mjs';
|
4
|
+
import Container from '../../../../../src/container/Base.mjs';
|
5
|
+
|
3
6
|
|
4
7
|
/**
|
5
8
|
* @class Portal.view.home.parts.Features
|
@@ -7,92 +10,56 @@ import ContentBox from '../ContentBox.mjs';
|
|
7
10
|
*/
|
8
11
|
class Features extends BaseContainer {
|
9
12
|
static config = {
|
10
|
-
/**
|
11
|
-
* @member {String} className='Portal.view.home.parts.Features'
|
12
|
-
* @protected
|
13
|
-
*/
|
14
13
|
className: 'Portal.view.home.parts.Features',
|
15
|
-
/**
|
16
|
-
* @member {String[]} cls=['portal-home-features']
|
17
|
-
*/
|
18
14
|
cls: ['portal-home-features'],
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
module:
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
module: ContentBox,
|
62
|
-
header: 'Powerful Component-Library',
|
63
|
-
route : '#/learn/WhyNeo-Quick',
|
64
|
-
|
65
|
-
content: [
|
66
|
-
'Declarative Component-Trees',
|
67
|
-
'High Order Components',
|
68
|
-
'Many out-of-the-box Components, including nested lazy-loaded forms',
|
69
|
-
'Multiple themes, which can get nested'
|
70
|
-
]
|
71
|
-
}, {
|
72
|
-
module: ContentBox,
|
73
|
-
header: 'Elegant State Management',
|
74
|
-
route : '#/learn/WhyNeo-Speed',
|
75
|
-
|
76
|
-
content: [
|
77
|
-
'Multiple communicating State-Providers',
|
78
|
-
'Observable',
|
79
|
-
'Supporting different architectures like MVVM without enforcing them'
|
80
|
-
]
|
81
|
-
}, {
|
82
|
-
module: ContentBox,
|
83
|
-
header: 'Core Features',
|
84
|
-
route : '#/learn/WhyNeo-Speed',
|
85
|
-
|
86
|
-
content: [
|
87
|
-
'RPC Layer (cross-realm, including Backends)',
|
88
|
-
'Extensibility',
|
89
|
-
'Scalability',
|
90
|
-
'Class Config System',
|
91
|
-
'Drag & Drop',
|
92
|
-
'Mixins, Plugins & Main-Thread Addons'
|
93
|
-
]
|
15
|
+
layout: {ntype: 'vbox', align: 'stretch', wrap: 'wrap'},
|
16
|
+
items: [
|
17
|
+
{
|
18
|
+
module: Container,
|
19
|
+
layout: {ntype: 'hbox'},
|
20
|
+
itemDefaults: {
|
21
|
+
module: Component,
|
22
|
+
style: {width: '33%', margin: '1em', padding: '1em', border: 'thin solid lightgray'}
|
23
|
+
},
|
24
|
+
items: [{
|
25
|
+
module: Component,
|
26
|
+
html: `
|
27
|
+
<h2>Extremely High Performance</h2>
|
28
|
+
<ul>
|
29
|
+
<li>Multi-threaded via web workers
|
30
|
+
<li>Lightning fast rendering
|
31
|
+
</ul>
|
32
|
+
<p>Neo.mjs runs key processes in separate web workers, each running in a parallel thread: one thread for app logic, one for managing DOM updates, and one for communicating with the backend. And if you have specialized or processor-intensive tasks, you can easily spawn additional threads.</p>
|
33
|
+
<p>Besides the benefit of running in a separate thread, the DOM update thread has highly optimized code for tracking and applying delta updates, easily handling tens of thousands of updates per second.</p>
|
34
|
+
`
|
35
|
+
}, {
|
36
|
+
module: Component,
|
37
|
+
html: `
|
38
|
+
<h2>Multi-Window Applications</h2>
|
39
|
+
<ul>
|
40
|
+
<li>Neo.mjs uniquely allows you to create multi-window applications
|
41
|
+
<li>Application logic, state, data, and component instances are seamlessly shared
|
42
|
+
</ul>
|
43
|
+
<p>Neo.mjs components can be rendered to the DOM for any shared web worker. Your app logic listens to events, maintains state, and shares data, without caring where the component is rendering, even if it's to another browser window.</p>
|
44
|
+
`
|
45
|
+
}, {
|
46
|
+
module: Component,
|
47
|
+
html: `
|
48
|
+
<h2>Powerful Framework Features</h2>
|
49
|
+
<ul>
|
50
|
+
<li>Component-based, declaratively configured
|
51
|
+
<li>Standard ECMAscript, without proprietary extenions
|
52
|
+
<li>Property lifecycle hooks, elegant state management
|
53
|
+
</ul>
|
54
|
+
<p>Neo.mjs components are abstract, and configured declaratively. Compared to other libraries, Neo.mjs has features that make it much easier to do data binding, and to detect property updates and events.</p>
|
55
|
+
<p>Since Neo.mjs uses standard JavaScript, there are no special WebPack transpilations. This also makes debugging easier: any statement you write in your application logic also runs in the devtools console.</p>
|
56
|
+
`
|
94
57
|
}]
|
95
|
-
|
58
|
+
}, {
|
59
|
+
module: Component,
|
60
|
+
html: 'You can read more about Neo.mjs featuers and benefits in <a href="#/learn/WhyNeo-Features">the Learning section</a>. Scroll down to see some running examples.'
|
61
|
+
}]
|
62
|
+
}
|
96
63
|
}
|
97
64
|
|
98
65
|
Neo.setupClass(Features);
|
@@ -102,8 +102,14 @@ class Helix extends BaseContainer {
|
|
102
102
|
*
|
103
103
|
*/
|
104
104
|
async activate() {
|
105
|
-
|
106
|
-
|
105
|
+
let me = this,
|
106
|
+
{parent} = me;
|
107
|
+
|
108
|
+
await me.timeout(1000);
|
109
|
+
|
110
|
+
if (parent.activePartsId === me.id && parent.mounted) {
|
111
|
+
me.getReference('live-preview').activeView = 'preview'
|
112
|
+
}
|
107
113
|
}
|
108
114
|
}
|
109
115
|
|
@@ -23,13 +23,25 @@ class MainNeo extends BaseContainer {
|
|
23
23
|
*/
|
24
24
|
items: [{
|
25
25
|
ntype: 'container',
|
26
|
-
cls : ['
|
27
|
-
|
26
|
+
cls : ['logo-container'],
|
27
|
+
items: [{
|
28
|
+
ntype: 'container',
|
29
|
+
cls : ['vector']
|
30
|
+
}, {
|
31
|
+
cls : ['neo-h1'],
|
32
|
+
html: 'Neo.mjs',
|
33
|
+
tag : 'h1'
|
34
|
+
}]
|
35
|
+
}, {
|
36
|
+
cls : ['neo-h2'],
|
37
|
+
flex: 'none',
|
38
|
+
html: 'Modern Enterprise-Ready JavaScript Framework',
|
39
|
+
tag : 'h2'
|
28
40
|
}, {
|
29
|
-
cls : ['neo-
|
41
|
+
cls : ['neo-h3'],
|
30
42
|
flex: 'none',
|
31
|
-
html: '
|
32
|
-
|
43
|
+
html: 'Neo.mjs provides a new approach for building feature-rich web applications. Increase productivity by leveraging a vast component library and harness the power of multi-threading for extreme real-time performance.',
|
44
|
+
tag : 'h3'
|
33
45
|
}, {
|
34
46
|
ntype: 'container',
|
35
47
|
cls : ['button-group'],
|
@@ -68,14 +68,14 @@ class ContentView extends Component {
|
|
68
68
|
|
69
69
|
let me = this;
|
70
70
|
|
71
|
-
value &&
|
71
|
+
value && me.timeout(50).then(() => {
|
72
72
|
Neo.main.addon.IntersectionObserver.register({
|
73
73
|
callback: 'findTopmostItem',
|
74
74
|
id : me.id,
|
75
75
|
root : `#${me.parentId}`,
|
76
76
|
windowId: me.windowId
|
77
77
|
})
|
78
|
-
}
|
78
|
+
})
|
79
79
|
}
|
80
80
|
|
81
81
|
/**
|
@@ -83,8 +83,22 @@ class ContentView extends Component {
|
|
83
83
|
* @param {Object} value
|
84
84
|
* @param {Object} oldValue
|
85
85
|
*/
|
86
|
-
afterSetRecord(value, oldValue) {
|
87
|
-
|
86
|
+
async afterSetRecord(value, oldValue) {
|
87
|
+
if (value) {
|
88
|
+
let me = this;
|
89
|
+
|
90
|
+
await me.doFetchContent(value);
|
91
|
+
|
92
|
+
if (oldValue) {
|
93
|
+
await me.timeout(50);
|
94
|
+
|
95
|
+
Neo.main.DomAccess.scrollTo({
|
96
|
+
direction: 'top',
|
97
|
+
id : me.parentId,
|
98
|
+
value : 0
|
99
|
+
})
|
100
|
+
}
|
101
|
+
}
|
88
102
|
}
|
89
103
|
|
90
104
|
/**
|
@@ -57,14 +57,14 @@ class Base extends CoreBase {
|
|
57
57
|
let me = this;
|
58
58
|
|
59
59
|
if (!Neo.apps || !Neo.apps['RealWorld']) {
|
60
|
-
|
61
|
-
me.afterConstructed()
|
62
|
-
}
|
60
|
+
me.timeout(100).then(() => {
|
61
|
+
me.afterConstructed()
|
62
|
+
})
|
63
63
|
} else {
|
64
64
|
if (Neo.apps['RealWorld'].rendered) {
|
65
|
-
me.onAppRendered()
|
65
|
+
me.onAppRendered()
|
66
66
|
} else {
|
67
|
-
Neo.apps['RealWorld'].on('render',me.onAppRendered, me)
|
67
|
+
Neo.apps['RealWorld'].on('render',me.onAppRendered, me)
|
68
68
|
}
|
69
69
|
}
|
70
70
|
}
|
@@ -91,16 +91,18 @@ class MainContainerController extends ComponentController {
|
|
91
91
|
*/
|
92
92
|
afterSetCurrentUser(value, oldValue) {
|
93
93
|
if (typeof oldValue === 'object') {
|
94
|
-
this
|
94
|
+
let me = this;
|
95
|
+
|
96
|
+
me.getReference('header').set({
|
95
97
|
loggedIn : !!value,
|
96
98
|
userImage: value ? value.image : null,
|
97
99
|
userName : value ? value.username : null
|
98
100
|
}).then(() => {
|
99
101
|
// todo: test to ensure the initial markup is rendered
|
100
|
-
|
101
|
-
|
102
|
-
}
|
103
|
-
})
|
102
|
+
me.timeout(200).then(() => {
|
103
|
+
me.fire('afterSetCurrentUser', value)
|
104
|
+
})
|
105
|
+
})
|
104
106
|
}
|
105
107
|
}
|
106
108
|
|
@@ -229,12 +231,12 @@ class MainContainerController extends ComponentController {
|
|
229
231
|
value: userData.token
|
230
232
|
}).then(() => {
|
231
233
|
// wait until the header vdom-update is done to avoid showing sign up & sign in twice
|
232
|
-
|
234
|
+
this.timeout(50).then(() => {
|
233
235
|
Neo.Main.setRoute({
|
234
236
|
value: '/'
|
235
|
-
})
|
236
|
-
}
|
237
|
-
})
|
237
|
+
})
|
238
|
+
})
|
239
|
+
})
|
238
240
|
}
|
239
241
|
|
240
242
|
/**
|
@@ -247,12 +249,12 @@ class MainContainerController extends ComponentController {
|
|
247
249
|
key: LOCAL_STORAGE_KEY
|
248
250
|
}).then(() => {
|
249
251
|
// wait until the header vdom-update is done to avoid showing sign up & sign in twice
|
250
|
-
|
252
|
+
this.timeout(50).then(() => {
|
251
253
|
Neo.Main.setRoute({
|
252
254
|
value: '/'
|
253
|
-
})
|
254
|
-
}
|
255
|
-
})
|
255
|
+
})
|
256
|
+
})
|
257
|
+
})
|
256
258
|
}
|
257
259
|
|
258
260
|
/**
|
@@ -375,11 +377,11 @@ class MainContainerController extends ComponentController {
|
|
375
377
|
break;
|
376
378
|
case 'settings':
|
377
379
|
if (me.currentUser) {
|
378
|
-
|
379
|
-
me.settingsComponent.onCurrentUserChange(me.currentUser)
|
380
|
-
}
|
380
|
+
me.timeout(50).then(() => { // added a short delay to not interfere with the mainContainer update
|
381
|
+
me.settingsComponent.onCurrentUserChange(me.currentUser)
|
382
|
+
})
|
381
383
|
}
|
382
|
-
break
|
384
|
+
break
|
383
385
|
case 'signup':
|
384
386
|
newView.errors = [];
|
385
387
|
break;
|
@@ -41,7 +41,7 @@ class Base extends CoreBase {
|
|
41
41
|
if (!Base.initialTokenRequestSent) {
|
42
42
|
Base.initialTokenRequestSent = true;
|
43
43
|
|
44
|
-
|
44
|
+
me.timeout(Neo.config.environment === 'development' ? 0 : 200).then(() => {
|
45
45
|
Neo.main.addon.LocalStorage.readLocalStorageItem({
|
46
46
|
key: LOCAL_STORAGE_KEY
|
47
47
|
}).then(data => {
|
@@ -52,14 +52,14 @@ class Base extends CoreBase {
|
|
52
52
|
}
|
53
53
|
|
54
54
|
me.onReady(token);
|
55
|
-
Base.fire('ready', token)
|
56
|
-
})
|
57
|
-
}
|
55
|
+
Base.fire('ready', token)
|
56
|
+
})
|
57
|
+
})
|
58
58
|
} else {
|
59
59
|
Base.on({
|
60
60
|
ready: me.onReady,
|
61
61
|
scope: me
|
62
|
-
})
|
62
|
+
})
|
63
63
|
}
|
64
64
|
}
|
65
65
|
|
@@ -228,12 +228,12 @@ class MainContainerController extends ComponentController {
|
|
228
228
|
value: userData.token
|
229
229
|
}).then(() => {
|
230
230
|
// wait until the header vdom-update is done to avoid showing sign up & sign in twice
|
231
|
-
|
231
|
+
this.timeout(50).then(() => {
|
232
232
|
Neo.Main.setRoute({
|
233
233
|
value: '/'
|
234
|
-
})
|
235
|
-
}
|
236
|
-
})
|
234
|
+
})
|
235
|
+
})
|
236
|
+
})
|
237
237
|
}
|
238
238
|
|
239
239
|
/**
|
@@ -246,12 +246,12 @@ class MainContainerController extends ComponentController {
|
|
246
246
|
key: LOCAL_STORAGE_KEY
|
247
247
|
}).then(() => {
|
248
248
|
// wait until the header vdom-update is done to avoid showing sign up & sign in twice
|
249
|
-
|
249
|
+
this.timeout(50).then(() => {
|
250
250
|
Neo.Main.setRoute({
|
251
251
|
value: '/'
|
252
|
-
})
|
253
|
-
}
|
254
|
-
})
|
252
|
+
})
|
253
|
+
})
|
254
|
+
})
|
255
255
|
}
|
256
256
|
|
257
257
|
/**
|
@@ -303,9 +303,9 @@ class MainContainerController extends ComponentController {
|
|
303
303
|
}*/
|
304
304
|
|
305
305
|
// short delay to ensure the new card already got added
|
306
|
-
|
307
|
-
cards.layout.activeIndex = cards.indexOf(newView)
|
308
|
-
}
|
306
|
+
me.timeout(100).then(() => {
|
307
|
+
cards.layout.activeIndex = cards.indexOf(newView)
|
308
|
+
});
|
309
309
|
|
310
310
|
switch (newView.reference) {
|
311
311
|
case 'gallery':
|
@@ -93,10 +93,12 @@ class Gallery extends BaseGallery {
|
|
93
93
|
onStoreLoad(items) {
|
94
94
|
super.onStoreLoad(items);
|
95
95
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
96
|
+
let me = this;
|
97
|
+
|
98
|
+
me.timeout(200).then(() => {
|
99
|
+
me.selectOnMount = true;
|
100
|
+
me.afterSetMounted(true, false)
|
101
|
+
})
|
100
102
|
}
|
101
103
|
}
|
102
104
|
|
@@ -237,11 +237,11 @@ class MainContainerController extends ComponentController {
|
|
237
237
|
.catch(err => console.log('Can’t access ' + me.apiSummaryUrl, err))
|
238
238
|
.then(data => me.applySummaryData(data));
|
239
239
|
|
240
|
-
|
240
|
+
me.timeout(2000).then(() => {
|
241
241
|
if (!me.summaryData) {
|
242
|
-
me.onLoadSummaryDataFail()
|
242
|
+
me.onLoadSummaryDataFail()
|
243
243
|
}
|
244
|
-
}
|
244
|
+
})
|
245
245
|
}
|
246
246
|
|
247
247
|
/**
|
@@ -293,11 +293,10 @@ class MainContainerController extends ComponentController {
|
|
293
293
|
parentView.remove(view, false);
|
294
294
|
|
295
295
|
Neo.apps[name].on('render', () => {
|
296
|
-
|
297
|
-
me.getMainView(name).add(view)
|
298
|
-
}
|
299
|
-
})
|
300
|
-
|
296
|
+
me.timeout(100).then(() => {
|
297
|
+
me.getMainView(name).add(view)
|
298
|
+
})
|
299
|
+
})
|
301
300
|
}
|
302
301
|
}
|
303
302
|
|
@@ -439,11 +438,11 @@ class MainContainerController extends ComponentController {
|
|
439
438
|
me.activeMainTabIndex = activeIndex;
|
440
439
|
|
441
440
|
if (!activeView) {
|
442
|
-
|
443
|
-
me.onHashChange(value, oldValue)
|
444
|
-
}
|
441
|
+
me.timeout(10).then(() => {
|
442
|
+
me.onHashChange(value, oldValue)
|
443
|
+
})
|
445
444
|
|
446
|
-
return
|
445
|
+
return
|
447
446
|
}
|
448
447
|
|
449
448
|
me.getModel().setData({
|
@@ -175,7 +175,7 @@ class TableContainer extends Container {
|
|
175
175
|
...me.tableConfig
|
176
176
|
});
|
177
177
|
|
178
|
-
me.items[0].items.push(me.table)
|
178
|
+
me.items[0].items.push(me.table)
|
179
179
|
}
|
180
180
|
|
181
181
|
/**
|
@@ -185,16 +185,18 @@ class TableContainer extends Container {
|
|
185
185
|
* @protected
|
186
186
|
*/
|
187
187
|
afterSetCountryRecord(value, oldValue) {
|
188
|
-
|
189
|
-
|
190
|
-
|
188
|
+
let me = this;
|
189
|
+
|
190
|
+
me.timeout(me.isConstructed ? 0 : 50).then(() => {
|
191
|
+
me.controller.onCountryChange(value)
|
192
|
+
})
|
191
193
|
}
|
192
194
|
|
193
195
|
/**
|
194
196
|
*
|
195
197
|
*/
|
196
198
|
storeReferences() {
|
197
|
-
this.controller.storeReferences()
|
199
|
+
this.controller.storeReferences()
|
198
200
|
}
|
199
201
|
}
|
200
202
|
|
@@ -162,10 +162,12 @@ class CountryGallery extends Gallery {
|
|
162
162
|
onStoreLoad(items) {
|
163
163
|
super.onStoreLoad(items);
|
164
164
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
165
|
+
let me = this;
|
166
|
+
|
167
|
+
me.timeout(400).then(() => {
|
168
|
+
me.selectOnMount = true;
|
169
|
+
me.afterSetMounted(true, false)
|
170
|
+
})
|
169
171
|
}
|
170
172
|
}
|
171
173
|
|
@@ -265,7 +265,7 @@ class MainContainerController extends ComponentController {
|
|
265
265
|
|
266
266
|
if (dialog.appName === dragEndWindowAppName) {
|
267
267
|
dragEndWindowAppName = me.component.appName;
|
268
|
-
side = me.getOppositeSide(me.dockedWindowSide)
|
268
|
+
side = me.getOppositeSide(me.dockedWindowSide)
|
269
269
|
}
|
270
270
|
|
271
271
|
proxyPosition = me.getProxyPosition(data.proxyRect, side, data.fullyIncludeIntoWindow);
|
@@ -274,12 +274,12 @@ class MainContainerController extends ComponentController {
|
|
274
274
|
|
275
275
|
// we need a delay to ensure dialog.Base: onDragEnd() is done.
|
276
276
|
// we could use the dragEnd event of the dragZone instead.
|
277
|
-
|
277
|
+
me.timeout(70).then(() => {
|
278
278
|
dialog.appName = dialog.appName === dragEndWindowAppName ? appName : dragEndWindowAppName;
|
279
279
|
|
280
280
|
me.getOpenDialogButtons().forEach(button => {
|
281
281
|
if (button.appName === dialog.appName) {
|
282
|
-
dialog.animateTargetId = button.id
|
282
|
+
dialog.animateTargetId = button.id
|
283
283
|
}
|
284
284
|
});
|
285
285
|
|
@@ -292,8 +292,8 @@ class MainContainerController extends ComponentController {
|
|
292
292
|
|
293
293
|
me.destroyDockedWindowProxy();
|
294
294
|
|
295
|
-
dialog.mount()
|
296
|
-
}
|
295
|
+
dialog.mount()
|
296
|
+
})
|
297
297
|
}
|
298
298
|
|
299
299
|
/**
|
@@ -315,28 +315,28 @@ class MembersList extends Base {
|
|
315
315
|
tag : 'code',
|
316
316
|
html: example
|
317
317
|
}]
|
318
|
-
})
|
319
|
-
})
|
318
|
+
})
|
319
|
+
})
|
320
320
|
}
|
321
321
|
|
322
322
|
if (item.params?.length > 0) {
|
323
|
-
itemConfig.cn.push(MembersList.createParametersTable(item.params))
|
323
|
+
itemConfig.cn.push(MembersList.createParametersTable(item.params))
|
324
324
|
}
|
325
325
|
|
326
326
|
if (item.returns?.[0].type && item.kind !== 'event') {
|
327
327
|
itemConfig.cn.push({
|
328
328
|
innerHTML: 'Returns {' + MembersList.escapeHtml(item.returns[0].type.names.join('|') + '} ') + (item.returns[0].description || '')
|
329
|
-
})
|
329
|
+
})
|
330
330
|
}
|
331
331
|
|
332
|
-
vdom.cn.push(itemConfig)
|
332
|
+
vdom.cn.push(itemConfig)
|
333
333
|
});
|
334
334
|
|
335
335
|
me.update();
|
336
336
|
|
337
|
-
|
338
|
-
Neo.main.addon.HighlightJS.syntaxHighlightInit()
|
339
|
-
}
|
337
|
+
me.timeout(100).then(() => {
|
338
|
+
Neo.main.addon.HighlightJS.syntaxHighlightInit()
|
339
|
+
})
|
340
340
|
}
|
341
341
|
|
342
342
|
/**
|
@@ -79,9 +79,9 @@ class SourceViewComponent extends Component {
|
|
79
79
|
afterSetMounted(value, oldValue) {
|
80
80
|
super.afterSetMounted(value, oldValue);
|
81
81
|
|
82
|
-
value &&
|
83
|
-
this.syntaxHighlight()
|
84
|
-
}
|
82
|
+
value && this.timeout(50).then(() => {
|
83
|
+
this.syntaxHighlight()
|
84
|
+
})
|
85
85
|
}
|
86
86
|
|
87
87
|
/**
|
@@ -94,14 +94,14 @@ class SourceViewComponent extends Component {
|
|
94
94
|
if (value) {
|
95
95
|
let me = this;
|
96
96
|
|
97
|
-
|
97
|
+
me.timeout(50).then(() => {
|
98
98
|
Neo.main.addon.HighlightJS.syntaxHighlightLine({
|
99
99
|
addLine : me.line,
|
100
100
|
appName : me.appName,
|
101
101
|
removeLine: me.previousLine,
|
102
102
|
vnodeId : me.vdom.cn[0].cn[0].id
|
103
|
-
})
|
104
|
-
}
|
103
|
+
})
|
104
|
+
})
|
105
105
|
}
|
106
106
|
}
|
107
107
|
|