neo.mjs 6.18.1 → 6.18.3
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 +6 -6
- package/apps/portal/view/HeaderToolbar.mjs +1 -2
- package/apps/portal/view/home/MainContainer.mjs +21 -21
- package/apps/portal/view/home/parts/AfterMath.mjs +19 -16
- package/apps/portal/view/home/parts/BaseContainer.mjs +38 -0
- package/apps/portal/view/home/parts/Colors.mjs +15 -15
- package/apps/portal/view/home/parts/Features.mjs +6 -6
- package/apps/portal/view/home/parts/Helix.mjs +9 -12
- package/apps/portal/view/home/parts/How.mjs +8 -8
- package/apps/portal/view/home/parts/MainNeo.mjs +14 -12
- package/apps/portal/view/learn/ContentView.mjs +3 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/model/dialog/EditUserDialog.mjs +1 -8
- package/package.json +4 -4
- package/resources/data/deck/learnneo/pages/2023-10-14T19-25-08-153Z.md +2 -2
- package/resources/data/deck/learnneo/pages/ComponentModels.md +6 -6
- package/resources/data/deck/learnneo/pages/ComponentsAndContainers.md +10 -10
- package/resources/data/deck/learnneo/pages/Config.md +6 -6
- package/resources/data/deck/learnneo/pages/CustomComponents.md +4 -4
- package/resources/data/deck/learnneo/pages/DescribingTheUI.md +4 -4
- package/resources/data/deck/learnneo/pages/Earthquakes.md +2 -2
- package/resources/data/deck/learnneo/pages/Events.md +7 -7
- package/resources/data/deck/learnneo/pages/Extending.md +7 -7
- package/resources/data/deck/learnneo/pages/GuideEvents.md +17 -18
- package/resources/data/deck/learnneo/pages/GuideViewModels.md +444 -0
- package/resources/data/deck/learnneo/pages/References.md +8 -8
- package/resources/data/deck/learnneo/pages/TestLivePreview.md +5 -4
- package/resources/data/deck/learnneo/pages/TodoList.md +9 -9
- package/resources/data/deck/learnneo/pages/Welcome.md +3 -3
- package/resources/data/deck/learnneo/pages/WhyNeo-Multi-Window.md +2 -2
- package/resources/data/deck/learnneo/pages/WhyNeo-Speed.md +2 -2
- package/resources/data/deck/learnneo/tree.json +1 -0
- package/resources/scss/src/apps/portal/HeaderToolbar.scss +1 -47
- package/resources/scss/src/apps/portal/home/MainContainer.scss +0 -32
- package/resources/scss/src/apps/portal/home/parts/BaseContainer.scss +56 -0
- package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +3 -1
- package/resources/scss/src/apps/portal/learn/ContentTreeList.scss +1 -1
- package/resources/scss/src/calendar/view/EditEventContainer.scss +1 -1
- package/resources/scss/src/calendar/view/calendars/List.scss +1 -1
- package/resources/scss/src/{apps/portal/learn → code}/LivePreview.scss +1 -1
- package/resources/scss/src/component/Helix.scss +1 -2
- package/resources/scss/src/dialog/Base.scss +1 -6
- package/resources/scss/theme-dark/dialog/Base.scss +1 -0
- package/resources/scss/theme-light/dialog/Base.scss +1 -0
- package/resources/scss/theme-neo-light/Global.scss +13 -11
- package/resources/scss/theme-neo-light/dialog/Base.scss +1 -0
- package/src/DefaultConfig.mjs +2 -2
- package/src/button/Base.mjs +3 -2
- package/src/calendar/view/EditEventContainer.mjs +1 -1
- package/{apps/portal/view/learn → src/code}/LivePreview.mjs +43 -27
- package/src/component/Base.mjs +1 -6
- package/src/controller/Base.mjs +5 -5
- package/src/dialog/Base.mjs +23 -45
- package/src/form/field/Color.mjs +5 -5
- package/src/main/addon/ResizeObserver.mjs +18 -2
- package/src/selection/DateSelectorModel.mjs +2 -2
- package/src/util/HashHistory.mjs +45 -12
- package/src/worker/Base.mjs +15 -8
- package/apps/portal/view/home/parts/HelloWorld.mjs +0 -85
- package/apps/portal/view/home/preview/PageCodeContainer.mjs +0 -55
- package/resources/scss/src/apps/portal/Viewport.scss +0 -3
- package/resources/scss/src/apps/portal/home/preview/PageCodeContainer.scss +0 -115
package/src/util/HashHistory.mjs
CHANGED
@@ -8,7 +8,6 @@ import Observable from '../core/Observable.mjs';
|
|
8
8
|
*/
|
9
9
|
class HashHistory extends Base {
|
10
10
|
/**
|
11
|
-
* True automatically applies the core.Observable mixin
|
12
11
|
* @member {Boolean} observable=true
|
13
12
|
* @static
|
14
13
|
*/
|
@@ -16,7 +15,7 @@ class HashHistory extends Base {
|
|
16
15
|
|
17
16
|
static config = {
|
18
17
|
/**
|
19
|
-
* @member {String} className='Neo.util.
|
18
|
+
* @member {String} className='Neo.util.HashHistory'
|
20
19
|
* @protected
|
21
20
|
*/
|
22
21
|
className: 'Neo.util.HashHistory',
|
@@ -31,24 +30,54 @@ class HashHistory extends Base {
|
|
31
30
|
*/
|
32
31
|
maxItems: 50,
|
33
32
|
/**
|
34
|
-
*
|
33
|
+
* Storing one stack per windowId
|
34
|
+
* @member {Object} stacks={}
|
35
35
|
* @protected
|
36
36
|
*/
|
37
|
-
|
37
|
+
stacks: {}
|
38
38
|
}
|
39
39
|
|
40
40
|
/**
|
41
|
+
* Convenience shortcut
|
42
|
+
* @param {Number} [windowId]
|
41
43
|
* @returns {Object}
|
42
44
|
*/
|
43
|
-
first() {
|
44
|
-
return this.
|
45
|
+
first(windowId) {
|
46
|
+
return this.getAt(0, windowId)
|
45
47
|
}
|
46
48
|
|
47
49
|
/**
|
50
|
+
* @param {Number} index
|
51
|
+
* @param {Number} [windowId]
|
48
52
|
* @returns {Number}
|
49
53
|
*/
|
50
|
-
|
51
|
-
return this.
|
54
|
+
getAt(index, windowId) {
|
55
|
+
return this.getStack(windowId)[index]
|
56
|
+
}
|
57
|
+
|
58
|
+
/**
|
59
|
+
* @param {Number} [windowId]
|
60
|
+
* @returns {Number}
|
61
|
+
*/
|
62
|
+
getCount(windowId) {
|
63
|
+
return this.getStack(windowId).length
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* @param {Number} [windowId]
|
68
|
+
* @returns {Number}
|
69
|
+
*/
|
70
|
+
getStack(windowId) {
|
71
|
+
let me = this,
|
72
|
+
{stacks} = me,
|
73
|
+
stackId = windowId || Object.keys(stacks)[0],
|
74
|
+
stack = stacks[stackId];
|
75
|
+
|
76
|
+
if (!stack) {
|
77
|
+
stacks[stackId] = stack = []
|
78
|
+
}
|
79
|
+
|
80
|
+
return stack
|
52
81
|
}
|
53
82
|
|
54
83
|
/**
|
@@ -59,10 +88,12 @@ class HashHistory extends Base {
|
|
59
88
|
* @param {Number} data.windowId
|
60
89
|
*/
|
61
90
|
push(data) {
|
62
|
-
let me
|
63
|
-
{
|
91
|
+
let me = this,
|
92
|
+
{windowId} = data,
|
93
|
+
stack = me.getStack(windowId);
|
64
94
|
|
65
95
|
if (stack[0]?.hashString !== data.hashString) {
|
96
|
+
delete data[windowId];
|
66
97
|
stack.unshift(data);
|
67
98
|
|
68
99
|
if (stack.length > me.maxItems) {
|
@@ -74,10 +105,12 @@ class HashHistory extends Base {
|
|
74
105
|
}
|
75
106
|
|
76
107
|
/**
|
108
|
+
* Convenience shortcut
|
109
|
+
* @param {Number} [windowId]
|
77
110
|
* @returns {Object}
|
78
111
|
*/
|
79
|
-
second() {
|
80
|
-
return this.
|
112
|
+
second(windowId) {
|
113
|
+
return this.getAt(0, windowId)
|
81
114
|
}
|
82
115
|
}
|
83
116
|
|
package/src/worker/Base.mjs
CHANGED
@@ -252,9 +252,14 @@ class Base extends CoreBase {
|
|
252
252
|
|
253
253
|
return new Promise(function(resolve, reject) {
|
254
254
|
let message = me.sendMessage(dest, opts, transfer),
|
255
|
-
msgId = message
|
255
|
+
msgId = message?.id;
|
256
256
|
|
257
|
-
|
257
|
+
if (!msgId) {
|
258
|
+
// a window got closed and the message port no longer exist (SharedWorkers)
|
259
|
+
reject()
|
260
|
+
} else {
|
261
|
+
me.promises[msgId] = {reject, resolve}
|
262
|
+
}
|
258
263
|
})
|
259
264
|
}
|
260
265
|
|
@@ -282,22 +287,24 @@ class Base extends CoreBase {
|
|
282
287
|
port = me.getPort({id: opts.port}).port
|
283
288
|
} else if (opts.windowId) {
|
284
289
|
portObject = me.getPort({windowId: opts.windowId});
|
285
|
-
port = portObject
|
290
|
+
port = portObject?.port;
|
286
291
|
|
287
|
-
opts.port = portObject
|
292
|
+
opts.port = portObject?.id
|
288
293
|
} else if (opts.appName) {
|
289
294
|
portObject = me.getPort({appName: opts.appName});
|
290
|
-
port = portObject
|
295
|
+
port = portObject?.port;
|
291
296
|
|
292
|
-
opts.port = portObject
|
297
|
+
opts.port = portObject?.id
|
293
298
|
} else {
|
294
299
|
port = me.ports[0].port
|
295
300
|
}
|
296
301
|
}
|
297
302
|
|
298
|
-
|
303
|
+
if (port) {
|
304
|
+
message = new Message(opts);
|
305
|
+
port.postMessage(message, transfer);
|
306
|
+
}
|
299
307
|
|
300
|
-
port.postMessage(message, transfer);
|
301
308
|
return message
|
302
309
|
}
|
303
310
|
}
|
@@ -1,85 +0,0 @@
|
|
1
|
-
import Container from '../../../../../src/container/Base.mjs';
|
2
|
-
import LivePreviewContainer from '../preview/PageCodeContainer.mjs';
|
3
|
-
|
4
|
-
/**
|
5
|
-
* @class Portal.view.home.parts.HelloWorld
|
6
|
-
* @extends Neo.container.Base
|
7
|
-
*/
|
8
|
-
class HelloWorld extends Container {
|
9
|
-
static config = {
|
10
|
-
/**
|
11
|
-
* @member {String} className='Portal.view.home.parts.HelloWorld'
|
12
|
-
* @protected
|
13
|
-
*/
|
14
|
-
className: 'Portal.view.home.parts.HelloWorld',
|
15
|
-
|
16
|
-
cls: ['page', 'hello-world'],
|
17
|
-
/**
|
18
|
-
* @member {Object} layout=null
|
19
|
-
*/
|
20
|
-
// layout: null,
|
21
|
-
|
22
|
-
responsiveConfig: {
|
23
|
-
oldPhone: {maxWidth: 320},
|
24
|
-
phone : {maxWidth: 480},
|
25
|
-
tablet : {maxWidth: 770},
|
26
|
-
medium : {maxWidth: 840},
|
27
|
-
large : {minWidth: 841}
|
28
|
-
},
|
29
|
-
|
30
|
-
responsive: {
|
31
|
-
medium: {layout: {ntype: 'vbox', align: 'stretch', pack: 'center'}},
|
32
|
-
large : {layout: {ntype: 'hbox', align: 'stretch', pack: 'center'}}
|
33
|
-
},
|
34
|
-
|
35
|
-
/**
|
36
|
-
* @member {Object[]} items
|
37
|
-
*/
|
38
|
-
items: [{
|
39
|
-
module: Container,
|
40
|
-
flex : '1',
|
41
|
-
style : {padding: '2rem'},
|
42
|
-
layout: {ntype: 'vbox', align: 'center', pack: 'center'},
|
43
|
-
items : [{
|
44
|
-
cls : 'neo-h1',
|
45
|
-
id : 'neo-hello-world-h1',
|
46
|
-
flex: 'none',
|
47
|
-
html: 'Hello World',
|
48
|
-
vdom: {tag: 'h1'}
|
49
|
-
}, {
|
50
|
-
cls : 'neo-h2',
|
51
|
-
flex: 'none',
|
52
|
-
html: 'Your first code snippet',
|
53
|
-
vdom: {tag: 'h2'}
|
54
|
-
}, {
|
55
|
-
cls : 'neo-content',
|
56
|
-
flex: 'none',
|
57
|
-
html: 'If you understand these lines, you are ready to start with Neo.mjs',
|
58
|
-
vdom: {tag: 'p'}
|
59
|
-
}]
|
60
|
-
}, {
|
61
|
-
module: LivePreviewContainer,
|
62
|
-
flex: 0.8,
|
63
|
-
value : [
|
64
|
-
"import Container from '../../../../src/container/Base.mjs';",
|
65
|
-
"",
|
66
|
-
"class MainView extends Container {",
|
67
|
-
" static config = {",
|
68
|
-
" className: 'Portal.view.MainView',",
|
69
|
-
" layout : {ntype:'vbox', align:'stretch'},",
|
70
|
-
" items : [{",
|
71
|
-
" module: Container,",
|
72
|
-
" html : 'Hello World'",
|
73
|
-
" }]",
|
74
|
-
" }",
|
75
|
-
"}",
|
76
|
-
"",
|
77
|
-
"Neo.setupClass(MainView);"
|
78
|
-
].join('\n')
|
79
|
-
}]
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
|
-
Neo.setupClass(HelloWorld);
|
84
|
-
|
85
|
-
export default HelloWorld;
|
@@ -1,55 +0,0 @@
|
|
1
|
-
import Container from '../../../../../src/container/Base.mjs';
|
2
|
-
import LivePreview from '../../learn/LivePreview.mjs';
|
3
|
-
|
4
|
-
/**
|
5
|
-
* @class Portal.view.home.preview.PageCodeContainer
|
6
|
-
* @extends Neo.container.Base
|
7
|
-
*/
|
8
|
-
class PageCodeContainer extends Container {
|
9
|
-
static config = {
|
10
|
-
/**
|
11
|
-
* @member {String} className='Portal.view.home.preview.PageCodeContainer'
|
12
|
-
* @protected
|
13
|
-
*/
|
14
|
-
className: 'Portal.view.home.preview.PageCodeContainer',
|
15
|
-
/**
|
16
|
-
* @member {String} ntype='page-code-container'
|
17
|
-
* @protected
|
18
|
-
*/
|
19
|
-
ntype: 'page-code-container',
|
20
|
-
/**
|
21
|
-
* @member {String[]} cls=['page-code-container']
|
22
|
-
* @protected
|
23
|
-
*/
|
24
|
-
cls: ['page-code-container'],
|
25
|
-
/**
|
26
|
-
* @member {Object} layout={ntype:'vbox',align:'stretch',pack:'center'}
|
27
|
-
*/
|
28
|
-
layout: {ntype: 'vbox', align: 'stretch', pack: 'center'},
|
29
|
-
/**
|
30
|
-
* @member {Object[]} items
|
31
|
-
*/
|
32
|
-
items : [{
|
33
|
-
module: LivePreview,
|
34
|
-
cls : ['live-preview']
|
35
|
-
}],
|
36
|
-
/**
|
37
|
-
* @member {String|null} value_=null
|
38
|
-
*/
|
39
|
-
value_: null,
|
40
|
-
}
|
41
|
-
|
42
|
-
/**
|
43
|
-
* Triggered after the size config got changed
|
44
|
-
* @param {String|null} value
|
45
|
-
* @param {String|null} oldValue
|
46
|
-
* @protected
|
47
|
-
*/
|
48
|
-
afterSetValue(value, oldValue) {
|
49
|
-
this.items[0].value = value
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
Neo.setupClass(PageCodeContainer);
|
54
|
-
|
55
|
-
export default PageCodeContainer;
|
@@ -1,115 +0,0 @@
|
|
1
|
-
.page-code-container {
|
2
|
-
position: relative;
|
3
|
-
padding: 20px;
|
4
|
-
|
5
|
-
&::before {
|
6
|
-
position:absolute;
|
7
|
-
inset: 0;
|
8
|
-
opacity: .4;
|
9
|
-
content: "";
|
10
|
-
background: {
|
11
|
-
image : url("../../../../../../../../resources/images/logo/neo_logo_secondary.svg");
|
12
|
-
size: auto 90%;
|
13
|
-
repeat: no-repeat;
|
14
|
-
position: center;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
.live-preview {
|
19
|
-
opacity: 0.9;
|
20
|
-
|
21
|
-
.live-preview-container {
|
22
|
-
& > .neo-tab-header-toolbar {
|
23
|
-
background: var(--sem-color-surface-primary-background);
|
24
|
-
border-radius: 15px 15px 0 0;
|
25
|
-
padding-right: 10px;
|
26
|
-
padding-left: 14px;
|
27
|
-
|
28
|
-
.neo-button-text {
|
29
|
-
color: slategrey!important;
|
30
|
-
}
|
31
|
-
|
32
|
-
.pressed {
|
33
|
-
border-bottom-right-radius: 0;
|
34
|
-
border-bottom-left-radius: 0;
|
35
|
-
|
36
|
-
.neo-button-text {
|
37
|
-
color: darkslategrey !important;
|
38
|
-
}
|
39
|
-
|
40
|
-
.neo-tab-button-indicator {
|
41
|
-
background-color: darkslategrey;
|
42
|
-
}
|
43
|
-
}
|
44
|
-
|
45
|
-
}
|
46
|
-
|
47
|
-
& > .neo-tab-content-container {
|
48
|
-
.monaco-editor {
|
49
|
-
.margin, .sticky-widget-line-numbers, .active-line-number {
|
50
|
-
background: #263238;
|
51
|
-
color: #cdd3de;
|
52
|
-
}
|
53
|
-
|
54
|
-
.monaco-editor-background, .sticky-widget-lines-scrollable {
|
55
|
-
background: #1B2225;
|
56
|
-
color: #cdd3de;
|
57
|
-
|
58
|
-
// keys
|
59
|
-
.mtk1 {
|
60
|
-
color: #CDFF8E;
|
61
|
-
}
|
62
|
-
|
63
|
-
// class, extends, static
|
64
|
-
.mtk6 {
|
65
|
-
color: #8EDCF5;
|
66
|
-
}
|
67
|
-
|
68
|
-
// numbers
|
69
|
-
.mtk7 {
|
70
|
-
color: #D6FF00
|
71
|
-
}
|
72
|
-
|
73
|
-
// Comment
|
74
|
-
.mtk8 {
|
75
|
-
color: #98A8B5;
|
76
|
-
}
|
77
|
-
|
78
|
-
// strings
|
79
|
-
.mtk20 {
|
80
|
-
color: #D6FF00
|
81
|
-
}
|
82
|
-
|
83
|
-
// Classname: MainView, Container
|
84
|
-
.mtk22 {
|
85
|
-
color: #cccccc;
|
86
|
-
}
|
87
|
-
|
88
|
-
/**
|
89
|
-
* Cursor
|
90
|
-
* not used
|
91
|
-
* - .monaco-mouse-cursor-text
|
92
|
-
* - .cursors-layer
|
93
|
-
* - .cursor-line-style
|
94
|
-
*/
|
95
|
-
.cursor,
|
96
|
-
.cursor-solid {
|
97
|
-
background-color: #ffffff;
|
98
|
-
}
|
99
|
-
|
100
|
-
// not in use
|
101
|
-
.important {
|
102
|
-
color: #FFA9A9;
|
103
|
-
font-style: italic;
|
104
|
-
}
|
105
|
-
|
106
|
-
// not in use
|
107
|
-
.id {
|
108
|
-
color: #F3A5F7;
|
109
|
-
}
|
110
|
-
}
|
111
|
-
}
|
112
|
-
}
|
113
|
-
}
|
114
|
-
}
|
115
|
-
}
|