neo.mjs 4.3.25 → 4.3.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "4.3.25",
3
+ "version": "4.3.27",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
package/src/list/Base.mjs CHANGED
@@ -105,6 +105,12 @@ class Base extends Component {
105
105
  * @member {Boolean} stacked_=true
106
106
  */
107
107
  useCheckBoxes_: false,
108
+ /**
109
+ * Setting this config to true will switch to dl, dt & dd tags instead of using ul & li.
110
+ * Use the {Boolean} model field isHeader.
111
+ * @member {Boolean} useHeaders_=false
112
+ */
113
+ useHeaders_: false,
108
114
  /**
109
115
  * @member {Boolean} useWrapperNode_=false
110
116
  */
@@ -227,6 +233,19 @@ class Base extends Component {
227
233
  me.cls = cls;
228
234
  }
229
235
 
236
+ /**
237
+ * Triggered after the useHeaders config got changed
238
+ * @param {Boolean} value
239
+ * @param {Boolean} oldValue
240
+ * @protected
241
+ */
242
+ afterSetUseHeaders(value, oldValue) {
243
+ let me = this;
244
+
245
+ me.vdom.tag = 'dl';
246
+ me.itemTagName = 'dd';
247
+ }
248
+
230
249
  /**
231
250
  * Triggered after the useWrapperNode config got changed
232
251
  * @param {Boolean} value
@@ -292,7 +311,7 @@ class Base extends Component {
292
311
  }
293
312
 
294
313
  item = {
295
- tag : me.itemTagName,
314
+ tag : me.useHeaders && record.isHeader ? 'dt' : me.itemTagName,
296
315
  cls,
297
316
  id : itemId,
298
317
  tabIndex: -1
@@ -84,6 +84,10 @@ class ListModel extends Model {
84
84
  recordId = view.getItemRecordId(item);
85
85
  index = store.indexOf(recordId) + step;
86
86
 
87
+ while (store.getAt(index)?.isHeader === true) {
88
+ index += step;
89
+ }
90
+
87
91
  if (index < 0) {
88
92
  if (me.stayInList) {
89
93
  index = maxItems - 1;
@@ -95,6 +99,10 @@ class ListModel extends Model {
95
99
  } else if (index >= maxItems) {
96
100
  if (me.stayInList) {
97
101
  index = 0;
102
+
103
+ while (store.getAt(index)?.isHeader === true) {
104
+ index++;
105
+ }
98
106
  } else {
99
107
  preventSelection = true;
100
108
  me.deselectAll();