neo.mjs 6.21.0 → 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/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 +6 -15
- 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 +12 -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
package/apps/ServiceWorker.mjs
CHANGED
@@ -15,9 +15,9 @@ class HeaderToolbar extends Toolbar {
|
|
15
15
|
*/
|
16
16
|
className: 'Colors.view.HeaderToolbar',
|
17
17
|
/**
|
18
|
-
* @member {String[]} cls=['
|
18
|
+
* @member {String[]} cls=['colors-header-toolbar']
|
19
19
|
*/
|
20
|
-
cls: ['
|
20
|
+
cls: ['colors-header-toolbar'],
|
21
21
|
/**
|
22
22
|
* @member {Object} layout={ntype:'hbox',align:'stretch',wrap:'wrap'}
|
23
23
|
*/
|
@@ -64,7 +64,11 @@ class HeaderToolbar extends Toolbar {
|
|
64
64
|
listeners : {change: 'onChangeAmountRows'},
|
65
65
|
store : ['5', '10', '15', '20'],
|
66
66
|
width : 90
|
67
|
-
},
|
67
|
+
}, {
|
68
|
+
ntype: 'component',
|
69
|
+
cls : ['header-spacer'],
|
70
|
+
flex : 1
|
71
|
+
}, {
|
68
72
|
handler : 'onDetachTableButtonClick',
|
69
73
|
iconCls : 'fas fa-table',
|
70
74
|
reference: 'detach-table-button',
|
@@ -186,11 +186,11 @@ class MainContainerController extends ComponentController {
|
|
186
186
|
.catch(err => console.log('Can’t access ' + me.apiSummaryUrl, err))
|
187
187
|
.then(data => me.applySummaryData(data));
|
188
188
|
|
189
|
-
|
189
|
+
me.timeout(2000).then(() => {
|
190
190
|
if (!me.summaryData) {
|
191
|
-
me.onLoadSummaryDataFail()
|
191
|
+
me.onLoadSummaryDataFail()
|
192
192
|
}
|
193
|
-
}
|
193
|
+
})
|
194
194
|
}
|
195
195
|
|
196
196
|
/**
|
@@ -261,11 +261,11 @@ class MainContainerController extends ComponentController {
|
|
261
261
|
me.activeMainTabIndex = activeIndex;
|
262
262
|
|
263
263
|
if (!activeView) {
|
264
|
-
|
264
|
+
me.timeout(10).then(() => {
|
265
265
|
me.onHashChange(value, oldValue);
|
266
|
-
}
|
266
|
+
});
|
267
267
|
|
268
|
-
return
|
268
|
+
return
|
269
269
|
}
|
270
270
|
|
271
271
|
me.getModel().setData({
|
@@ -178,9 +178,11 @@ class TableContainer extends Container {
|
|
178
178
|
* @protected
|
179
179
|
*/
|
180
180
|
afterSetCountryRecord(value, oldValue) {
|
181
|
-
|
182
|
-
|
183
|
-
|
181
|
+
let me = this;
|
182
|
+
|
183
|
+
me.timeout(me.isConstructed ? 0 : 50).then(() => {
|
184
|
+
me.controller.onCountryChange(value)
|
185
|
+
})
|
184
186
|
}
|
185
187
|
}
|
186
188
|
|
@@ -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
|
|
@@ -82,9 +82,9 @@ class ViewportModel extends Component {
|
|
82
82
|
if (page instanceof Neo.core.Base) {
|
83
83
|
page.setValues(me.formData, true);
|
84
84
|
} else {
|
85
|
-
|
85
|
+
me.timeout(30).then(() => {
|
86
86
|
me.onDataPropertyChange(key, value, oldValue)
|
87
|
-
}
|
87
|
+
})
|
88
88
|
}
|
89
89
|
}
|
90
90
|
}
|
package/apps/portal/index.html
CHANGED
@@ -3,7 +3,29 @@
|
|
3
3
|
<head>
|
4
4
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
5
|
<meta charset="UTF-8">
|
6
|
-
<title>
|
6
|
+
<title>Neo.mjs</title>
|
7
|
+
<meta name="description" content="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.">
|
8
|
+
<meta name="robots" content="index, follow">
|
9
|
+
<script type="application/ld+json">
|
10
|
+
{
|
11
|
+
"@context": "http://schema.org",
|
12
|
+
"@type": "SoftwareApplication",
|
13
|
+
"name": "Neo.mjs",
|
14
|
+
"url": "https://neomjs.com/",
|
15
|
+
"author": {
|
16
|
+
"@type": "Organization",
|
17
|
+
"name": "Neo.mjs"
|
18
|
+
},
|
19
|
+
"datePublished": "2024-07-27",
|
20
|
+
"publisher": {
|
21
|
+
"@type": "Organization",
|
22
|
+
"name": "Neo.mjs"
|
23
|
+
},
|
24
|
+
"applicationCategory": "JavaScript Framework",
|
25
|
+
"downloadUrl": "https://github.com/neomjs/neo"
|
26
|
+
}
|
27
|
+
</script>
|
28
|
+
<link rel="icon" href="../../resources/images/logo/neo_logo_favicon.svg">
|
7
29
|
<link
|
8
30
|
href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=Source+Sans+3:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;0,8..60,700;1,8..60,400;1,8..60,500;1,8..60,600;1,8..60,700&display=swap"
|
9
31
|
rel="stylesheet">
|
@@ -12,9 +12,9 @@ class HeaderToolbar extends Base {
|
|
12
12
|
*/
|
13
13
|
className: 'Portal.view.HeaderToolbar',
|
14
14
|
/**
|
15
|
-
* @member {String[]} cls=['
|
15
|
+
* @member {String[]} cls=['portal-header-toolbar']
|
16
16
|
*/
|
17
|
-
cls: ['
|
17
|
+
cls: ['portal-header-toolbar'],
|
18
18
|
/**
|
19
19
|
* @member {Object} itemDefaults
|
20
20
|
*/
|
@@ -40,6 +40,7 @@ class Viewport extends BaseViewport {
|
|
40
40
|
flex : 'none'
|
41
41
|
}, {
|
42
42
|
module : Container,
|
43
|
+
cls : ['portal-main-content'],
|
43
44
|
reference: 'main-content',
|
44
45
|
|
45
46
|
// The layout will get assigned inside ViewportController
|
@@ -49,7 +50,8 @@ class Viewport extends BaseViewport {
|
|
49
50
|
{module: () => import('./learn/MainContainer.mjs')},
|
50
51
|
{module: () => import('./blog/Container.mjs')},
|
51
52
|
{module: () => import('../../../docs/app/view/MainContainer.mjs')},
|
52
|
-
{module: () => import('./services/Component.mjs')}
|
53
|
+
{module: () => import('./services/Component.mjs')},
|
54
|
+
{module: () => import('./about/Container.mjs')}
|
53
55
|
]
|
54
56
|
}],
|
55
57
|
/**
|
@@ -42,6 +42,7 @@ class ViewportController extends Controller {
|
|
42
42
|
* @member {Object} routes
|
43
43
|
*/
|
44
44
|
routes: {
|
45
|
+
'/about-us' : 'onAboutUsRoute',
|
45
46
|
'/blog' : 'onBlogRoute',
|
46
47
|
'/docs' : 'onDocsRoute',
|
47
48
|
'/home' : 'onHomeRoute',
|
@@ -83,6 +84,15 @@ class ViewportController extends Controller {
|
|
83
84
|
return this.beforeSetEnumValue(value, oldValue, 'mainContentLayout')
|
84
85
|
}
|
85
86
|
|
87
|
+
/**
|
88
|
+
* @param {Object} params
|
89
|
+
* @param {Object} value
|
90
|
+
* @param {Object} oldValue
|
91
|
+
*/
|
92
|
+
onAboutUsRoute(params, value, oldValue) {
|
93
|
+
this.setMainContentIndex(5)
|
94
|
+
}
|
95
|
+
|
86
96
|
/**
|
87
97
|
* @param {Object} data
|
88
98
|
* @param {String} data.appName
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import Base from '../../../../src/container/Base.mjs';
|
2
|
+
import MemberContainer from './MemberContainer.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Portal.view.about.Container
|
6
|
+
* @extends Neo.container.Base
|
7
|
+
*/
|
8
|
+
class Container extends Base {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Portal.view.about.Container'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Portal.view.about.Container',
|
15
|
+
/**
|
16
|
+
* @member {String[]} cls=['portal-about-container']
|
17
|
+
*/
|
18
|
+
cls: ['portal-about-container'],
|
19
|
+
/**
|
20
|
+
* @member {Object[]} items
|
21
|
+
*/
|
22
|
+
items: [{
|
23
|
+
html: 'Meet the Team',
|
24
|
+
tag : 'h1'
|
25
|
+
}, {
|
26
|
+
module : MemberContainer,
|
27
|
+
location : 'Germany',
|
28
|
+
name : 'Tobias Uhlig',
|
29
|
+
picture : 'tobiu.png',
|
30
|
+
profileGitHub : 'https://github.com/tobiu',
|
31
|
+
profileLinkedIn: 'https://www.linkedin.com/in/tobiasuhlig/',
|
32
|
+
profileX : 'https://x.com/UhligTobias',
|
33
|
+
teamRole : 'Co-Founder & Core Team Member'
|
34
|
+
}],
|
35
|
+
/**
|
36
|
+
* @member {Object} layout={ntype:'vbox',align:'start'}
|
37
|
+
*/
|
38
|
+
layout: {ntype: 'vbox', align: 'start'}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
Neo.setupClass(Container);
|
43
|
+
|
44
|
+
export default Container;
|
@@ -0,0 +1,191 @@
|
|
1
|
+
import Container from '../../../../src/container/Base.mjs';
|
2
|
+
import Toolbar from '../../../../src/toolbar/Base.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Portal.view.about.MemberContainer
|
6
|
+
* @extends Neo.container.Base
|
7
|
+
*/
|
8
|
+
class MemberContainer extends Container {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Portal.view.about.MemberContainer'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Portal.view.about.MemberContainer',
|
15
|
+
/**
|
16
|
+
* @member {String[]} cls=['portal-about-member-container']
|
17
|
+
*/
|
18
|
+
cls: ['portal-about-member-container'],
|
19
|
+
/**
|
20
|
+
* @member {String|null} location_=null
|
21
|
+
*/
|
22
|
+
location_: null,
|
23
|
+
/**
|
24
|
+
* @member {String|null} name_=null
|
25
|
+
*/
|
26
|
+
name_: null,
|
27
|
+
/**
|
28
|
+
* @member {String|null} picture_=null
|
29
|
+
*/
|
30
|
+
picture_: null,
|
31
|
+
/**
|
32
|
+
* @member {String|null} profileGitHub_=null
|
33
|
+
*/
|
34
|
+
profileGitHub_: null,
|
35
|
+
/**
|
36
|
+
* @member {String|null} profileLinkedIn_=null
|
37
|
+
*/
|
38
|
+
profileLinkedIn_: null,
|
39
|
+
/**
|
40
|
+
* @member {String|null} profileX_=null
|
41
|
+
*/
|
42
|
+
profileX_: null,
|
43
|
+
/**
|
44
|
+
* @member {String|null} teamRole_=null
|
45
|
+
*/
|
46
|
+
teamRole_: null,
|
47
|
+
/**
|
48
|
+
* @member {Object[]} items
|
49
|
+
*/
|
50
|
+
items: [{
|
51
|
+
module : Toolbar,
|
52
|
+
cls : ['portal-profiles'],
|
53
|
+
itemDefaults: {ntype: 'button', ui: 'ghost'},
|
54
|
+
|
55
|
+
items: [{
|
56
|
+
iconCls: 'portal-profile fa-brands fa-github'
|
57
|
+
}, {
|
58
|
+
iconCls: 'portal-profile fa-brands fa-linkedin'
|
59
|
+
}, {
|
60
|
+
iconCls: 'portal-profile fa-brands fa-x-twitter'
|
61
|
+
}]
|
62
|
+
}, {
|
63
|
+
cls : ['portal-profile-component'],
|
64
|
+
vdom:
|
65
|
+
{cn: [
|
66
|
+
{tag: 'img', cls: ['portal-profile-picture']},
|
67
|
+
{cls: ['portal-profile-content'], cn: [
|
68
|
+
{tag: 'h2', cls: ['portal-profile-name']},
|
69
|
+
{cls: ['portal-profile-role']},
|
70
|
+
{cn: [
|
71
|
+
{tag: 'i', cls: ['portal-profile-location']},
|
72
|
+
{vtype: 'text'}
|
73
|
+
]}
|
74
|
+
]}
|
75
|
+
]}
|
76
|
+
}]
|
77
|
+
}
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Triggered after the location config got changed
|
81
|
+
* @param {String|null} value
|
82
|
+
* @param {String|null} oldValue
|
83
|
+
* @protected
|
84
|
+
*/
|
85
|
+
afterSetLocation(value, oldValue) {
|
86
|
+
if (value) {
|
87
|
+
let item = this.items[1];
|
88
|
+
|
89
|
+
item.vdom.cn[1].cn[2].cn[1].html = value;
|
90
|
+
item.update?.()
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
/**
|
95
|
+
* Triggered after the name config got changed
|
96
|
+
* @param {String|null} value
|
97
|
+
* @param {String|null} oldValue
|
98
|
+
* @protected
|
99
|
+
*/
|
100
|
+
afterSetName(value, oldValue) {
|
101
|
+
if (value) {
|
102
|
+
let item = this.items[1];
|
103
|
+
|
104
|
+
item.vdom.cn[1].cn[0].html = value;
|
105
|
+
item.update?.()
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
/**
|
110
|
+
* Triggered after the picture config got changed
|
111
|
+
* @param {String|null} value
|
112
|
+
* @param {String|null} oldValue
|
113
|
+
* @protected
|
114
|
+
*/
|
115
|
+
afterSetPicture(value, oldValue) {
|
116
|
+
if (value) {
|
117
|
+
let item = this.items[1];
|
118
|
+
|
119
|
+
item.vdom.cn[0].src = '../../../resources/images/team/' + value;
|
120
|
+
item.update?.()
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
/**
|
125
|
+
* Triggered after the profileGitHub config got changed
|
126
|
+
* @param {String|null} value
|
127
|
+
* @param {String|null} oldValue
|
128
|
+
* @protected
|
129
|
+
*/
|
130
|
+
afterSetProfileGitHub(value, oldValue) {
|
131
|
+
this.updateProfileButton(this.items[0].items[0], value)
|
132
|
+
}
|
133
|
+
|
134
|
+
/**
|
135
|
+
* Triggered after the profileLinkedIn config got changed
|
136
|
+
* @param {String|null} value
|
137
|
+
* @param {String|null} oldValue
|
138
|
+
* @protected
|
139
|
+
*/
|
140
|
+
afterSetProfileLinkedIn(value, oldValue) {
|
141
|
+
this.updateProfileButton(this.items[0].items[1], value)
|
142
|
+
}
|
143
|
+
|
144
|
+
/**
|
145
|
+
* Triggered after the profileX config got changed
|
146
|
+
* @param {String|null} value
|
147
|
+
* @param {String|null} oldValue
|
148
|
+
* @protected
|
149
|
+
*/
|
150
|
+
afterSetProfileX(value, oldValue) {
|
151
|
+
this.updateProfileButton(this.items[0].items[2], value)
|
152
|
+
}
|
153
|
+
|
154
|
+
/**
|
155
|
+
* Triggered after the teamRole config got changed
|
156
|
+
* @param {String|null} value
|
157
|
+
* @param {String|null} oldValue
|
158
|
+
* @protected
|
159
|
+
*/
|
160
|
+
afterSetTeamRole(value, oldValue) {
|
161
|
+
if (value) {
|
162
|
+
let item = this.items[1];
|
163
|
+
|
164
|
+
item.vdom.cn[1].cn[1].html = value;
|
165
|
+
item.update?.()
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
/**
|
170
|
+
* Depending on the lifecycle, we will either pass a button instance or a config object
|
171
|
+
* @param {Neo.button.Base|Object} button
|
172
|
+
* @param {String|null} url
|
173
|
+
* @protected
|
174
|
+
*/
|
175
|
+
updateProfileButton(button, url) {
|
176
|
+
if (button.set) {
|
177
|
+
button.set({
|
178
|
+
hidden: !url,
|
179
|
+
url
|
180
|
+
})
|
181
|
+
} else {
|
182
|
+
// initial values
|
183
|
+
button.hidden = !url;
|
184
|
+
button.url = url;
|
185
|
+
}
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
Neo.setupClass(MemberContainer);
|
190
|
+
|
191
|
+
export default MemberContainer;
|
@@ -28,6 +28,7 @@ class MainContainer extends Container {
|
|
28
28
|
*/
|
29
29
|
domListeners: [{
|
30
30
|
intersect(data) {
|
31
|
+
this.activePartsId = data.targetId;
|
31
32
|
Neo.getComponent(data.targetId)?.activate?.()
|
32
33
|
},
|
33
34
|
scroll(event) {
|
@@ -53,6 +54,12 @@ class MainContainer extends Container {
|
|
53
54
|
scrollable: true
|
54
55
|
}
|
55
56
|
|
57
|
+
/**
|
58
|
+
* Internal flag containing the id of the currently visible parts item
|
59
|
+
* @member {String|null} activePartsId=null
|
60
|
+
*/
|
61
|
+
activePartsId = null
|
62
|
+
|
56
63
|
/**
|
57
64
|
* Triggered after the mounted config got changed
|
58
65
|
* @param {Boolean} value
|
@@ -65,7 +72,7 @@ class MainContainer extends Container {
|
|
65
72
|
let me = this,
|
66
73
|
{id, windowId} = me;
|
67
74
|
|
68
|
-
value &&
|
75
|
+
value && me.timeout(50).then(() => {
|
69
76
|
Neo.main.addon.IntersectionObserver.register({
|
70
77
|
callback : 'isVisible',
|
71
78
|
id,
|
@@ -74,7 +81,7 @@ class MainContainer extends Container {
|
|
74
81
|
threshold: 1.0,
|
75
82
|
windowId
|
76
83
|
})
|
77
|
-
}
|
84
|
+
})
|
78
85
|
}
|
79
86
|
}
|
80
87
|
|
@@ -28,18 +28,22 @@ class AfterMath extends BaseContainer {
|
|
28
28
|
}, {
|
29
29
|
cls : ['neo-h1'],
|
30
30
|
flex: 'none',
|
31
|
-
html: '
|
31
|
+
html: 'Next Steps',
|
32
32
|
tag : 'h1'
|
33
|
-
}, {
|
34
|
-
cls : ['neo-h2'],
|
35
|
-
flex: 'none',
|
36
|
-
html: 'More to come here',
|
37
|
-
tag : 'h2'
|
38
33
|
}, {
|
39
34
|
cls : ['neo-content'],
|
40
35
|
flex: 'none',
|
41
|
-
html:
|
42
|
-
|
36
|
+
html: `
|
37
|
+
<p>
|
38
|
+
To learn more about Neo.mjs please read <a href="#/learn">the Learning Section</a> or browse <a href="#/blog">the blog</a>.
|
39
|
+
</p>
|
40
|
+
<p>
|
41
|
+
To arrange a demo or to talk to an engineer email <a href="mailto:info@neomjs.com">info@neomjs.com</a>.
|
42
|
+
<br>For help starting a project email <a href="mailto:services@neomjs.com">services@neomjs.com</a>.
|
43
|
+
<br>For questions about private training email <a href="mailto:training@neomjs.com">training@neomjs.com</a>.
|
44
|
+
</p>
|
45
|
+
`,
|
46
|
+
tag : 'div'
|
43
47
|
}, {
|
44
48
|
flex: 1
|
45
49
|
}, {
|
@@ -89,8 +89,14 @@ class Colors extends BaseContainer {
|
|
89
89
|
*
|
90
90
|
*/
|
91
91
|
async activate() {
|
92
|
-
|
93
|
-
|
92
|
+
let me = this,
|
93
|
+
{parent} = me;
|
94
|
+
|
95
|
+
await me.timeout(1000);
|
96
|
+
|
97
|
+
if (parent.activePartsId === me.id && parent.mounted) {
|
98
|
+
me.getReference('live-preview').activeView = 'preview'
|
99
|
+
}
|
94
100
|
}
|
95
101
|
}
|
96
102
|
|