neo.mjs 4.0.59 → 4.0.62

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.0.59",
3
+ "version": "4.0.62",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -57,7 +57,7 @@
57
57
  "sass": "^1.53.0",
58
58
  "webpack": "^5.73.0",
59
59
  "webpack-cli": "^4.10.0",
60
- "webpack-dev-server": "4.9.2",
60
+ "webpack-dev-server": "4.9.3",
61
61
  "webpack-hook-plugin": "^1.0.7",
62
62
  "webpack-node-externals": "^3.0.0"
63
63
  },
@@ -98,7 +98,10 @@ const DefaultConfig = {
98
98
  /**
99
99
  * Add addons for the main thread
100
100
  * Possible values: AmCharts, AnalyticsByGoogle, DragDrop, HighlightJS, LocalStorage, MapboxGL, Markdown, Siesta, Stylesheet, WindowPosition
101
- * (src/main/addon)
101
+ * (src/main/addon) contains all framework related options.
102
+ * You can also create your own addons within your workspace scope. Make sure to put them inside 'src/main/addon/'
103
+ * and prefix them with 'WS/' inside your neo-config.json file.
104
+ * Example: ['DragDrop', 'Stylesheet', 'WS/MyAddon']
102
105
  * @default ['DragDrop','Stylesheet']
103
106
  * @memberOf! module:Neo
104
107
  * @name config.mainThreadAddons
package/src/Main.mjs CHANGED
@@ -215,7 +215,11 @@ class Main extends core.Base {
215
215
  }
216
216
 
217
217
  mainThreadAddons.forEach(addon => {
218
- imports.push(import(`./main/addon/${addon}.mjs`));
218
+ if (addon.startsWith('WS/')) {
219
+ imports.push(import(`../../../src/main/addon/${addon.substr(3)}.mjs`));
220
+ } else {
221
+ imports.push(import(`./main/addon/${addon}.mjs`));
222
+ }
219
223
  });
220
224
 
221
225
  modules = await Promise.all(imports);
@@ -112,7 +112,7 @@ class Base extends Panel {
112
112
  /**
113
113
  * @member {String} title='Dialog Title'
114
114
  */
115
- title: 'Dialog Title',
115
+ title_: 'Dialog Title',
116
116
  /**
117
117
  * @member {Object} _vdom
118
118
  */
@@ -270,6 +270,18 @@ class Base extends Panel {
270
270
  });
271
271
  }
272
272
 
273
+ /**
274
+ * Triggered after the title config got changed
275
+ * @param {String} value
276
+ * @param {String} oldValue
277
+ * @protected
278
+ */
279
+ afterSetTitle(value, oldValue) {
280
+ if (oldValue) {
281
+ this.down({flag: 'title-label'}).text = value;
282
+ }
283
+ }
284
+
273
285
  /**
274
286
  *
275
287
  */
@@ -399,6 +411,7 @@ class Base extends Panel {
399
411
  id : me.getHeaderToolbarId(),
400
412
  items: [{
401
413
  ntype: 'label',
414
+ flag : 'title-label',
402
415
  text : me.title
403
416
  }, '->', {
404
417
  iconCls: 'far fa-window-maximize',
@@ -64,7 +64,21 @@ class Container extends BaseContainer {
64
64
  }
65
65
 
66
66
  /**
67
- * @returns {Object} values
67
+ * @returns {Object}
68
+ */
69
+ getSubmitValues() {
70
+ let fields = this.getFields(),
71
+ values = {};
72
+
73
+ fields.forEach(item => {
74
+ values[item.name || item.id] = item.getSubmitValue();
75
+ });
76
+
77
+ return values;
78
+ }
79
+
80
+ /**
81
+ * @returns {Object}
68
82
  */
69
83
  getValues() {
70
84
  let fields = this.getFields(),
@@ -109,7 +109,13 @@ class Select extends Picker {
109
109
  * Display the first matching result while typing
110
110
  * @member {Boolean} typeAhead_=true
111
111
  */
112
- typeAhead_: true
112
+ typeAhead_: true,
113
+ /**
114
+ * This config should point to the store keyProperty or a different model field,
115
+ * which you want to submit instead
116
+ * @member {Number|String} valueField='id'
117
+ */
118
+ valueField: 'id'
113
119
  }}
114
120
 
115
121
  /**
@@ -338,6 +344,15 @@ class Select extends Picker {
338
344
  return recordKey && this.store.get(list.getItemRecordId(recordKey)) || null;
339
345
  }
340
346
 
347
+ /**
348
+ * @returns {Number|String}
349
+ */
350
+ getSubmitValue() {
351
+ let me = this;
352
+
353
+ return me.record?.[me.valueField] || me.value;
354
+ }
355
+
341
356
  /**
342
357
  * @param {Object} data
343
358
  * @protected
@@ -463,7 +478,7 @@ class Select extends Picker {
463
478
 
464
479
  me.fire('select', {
465
480
  record,
466
- value : record[displayField]
481
+ value: record[displayField]
467
482
  });
468
483
  }
469
484
  }