neo.mjs 6.9.11 → 6.10.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/BACKERS.md +0 -30
- package/apps/ServiceWorker.mjs +2 -2
- package/apps/learnneo/index.html +7 -2
- package/apps/learnneo/neo-config.json +1 -4
- package/apps/learnneo/view/LivePreview.mjs +171 -0
- package/apps/learnneo/view/Viewport.mjs +11 -4
- package/apps/learnneo/view/ViewportController.mjs +2 -2
- package/apps/learnneo/view/home/ContentTreeList.mjs +93 -5
- package/apps/learnneo/view/home/MainContainer.mjs +16 -16
- package/apps/learnneo/view/home/MainContainerController.mjs +5 -20
- package/apps/learnneo/view/home/MainContainerModel.mjs +3 -5
- package/apps/newwebsite/index.html +3 -0
- package/buildScripts/convertDesignTokens.mjs +173 -0
- package/examples/ServiceWorker.mjs +2 -2
- package/package.json +5 -8
- package/resources/data/deck/learnneo/p/2023-10-01T18-29-19-158Z.md +14 -16
- package/resources/data/deck/learnneo/p/2023-10-07T19-18-28-517Z.md +9 -17
- package/resources/data/deck/learnneo/p/2023-10-08T20-20-07-934Z.md +7 -5
- package/resources/data/deck/learnneo/p/2023-10-08T20-20-37-336Z.md +17 -10
- package/resources/data/deck/learnneo/p/2023-10-14T19-25-08-153Z.md +18 -22
- package/resources/data/deck/learnneo/p/2023-10-31T13-59-37-550Z.md +31 -0
- package/resources/data/deck/learnneo/p/MainThreadAddonExample.md +15 -0
- package/resources/data/deck/learnneo/p/MainThreadAddonIntro.md +46 -0
- package/resources/data/deck/learnneo/p/TestLivePreview.md +10 -0
- package/resources/data/deck/learnneo/p/stylesheet.md +22 -8
- package/resources/data/deck/learnneo/t.json +126 -56
- package/resources/data/deck/training/p/2023-01-10T02-21-54-303Z.md +1 -1
- package/resources/data/deck/training/t.json +1276 -1
- package/resources/design-tokens/json/component.json +288 -0
- package/resources/design-tokens/json/core.json +352 -0
- package/resources/design-tokens/json/semantic.json +231 -0
- package/resources/images/logos/Github-logo-black.svg +1 -0
- package/resources/images/logos/Slack-logo-black.svg +17 -0
- package/resources/scss/src/apps/learnneo/Viewport.scss +3 -0
- package/resources/scss/src/apps/learnneo/home/ContentTreeList.scss +60 -13
- package/resources/scss/src/apps/learnneo/home/ContentView.scss +11 -2
- package/resources/scss/src/apps/newwebsite/MainContainer.scss +14 -15
- package/resources/scss/src/list/Base.scss +4 -0
- package/resources/scss/theme-neo-light/Global.scss +36 -16
- package/resources/scss/theme-neo-light/button/Base.scss +46 -45
- package/resources/scss/theme-neo-light/design-tokens/Component.scss +66 -1
- package/resources/scss/theme-neo-light/design-tokens/Core.scss +66 -5
- package/resources/scss/theme-neo-light/design-tokens/Semantic.scss +64 -0
- package/resources/scss/theme-neo-light/list/Base.scss +27 -6
- package/resources/scss/theme-neo-light/tab/header/Button.scss +1 -1
- package/src/DefaultConfig.mjs +2 -2
- package/src/component/StatusBadge.mjs +194 -246
- package/src/component/Video.mjs +19 -25
- package/src/controller/Base.mjs +33 -26
- package/src/core/Base.mjs +2 -2
- package/src/data/connection/Xhr.mjs +1 -1
- package/src/form/field/TextArea.mjs +3 -3
- package/src/main/DomAccess.mjs +64 -70
- package/src/main/DomEvents.mjs +1 -1
- package/src/main/addon/HighlightJS.mjs +16 -1
- package/src/main/addon/Mwc.mjs +6 -1
- package/src/worker/Manager.mjs +8 -3
- package/examples/container/dialog/MainContainer.mjs +0 -68
- package/examples/container/dialog/MainContainerController.mjs +0 -84
- package/examples/container/dialog/app.mjs +0 -6
- package/examples/container/dialog/index.html +0 -11
- package/examples/container/dialog/neo-config.json +0 -7
- package/src/container/Dialog.mjs +0 -205
- package/src/main/addon/Dialog.mjs +0 -68
package/src/component/Video.mjs
CHANGED
@@ -27,16 +27,16 @@ class Video extends BaseComponent {
|
|
27
27
|
baseCls: ['neo-video'],
|
28
28
|
/**
|
29
29
|
* Current state of the video
|
30
|
-
* @member {Boolean}
|
30
|
+
* @member {Boolean} playing_=false
|
31
31
|
*/
|
32
32
|
playing_: false,
|
33
33
|
/**
|
34
34
|
* Type of the video
|
35
|
-
* @member {
|
35
|
+
* @member {String} type='video/mp4'
|
36
36
|
*/
|
37
37
|
type: 'video/mp4',
|
38
38
|
/*
|
39
|
-
* @member {String}
|
39
|
+
* @member {String|null} url_=null
|
40
40
|
*/
|
41
41
|
url_: null,
|
42
42
|
/**
|
@@ -70,18 +70,12 @@ class Video extends BaseComponent {
|
|
70
70
|
construct(config) {
|
71
71
|
super.construct(config);
|
72
72
|
|
73
|
-
let me
|
74
|
-
domListeners = me.domListeners;
|
73
|
+
let me = this;
|
75
74
|
|
76
|
-
|
77
|
-
click
|
78
|
-
delegate: '.neo-video-
|
79
|
-
|
80
|
-
click : me.pause,
|
81
|
-
delegate: '.neo-video-media'
|
82
|
-
});
|
83
|
-
|
84
|
-
me.domListeners = domListeners;
|
75
|
+
me.addDomListeners(
|
76
|
+
{click: me.play, delegate: '.neo-video-ghost'},
|
77
|
+
{click: me.pause, delegate: '.neo-video-media'}
|
78
|
+
)
|
85
79
|
}
|
86
80
|
|
87
81
|
/**
|
@@ -93,10 +87,10 @@ class Video extends BaseComponent {
|
|
93
87
|
*/
|
94
88
|
beforeSetPlaying(value, oldValue) {
|
95
89
|
if (!Neo.isBoolean(value)) {
|
96
|
-
return oldValue
|
90
|
+
return oldValue
|
97
91
|
}
|
98
92
|
|
99
|
-
return value
|
93
|
+
return value
|
100
94
|
}
|
101
95
|
|
102
96
|
/**
|
@@ -112,7 +106,7 @@ class Video extends BaseComponent {
|
|
112
106
|
ghost.removeDom = value;
|
113
107
|
media.removeDom = !value;
|
114
108
|
|
115
|
-
this.vdom = vdom
|
109
|
+
this.vdom = vdom
|
116
110
|
}
|
117
111
|
|
118
112
|
/**
|
@@ -124,7 +118,7 @@ class Video extends BaseComponent {
|
|
124
118
|
*/
|
125
119
|
afterSetUrl(value, oldValue) {
|
126
120
|
if (!value) {
|
127
|
-
return
|
121
|
+
return
|
128
122
|
}
|
129
123
|
|
130
124
|
const me = this;
|
@@ -137,21 +131,21 @@ class Video extends BaseComponent {
|
|
137
131
|
type: me.type
|
138
132
|
}];
|
139
133
|
|
140
|
-
me.vdom = vdom
|
134
|
+
me.vdom = vdom
|
141
135
|
}
|
142
136
|
|
143
137
|
/**
|
144
|
-
* Clicked
|
138
|
+
* Clicked media
|
145
139
|
*/
|
146
|
-
|
147
|
-
this.playing =
|
140
|
+
pause() {
|
141
|
+
this.playing = false
|
148
142
|
}
|
149
143
|
|
150
144
|
/**
|
151
|
-
* Clicked
|
145
|
+
* Clicked ghost
|
152
146
|
*/
|
153
|
-
|
154
|
-
this.playing =
|
147
|
+
play() {
|
148
|
+
this.playing = true
|
155
149
|
}
|
156
150
|
}
|
157
151
|
|
package/src/controller/Base.mjs
CHANGED
@@ -22,7 +22,7 @@ class Base extends CoreBase {
|
|
22
22
|
*/
|
23
23
|
ntype: 'controller',
|
24
24
|
/**
|
25
|
-
* @member {String} defaultRoute=
|
25
|
+
* @member {String|null} defaultRoute=null
|
26
26
|
*/
|
27
27
|
defaultRoute: null,
|
28
28
|
/**
|
@@ -37,7 +37,7 @@ class Base extends CoreBase {
|
|
37
37
|
* '/users/{userId}/posts/{postId}': 'handlePostRoute',
|
38
38
|
* 'default' : 'handleOtherRoutes'
|
39
39
|
* }
|
40
|
-
* @member {Object}
|
40
|
+
* @member {Object} routes_={}
|
41
41
|
*/
|
42
42
|
routes_: {}
|
43
43
|
}
|
@@ -51,7 +51,7 @@ class Base extends CoreBase {
|
|
51
51
|
HashHistory.on('change', this.onHashChange, this)
|
52
52
|
}
|
53
53
|
|
54
|
-
|
54
|
+
/**
|
55
55
|
* Triggered after the routes config got changed
|
56
56
|
* @param {Object} value
|
57
57
|
* @param {Object} oldValue
|
@@ -83,7 +83,7 @@ class Base extends CoreBase {
|
|
83
83
|
destroy(...args) {
|
84
84
|
HashHistory.un('change', this.onHashChange, this);
|
85
85
|
|
86
|
-
super.destroy(...args)
|
86
|
+
super.destroy(...args)
|
87
87
|
}
|
88
88
|
|
89
89
|
/**
|
@@ -100,58 +100,65 @@ class Base extends CoreBase {
|
|
100
100
|
* @param {Object} value
|
101
101
|
* @param {Object} oldValue
|
102
102
|
*/
|
103
|
-
onHashChange(value, oldValue) {
|
103
|
+
async onHashChange(value, oldValue) {
|
104
104
|
let me = this,
|
105
|
+
counter = 0,
|
105
106
|
hasRouteBeenFound = false,
|
106
107
|
handleRoutes = me.handleRoutes,
|
107
108
|
routeKeys = Object.keys(handleRoutes),
|
109
|
+
routeKeysLength = routeKeys.length,
|
108
110
|
routes = me.routes,
|
109
|
-
handler, preHandler, responsePreHandler, result, route;
|
111
|
+
handler, key, paramObject, preHandler, responsePreHandler, result, route;
|
110
112
|
|
111
|
-
|
113
|
+
while (routeKeysLength > 0 && counter < routeKeysLength && !hasRouteBeenFound) {
|
114
|
+
key = routeKeys[counter];
|
112
115
|
handler = null;
|
113
116
|
preHandler = null;
|
114
117
|
responsePreHandler = null;
|
115
|
-
|
116
|
-
result
|
118
|
+
paramObject = {};
|
119
|
+
result = value.hashString.match(handleRoutes[key]);
|
117
120
|
|
118
121
|
if (result) {
|
119
122
|
const
|
120
123
|
arrayParamIds = key.match(routeParamRegex),
|
121
|
-
arrayParamValues = result.splice(1, result.length - 1)
|
122
|
-
paramObject = {};
|
124
|
+
arrayParamValues = result.splice(1, result.length - 1);
|
123
125
|
|
124
126
|
if (arrayParamIds && arrayParamIds.length !== arrayParamValues.length) {
|
125
|
-
throw 'Number of IDs and number of Values do not match'
|
127
|
+
throw 'Number of IDs and number of Values do not match'
|
126
128
|
}
|
127
129
|
|
128
130
|
for (let i = 0; arrayParamIds && i < arrayParamIds.length; i++) {
|
129
|
-
paramObject[arrayParamIds[i].substring(1, arrayParamIds[i].length - 1)] = arrayParamValues[i]
|
131
|
+
paramObject[arrayParamIds[i].substring(1, arrayParamIds[i].length - 1)] = arrayParamValues[i]
|
130
132
|
}
|
131
133
|
|
132
134
|
route = routes[key];
|
133
135
|
|
134
136
|
if (Neo.isString(route)) {
|
135
137
|
handler = route;
|
136
|
-
responsePreHandler = true
|
138
|
+
responsePreHandler = true
|
137
139
|
} else if (Neo.isObject(route)) {
|
138
140
|
handler = route.handler;
|
139
|
-
preHandler = route.preHandler
|
140
|
-
|
141
|
-
if (preHandler) {
|
142
|
-
responsePreHandler = me[preHandler]?.call(me, paramObject, value, oldValue);
|
143
|
-
} else {
|
144
|
-
responsePreHandler = true;
|
145
|
-
}
|
141
|
+
preHandler = route.preHandler
|
146
142
|
}
|
147
143
|
|
148
|
-
hasRouteBeenFound = true
|
144
|
+
hasRouteBeenFound = true
|
145
|
+
}
|
149
146
|
|
150
|
-
|
151
|
-
|
152
|
-
|
147
|
+
counter++
|
148
|
+
}
|
149
|
+
|
150
|
+
// execute
|
151
|
+
if (hasRouteBeenFound) {
|
152
|
+
if (preHandler) {
|
153
|
+
responsePreHandler = await me[preHandler]?.call(me, paramObject, value, oldValue)
|
154
|
+
} else {
|
155
|
+
responsePreHandler = true
|
153
156
|
}
|
154
|
-
|
157
|
+
|
158
|
+
if (responsePreHandler) {
|
159
|
+
await me[handler]?.call(me, paramObject, value, oldValue)
|
160
|
+
}
|
161
|
+
}
|
155
162
|
|
156
163
|
if (routeKeys.length > 0 && !hasRouteBeenFound) {
|
157
164
|
if (me.defaultRoute) {
|
package/src/core/Base.mjs
CHANGED
@@ -216,7 +216,7 @@ class Base {
|
|
216
216
|
|
217
217
|
if (cls[item]) {
|
218
218
|
// add to overwrittenMethods
|
219
|
-
cls.constructor.overwrittenMethods[item] = cls[item]
|
219
|
+
cls.constructor.overwrittenMethods[item] = cls[item]
|
220
220
|
}
|
221
221
|
}
|
222
222
|
}
|
@@ -471,7 +471,7 @@ class Base {
|
|
471
471
|
// The hasOwnProperty check is intended for configs without a trailing underscore
|
472
472
|
// => they could already have been assigned inside an afterSet-method
|
473
473
|
if (forceAssign || !me.hasOwnProperty(keys[0])) {
|
474
|
-
me[keys[0]] = me[configSymbol][keys[0]]
|
474
|
+
me[keys[0]] = me[configSymbol][keys[0]]
|
475
475
|
}
|
476
476
|
|
477
477
|
// there is a delete-call inside the config getter as well (Neo.mjs => autoGenerateGetSet())
|
@@ -169,7 +169,7 @@ class Xhr extends Base {
|
|
169
169
|
if (!opts.url) {
|
170
170
|
console.error('Neo.Xhr.request without a given url' + JSON.stringify(opts));
|
171
171
|
} else {
|
172
|
-
if (!opts.insideNeo && location.href.includes('/node_modules/neo.mjs/') && !location.href.startsWith('https://neomjs.
|
172
|
+
if (!opts.insideNeo && location.href.includes('/node_modules/neo.mjs/') && !location.href.startsWith('https://neomjs.com/')) {
|
173
173
|
if (opts.url.startsWith('./') || opts.url.startsWith('../')) {
|
174
174
|
opts.url = '../../' + opts.url;
|
175
175
|
}
|
@@ -32,7 +32,7 @@ class TextArea extends Text {
|
|
32
32
|
* any height of text. Bounds can be set using the `minHeight` and `maxHeight` settings.
|
33
33
|
* @member {Boolean} autoGrow=false
|
34
34
|
*/
|
35
|
-
autoGrow_
|
35
|
+
autoGrow_: false,
|
36
36
|
/**
|
37
37
|
* @member {String[]} baseCls=['neo-textarea','neo-textfield']
|
38
38
|
*/
|
@@ -75,7 +75,7 @@ class TextArea extends Text {
|
|
75
75
|
}
|
76
76
|
|
77
77
|
afterSetAutoGrow(autoGrow) {
|
78
|
-
this.syncAutoGrowMonitor();
|
78
|
+
autoGrow && this.syncAutoGrowMonitor();
|
79
79
|
|
80
80
|
// Restore any configured height if autoGrow turned off
|
81
81
|
if (!autoGrow) {
|
@@ -176,7 +176,7 @@ class TextArea extends Text {
|
|
176
176
|
}
|
177
177
|
|
178
178
|
async syncAutoGrowMonitor() {
|
179
|
-
if (this.mounted) {
|
179
|
+
if (this.mounted && this.autoGrow) {
|
180
180
|
// Delegate monitoring of sizes to the VDOM thread.
|
181
181
|
Neo.main.DomAccess.monitorAutoGrow({
|
182
182
|
appName : this.appName,
|