neo.mjs 5.8.0 → 5.9.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.
- package/apps/ServiceWorker.mjs +2 -2
- package/apps/form/view/FormContainer.mjs +2 -1
- package/apps/form/view/pages/Page15.mjs +34 -0
- package/examples/ServiceWorker.mjs +2 -2
- package/package.json +1 -1
- package/resources/examples/data/formSideNav.json +2 -1
- package/src/DefaultConfig.mjs +2 -2
- package/src/form/field/Currency.mjs +54 -0
- package/src/form/field/Number.mjs +14 -2
- package/src/form/field/Text.mjs +22 -2
package/apps/ServiceWorker.mjs
CHANGED
@@ -75,7 +75,8 @@ class FormContainer extends BaseFormContainer {
|
|
75
75
|
{module: () => import('./pages/Page11.mjs')},
|
76
76
|
{module: () => import('./pages/Page12.mjs')},
|
77
77
|
{module: () => import('./pages/Page13.mjs')},
|
78
|
-
{module: () => import('./pages/Page14.mjs')}
|
78
|
+
{module: () => import('./pages/Page14.mjs')},
|
79
|
+
{module: () => import('./pages/Page15.mjs')}
|
79
80
|
]
|
80
81
|
}, {
|
81
82
|
module: Toolbar,
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import CurrencyField from '../../../../src/form/field/Currency.mjs';
|
2
|
+
import FormPageContainer from '../FormPageContainer.mjs';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* @class Form.view.pages.Page15
|
6
|
+
* @extends Form.view.FormPageContainer
|
7
|
+
*/
|
8
|
+
class Page15 extends FormPageContainer {
|
9
|
+
static config = {
|
10
|
+
/**
|
11
|
+
* @member {String} className='Form.view.pages.Page15'
|
12
|
+
* @protected
|
13
|
+
*/
|
14
|
+
className: 'Form.view.pages.Page15',
|
15
|
+
/**
|
16
|
+
* @member {Object[]} items
|
17
|
+
*/
|
18
|
+
items: [{
|
19
|
+
module : CurrencyField,
|
20
|
+
labelText: 'Amount in €',
|
21
|
+
name : 'page15.field1',
|
22
|
+
value : 15.00
|
23
|
+
}, {
|
24
|
+
module : CurrencyField,
|
25
|
+
labelText: 'Amount in $',
|
26
|
+
name : 'page15.field2',
|
27
|
+
value : 16.10
|
28
|
+
}]
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
Neo.applyClassConfig(Page15);
|
33
|
+
|
34
|
+
export default Page15;
|
package/package.json
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
{"id": 15, "cardIndex": 10, "isHeader": false, "isValid": null, "name": "ZipCodeFields"},
|
20
20
|
{"id": 16, "cardIndex": 11, "isHeader": false, "isValid": null, "name": "EmailFields"},
|
21
21
|
{"id": 17, "cardIndex": 12, "isHeader": false, "isValid": null, "name": "UrlFields"},
|
22
|
-
{"id": 18, "cardIndex": 13, "isHeader": false, "isValid": null, "name": "PhoneFields"}
|
22
|
+
{"id": 18, "cardIndex": 13, "isHeader": false, "isValid": null, "name": "PhoneFields"},
|
23
|
+
{"id": 19, "cardIndex": 14, "isHeader": false, "isValid": null, "name": "CurrencyFields"}
|
23
24
|
]
|
24
25
|
}
|
package/src/DefaultConfig.mjs
CHANGED
@@ -236,12 +236,12 @@ const DefaultConfig = {
|
|
236
236
|
useVdomWorker: true,
|
237
237
|
/**
|
238
238
|
* buildScripts/injectPackageVersion.mjs will update this value
|
239
|
-
* @default '5.
|
239
|
+
* @default '5.9.0'
|
240
240
|
* @memberOf! module:Neo
|
241
241
|
* @name config.version
|
242
242
|
* @type String
|
243
243
|
*/
|
244
|
-
version: '5.
|
244
|
+
version: '5.9.0'
|
245
245
|
};
|
246
246
|
|
247
247
|
Object.assign(DefaultConfig, {
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import Number from './Number.mjs';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class Neo.form.field.Currency
|
5
|
+
* @extends Neo.form.field.Number
|
6
|
+
*/
|
7
|
+
class Currency extends Number {
|
8
|
+
static config = {
|
9
|
+
/**
|
10
|
+
* @member {String} className='Neo.form.field.Currency'
|
11
|
+
* @protected
|
12
|
+
*/
|
13
|
+
className: 'Neo.form.field.Currency',
|
14
|
+
/**
|
15
|
+
* @member {String} ntype='currencyfield'
|
16
|
+
* @protected
|
17
|
+
*/
|
18
|
+
ntype: 'currencyfield',
|
19
|
+
/**
|
20
|
+
* @member {Number} stepSize=0.01
|
21
|
+
*/
|
22
|
+
stepSize: 0.01
|
23
|
+
}
|
24
|
+
|
25
|
+
/**
|
26
|
+
* @param {Number|null} value
|
27
|
+
* @returns {Number}
|
28
|
+
*/
|
29
|
+
inputValueAdjustor(value) {
|
30
|
+
if (Neo.isString(value)) {
|
31
|
+
value = parseFloat(value).toFixed(2);
|
32
|
+
|
33
|
+
return parseInt(value.replace('.', '')) / 100
|
34
|
+
}
|
35
|
+
|
36
|
+
return value
|
37
|
+
}
|
38
|
+
|
39
|
+
/**
|
40
|
+
* @param {Number|null} value
|
41
|
+
* @returns {String}
|
42
|
+
*/
|
43
|
+
inputValueRenderer(value) {
|
44
|
+
if (value === null) {
|
45
|
+
return null
|
46
|
+
}
|
47
|
+
|
48
|
+
return value.toFixed(2)
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
Neo.applyClassConfig(Currency);
|
53
|
+
|
54
|
+
export default Currency;
|
@@ -243,6 +243,18 @@ class Number extends Text {
|
|
243
243
|
return value
|
244
244
|
}
|
245
245
|
|
246
|
+
/**
|
247
|
+
* @param {Number|null} value
|
248
|
+
* @returns {Boolean}
|
249
|
+
*/
|
250
|
+
fitsStepSize(value) {
|
251
|
+
if (value === null) {
|
252
|
+
return true
|
253
|
+
}
|
254
|
+
|
255
|
+
return (parseInt(value.toString().replace('.', '')) * (1 / this.stepSize)) % 1 === 0
|
256
|
+
}
|
257
|
+
|
246
258
|
/**
|
247
259
|
* @returns {Boolean}
|
248
260
|
*/
|
@@ -261,7 +273,7 @@ class Number extends Text {
|
|
261
273
|
return false;
|
262
274
|
}
|
263
275
|
|
264
|
-
if ((value
|
276
|
+
if (!me.fitsStepSize(value)) {
|
265
277
|
return false;
|
266
278
|
}
|
267
279
|
|
@@ -393,7 +405,7 @@ class Number extends Text {
|
|
393
405
|
} else if (Neo.isNumber(minValue) && isNumber && value < minValue) {
|
394
406
|
me._error = me.errorTextMinValue(errorParam);
|
395
407
|
returnValue = false;
|
396
|
-
} else if ((value
|
408
|
+
} else if (!me.fitsStepSize(value)) {
|
397
409
|
me._error = me.errorTextStepSize(errorParam);
|
398
410
|
returnValue = false;
|
399
411
|
}
|
package/src/form/field/Text.mjs
CHANGED
@@ -780,7 +780,7 @@ class Text extends Base {
|
|
780
780
|
|
781
781
|
me.silentVdomUpdate = true;
|
782
782
|
|
783
|
-
me.getInputEl().value = value;
|
783
|
+
me.getInputEl().value = me.inputValueRenderer(value);
|
784
784
|
|
785
785
|
me.validate(); // silent
|
786
786
|
|
@@ -1104,6 +1104,26 @@ class Text extends Base {
|
|
1104
1104
|
return false
|
1105
1105
|
}
|
1106
1106
|
|
1107
|
+
/**
|
1108
|
+
* Transform an input node value before applied to this.value.
|
1109
|
+
* Override as needed
|
1110
|
+
* @param {*} value
|
1111
|
+
* @returns {*}
|
1112
|
+
*/
|
1113
|
+
inputValueAdjustor(value) {
|
1114
|
+
return value
|
1115
|
+
}
|
1116
|
+
|
1117
|
+
/**
|
1118
|
+
* Transform a value before getting rendered.
|
1119
|
+
* Override as needed
|
1120
|
+
* @param {*} value
|
1121
|
+
* @returns {*}
|
1122
|
+
*/
|
1123
|
+
inputValueRenderer(value) {
|
1124
|
+
return value
|
1125
|
+
}
|
1126
|
+
|
1107
1127
|
/**
|
1108
1128
|
* @returns {Boolean}
|
1109
1129
|
*/
|
@@ -1202,7 +1222,7 @@ class Text extends Base {
|
|
1202
1222
|
vnode.vnode.attributes.value = value;
|
1203
1223
|
}
|
1204
1224
|
|
1205
|
-
|
1225
|
+
me.value = me.inputValueAdjustor(value)
|
1206
1226
|
}
|
1207
1227
|
|
1208
1228
|
/**
|