neo.mjs 5.3.15 → 5.3.17

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.3.15'
23
+ * @member {String} version='5.3.17'
24
24
  */
25
- version: '5.3.15'
25
+ version: '5.3.17'
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.3.15'
23
+ * @member {String} version='5.3.17'
24
24
  */
25
- version: '5.3.15'
25
+ version: '5.3.17'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "5.3.15",
3
+ "version": "5.3.17",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -237,12 +237,12 @@ const DefaultConfig = {
237
237
  useVdomWorker: true,
238
238
  /**
239
239
  * buildScripts/injectPackageVersion.mjs will update this value
240
- * @default '5.3.15'
240
+ * @default '5.3.17'
241
241
  * @memberOf! module:Neo
242
242
  * @name config.version
243
243
  * @type String
244
244
  */
245
- version: '5.3.15'
245
+ version: '5.3.17'
246
246
  };
247
247
 
248
248
  Object.assign(DefaultConfig, {
@@ -32,6 +32,20 @@ class Number extends Text {
32
32
  * @member {String[]} baseCls=['neo-numberfield','neo-textfield']
33
33
  */
34
34
  baseCls: ['neo-numberfield', 'neo-textfield'],
35
+ /**
36
+ * data passes maxLength, minLength & valueLength properties
37
+ * @member {Function} errorTextMaxValue=data=>`Max value violation: ${data.value} / ${data.maxValue}`
38
+ */
39
+ errorTextMaxValue: data => `Max value violation: ${data.value} / ${data.maxValue}`,
40
+ /**
41
+ * data passes maxLength, minLength & valueLength properties
42
+ * @member {Function} errorTextMinValue=data=>`Min value violation: ${data.value} / ${data.minValue}`
43
+ */
44
+ errorTextMinValue: data => `Min value violation: ${data.value} / ${data.minValue}`,
45
+ /**
46
+ * @member {String} errorTextStepSize='Required'
47
+ */
48
+ errorTextStepSize: data => `step-size violation: ${data.value} / ${data.stepSize}`,
35
49
  /**
36
50
  * @member {Number[]|null} excluded=null
37
51
  */
@@ -322,6 +336,47 @@ class Number extends Text {
322
336
 
323
337
  me.triggers = triggers;
324
338
  }
339
+
340
+ /**
341
+ * Checks for client-side field errors
342
+ * @param {Boolean} silent=true
343
+ * @returns {Boolean} Returns true in case there are no client-side errors
344
+ */
345
+ validate(silent=true) {
346
+ let me = this,
347
+ errorField = silent ? '_error' : 'error',
348
+ value = me.value,
349
+ isNumber = Neo.isNumber(value),
350
+ maxValue = me.maxValue,
351
+ minValue = me.minValue,
352
+ stepSize = me.stepSize,
353
+ returnValue = true,
354
+ errorParam = {maxValue, minValue, stepSize, value};
355
+
356
+ if (!silent) {
357
+ // in case we manually call validate(false) on a form or field before it is mounted, we do want to see errors.
358
+ me.clean = false;
359
+ }
360
+
361
+ if (Neo.isNumber(maxValue) && isNumber && value > maxValue) {
362
+ me[errorField] = me.errorTextMaxValue(errorParam);
363
+ returnValue = false;
364
+ } else if (Neo.isNumber(minValue) && isNumber && value < minValue) {
365
+ me[errorField] = me.errorTextMinValue(errorParam);
366
+ returnValue = false;
367
+ } else if (value % me.stepSize !== 0) {
368
+ me[errorField] = me.errorTextStepSize(errorParam);
369
+ returnValue = false;
370
+ }
371
+
372
+ if (returnValue) {
373
+ me[errorField] = null;
374
+ }
375
+
376
+ !me.clean && me.updateError(me[errorField], silent);
377
+
378
+ return !returnValue ? false : super.validate(silent);
379
+ }
325
380
  }
326
381
 
327
382
  Neo.applyClassConfig(Number);
@@ -1356,7 +1356,7 @@ class Text extends Base {
1356
1356
  me[errorField] = null;
1357
1357
  }
1358
1358
 
1359
- silent && me.updateError(me[errorField], true);
1359
+ !me.clean && me.updateError(me[errorField], silent);
1360
1360
 
1361
1361
  return !returnValue ? false : super.validate(silent);
1362
1362
  }