neo.mjs 8.26.1 → 8.27.1

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='8.26.1'
23
+ * @member {String} version='8.27.1'
24
24
  */
25
- version: '8.26.1'
25
+ version: '8.27.1'
26
26
  }
27
27
 
28
28
  /**
@@ -16,7 +16,7 @@
16
16
  "@type": "Organization",
17
17
  "name": "Neo.mjs"
18
18
  },
19
- "datePublished": "2025-02-27",
19
+ "datePublished": "2025-03-01",
20
20
  "publisher": {
21
21
  "@type": "Organization",
22
22
  "name": "Neo.mjs"
@@ -107,7 +107,7 @@ class FooterContainer extends Container {
107
107
  }, {
108
108
  module: Component,
109
109
  cls : ['neo-version'],
110
- html : 'v8.26.1'
110
+ html : 'v8.27.1'
111
111
  }]
112
112
  }],
113
113
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='8.26.1'
23
+ * @member {String} version='8.27.1'
24
24
  */
25
- version: '8.26.1'
25
+ version: '8.27.1'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "8.26.1",
3
+ "version": "8.27.1",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -17,10 +17,10 @@
17
17
  .neo-char {
18
18
  position : absolute;
19
19
  transition:
20
- color 0.2s ease-out,
21
- left var(--neo-transition-time) ease-out,
22
- opacity var(--neo-transition-time) ease-out,
23
- top var(--neo-transition-time) ease-out;
20
+ color 0.2s ease-out,
21
+ left var(--neo-transition-time) ease-out,
22
+ opacity var(--neo-transition-time) ease-out,
23
+ top var(--neo-transition-time) ease-out;
24
24
  }
25
25
  }
26
26
 
@@ -263,12 +263,12 @@ const DefaultConfig = {
263
263
  useVdomWorker: true,
264
264
  /**
265
265
  * buildScripts/injectPackageVersion.mjs will update this value
266
- * @default '8.26.1'
266
+ * @default '8.27.1'
267
267
  * @memberOf! module:Neo
268
268
  * @name config.version
269
269
  * @type String
270
270
  */
271
- version: '8.26.1'
271
+ version: '8.27.1'
272
272
  };
273
273
 
274
274
  Object.assign(DefaultConfig, {
@@ -486,13 +486,6 @@ class GridContainer extends BaseContainer {
486
486
  return this.vdom.cn[0]
487
487
  }
488
488
 
489
- /**
490
- * @returns {Object[]} The new vdom items root
491
- */
492
- getVdomItemsRoot() {
493
- return this.vdom.cn[0]
494
- }
495
-
496
489
  /**
497
490
  * @override
498
491
  * @returns {Neo.vdom.VNode}
package/src/grid/View.mjs CHANGED
@@ -437,6 +437,10 @@ class GridView extends Component {
437
437
  cellCls.push('neo-selected')
438
438
  }
439
439
 
440
+ if (me.selectionModel?.selectedColumns?.includes(dataField)) {
441
+ NeoArray.add(cellCls, 'neo-selected')
442
+ }
443
+
440
444
  cellConfig = {
441
445
  'aria-colindex': columnIndex + 1, // 1 based
442
446
  id : cellId,
@@ -165,7 +165,7 @@ class Model extends Base {
165
165
  }
166
166
 
167
167
  /**
168
- * @returns {Boolean} true in case there is a selection
168
+ * @returns {Boolean}
169
169
  */
170
170
  hasSelection() {
171
171
  return this.items.length > 0
@@ -1,5 +1,4 @@
1
1
  import BaseModel from './BaseModel.mjs';
2
- import VDomUtil from '../../util/VDom.mjs';
3
2
 
4
3
  /**
5
4
  * @class Neo.selection.grid.ColumnModel
@@ -18,10 +17,14 @@ class ColumnModel extends BaseModel {
18
17
  */
19
18
  ntype: 'selection-grid-columnmodel',
20
19
  /**
21
- * @member {String} cls='selection-columnmodel'
20
+ * @member {String} cls='neo-selection-columnmodel'
22
21
  * @protected
23
22
  */
24
- cls: 'neo-selection-columnmodel'
23
+ cls: 'neo-selection-columnmodel',
24
+ /**
25
+ * @member {String[]} selectedColumns=[]
26
+ */
27
+ selectedColumns: []
25
28
  }
26
29
 
27
30
  /**
@@ -44,21 +47,24 @@ class ColumnModel extends BaseModel {
44
47
  super.destroy(...args)
45
48
  }
46
49
 
50
+ /**
51
+ * @returns {Boolean}
52
+ */
53
+ hasSelection() {
54
+ return this.selectedColumns.length > 0
55
+ }
56
+
47
57
  /**
48
58
  * @param {Object} data
49
59
  */
50
60
  onCellClick(data) {
51
61
  let me = this,
52
62
  {view} = me,
53
- cellId = data.data.currentTarget,
54
- columnNodeIds, dataField, index;
63
+ cellId = data.data.currentTarget;
55
64
 
56
65
  if (cellId) {
57
- dataField = view.getDataField(cellId);
58
- index = view.getColumn(dataField, true);
59
- columnNodeIds = VDomUtil.getColumnNodesIds(view.vdom.cn[0], index);
60
-
61
- me.select(columnNodeIds)
66
+ me.selectedColumns = [view.getDataField(cellId)];
67
+ view.createViewData()
62
68
  }
63
69
  }
64
70
 
@@ -82,23 +88,26 @@ class ColumnModel extends BaseModel {
82
88
  onNavKeyColumn(step) {
83
89
  let me = this,
84
90
  {dataFields, view} = me,
85
- columnNodeIds, currentColumn, index;
91
+ currentColumn, currentIndex, index;
86
92
 
87
93
  if (me.hasSelection()) {
88
- currentColumn = view.getDataField(me.items[0])
94
+ currentColumn = me.selectedColumns[0]
89
95
  } else {
90
96
  currentColumn = dataFields[0]
91
97
  }
92
98
 
93
- index = (dataFields.indexOf(currentColumn) + step) % dataFields.length;
99
+ currentIndex = dataFields.indexOf(currentColumn);
100
+ index = (currentIndex + step) % dataFields.length;
94
101
 
95
102
  while (index < 0) {
96
103
  index += dataFields.length
97
104
  }
98
105
 
99
- columnNodeIds = VDomUtil.getColumnNodesIds(view.vdom.cn[0], index);
106
+ me.selectedColumns = [dataFields[index]];
107
+
108
+ view.createViewData();
100
109
 
101
- me.select(columnNodeIds)
110
+ view.parent.scrollByColumns(currentIndex, step)
102
111
  }
103
112
 
104
113
  /**