neo.mjs 4.8.8 → 4.8.9
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.
@@ -49,6 +49,12 @@ class MainContainer extends ConfigurationViewport {
|
|
49
49
|
listeners: {change: me.onConfigChange.bind(me, 'error')},
|
50
50
|
reference: 'error-field',
|
51
51
|
value : me.exampleComponent.error
|
52
|
+
}, {
|
53
|
+
module : TextField,
|
54
|
+
clearable: true,
|
55
|
+
labelText: 'errorTextRequired',
|
56
|
+
listeners: {change: me.onConfigChange.bind(me, 'errorTextRequired')},
|
57
|
+
value : me.exampleComponent.errorTextRequired
|
52
58
|
}, {
|
53
59
|
module : CheckBox,
|
54
60
|
checked : me.exampleComponent.hideLabel,
|
package/package.json
CHANGED
@@ -88,6 +88,20 @@ class Picker extends Text {
|
|
88
88
|
}]
|
89
89
|
}}
|
90
90
|
|
91
|
+
/**
|
92
|
+
* @param {Object} config
|
93
|
+
*/
|
94
|
+
construct(config) {
|
95
|
+
super.construct(config);
|
96
|
+
|
97
|
+
let me = this;
|
98
|
+
|
99
|
+
me.addDomListeners({
|
100
|
+
click: me.onInputClick,
|
101
|
+
scope: me
|
102
|
+
});
|
103
|
+
}
|
104
|
+
|
91
105
|
/**
|
92
106
|
* Triggered after the editable config got changed
|
93
107
|
* @param {Boolean} value
|
@@ -244,6 +258,20 @@ class Picker extends Text {
|
|
244
258
|
}
|
245
259
|
}
|
246
260
|
|
261
|
+
/**
|
262
|
+
* @param {Object} data
|
263
|
+
*/
|
264
|
+
onInputClick(data) {
|
265
|
+
let me = this;
|
266
|
+
|
267
|
+
if (!me.editable) {
|
268
|
+
me.togglePicker();
|
269
|
+
|
270
|
+
// stay in sync to the trigger-click logic
|
271
|
+
!me.pickerIsMounted && me.focus()
|
272
|
+
}
|
273
|
+
}
|
274
|
+
|
247
275
|
/**
|
248
276
|
* @param {Object} data
|
249
277
|
* @param {Function} [callback]
|
@@ -267,13 +295,7 @@ class Picker extends Text {
|
|
267
295
|
* @protected
|
268
296
|
*/
|
269
297
|
onPickerTriggerClick() {
|
270
|
-
|
271
|
-
|
272
|
-
if (me.pickerIsMounted) {
|
273
|
-
me.hidePicker();
|
274
|
-
} else {
|
275
|
-
me.getClientRectsThenShow();
|
276
|
-
}
|
298
|
+
this.editable && this.togglePicker();
|
277
299
|
}
|
278
300
|
|
279
301
|
/**
|
@@ -296,6 +318,19 @@ class Picker extends Text {
|
|
296
318
|
|
297
319
|
picker.render(true);
|
298
320
|
}
|
321
|
+
|
322
|
+
/**
|
323
|
+
*
|
324
|
+
*/
|
325
|
+
togglePicker() {
|
326
|
+
let me = this;
|
327
|
+
|
328
|
+
if (me.pickerIsMounted) {
|
329
|
+
me.hidePicker();
|
330
|
+
} else {
|
331
|
+
me.getClientRectsThenShow();
|
332
|
+
}
|
333
|
+
}
|
299
334
|
}
|
300
335
|
|
301
336
|
Neo.applyClassConfig(Picker);
|
package/src/form/field/Text.mjs
CHANGED
@@ -10,6 +10,20 @@ import VNodeUtil from '../../util/VNode.mjs';
|
|
10
10
|
* @extends Neo.form.field.Base
|
11
11
|
*/
|
12
12
|
class Text extends Base {
|
13
|
+
/**
|
14
|
+
* data passes maxLength, minLength & valueLength properties
|
15
|
+
* @member {Function} errorTextMaxLength=data=>`Max length violation: ${valueLength} / ${maxLength}`
|
16
|
+
*/
|
17
|
+
errorTextMaxLength = data => `Max length violation: ${data.valueLength} / ${data.maxLength}`
|
18
|
+
/**
|
19
|
+
* data passes maxLength, minLength & valueLength properties
|
20
|
+
* @member {Function} errorTextMinLength=data=>`Min length violation: ${data.valueLength} / ${data.minLength}`
|
21
|
+
*/
|
22
|
+
errorTextMinLength = data => `Min length violation: ${data.valueLength} / ${data.minLength}`
|
23
|
+
/**
|
24
|
+
* @member {String} errorTextRequired='Required'
|
25
|
+
*/
|
26
|
+
errorTextRequired = 'Required'
|
13
27
|
/**
|
14
28
|
* Set this value to false, in case a field should display errors up front
|
15
29
|
* @member {Boolean} validBeforeMount=true
|
@@ -1275,19 +1289,20 @@ class Text extends Base {
|
|
1275
1289
|
returnValue = true,
|
1276
1290
|
value = me.value,
|
1277
1291
|
valueLength = value?.toString().length,
|
1278
|
-
isEmpty = !value || valueLength < 1
|
1292
|
+
isEmpty = !value || valueLength < 1,
|
1293
|
+
errorParam = {maxLength, minLength, valueLength};
|
1279
1294
|
|
1280
1295
|
if (required && isEmpty) {
|
1281
|
-
me[errorField] =
|
1296
|
+
me[errorField] = me.errorTextRequired;
|
1282
1297
|
returnValue = false;
|
1283
1298
|
} else if (Neo.isNumber(maxLength) && valueLength > maxLength) {
|
1284
1299
|
if (required || !isEmpty) {
|
1285
|
-
me[errorField] =
|
1300
|
+
me[errorField] = me.errorTextMaxLength(errorParam);
|
1286
1301
|
returnValue = false;
|
1287
1302
|
}
|
1288
1303
|
} else if (Neo.isNumber(minLength) && valueLength < minLength) {
|
1289
1304
|
if (required || !isEmpty) {
|
1290
|
-
me[errorField] =
|
1305
|
+
me[errorField] = me.errorTextMinLength(errorParam);
|
1291
1306
|
returnValue = false;
|
1292
1307
|
}
|
1293
1308
|
}
|