neo.mjs 9.3.0 → 9.5.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/portal/index.html +1 -1
- package/apps/portal/view/home/FooterContainer.mjs +1 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/serverside/gridContainer/Viewport.mjs +49 -0
- package/examples/serverside/gridContainer/app.mjs +6 -0
- package/examples/serverside/gridContainer/index.html +11 -0
- package/examples/serverside/gridContainer/neo-config.json +7 -0
- package/examples/serverside/gridContainer/resources/data/grid-container.json +75 -0
- package/examples/serverside/toolbarItems/Viewport.mjs +2 -3
- package/package.json +2 -2
- package/resources/scss/src/examples/serverside/gridContainer/Viewport.scss +13 -0
- package/src/DefaultConfig.mjs +2 -2
- package/src/container/Base.mjs +28 -0
package/apps/ServiceWorker.mjs
CHANGED
package/apps/portal/index.html
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
import BaseViewport from '../../../src/container/Viewport.mjs';
|
2
|
+
import Button from '../../../src/button/Base.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Neo.examples.serverside.gridContainer.Viewport
|
6
|
+
* @extends Neo.container.Viewport
|
7
|
+
*/
|
8
|
+
class Viewport extends BaseViewport {
|
9
|
+
static config = {
|
10
|
+
className: 'Neo.examples.serverside.gridContainer.Viewport',
|
11
|
+
cls : ['neo-serverside-gridcontainer-viewport'],
|
12
|
+
layout : 'base',
|
13
|
+
|
14
|
+
items: [{
|
15
|
+
ntype : 'container',
|
16
|
+
cls : 'neo-serverside-gridcontainer-content',
|
17
|
+
layout : 'fit',
|
18
|
+
reference: 'container'
|
19
|
+
}, {
|
20
|
+
module : Button,
|
21
|
+
handler: 'up.onLoadGridContainerButtonClick',
|
22
|
+
style : {marginTop: '1em'},
|
23
|
+
text : 'Load Grid Container'
|
24
|
+
}]
|
25
|
+
}
|
26
|
+
|
27
|
+
/**
|
28
|
+
* @param {Object} data
|
29
|
+
* @returns {Promise<void>}
|
30
|
+
*/
|
31
|
+
async onLoadGridContainerButtonClick(data) {
|
32
|
+
data.component.disabled = true;
|
33
|
+
|
34
|
+
let items = await this.loadItems('../../examples/serverside/gridContainer/resources/data/grid-container.json');
|
35
|
+
|
36
|
+
this.getReference('container').add(items)
|
37
|
+
}
|
38
|
+
|
39
|
+
/**
|
40
|
+
* @param {Object} data
|
41
|
+
* @param {String} data.value
|
42
|
+
* @returns {String}
|
43
|
+
*/
|
44
|
+
rendererGithubId({value}) {
|
45
|
+
return `<i class='fa-brands fa-github'></i> ${value}`
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
export default Neo.setupClass(Viewport);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
<title>Neo.mjs - Load Grid Container</title>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<script src="../../../src/MicroLoader.mjs" type="module"></script>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1,75 @@
|
|
1
|
+
{
|
2
|
+
"modules": [
|
3
|
+
"src/grid/Container.mjs"
|
4
|
+
],
|
5
|
+
|
6
|
+
"items": [{
|
7
|
+
"className": "Neo.grid.Container",
|
8
|
+
"store" : {
|
9
|
+
"keyProperty": "githubId",
|
10
|
+
|
11
|
+
"model" : {
|
12
|
+
"fields": [{
|
13
|
+
"name": "country",
|
14
|
+
"type": "String"
|
15
|
+
}, {
|
16
|
+
"name": "firstname",
|
17
|
+
"type": "String"
|
18
|
+
}, {
|
19
|
+
"name": "githubId",
|
20
|
+
"type": "String"
|
21
|
+
}, {
|
22
|
+
"name": "lastname",
|
23
|
+
"type": "String"
|
24
|
+
}]
|
25
|
+
},
|
26
|
+
|
27
|
+
"data": [{
|
28
|
+
"country" : "Germany",
|
29
|
+
"firstname": "Tobias",
|
30
|
+
"githubId" : "tobiu",
|
31
|
+
"lastname" : "Uhlig"
|
32
|
+
}, {
|
33
|
+
"country" : "USA",
|
34
|
+
"firstname": "Rich",
|
35
|
+
"githubId" : "rwaters",
|
36
|
+
"lastname" : "Waters"
|
37
|
+
}, {
|
38
|
+
"country" : "Germany",
|
39
|
+
"firstname": "Nils",
|
40
|
+
"githubId" : "mrsunshine",
|
41
|
+
"lastname" : "Dehl"
|
42
|
+
}, {
|
43
|
+
"country" : "USA",
|
44
|
+
"firstname": "Gerard",
|
45
|
+
"githubId" : "camtnbikerrwc",
|
46
|
+
"lastname" : "Horan"
|
47
|
+
}, {
|
48
|
+
"country" : "Slovakia",
|
49
|
+
"firstname": "Jozef",
|
50
|
+
"githubId" : "jsakalos",
|
51
|
+
"lastname" : "Sakalos"
|
52
|
+
}, {
|
53
|
+
"country" : "Germany",
|
54
|
+
"firstname": "Bastian",
|
55
|
+
"githubId" : "bhaustein",
|
56
|
+
"lastname" : "Haustein"
|
57
|
+
}]
|
58
|
+
},
|
59
|
+
|
60
|
+
"columnDefaults": {
|
61
|
+
"width": 200
|
62
|
+
},
|
63
|
+
|
64
|
+
"columns": [
|
65
|
+
{"dataField": "firstname", "text": "Firstname"},
|
66
|
+
{"dataField": "lastname", "text": "Lastname"},
|
67
|
+
{"dataField": "githubId", "text": "Github Id", "renderer": "up.rendererGithubId"},
|
68
|
+
{"dataField": "country", "text": "Country"}
|
69
|
+
],
|
70
|
+
|
71
|
+
"wrapperStyle": {
|
72
|
+
"height": "250px"
|
73
|
+
}
|
74
|
+
}]
|
75
|
+
}
|
@@ -30,10 +30,9 @@ class Viewport extends BaseViewport {
|
|
30
30
|
async onLoadItemsButtonClick(data) {
|
31
31
|
data.component.disabled = true;
|
32
32
|
|
33
|
-
let
|
34
|
-
remoteData = await response.json();
|
33
|
+
let items = await this.loadItems('../../examples/serverside/toolbarItems/resources/data/toolbar-items.json');
|
35
34
|
|
36
|
-
this.getReference('toolbar').add(
|
35
|
+
this.getReference('toolbar').add(items)
|
37
36
|
}
|
38
37
|
}
|
39
38
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neo.mjs",
|
3
|
-
"version": "9.
|
3
|
+
"version": "9.5.0",
|
4
4
|
"description": "The webworkers driven UI framework",
|
5
5
|
"type": "module",
|
6
6
|
"repository": {
|
@@ -56,7 +56,7 @@
|
|
56
56
|
"envinfo": "^7.14.0",
|
57
57
|
"fs-extra": "^11.3.0",
|
58
58
|
"highlightjs-line-numbers.js": "^2.9.0",
|
59
|
-
"inquirer": "^12.6.
|
59
|
+
"inquirer": "^12.6.2",
|
60
60
|
"marked": "^15.0.12",
|
61
61
|
"monaco-editor": "0.50.0",
|
62
62
|
"neo-jsdoc": "1.0.1",
|
package/src/DefaultConfig.mjs
CHANGED
@@ -263,12 +263,12 @@ const DefaultConfig = {
|
|
263
263
|
useVdomWorker: true,
|
264
264
|
/**
|
265
265
|
* buildScripts/injectPackageVersion.mjs will update this value
|
266
|
-
* @default '9.
|
266
|
+
* @default '9.5.0'
|
267
267
|
* @memberOf! module:Neo
|
268
268
|
* @name config.version
|
269
269
|
* @type String
|
270
270
|
*/
|
271
|
-
version: '9.
|
271
|
+
version: '9.5.0'
|
272
272
|
};
|
273
273
|
|
274
274
|
Object.assign(DefaultConfig, {
|
package/src/container/Base.mjs
CHANGED
@@ -579,6 +579,34 @@ class Container extends Component {
|
|
579
579
|
return item;
|
580
580
|
}
|
581
581
|
|
582
|
+
/**
|
583
|
+
* Load items from a remote endpoint.
|
584
|
+
* See: https://github.com/neomjs/neo/tree/dev/examples/serverside
|
585
|
+
* The response should return a JSON file in the following format:
|
586
|
+
* {"modules": [], "items": []}
|
587
|
+
* See: https://github.com/neomjs/neo/blob/dev/examples/serverside/gridContainer/resources/data/grid-container.json
|
588
|
+
* It is important to add modules which are not already imported inside your app yet.
|
589
|
+
* @param {String} url
|
590
|
+
* @returns {Promise<Object[]>}
|
591
|
+
*/
|
592
|
+
async loadItems(url) {
|
593
|
+
let response = await fetch(url),
|
594
|
+
remoteData = await response.json();
|
595
|
+
|
596
|
+
if (remoteData.modules?.length > 0) {
|
597
|
+
await Promise.all(remoteData.modules.map(modulePath => {
|
598
|
+
// Adjust relative URLs
|
599
|
+
if (!modulePath.startsWith('http')) {
|
600
|
+
modulePath = (Neo.config.environment === 'development' ? '../../' : '../../../../') + modulePath
|
601
|
+
}
|
602
|
+
|
603
|
+
return import(/* webpackIgnore: true */ modulePath)
|
604
|
+
}))
|
605
|
+
}
|
606
|
+
|
607
|
+
return remoteData.items
|
608
|
+
}
|
609
|
+
|
582
610
|
/**
|
583
611
|
*
|
584
612
|
*/
|