neo.mjs 5.13.3 → 5.13.4

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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='5.13.3'
23
+ * @member {String} version='5.13.4'
24
24
  */
25
- version: '5.13.3'
25
+ version: '5.13.4'
26
26
  }
27
27
 
28
28
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='5.13.3'
23
+ * @member {String} version='5.13.4'
24
24
  */
25
- version: '5.13.3'
25
+ version: '5.13.4'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "5.13.3",
3
+ "version": "5.13.4",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -24,7 +24,7 @@
24
24
 
25
25
  .neo-textfield-input {
26
26
  border-color: v(textfield-border-color-active);
27
- outline : v(textfield-outline-active);
27
+ outline : v(textfield-outline-active) !important; // important is needed, since the default &:focus selector would get a prio
28
28
  }
29
29
  }
30
30
 
@@ -236,12 +236,12 @@ const DefaultConfig = {
236
236
  useVdomWorker: true,
237
237
  /**
238
238
  * buildScripts/injectPackageVersion.mjs will update this value
239
- * @default '5.13.3'
239
+ * @default '5.13.4'
240
240
  * @memberOf! module:Neo
241
241
  * @name config.version
242
242
  * @type String
243
243
  */
244
- version: '5.13.3'
244
+ version: '5.13.4'
245
245
  };
246
246
 
247
247
  Object.assign(DefaultConfig, {
@@ -257,7 +257,8 @@ class Base extends Component {
257
257
  floating : true,
258
258
  hidden : true,
259
259
  items : value,
260
- parentComponent: me
260
+ parentComponent: me,
261
+ style : {left: '-5000px', top: '-5000px'}
261
262
  })
262
263
  })
263
264
  }
package/src/menu/List.mjs CHANGED
@@ -342,15 +342,49 @@ class List extends BaseList {
342
342
  onItemClick(node, data) {
343
343
  super.onItemClick(node, data);
344
344
 
345
- let me = this;
345
+ let me = this,
346
+ record = data.record;
346
347
 
347
- data.record.handler?.call(me, data);
348
+ record.handler?.call(me, record);
348
349
 
349
- if (me.hideOnLeafItemClick && !data.record.items) {
350
+ if (me.hideOnLeafItemClick && !record.items) {
350
351
  me.unmount()
351
352
  }
352
353
  }
353
354
 
355
+ /**
356
+ * @param {String} nodeId
357
+ */
358
+ onKeyDownEnter(nodeId) {
359
+ if (nodeId) {
360
+ let me = this,
361
+ recordId = me.getItemRecordId(nodeId),
362
+ record = me.store.get(recordId),
363
+ submenu;
364
+
365
+ record.handler?.call(me, record);
366
+
367
+ if (me.hideOnLeafItemClick && !record.items) {
368
+ me.unmount()
369
+ }
370
+
371
+ if (record.items) {
372
+ submenu = me.subMenuMap[me.getMenuMapId(recordId)];
373
+
374
+ if (submenu) {
375
+ me.toggleSubMenu(nodeId, record)
376
+ }
377
+ }
378
+ }
379
+ }
380
+
381
+ /**
382
+ * @param {Object} data
383
+ */
384
+ onKeyDownEscape(data) {
385
+ this.floating && this.unmount()
386
+ }
387
+
354
388
  /**
355
389
  * @param {String[]} items
356
390
  */
@@ -415,6 +449,22 @@ class List extends BaseList {
415
449
  });
416
450
  }
417
451
 
452
+ /**
453
+ * @param {String} nodeId
454
+ * @param {Object} record
455
+ */
456
+ toggleSubMenu(nodeId, record) {
457
+ let me = this,
458
+ recordId = record[me.getKeyProperty()],
459
+ submenu = me.subMenuMap[me.getMenuMapId(recordId)];
460
+
461
+ if (!submenu?.mounted) {
462
+ me.showSubMenu(nodeId, record)
463
+ } else {
464
+ me.hideSubMenu()
465
+ }
466
+ }
467
+
418
468
  /**
419
469
  *
420
470
  */
@@ -38,6 +38,12 @@ class ListModel extends Model {
38
38
  !view.disableSelection && view.onKeyDownEnter?.(this.getSelection()[0]);
39
39
  }
40
40
 
41
+ /**
42
+ * Placeholder method to get overridden by class extension list menu.ListModel
43
+ * @param {Object} data
44
+ */
45
+ onKeyDownEscape(data) {}
46
+
41
47
  /**
42
48
  * @param {Object} data
43
49
  */
@@ -136,11 +142,12 @@ class ListModel extends Model {
136
142
  view = me.view;
137
143
 
138
144
  view.keys?._keys.push(
139
- {fn: 'onKeyDownDown' ,key: 'Down' ,scope: id},
140
- {fn: 'onKeyDownEnter' ,key: 'Enter' ,scope: id},
141
- {fn: 'onKeyDownLeft' ,key: 'Left' ,scope: id},
142
- {fn: 'onKeyDownRight' ,key: 'Right' ,scope: id},
143
- {fn: 'onKeyDownUp' ,key: 'Up' ,scope: id}
145
+ {fn: 'onKeyDownDown' ,key: 'Down' ,scope: id},
146
+ {fn: 'onKeyDownEnter' ,key: 'Enter' ,scope: id},
147
+ {fn: 'onKeyDownEscape' ,key: 'Escape' ,scope: id},
148
+ {fn: 'onKeyDownLeft' ,key: 'Left' ,scope: id},
149
+ {fn: 'onKeyDownRight' ,key: 'Right' ,scope: id},
150
+ {fn: 'onKeyDownUp' ,key: 'Up' ,scope: id}
144
151
  );
145
152
  }
146
153
 
@@ -167,11 +174,12 @@ class ListModel extends Model {
167
174
  view = me.view;
168
175
 
169
176
  view.keys?.removeKeys([
170
- {fn: 'onKeyDownDown' ,key: 'Down' ,scope: id},
171
- {fn: 'onKeyDownEnter' ,key: 'Enter' ,scope: id},
172
- {fn: 'onKeyDownLeft' ,key: 'Left' ,scope: id},
173
- {fn: 'onKeyDownRight' ,key: 'Right' ,scope: id},
174
- {fn: 'onKeyDownUp' ,key: 'Up' ,scope: id}
177
+ {fn: 'onKeyDownDown' ,key: 'Down' ,scope: id},
178
+ {fn: 'onKeyDownEnter' ,key: 'Enter' ,scope: id},
179
+ {fn: 'onKeyDownEscape' ,key: 'Escape' ,scope: id},
180
+ {fn: 'onKeyDownLeft' ,key: 'Left' ,scope: id},
181
+ {fn: 'onKeyDownRight' ,key: 'Right' ,scope: id},
182
+ {fn: 'onKeyDownUp' ,key: 'Up' ,scope: id}
175
183
  ]);
176
184
 
177
185
  super.unregister();
@@ -18,6 +18,13 @@ class ListModel extends BaseListModel {
18
18
  ntype: 'selection-menu-listmodel'
19
19
  }
20
20
 
21
+ /**
22
+ * @param {Object} data
23
+ */
24
+ onKeyDownEscape(data) {
25
+ this.view.onKeyDownEscape(data)
26
+ }
27
+
21
28
  /**
22
29
  * @param {Object} data
23
30
  */