neo.mjs 8.26.0 → 8.27.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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='8.26.0'
23
+ * @member {String} version='8.27.0'
24
24
  */
25
- version: '8.26.0'
25
+ version: '8.27.0'
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-26",
19
+ "datePublished": "2025-03-01",
20
20
  "publisher": {
21
21
  "@type": "Organization",
22
22
  "name": "Neo.mjs"
@@ -27,9 +27,9 @@ class TabContainer extends Container {
27
27
  */
28
28
  controller: TabContainerController,
29
29
  /**
30
- * @member {Object} headerToolbarDefaults
30
+ * @member {Object} headerToolbar
31
31
  */
32
- headerToolbarDefaults: {
32
+ headerToolbar: {
33
33
  cls: ['portal-examples-tab-header-toolbar']
34
34
  },
35
35
  /**
@@ -107,7 +107,7 @@ class FooterContainer extends Container {
107
107
  }, {
108
108
  module: Component,
109
109
  cls : ['neo-version'],
110
- html : 'v8.26.0'
110
+ html : 'v8.27.0'
111
111
  }]
112
112
  }],
113
113
  /**
@@ -22,15 +22,15 @@ class ContentTabContainer extends Container {
22
22
  */
23
23
  activateInsertedTabs: true,
24
24
  /**
25
- * @member {Object} contentContainerDefaults
25
+ * @member {Object} contentContainer
26
26
  */
27
- contentContainerDefaults: {
27
+ contentContainer: {
28
28
  cls: ['neo-docs-tab-content-container']
29
29
  },
30
30
  /**
31
- * @member {Object} headerToolbarDefaults
31
+ * @member {Object} headerToolbar
32
32
  */
33
- headerToolbarDefaults: {
33
+ headerToolbar: {
34
34
  cls: ['docs-tab-header-toolbar']
35
35
  },
36
36
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='8.26.0'
23
+ * @member {String} version='8.27.0'
24
24
  */
25
- version: '8.26.0'
25
+ version: '8.27.0'
26
26
  }
27
27
 
28
28
  /**
@@ -32,6 +32,12 @@ class ControlsContainer extends Container {
32
32
  cls : ['neo-examples-bigdata-controls-container-content'],
33
33
  sortable: true,
34
34
 
35
+ headerToolbar: {
36
+ sortZoneConfig: {
37
+ adjustItemRectsToParent: true
38
+ }
39
+ },
40
+
35
41
  items: [{
36
42
  module: Container,
37
43
  header: {text: 'Settings'},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "8.26.0",
3
+ "version": "8.27.0",
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.0'
266
+ * @default '8.27.0'
267
267
  * @memberOf! module:Neo
268
268
  * @name config.version
269
269
  * @type String
270
270
  */
271
- version: '8.26.0'
271
+ version: '8.27.0'
272
272
  };
273
273
 
274
274
  Object.assign(DefaultConfig, {
@@ -1947,6 +1947,24 @@ class Component extends Base {
1947
1947
  me.getStateProvider()?.parseConfig(me)
1948
1948
  }
1949
1949
 
1950
+ /**
1951
+ * Check if this component or any of its parents is floating
1952
+ * @returns {Boolean}
1953
+ */
1954
+ isFloating() {
1955
+ let me = this;
1956
+
1957
+ if (me.floating) {
1958
+ return true
1959
+ }
1960
+
1961
+ if (!me.parent) {
1962
+ return false
1963
+ }
1964
+
1965
+ return me.parent.floating
1966
+ }
1967
+
1950
1968
  /**
1951
1969
  * Checks for vdom updates inside the parent chain and if found.
1952
1970
  * Registers the component for a vdom update once done.
@@ -18,10 +18,6 @@ class SortZone extends BaseSortZone {
18
18
  * @protected
19
19
  */
20
20
  ntype: 'grid-header-toolbar-sortzone',
21
- /**
22
- * @member {Boolean} adjustItemRectsToParent=false
23
- */
24
- adjustItemRectsToParent: false,
25
21
  /**
26
22
  * @member {String|null} itemMargin='1px'
27
23
  * @protected
@@ -20,10 +20,9 @@ class SortZone extends DragZone {
20
20
  /**
21
21
  * Depending on the parent structure using position absolute and relative, it can be needed to subtract
22
22
  * the x & y parent rect values from the item rects.
23
- * For tab.header.Toolbar it is needed, for grid.header.Toolbar it is not
24
- * @member {Boolean} adjustItemRectsToParent=true
23
+ * @member {Boolean} adjustItemRectsToParent=false
25
24
  */
26
- adjustItemRectsToParent: true,
25
+ adjustItemRectsToParent: false,
27
26
  /**
28
27
  * @member {Boolean} alwaysFireDragMove=true
29
28
  */
@@ -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
@@ -18,10 +18,14 @@ class ColumnModel extends BaseModel {
18
18
  */
19
19
  ntype: 'selection-grid-columnmodel',
20
20
  /**
21
- * @member {String} cls='selection-columnmodel'
21
+ * @member {String} cls='neo-selection-columnmodel'
22
22
  * @protected
23
23
  */
24
- cls: 'neo-selection-columnmodel'
24
+ cls: 'neo-selection-columnmodel',
25
+ /**
26
+ * @member {String[]} selectedColumns=[]
27
+ */
28
+ selectedColumns: []
25
29
  }
26
30
 
27
31
  /**
@@ -44,21 +48,24 @@ class ColumnModel extends BaseModel {
44
48
  super.destroy(...args)
45
49
  }
46
50
 
51
+ /**
52
+ * @returns {Boolean}
53
+ */
54
+ hasSelection() {
55
+ return this.selectedColumns.length > 0
56
+ }
57
+
47
58
  /**
48
59
  * @param {Object} data
49
60
  */
50
61
  onCellClick(data) {
51
62
  let me = this,
52
63
  {view} = me,
53
- cellId = data.data.currentTarget,
54
- columnNodeIds, dataField, index;
64
+ cellId = data.data.currentTarget;
55
65
 
56
66
  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)
67
+ me.selectedColumns = [view.getDataField(cellId)];
68
+ view.createViewData()
62
69
  }
63
70
  }
64
71
 
@@ -82,10 +89,10 @@ class ColumnModel extends BaseModel {
82
89
  onNavKeyColumn(step) {
83
90
  let me = this,
84
91
  {dataFields, view} = me,
85
- columnNodeIds, currentColumn, index;
92
+ currentColumn, index;
86
93
 
87
94
  if (me.hasSelection()) {
88
- currentColumn = view.getDataField(me.items[0])
95
+ currentColumn = me.selectedColumns[0]
89
96
  } else {
90
97
  currentColumn = dataFields[0]
91
98
  }
@@ -96,9 +103,8 @@ class ColumnModel extends BaseModel {
96
103
  index += dataFields.length
97
104
  }
98
105
 
99
- columnNodeIds = VDomUtil.getColumnNodesIds(view.vdom.cn[0], index);
100
-
101
- me.select(columnNodeIds)
106
+ me.selectedColumns = [dataFields[index]];
107
+ view.createViewData()
102
108
  }
103
109
 
104
110
  /**
@@ -49,14 +49,14 @@ class Container extends BaseContainer {
49
49
  cardContainerId: null,
50
50
  /**
51
51
  * Default configs for the tab.Strip
52
- * @member {Object|null} contentContainerDefaults=null
52
+ * @member {Object|null} contentContainer=null
53
53
  */
54
- contentContainerDefaults: null,
54
+ contentContainer: null,
55
55
  /**
56
56
  * Default configs for the tab.HeaderToolbar
57
- * @member {Object|null} headerToolbarDefaults=null
57
+ * @member {Object|null} headerToolbar=null
58
58
  */
59
- headerToolbarDefaults: null,
59
+ headerToolbar: null,
60
60
  /**
61
61
  * @member {Object|null} layout=null
62
62
  */
@@ -84,9 +84,9 @@ class Container extends BaseContainer {
84
84
  tabBarId: null,
85
85
  /**
86
86
  * Default configs for the tab.Strip
87
- * @member {Object|null} tabStripDefaults=null
87
+ * @member {Object|null} tabStrip=null
88
88
  */
89
- tabStripDefaults: null,
89
+ tabStrip: null,
90
90
  /**
91
91
  * @member {String|null} tabStripId=null
92
92
  */
@@ -264,7 +264,7 @@ class Container extends BaseContainer {
264
264
  items : tabButtons,
265
265
  sortable : me.sortable,
266
266
  useActiveTabIndicator: me.useActiveTabIndicator,
267
- ...me.headerToolbarDefaults
267
+ ...me.headerToolbar
268
268
  }, {
269
269
  module : Strip,
270
270
  cls : ['neo-tab-strip', 'neo-dock-' + me.tabBarPosition],
@@ -272,7 +272,7 @@ class Container extends BaseContainer {
272
272
  id : me.tabStripId,
273
273
  tabContainerId : me.id,
274
274
  useActiveTabIndicator: me.useActiveTabIndicator,
275
- ...me.tabStripDefaults
275
+ ...me.tabStrip
276
276
  }, {
277
277
  ntype : 'container',
278
278
  cls : ['neo-container', 'neo-tab-content-container'],
@@ -281,7 +281,7 @@ class Container extends BaseContainer {
281
281
  items : tabComponents,
282
282
  layout : {ntype: 'card', activeIndex: me.activeIndex, removeInactiveCards: me.removeInactiveCards},
283
283
  useActiveTabIndicator: me.useActiveTabIndicator,
284
- ...me.contentContainerDefaults
284
+ ...me.contentContainer
285
285
  }];
286
286
 
287
287
  me.itemDefaults = null;