neo.mjs 6.9.5 → 6.9.7
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/CONCEPT.md +2 -2
- package/.github/NEOMJS_HISTORY.md +2 -2
- package/README.md +10 -10
- package/apps/ServiceWorker.mjs +2 -2
- package/apps/covid/Util.mjs +1 -1
- package/apps/covid/view/HeaderContainer.mjs +1 -1
- package/apps/covid/view/MainContainerController.mjs +1 -1
- package/apps/learnneo/neo-config.json +1 -0
- package/apps/learnneo/store/Content.mjs +52 -2
- package/apps/learnneo/view/home/ContentTreeList.mjs +34 -4
- package/apps/learnneo/view/home/MainContainer.mjs +17 -29
- package/apps/learnneo/view/home/MainContainerController.mjs +15 -25
- package/apps/learnneo/view/home/MainContainerModel.mjs +35 -0
- package/apps/route/view/HeaderContainer.mjs +1 -1
- package/apps/sharedcovid/Util.mjs +1 -1
- package/apps/sharedcovid/view/HeaderContainer.mjs +1 -1
- package/apps/sharedcovid/view/MainContainerController.mjs +1 -1
- package/apps/website/view/blog/List.mjs +1 -1
- package/apps/website/view/examples/List.mjs +1 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/component/coronaGallery/CountryGallery.mjs +1 -1
- package/examples/component/coronaHelix/CountryHelix.mjs +1 -1
- package/examples/component/toast/resources/highlight/CHANGES.md +2 -2
- package/examples/component/toast/resources/highlight/README.md +2 -2
- package/examples/form/field/textarea/MainContainer.mjs +7 -1
- package/examples/grid/covid/Util.mjs +1 -1
- package/examples/preloadingAssets/view/MainContainer.mjs +2 -2
- package/examples/preloadingAssets/view/MainContainerController.mjs +1 -1
- package/examples/table/covid/Util.mjs +1 -1
- package/package.json +1 -1
- package/resources/data/learnneo/p/2023-10-01T18-29-19-158Z.md +96 -0
- package/resources/data/learnneo/p/2023-10-07T19-18-28-517Z.md +102 -0
- package/resources/data/learnneo/p/2023-10-08T20-20-07-934Z.md +75 -0
- package/resources/data/learnneo/p/2023-10-08T20-20-37-336Z.md +29 -0
- package/resources/data/learnneo/p/2023-10-08T20-37-30-658Z.md +0 -0
- package/resources/data/learnneo/p/2023-10-08T21-58-25-809Z.md +68 -0
- package/resources/data/learnneo/p/2023-10-08T22-22-11-013Z.md +0 -0
- package/resources/data/learnneo/p/2023-10-14T19-25-08-153Z.md +121 -0
- package/resources/data/learnneo/pages/whyneo.md +4 -0
- package/resources/data/learnneo/t.json +130 -0
- package/resources/deck/whyneo.md +80 -0
- package/resources/scss/src/apps/learnneo/Viewport.scss +57 -0
- package/resources/scss/src/component/Base.scss +16 -16
- package/resources/scss/theme-dark/component/Base.scss +6 -0
- package/resources/scss/theme-dark/menu/List.scss +0 -1
- package/resources/scss/theme-light/component/Base.scss +6 -0
- package/resources/scss/theme-light/menu/List.scss +0 -1
- package/src/DefaultConfig.mjs +2 -2
- package/src/form/field/TextArea.mjs +52 -0
- package/src/main/DomAccess.mjs +23 -0
- /package/resources/data/learnneo/{content.json → tree.json} +0 -0
package/.github/CONCEPT.md
CHANGED
@@ -24,7 +24,7 @@ The best way to get a feeling for workers is using the Google Chrome Dev Tools (
|
|
24
24
|
In case you open the <a href="https://neomjs.github.io/pages/node_modules/neo.mjs/dist/production/docs/index.html">neo.mjs Docs App</a>
|
25
25
|
(or any other neo.mjs app), you will get a dropdown menu where you can pick the console scope:
|
26
26
|
|
27
|
-
<img src="https://raw.githubusercontent.com/neomjs/pages/
|
27
|
+
<img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/concept/worker_scope.png">
|
28
28
|
|
29
29
|
The default scope (top) will show the (console) logs inside all threads.
|
30
30
|
|
@@ -162,7 +162,7 @@ class Gallery extends Component {
|
|
162
162
|
<a href="https://github.com/neomjs/neo/blob/dev/src/component/Gallery.mjs">Full component.Gallery Source Code</a>
|
163
163
|
|
164
164
|
Now let us take a look at the source code inside the browser:
|
165
|
-
<img src="https://raw.githubusercontent.com/neomjs/pages/
|
165
|
+
<img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/concept/gallery_workers.png">
|
166
166
|
|
167
167
|
Expand the image and take a close look at the Chrome Dev Tools:
|
168
168
|
1. The source code is 1:1 the same
|
@@ -17,7 +17,7 @@ Just to make a point on how much time & effort has already been spent on neo.mjs
|
|
17
17
|
|
18
18
|
1 commits Nils Dehl
|
19
19
|
|
20
|
-
<img alt="neo.mjs commit history" src="https://raw.githubusercontent.com/neomjs/pages/
|
20
|
+
<img alt="neo.mjs commit history" src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/neomjs-commit-history.png">
|
21
21
|
|
22
22
|
I would also like to add a ***big thank you*** to everyone who provided feedback prior to the public release!
|
23
23
|
|
@@ -26,4 +26,4 @@ Tobi
|
|
26
26
|
|
27
27
|
<br><br>
|
28
28
|
Copyright (c) 2015 - today, <a href="https://www.linkedin.com/in/tobiasuhlig/">Tobias Uhlig</a>
|
29
|
-
& <a href="https://www.linkedin.com/in/richwaters/">Rich Waters</a>
|
29
|
+
& <a href="https://www.linkedin.com/in/richwaters/">Rich Waters</a>
|
package/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<p align="center">
|
2
|
-
<img height="250" width="250" src="https://raw.githubusercontent.com/neomjs/pages/
|
2
|
+
<img height="250" width="250" src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/logo_rounded.svg">
|
3
3
|
</p>
|
4
4
|
|
5
5
|
<p align="center">
|
@@ -16,8 +16,8 @@ neo.mjs enables you to create scalable & high performant Apps using more than ju
|
|
16
16
|
No need to take care of a workers setup, and the cross channel communication on your own.
|
17
17
|
|
18
18
|
<p align="center">
|
19
|
-
<a href="https://youtu.be/pYfM28Pz6_0"><img height="316px" width="400px" src="https://raw.githubusercontent.com/neomjs/pages/
|
20
|
-
<a href="https://youtu.be/aEA5333WiWY"><img height="316px" width="400px" src="https://raw.githubusercontent.com/neomjs/pages/
|
19
|
+
<a href="https://youtu.be/pYfM28Pz6_0"><img height="316px" width="400px" src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/neo33s.png"></a>
|
20
|
+
<a href="https://youtu.be/aEA5333WiWY"><img height="316px" width="400px" src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/neo-movie.png"></a>
|
21
21
|
</p>
|
22
22
|
|
23
23
|
<a href="https://tobiasuhlig.medium.com/predictive-offline-support-for-assets-you-have-not-used-yet-aeeccccd3754?source=friends_link&sk=e946e0f25f508e6a8cec4136400291a3">Version 4 release announcement</a>
|
@@ -44,7 +44,7 @@ Join our community:</br>
|
|
44
44
|
|
45
45
|
</br></br>
|
46
46
|
<h2 id="architectures">2. Scalable frontend architectures</h2>
|
47
|
-
<img src="https://raw.githubusercontent.com/neomjs/pages/
|
47
|
+
<img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/apps-today.png">
|
48
48
|
|
49
49
|
Most frontends today still look like this. Everything happens inside the main thread (browser window), leading to a poor rendering performance.
|
50
50
|
The business logic happens inside main as well, which can slow down DOM updates and animations.
|
@@ -56,13 +56,13 @@ neo.mjs offers two different setups which follow the exact same API.
|
|
56
56
|
You can switch between <a href="https://developer.mozilla.org/en-US/docs/Web/API/Worker">dedicated</a> and
|
57
57
|
<a href="https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker">shared</a> workers at any point.
|
58
58
|
|
59
|
-
<img src="https://raw.githubusercontent.com/neomjs/pages/
|
59
|
+
<img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/workers-setup-v4.png">
|
60
60
|
|
61
61
|
The dedicated workers setup uses 3-6 threads (CPUs).
|
62
62
|
Most parts of the frameworks as well as your apps and components live within the app worker.
|
63
63
|
Main threads are as small and idle as possible (42KB) plus optional main thread addons.
|
64
64
|
|
65
|
-
<img src="https://raw.githubusercontent.com/neomjs/pages/
|
65
|
+
<img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/shared-workers-setup.png">
|
66
66
|
|
67
67
|
In case you want to e.g. create a web based IDE or a multi window banking / trading app,
|
68
68
|
the shared worker setup using 5+ threads (CPUs) is the perfect solution.
|
@@ -81,9 +81,9 @@ Blog post: <a href="https://medium.com/swlh/expanding-single-page-apps-into-mult
|
|
81
81
|
Chrome (v83+), Edge, Firefox (Safari does not support SharedWorkers yet).</br>
|
82
82
|
Desktop only.</br></br>
|
83
83
|
|
84
|
-
<a href="https://youtu.be/n7m7ZT1kXQk"><img src="https://raw.githubusercontent.com/neomjs/pages/
|
84
|
+
<a href="https://youtu.be/n7m7ZT1kXQk"><img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/expanding_spa_vid.png"></a></br>
|
85
85
|
|
86
|
-
<img src="https://raw.githubusercontent.com/neomjs/pages/
|
86
|
+
<img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/covidDashboard/sw_covid.png">
|
87
87
|
|
88
88
|
You can find the code of the multi window covid app <a href="https://github.com/neomjs/neo/tree/dev/apps/sharedcovid">here</a>.
|
89
89
|
|
@@ -92,9 +92,9 @@ You can find the code of the multi window covid app <a href="https://github.com/
|
|
92
92
|
<a href="https://neomjs.github.io/pages/node_modules/neo.mjs/dist/production/apps/covid/index.html#mainview=table">Live Demo: COIN App dist/production</a></br>
|
93
93
|
Desktop only => support for mobile devices is on the roadmap.</br></br>
|
94
94
|
|
95
|
-
<a href="https://www.youtube.com/watch?v=8lqNVaoGNdU"><img src="https://raw.githubusercontent.com/neomjs/pages/
|
95
|
+
<a href="https://www.youtube.com/watch?v=8lqNVaoGNdU"><img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/covid_app_vid.png"></a></br>
|
96
96
|
|
97
|
-
<img src="https://raw.githubusercontent.com/neomjs/pages/
|
97
|
+
<img src="https://raw.githubusercontent.com/neomjs/pages/main/resources/images/covidDashboard/v3/table.png">
|
98
98
|
|
99
99
|
You can find the code of the covid app <a href="https://github.com/neomjs/neo/tree/dev/apps/covid">here</a>.
|
100
100
|
|
package/apps/ServiceWorker.mjs
CHANGED
package/apps/covid/Util.mjs
CHANGED
@@ -142,7 +142,7 @@ class Util extends Base {
|
|
142
142
|
return path;
|
143
143
|
}
|
144
144
|
|
145
|
-
return `https://raw.githubusercontent.com/neomjs/pages/
|
145
|
+
return `https://raw.githubusercontent.com/neomjs/pages/main/resources/images/flaticon/country_flags/png/${imageName}.png`;
|
146
146
|
}
|
147
147
|
|
148
148
|
/**
|
@@ -37,7 +37,7 @@ class HeaderContainer extends Container {
|
|
37
37
|
|
38
38
|
vdom: {
|
39
39
|
tag: 'img',
|
40
|
-
src: 'https://raw.githubusercontent.com/neomjs/pages/
|
40
|
+
src: 'https://raw.githubusercontent.com/neomjs/pages/main/resources/images/apps/covid/covid_logo_dark.jpg'
|
41
41
|
}
|
42
42
|
}, {
|
43
43
|
ntype : 'container',
|
@@ -368,7 +368,7 @@ class MainContainerController extends ComponentController {
|
|
368
368
|
button = data.component,
|
369
369
|
component = me.component,
|
370
370
|
logo = me.getReference('logo'),
|
371
|
-
logoPath = 'https://raw.githubusercontent.com/neomjs/pages/
|
371
|
+
logoPath = 'https://raw.githubusercontent.com/neomjs/pages/main/resources/images/apps/covid/',
|
372
372
|
mapView = me.getReference('mapboxglmap'),
|
373
373
|
themeLight = button.text === 'Theme Light',
|
374
374
|
buttonText, cls, href, iconCls, mapViewStyle, theme;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import ContentModel from '../model/Content.mjs';
|
2
|
-
import Store
|
2
|
+
import Store from '../../../src/data/Store.mjs';
|
3
3
|
|
4
4
|
/**
|
5
5
|
* @class LearnNeo.store.Content
|
@@ -15,7 +15,57 @@ class Content extends Store {
|
|
15
15
|
/**
|
16
16
|
* @member {Neo.data.Model} model=ContentModel
|
17
17
|
*/
|
18
|
-
model: ContentModel
|
18
|
+
model: ContentModel,
|
19
|
+
// autoLoad: true
|
20
|
+
|
21
|
+
|
22
|
+
}
|
23
|
+
|
24
|
+
xonConstructed() {
|
25
|
+
super.onConstructed();
|
26
|
+
|
27
|
+
let me = this;
|
28
|
+
|
29
|
+
// Neo.Main.getByPath({path: 'location.search'})
|
30
|
+
// .then(data => {
|
31
|
+
// const searchString = data?.substr(1) || '';
|
32
|
+
// const search = searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {};
|
33
|
+
// this.deck = search.deck || 'learnneo';
|
34
|
+
// this.url = `${this.contentPath}/tree.json`;
|
35
|
+
// this.load();
|
36
|
+
// // this.doLoadStore();
|
37
|
+
// console.log(search);
|
38
|
+
// });
|
39
|
+
|
40
|
+
}
|
41
|
+
xload() {
|
42
|
+
this.model = ContentModel;
|
43
|
+
Neo.Main.getByPath({path: 'location.search'})
|
44
|
+
.then(data => {
|
45
|
+
const searchString = data?.substr(1) || '';
|
46
|
+
const search = searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {};
|
47
|
+
this.deck = search.deck || 'learnneo';
|
48
|
+
this.url = `${this.contentPath}/tree.json`;
|
49
|
+
// this.load();
|
50
|
+
super.load();
|
51
|
+
console.log(search);
|
52
|
+
});
|
53
|
+
}
|
54
|
+
|
55
|
+
get contentPath() {
|
56
|
+
return `../../../resources/data/${this.deck}`;
|
57
|
+
}
|
58
|
+
doLoadStore() {
|
59
|
+
debugger;
|
60
|
+
const me = this;
|
61
|
+
Neo.Xhr.promiseJson({
|
62
|
+
url: `${this.contentPath}/tree.json`
|
63
|
+
}).then(data => {
|
64
|
+
// TODO: Tree lists should do this themselves when their store is loaded.
|
65
|
+
me.data = data.json.data;
|
66
|
+
// me.createItems(null, me.getListItemsRoot(), 0);
|
67
|
+
// me.update();
|
68
|
+
})
|
19
69
|
}
|
20
70
|
}
|
21
71
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import ContentStore from '../../store/Content.mjs'
|
2
|
-
import TreeList
|
2
|
+
import TreeList from '../../../../src/tree/List.mjs';
|
3
3
|
|
4
4
|
/**
|
5
5
|
* @class LearnNeo.view.home.ContentTreeList
|
@@ -23,17 +23,47 @@ class ContentTreeList extends TreeList {
|
|
23
23
|
*/
|
24
24
|
onConstructed() {
|
25
25
|
super.onConstructed();
|
26
|
-
|
27
26
|
let me = this;
|
28
|
-
|
27
|
+
Neo.Main.getByPath({path: 'location.search'})
|
28
|
+
.then(data => {
|
29
|
+
const searchString = data?.substr(1) || '';
|
30
|
+
const search = searchString ? JSON.parse(`{"${decodeURI(searchString.replace(/&/g, "\",\"").replace(/=/g, "\":\""))}"}`) : {};
|
31
|
+
me.deck = search.deck || 'learnneo';
|
32
|
+
me.doLoadStore();
|
33
|
+
console.log(search);
|
34
|
+
});
|
35
|
+
}
|
36
|
+
get contentPath() {
|
37
|
+
return `../../../resources/data/${this.deck}`;
|
38
|
+
}
|
39
|
+
doLoadStore() {
|
40
|
+
const me = this;
|
29
41
|
Neo.Xhr.promiseJson({
|
30
|
-
url:
|
42
|
+
url: `${this.contentPath}/t.json`
|
31
43
|
}).then(data => {
|
44
|
+
// TODO: Tree lists should do this themselves when their store is loaded.
|
32
45
|
me.store.data = data.json.data;
|
33
46
|
me.createItems(null, me.getListItemsRoot(), 0);
|
34
47
|
me.update();
|
35
48
|
})
|
36
49
|
}
|
50
|
+
onLeafItemClick(record) {
|
51
|
+
super.onLeafItemClick(record);
|
52
|
+
this.doFetchContent(record);
|
53
|
+
}
|
54
|
+
async doFetchContent(record) {
|
55
|
+
let path = `${this.contentPath}`;
|
56
|
+
path += record.path ? `/pages/${record.path}` : `/p/${record.id}.md`;
|
57
|
+
|
58
|
+
if (record.isLeaf && path) {
|
59
|
+
const data = await fetch(path);
|
60
|
+
const content = await data.text();
|
61
|
+
Neo.main.addon.Markdown.markdownToHtml(content)
|
62
|
+
.then(
|
63
|
+
html => this.fire('contentChange', {component: this, html}),
|
64
|
+
() => this.fire('contentChange', {component: this}));
|
65
|
+
}
|
66
|
+
}
|
37
67
|
}
|
38
68
|
|
39
69
|
Neo.applyClassConfig(ContentTreeList);
|
@@ -1,47 +1,35 @@
|
|
1
|
-
import Container
|
2
|
-
import
|
1
|
+
import Container from '../../../../src/container/Base.mjs';
|
2
|
+
import Component from '../../../../src/component/Base.mjs';
|
3
|
+
import ContentTreeList from './ContentTreeList.mjs';
|
3
4
|
import MainContainerController from './MainContainerController.mjs';
|
4
|
-
import
|
5
|
+
import MainContainerModel from './MainContainerModel.mjs';
|
6
|
+
import Splitter from '../../../../src/component/Splitter.mjs';
|
5
7
|
|
6
|
-
/**
|
7
|
-
* @class LearnNeo.view.home.MainContainer
|
8
|
-
* @extends Neo.container.Base
|
9
|
-
*/
|
10
8
|
class MainContainer extends Container {
|
11
9
|
static config = {
|
12
|
-
/**
|
13
|
-
* @member {String} className='LearnNeo.view.home.MainContainer'
|
14
|
-
* @protected
|
15
|
-
*/
|
16
10
|
className: 'LearnNeo.view.home.MainContainer',
|
17
|
-
|
18
|
-
* @member {Neo.controller.Component} controller=MainContainerController
|
19
|
-
*/
|
11
|
+
model: MainContainerModel,
|
20
12
|
controller: MainContainerController,
|
21
|
-
/**
|
22
|
-
* @member {Object[]} items
|
23
|
-
*/
|
24
13
|
items: [{
|
25
|
-
module
|
26
|
-
layout
|
14
|
+
module: Container,
|
15
|
+
layout: 'fit',
|
27
16
|
minWidth: 350,
|
28
|
-
width
|
17
|
+
width: 350,
|
29
18
|
|
30
19
|
items: [{
|
31
|
-
module
|
32
|
-
|
20
|
+
module: ContentTreeList,
|
21
|
+
reference: 'tree',
|
22
|
+
listeners: {contentChange: 'onContentListLeafClick'},
|
33
23
|
}]
|
34
24
|
}, {
|
35
|
-
module
|
25
|
+
module: Splitter,
|
36
26
|
resizeTarget: 'previous'
|
37
27
|
}, {
|
38
|
-
module
|
39
|
-
layout
|
40
|
-
|
28
|
+
module: Component,
|
29
|
+
layout: {ntype: 'card', activeIndex: null},
|
30
|
+
cls: 'learn-content',
|
31
|
+
reference: 'content'
|
41
32
|
}],
|
42
|
-
/**
|
43
|
-
* @member {Object} layout={ntype:'hbox',align:'stretch'}
|
44
|
-
*/
|
45
33
|
layout: {ntype: 'hbox', align: 'stretch'}
|
46
34
|
}
|
47
35
|
}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import Component from '../../../../src/controller/Component.mjs';
|
2
2
|
|
3
|
+
|
3
4
|
/**
|
4
5
|
* @class LearnNeo.view.home.MainContainerController
|
5
6
|
* @extends Neo.controller.Component
|
@@ -16,33 +17,22 @@ class MainContainerController extends Component {
|
|
16
17
|
/**
|
17
18
|
* @param {Object} record
|
18
19
|
*/
|
19
|
-
|
20
|
-
const
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
20
|
+
onContentListLeafClick(data) {
|
21
|
+
const content = this.getReference('content');
|
22
|
+
content.html = data.html;
|
23
|
+
|
24
|
+
// contentContainer.removeAll();
|
25
|
+
// contentContainer.add({
|
26
|
+
// ntype: 'component',
|
27
|
+
// html: data.html
|
28
|
+
// });
|
29
|
+
// contentContainer.layout.activeIndex = 0;
|
30
|
+
}
|
42
31
|
|
43
|
-
|
44
|
-
}
|
32
|
+
get contentPath() {
|
33
|
+
return `../../../resources/data/${this.deck}`;
|
45
34
|
}
|
35
|
+
|
46
36
|
}
|
47
37
|
|
48
38
|
Neo.applyClassConfig(MainContainerController);
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import Component from '../../../../src/model/Component.mjs';
|
2
|
+
import Tree from '../../store/Content.mjs';
|
3
|
+
import Store from '../../../../src/data/Store.mjs';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @class LearnNeo.view.home.MainContainerModel
|
7
|
+
* @extends Neo.model.Component
|
8
|
+
*/
|
9
|
+
class MainContainerModel extends Component {
|
10
|
+
static config = {
|
11
|
+
/**
|
12
|
+
* @member {String} className='LearnNeo.view.home.MainContainerModel'
|
13
|
+
* @protected
|
14
|
+
*/
|
15
|
+
className: 'LearnNeo.view.home.MainContainerModel',
|
16
|
+
/**
|
17
|
+
* @member {Object} data
|
18
|
+
*/
|
19
|
+
data: {},
|
20
|
+
/**
|
21
|
+
* @member {Object} stores
|
22
|
+
*/
|
23
|
+
stores: {
|
24
|
+
tree: {
|
25
|
+
// module: Tree,
|
26
|
+
module: Store,
|
27
|
+
responseRoot: "data",
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
Neo.applyClassConfig(MainContainerModel);
|
34
|
+
|
35
|
+
export default MainContainerModel;
|
@@ -28,7 +28,7 @@ class HeaderContainer extends Container {
|
|
28
28
|
cls: ['center'],
|
29
29
|
vdom: {
|
30
30
|
tag: 'img',
|
31
|
-
src: 'https://raw.githubusercontent.com/neomjs/pages/
|
31
|
+
src: 'https://raw.githubusercontent.com/neomjs/pages/main/resources/images/logo_rounded.svg'
|
32
32
|
}
|
33
33
|
},
|
34
34
|
{
|
@@ -142,7 +142,7 @@ class Util extends Base {
|
|
142
142
|
return path;
|
143
143
|
}
|
144
144
|
|
145
|
-
return `https://raw.githubusercontent.com/neomjs/pages/
|
145
|
+
return `https://raw.githubusercontent.com/neomjs/pages/main/resources/images/flaticon/country_flags/png/${imageName}.png`;
|
146
146
|
}
|
147
147
|
|
148
148
|
/**
|
@@ -37,7 +37,7 @@ class HeaderContainer extends Container {
|
|
37
37
|
|
38
38
|
vdom: {
|
39
39
|
tag: 'img',
|
40
|
-
src: 'https://raw.githubusercontent.com/neomjs/pages/
|
40
|
+
src: 'https://raw.githubusercontent.com/neomjs/pages/main/resources/images/apps/covid/covid_logo_dark.jpg'
|
41
41
|
}
|
42
42
|
}, {
|
43
43
|
ntype : 'container',
|
@@ -553,7 +553,7 @@ class MainContainerController extends ComponentController {
|
|
553
553
|
button = data.component,
|
554
554
|
component = me.component,
|
555
555
|
logo = me.getReference('logo'),
|
556
|
-
logoPath = 'https://raw.githubusercontent.com/neomjs/pages/
|
556
|
+
logoPath = 'https://raw.githubusercontent.com/neomjs/pages/main/resources/images/apps/covid/',
|
557
557
|
themeLight = button.text === 'Theme Light',
|
558
558
|
buttonText, cls, href, iconCls, mapView, mapViewStyle, theme;
|
559
559
|
|
@@ -68,7 +68,7 @@ class List extends BaseList {
|
|
68
68
|
basePath = '../../' + basePath;
|
69
69
|
}
|
70
70
|
} else {
|
71
|
-
basePath = 'https://raw.githubusercontent.com/neomjs/pages/
|
71
|
+
basePath = 'https://raw.githubusercontent.com/neomjs/pages/main/resources/website';
|
72
72
|
}
|
73
73
|
|
74
74
|
const vdomCn = [
|
@@ -80,7 +80,7 @@ class List extends BaseList {
|
|
80
80
|
basePath = '../../' + basePath;
|
81
81
|
}
|
82
82
|
} else {
|
83
|
-
basePath = 'https://raw.githubusercontent.com/neomjs/pages/
|
83
|
+
basePath = 'https://raw.githubusercontent.com/neomjs/pages/main/resources/website/examples';
|
84
84
|
}
|
85
85
|
|
86
86
|
return [
|
@@ -159,7 +159,7 @@ class CountryGallery extends Gallery {
|
|
159
159
|
|
160
160
|
imageName = map[imageName] || imageName;
|
161
161
|
|
162
|
-
return `https://raw.githubusercontent.com/neomjs/pages/
|
162
|
+
return `https://raw.githubusercontent.com/neomjs/pages/main/resources/images/flaticon/country_flags/png/${imageName}.png`;
|
163
163
|
}
|
164
164
|
|
165
165
|
/**
|
@@ -191,7 +191,7 @@ class CountryHelix extends Helix {
|
|
191
191
|
|
192
192
|
imageName = map[imageName] || imageName;
|
193
193
|
|
194
|
-
return 'https://raw.githubusercontent.com/neomjs/pages/
|
194
|
+
return 'https://raw.githubusercontent.com/neomjs/pages/main/resources/images/flaticon/country_flags/png/' + imageName + '.png'
|
195
195
|
}
|
196
196
|
/**
|
197
197
|
* @returns {String}
|
@@ -772,7 +772,7 @@ New languages in this release:
|
|
772
772
|
[Erik Paluka]: https://github.com/paluka
|
773
773
|
[Luke Holder]: https://github.com/lukeholder
|
774
774
|
[David Mohundro]: https://github.com/drmohundro
|
775
|
-
[ps]: https://github.com/OctopusDeploy/Library/blob/
|
775
|
+
[ps]: https://github.com/OctopusDeploy/Library/blob/main/app/shared/presentation/highlighting/powershell.js
|
776
776
|
[Christophe de Dinechin]: https://github.com/c3d
|
777
777
|
[Taneli Vatanen]: https://github.com/Daiz-
|
778
778
|
[Jen Evers-Corvina]: https://github.com/sevvie
|
@@ -792,7 +792,7 @@ We're going to redesign the old [demo/test suite][demo] into an interactive
|
|
792
792
|
demo web app. If you're confident front-end developer or designer and want to
|
793
793
|
help us with it, drop a comment into [the issue][#542] on GitHub.
|
794
794
|
|
795
|
-
[test]: https://github.com/isagalaev/highlight.js/tree/
|
795
|
+
[test]: https://github.com/isagalaev/highlight.js/tree/main/test
|
796
796
|
[demo]: https://highlightjs.org/static/test.html
|
797
797
|
[#542]: https://github.com/isagalaev/highlight.js/issues/542
|
798
798
|
[ci]: https://travis-ci.org/isagalaev/highlight.js
|
@@ -182,5 +182,5 @@ Authors and contributors are listed in the [AUTHORS.en.txt][8] file.
|
|
182
182
|
[4]: http://highlightjs.readthedocs.io/en/latest/api.html#configure-options
|
183
183
|
[5]: https://highlightjs.org/download/
|
184
184
|
[6]: http://highlightjs.readthedocs.io/en/latest/building-testing.html
|
185
|
-
[7]: https://github.com/highlightjs/highlight.js/blob/
|
186
|
-
[8]: https://github.com/highlightjs/highlight.js/blob/
|
185
|
+
[7]: https://github.com/highlightjs/highlight.js/blob/main/LICENSE
|
186
|
+
[8]: https://github.com/highlightjs/highlight.js/blob/main/AUTHORS.en.txt
|
@@ -113,6 +113,12 @@ class MainContainer extends ConfigurationViewport {
|
|
113
113
|
labelText: 'resizable',
|
114
114
|
listeners: {change: me.onConfigChange.bind(me, 'resizable')},
|
115
115
|
style : {marginTop: '10px'}
|
116
|
+
}, {
|
117
|
+
module : CheckBox,
|
118
|
+
checked : me.exampleComponent.autoGrow,
|
119
|
+
labelText: 'autoGrow',
|
120
|
+
listeners: {change: me.onConfigChange.bind(me, 'autoGrow')},
|
121
|
+
style : {marginTop: '10px'}
|
116
122
|
}, {
|
117
123
|
module : CheckBox,
|
118
124
|
checked : me.exampleComponent.required,
|
@@ -175,7 +181,7 @@ class MainContainer extends ConfigurationViewport {
|
|
175
181
|
createExampleComponent() {
|
176
182
|
return Neo.create(TextAreaField, {
|
177
183
|
clearable : true,
|
178
|
-
height :
|
184
|
+
height : 60,
|
179
185
|
labelText : 'Label',
|
180
186
|
labelWidth: 70,
|
181
187
|
value : 'Hello World',
|
@@ -142,7 +142,7 @@ class Util extends Base {
|
|
142
142
|
return path;
|
143
143
|
}
|
144
144
|
|
145
|
-
return `https://raw.githubusercontent.com/neomjs/pages/
|
145
|
+
return `https://raw.githubusercontent.com/neomjs/pages/main/resources/images/flaticon/country_flags/png/${imageName}.png`;
|
146
146
|
}
|
147
147
|
|
148
148
|
/**
|
@@ -44,7 +44,7 @@ class MainContainer extends Viewport {
|
|
44
44
|
|
45
45
|
vdom: {
|
46
46
|
tag: 'img',
|
47
|
-
src: 'https://raw.githubusercontent.com/neomjs/pages/
|
47
|
+
src: 'https://raw.githubusercontent.com/neomjs/pages/main/resources/examples/ai_images/000150.jpg'
|
48
48
|
}
|
49
49
|
}, {
|
50
50
|
tabButtonConfig: {
|
@@ -54,7 +54,7 @@ class MainContainer extends Viewport {
|
|
54
54
|
|
55
55
|
vdom: {
|
56
56
|
tag: 'img',
|
57
|
-
src: 'https://raw.githubusercontent.com/neomjs/pages/
|
57
|
+
src: 'https://raw.githubusercontent.com/neomjs/pages/main/resources/examples/ai_images/000074.jpg'
|
58
58
|
}
|
59
59
|
}],
|
60
60
|
/**
|
@@ -28,7 +28,7 @@ class MainContainerController extends Component {
|
|
28
28
|
|
29
29
|
setTimeout(() => {
|
30
30
|
Neo.ServiceWorker.preloadAssets({
|
31
|
-
files: ['https://raw.githubusercontent.com/neomjs/pages/
|
31
|
+
files: ['https://raw.githubusercontent.com/neomjs/pages/main/resources/examples/ai_images/000074.jpg']
|
32
32
|
}).then(data => {
|
33
33
|
console.log(data);
|
34
34
|
});
|
@@ -142,7 +142,7 @@ class Util extends Base {
|
|
142
142
|
return path;
|
143
143
|
}
|
144
144
|
|
145
|
-
return `https://raw.githubusercontent.com/neomjs/pages/
|
145
|
+
return `https://raw.githubusercontent.com/neomjs/pages/main/resources/images/flaticon/country_flags/png/${imageName}.png`;
|
146
146
|
}
|
147
147
|
|
148
148
|
/**
|