neo.mjs 7.15.0 → 7.16.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/about/Container.mjs +2 -2
- package/apps/portal/view/home/FooterContainer.mjs +1 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/package.json +5 -5
- package/resources/scss/src/Global.scss +1 -1
- package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +10 -5
- package/resources/scss/src/global/_all.scss +1 -1
- package/resources/scss/theme-neo-light/Global.scss +1 -1
- package/resources/scss/theme-neo-light/design-tokens/_all.scss +3 -3
- package/src/DefaultConfig.mjs +2 -2
- package/src/button/Base.mjs +49 -56
- package/src/component/wrapper/MonacoEditor.mjs +5 -0
- package/src/menu/List.mjs +1 -1
- package/src/selection/menu/ListModel.mjs +1 -5
package/apps/ServiceWorker.mjs
CHANGED
package/apps/portal/index.html
CHANGED
@@ -47,7 +47,7 @@ class Container extends Base {
|
|
47
47
|
picture : 'torsten.png',
|
48
48
|
profileGitHub : 'https://github.com/Dinkh',
|
49
49
|
profileLinkedIn: 'https://www.linkedin.com/in/dinkheller/',
|
50
|
-
teamRole : '
|
50
|
+
teamRole : 'Contributor'
|
51
51
|
},{
|
52
52
|
module : MemberContainer,
|
53
53
|
location : 'Madison, Wisconsin',
|
@@ -55,7 +55,7 @@ class Container extends Base {
|
|
55
55
|
picture : 'Max.jpeg',
|
56
56
|
profileGitHub : 'https://github.com/maxrahder/',
|
57
57
|
profileLinkedIn: 'https://www.linkedin.com/in/maxrahder/',
|
58
|
-
teamRole : '
|
58
|
+
teamRole : 'Contributor'
|
59
59
|
}],
|
60
60
|
/**
|
61
61
|
* @member {Object} layout={ntype:'vbox',align:'center'}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neo.mjs",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.16.0",
|
4
4
|
"description": "The webworkers driven UI framework",
|
5
5
|
"type": "module",
|
6
6
|
"repository": {
|
@@ -53,14 +53,14 @@
|
|
53
53
|
"cssnano": "^7.0.6",
|
54
54
|
"envinfo": "^7.14.0",
|
55
55
|
"fs-extra": "^11.2.0",
|
56
|
-
"highlightjs-line-numbers.js": "^2.
|
57
|
-
"inquirer": "^
|
58
|
-
"marked": "^14.1.
|
56
|
+
"highlightjs-line-numbers.js": "^2.9.0",
|
57
|
+
"inquirer": "^12.0.0",
|
58
|
+
"marked": "^14.1.3",
|
59
59
|
"monaco-editor": "0.50.0",
|
60
60
|
"neo-jsdoc": "1.0.1",
|
61
61
|
"neo-jsdoc-x": "1.0.5",
|
62
62
|
"postcss": "^8.4.47",
|
63
|
-
"sass": "^1.
|
63
|
+
"sass": "^1.80.2",
|
64
64
|
"siesta-lite": "5.5.2",
|
65
65
|
"url": "^0.11.4",
|
66
66
|
"webpack": "^5.95.0",
|
@@ -8,6 +8,14 @@
|
|
8
8
|
background-image: url("data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23504e54' fill-opacity='0.18' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E");
|
9
9
|
padding : 3em;
|
10
10
|
|
11
|
+
.button-group {
|
12
|
+
background-color: transparent;
|
13
|
+
display : flex;
|
14
|
+
flex-direction : row-reverse;
|
15
|
+
gap : 8px;
|
16
|
+
margin : 2rem 0;
|
17
|
+
}
|
18
|
+
|
11
19
|
.logo-container {
|
12
20
|
align-items : center;
|
13
21
|
background-color: transparent;
|
@@ -19,11 +27,8 @@
|
|
19
27
|
min-width : 240px;
|
20
28
|
}
|
21
29
|
|
22
|
-
.
|
23
|
-
|
24
|
-
flex-direction: row-reverse;
|
25
|
-
gap : 8px;
|
26
|
-
margin : 2rem 0;
|
30
|
+
.neo-github {
|
31
|
+
background-color: #fff;
|
27
32
|
}
|
28
33
|
|
29
34
|
.neo-h1 {
|
@@ -1 +1 @@
|
|
1
|
-
@
|
1
|
+
@use "MouseCursor";
|
@@ -1,4 +1,4 @@
|
|
1
1
|
// the import order matters
|
2
|
-
@
|
3
|
-
@
|
4
|
-
@
|
2
|
+
@use "Core";
|
3
|
+
@use "Semantic";
|
4
|
+
@use "Component";
|
package/src/DefaultConfig.mjs
CHANGED
@@ -262,12 +262,12 @@ const DefaultConfig = {
|
|
262
262
|
useVdomWorker: true,
|
263
263
|
/**
|
264
264
|
* buildScripts/injectPackageVersion.mjs will update this value
|
265
|
-
* @default '7.
|
265
|
+
* @default '7.16.0'
|
266
266
|
* @memberOf! module:Neo
|
267
267
|
* @name config.version
|
268
268
|
* @type String
|
269
269
|
*/
|
270
|
-
version: '7.
|
270
|
+
version: '7.16.0'
|
271
271
|
};
|
272
272
|
|
273
273
|
Object.assign(DefaultConfig, {
|
package/src/button/Base.mjs
CHANGED
@@ -122,16 +122,28 @@ class Base extends Component {
|
|
122
122
|
* @member {Object} _vdom
|
123
123
|
*/
|
124
124
|
_vdom:
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
125
|
+
{tag: 'button', type: 'button', cn: [
|
126
|
+
{tag: 'span', cls: ['neo-button-glyph']},
|
127
|
+
{tag: 'span', cls: ['neo-button-text']},
|
128
|
+
{cls: ['neo-button-badge']},
|
129
|
+
{cls: ['neo-button-ripple-wrapper'], cn: [
|
130
|
+
{cls: ['neo-button-ripple']}
|
131
|
+
]}
|
132
|
+
]}
|
133
133
|
}
|
134
134
|
|
135
|
+
/**
|
136
|
+
* @member {Object} rippleWrapper
|
137
|
+
*/
|
138
|
+
get badgeNode() {
|
139
|
+
return this.getVdomRoot().cn[2]
|
140
|
+
}
|
141
|
+
/**
|
142
|
+
* @member {Object} rippleWrapper
|
143
|
+
*/
|
144
|
+
get iconNode() {
|
145
|
+
return this.getVdomRoot().cn[0]
|
146
|
+
}
|
135
147
|
/**
|
136
148
|
* Time in ms for the ripple effect when clicking on the button.
|
137
149
|
* Only active if useRippleEffect is set to true.
|
@@ -144,6 +156,12 @@ class Base extends Component {
|
|
144
156
|
* @private
|
145
157
|
*/
|
146
158
|
#rippleTimeoutId = null
|
159
|
+
/**
|
160
|
+
* @member {Object} rippleWrapper
|
161
|
+
*/
|
162
|
+
get rippleWrapper() {
|
163
|
+
return this.getVdomRoot().cn[3]
|
164
|
+
}
|
147
165
|
|
148
166
|
/**
|
149
167
|
* @param {Object} config
|
@@ -166,9 +184,9 @@ class Base extends Component {
|
|
166
184
|
* @protected
|
167
185
|
*/
|
168
186
|
afterSetBadgePosition(value, oldValue) {
|
169
|
-
let me
|
170
|
-
badgeNode = me
|
171
|
-
cls
|
187
|
+
let me = this,
|
188
|
+
{badgeNode} = me,
|
189
|
+
cls = badgeNode.cls || [];
|
172
190
|
|
173
191
|
NeoArray.remove(cls, 'neo-' + oldValue);
|
174
192
|
NeoArray.add(cls, 'neo-' + value);
|
@@ -185,7 +203,7 @@ class Base extends Component {
|
|
185
203
|
* @protected
|
186
204
|
*/
|
187
205
|
afterSetBadgeText(value, oldValue) {
|
188
|
-
let badgeNode = this
|
206
|
+
let {badgeNode} = this;
|
189
207
|
|
190
208
|
badgeNode.html = value;
|
191
209
|
badgeNode.removeDom = !Boolean(value);
|
@@ -200,7 +218,7 @@ class Base extends Component {
|
|
200
218
|
* @protected
|
201
219
|
*/
|
202
220
|
afterSetIconCls(value, oldValue) {
|
203
|
-
let iconNode = this
|
221
|
+
let {iconNode} = this;
|
204
222
|
|
205
223
|
NeoArray.remove(iconNode.cls, oldValue);
|
206
224
|
NeoArray.add( iconNode.cls, value);
|
@@ -216,7 +234,7 @@ class Base extends Component {
|
|
216
234
|
* @protected
|
217
235
|
*/
|
218
236
|
afterSetIconColor(value, oldValue) {
|
219
|
-
let iconNode = this
|
237
|
+
let {iconNode} = this;
|
220
238
|
|
221
239
|
if (!iconNode.style) {
|
222
240
|
iconNode.style = {};
|
@@ -261,17 +279,17 @@ class Base extends Component {
|
|
261
279
|
model = me.getModel(),
|
262
280
|
{appName, theme, windowId} = me,
|
263
281
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
282
|
+
config = Neo.merge({
|
283
|
+
module : module.default,
|
284
|
+
align : {edgeAlign: 't0-b0', target: me.id},
|
285
|
+
appName,
|
286
|
+
displayField : 'text',
|
287
|
+
floating : true,
|
288
|
+
hidden : true,
|
289
|
+
parentComponent: me,
|
290
|
+
theme,
|
291
|
+
windowId
|
292
|
+
}, menuConfig);
|
275
293
|
|
276
294
|
if (items) {
|
277
295
|
config.items = items
|
@@ -366,7 +384,7 @@ class Base extends Component {
|
|
366
384
|
*/
|
367
385
|
afterSetUseRippleEffect(value, oldValue) {
|
368
386
|
// setting the config to false ends running ripple animations
|
369
|
-
this.
|
387
|
+
this.rippleWrapper.removeDom = true;
|
370
388
|
this.update()
|
371
389
|
}
|
372
390
|
|
@@ -464,36 +482,11 @@ class Base extends Component {
|
|
464
482
|
}
|
465
483
|
|
466
484
|
/**
|
467
|
-
* @param
|
468
|
-
* @param {Boolean} silent
|
485
|
+
* @param args
|
469
486
|
*/
|
470
|
-
destroy(
|
471
|
-
this.menuList
|
472
|
-
super.destroy(
|
473
|
-
}
|
474
|
-
|
475
|
-
/**
|
476
|
-
* Convenience shortcut
|
477
|
-
* @returns {Object}
|
478
|
-
*/
|
479
|
-
getBadgeNode() {
|
480
|
-
return this.getVdomRoot().cn[2]
|
481
|
-
}
|
482
|
-
|
483
|
-
/**
|
484
|
-
* Convenience shortcut
|
485
|
-
* @returns {Object}
|
486
|
-
*/
|
487
|
-
getIconNode() {
|
488
|
-
return this.getVdomRoot().cn[0]
|
489
|
-
}
|
490
|
-
|
491
|
-
/**
|
492
|
-
* Convenience shortcut
|
493
|
-
* @returns {Object}
|
494
|
-
*/
|
495
|
-
getRippleWrapper() {
|
496
|
-
return this.getVdomRoot().cn[3]
|
487
|
+
destroy(...args) {
|
488
|
+
this.menuList?.destroy(true, false);
|
489
|
+
super.destroy(...args)
|
497
490
|
}
|
498
491
|
|
499
492
|
/**
|
@@ -518,7 +511,7 @@ class Base extends Component {
|
|
518
511
|
diameter = Math.max(buttonRect.height, buttonRect.width),
|
519
512
|
radius = diameter / 2,
|
520
513
|
rippleEffectDuration = me.rippleEffectDuration,
|
521
|
-
rippleWrapper
|
514
|
+
{rippleWrapper} = me,
|
522
515
|
rippleEl = rippleWrapper.cn[0],
|
523
516
|
rippleTimeoutId;
|
524
517
|
|
@@ -358,6 +358,11 @@ class MonacoEditor extends Base {
|
|
358
358
|
scrollBeyondLastLine: me.scrollBeyondLastLine,
|
359
359
|
theme : me.editorTheme,
|
360
360
|
value : me.stringifyValue(me.value),
|
361
|
+
|
362
|
+
scrollbar: {
|
363
|
+
alwaysConsumeMouseWheel: false // enables page scrolling when over-scrolling the content box
|
364
|
+
},
|
365
|
+
|
361
366
|
...me.options
|
362
367
|
}
|
363
368
|
}
|
package/src/menu/List.mjs
CHANGED
@@ -43,11 +43,7 @@ class ListModel extends BaseListModel {
|
|
43
43
|
* @param {Object} data
|
44
44
|
*/
|
45
45
|
onKeyDownRight(data) {
|
46
|
-
|
47
|
-
|
48
|
-
if (activeSubMenu) {
|
49
|
-
activeSubMenu.selectionModel.selectAt(0)
|
50
|
-
}
|
46
|
+
this.view.activeSubMenu?.selectionModel.selectAt(0)
|
51
47
|
}
|
52
48
|
}
|
53
49
|
|