neo.mjs 5.6.5 → 5.6.7

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.6.5'
23
+ * @member {String} version='5.6.7'
24
24
  */
25
- version: '5.6.5'
25
+ version: '5.6.7'
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.6.5'
23
+ * @member {String} version='5.6.7'
24
24
  */
25
- version: '5.6.5'
25
+ version: '5.6.7'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "5.6.5",
3
+ "version": "5.6.7",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -52,14 +52,14 @@
52
52
  "envinfo": "^7.8.1",
53
53
  "fs-extra": "^11.1.1",
54
54
  "highlightjs-line-numbers.js": "^2.8.0",
55
- "inquirer": "^9.2.0",
55
+ "inquirer": "^9.2.2",
56
56
  "neo-jsdoc": "^1.0.1",
57
57
  "neo-jsdoc-x": "^1.0.5",
58
58
  "postcss": "^8.4.23",
59
59
  "sass": "^1.62.1",
60
- "webpack": "^5.81.0",
61
- "webpack-cli": "^5.0.2",
62
- "webpack-dev-server": "4.13.3",
60
+ "webpack": "^5.82.0",
61
+ "webpack-cli": "^5.1.0",
62
+ "webpack-dev-server": "4.15.0",
63
63
  "webpack-hook-plugin": "^1.0.7",
64
64
  "webpack-node-externals": "^3.0.0"
65
65
  },
@@ -236,12 +236,12 @@ const DefaultConfig = {
236
236
  useVdomWorker: true,
237
237
  /**
238
238
  * buildScripts/injectPackageVersion.mjs will update this value
239
- * @default '5.6.5'
239
+ * @default '5.6.7'
240
240
  * @memberOf! module:Neo
241
241
  * @name config.version
242
242
  * @type String
243
243
  */
244
- version: '5.6.5'
244
+ version: '5.6.7'
245
245
  };
246
246
 
247
247
  Object.assign(DefaultConfig, {
@@ -1251,6 +1251,12 @@ class Base extends CoreBase {
1251
1251
  * @returns {Neo.component.Base|null}
1252
1252
  */
1253
1253
  getReference(value) {
1254
+ let controller = this.getController();
1255
+
1256
+ if (controller) {
1257
+ return controller.getReference(value)
1258
+ }
1259
+
1254
1260
  return this.down({reference: value})
1255
1261
  }
1256
1262
 
@@ -141,7 +141,7 @@ class Base extends Component {
141
141
  setTimeout(() => {
142
142
  let items = this.items,
143
143
  i = 0,
144
- len = items.length;
144
+ len = items?.length || 0;
145
145
 
146
146
  for (; i < len; i++) {
147
147
  if (!items[i].vdom.removeDom) {
@@ -26,6 +26,10 @@ class Phone extends Text {
26
26
  * @member {RegExp|null} inputPattern=/^\+?\(?[0-9]+\)?([\-\s\.]?[/0-9]+)*$/
27
27
  */
28
28
  inputPattern: /^\+?\(?[0-9]+\)?([\-\s\.]?[/0-9]+)*$/,
29
+ /**
30
+ * @member {Boolean} inputPatternDOM=false
31
+ */
32
+ inputPatternDOM: false,
29
33
  /**
30
34
  * Value for the inputType_ textfield config
31
35
  * @member {String} inputType='tel'
@@ -215,7 +215,13 @@ class Picker extends Text {
215
215
  * @param args
216
216
  */
217
217
  destroy(...args) {
218
- this.picker?.destroy();
218
+ let picker = this.picker;
219
+
220
+ if (this.pickerIsMounted) {
221
+ picker?.unmount();
222
+ }
223
+
224
+ picker?.destroy();
219
225
  super.destroy(...args);
220
226
  }
221
227
 
@@ -105,6 +105,13 @@ class Text extends Base {
105
105
  * @member {RegExp|null} inputPattern_=null
106
106
  */
107
107
  inputPattern_: null,
108
+ /**
109
+ * If false, the inputPattern will only get validated via JavaScript, but not getting applied on DOM level.
110
+ * The regex support for input based patterns is not fully there yet, so feel free to disable this feature
111
+ * if needed (E.g. form.field.Phone).
112
+ * @member {Boolean} inputPatternDOM=true
113
+ */
114
+ inputPatternDOM: true,
108
115
  /**
109
116
  * @member {String} inputType_='text'
110
117
  */
@@ -357,12 +364,14 @@ class Text extends Base {
357
364
  * @protected
358
365
  */
359
366
  afterSetInputPattern(value, oldValue) {
360
- if (value) {
361
- value = value.toString();
362
- value = value.substring(1, value.length - 1);
363
- }
367
+ if (this.inputPatternDOM) {
368
+ if (value) {
369
+ value = value.toString();
370
+ value = value.substring(1, value.length - 1);
371
+ }
364
372
 
365
- this.changeInputElKey('pattern', value)
373
+ this.changeInputElKey('pattern', value)
374
+ }
366
375
  }
367
376
 
368
377
  /**
@@ -36,6 +36,11 @@ class ZipCode extends Text {
36
36
  * @member {Neo.form.field.Base|String|null} countryField_=null
37
37
  */
38
38
  countryField_: null,
39
+ /**
40
+ * The data.Model field inside the related country field which provides the country code (e.g. 'DE')
41
+ * @member {String} countryKeyProperty='id'
42
+ */
43
+ countryKeyProperty: 'id',
39
44
  /**
40
45
  * data passes inputPattern, maxLength, minLength & valueLength properties
41
46
  * @member {Function} errorTextInputPattern=data=>`Not a valid zip code`
@@ -99,7 +104,7 @@ class ZipCode extends Text {
99
104
  * @param {Object} data
100
105
  */
101
106
  onCountryFieldChange(data) {
102
- this.countryCode = data.record?.[data.component.valueField];
107
+ this.countryCode = data.record?.[this.countryKeyProperty];
103
108
  }
104
109
  }
105
110
 
@@ -411,7 +411,7 @@ class Container extends BaseContainer {
411
411
  * @param {Boolean} silent=false
412
412
  * @returns {Neo.component.Base|Neo.component.Base[]}
413
413
  */
414
- insert(index, item, silent=false) {console.log('insert', this.id)
414
+ insert(index, item, silent=false) {
415
415
  let me = this,
416
416
  cardContainer = me.getCardContainer(),
417
417
  tabBar = me.getTabBar(),