neo.mjs 4.7.6 → 4.8.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.
@@ -144,6 +144,12 @@ class MainContainer extends ConfigurationViewport {
|
|
144
144
|
labelText: 'required',
|
145
145
|
listeners: {change: me.onConfigChange.bind(me, 'required')},
|
146
146
|
style : {marginTop: '10px'}
|
147
|
+
}, {
|
148
|
+
module : CheckBox,
|
149
|
+
checked : me.exampleComponent.showOptionalText,
|
150
|
+
labelText: 'showOptionalText',
|
151
|
+
listeners: {change: me.onConfigChange.bind(me, 'showOptionalText')},
|
152
|
+
style : {marginTop: '10px'}
|
147
153
|
}, {
|
148
154
|
module : CheckBox,
|
149
155
|
checked : me.exampleComponent.spellCheck,
|
package/package.json
CHANGED
package/src/form/field/Text.mjs
CHANGED
@@ -101,6 +101,10 @@ class Text extends Base {
|
|
101
101
|
* @member {String[]} labelCls_=[]
|
102
102
|
*/
|
103
103
|
labelCls_: [],
|
104
|
+
/**
|
105
|
+
* @member {String} labelOptionalText_=' (Optional)'
|
106
|
+
*/
|
107
|
+
labelOptionalText_: ' (Optional)',
|
104
108
|
/**
|
105
109
|
* Valid values: 'bottom', 'inline', 'left', 'right', 'top'
|
106
110
|
* @member {String} labelPosition_='left'
|
@@ -137,6 +141,10 @@ class Text extends Base {
|
|
137
141
|
* @member {Boolean} required_=false
|
138
142
|
*/
|
139
143
|
required_: false,
|
144
|
+
/**
|
145
|
+
* @member {Boolean} showOptionalText_=false
|
146
|
+
*/
|
147
|
+
showOptionalText_: false,
|
140
148
|
/**
|
141
149
|
* null => Follow the element's default behavior for spell checking
|
142
150
|
* @member {Boolean|null} spellCheck_=false
|
@@ -333,6 +341,16 @@ class Text extends Base {
|
|
333
341
|
me.update();
|
334
342
|
}
|
335
343
|
|
344
|
+
/**
|
345
|
+
* Triggered after the labelOptionalText config got changed
|
346
|
+
* @param {String} value
|
347
|
+
* @param {String} oldValue
|
348
|
+
* @protected
|
349
|
+
*/
|
350
|
+
afterSetLabelOptionalText(value, oldValue) {
|
351
|
+
this.labelText = this.labelText; // triggers a vdom update
|
352
|
+
}
|
353
|
+
|
336
354
|
/**
|
337
355
|
* Triggered after the labelPosition config got changed
|
338
356
|
* @param {String} value
|
@@ -405,7 +423,7 @@ class Text extends Base {
|
|
405
423
|
if (!me.hideLabel) {
|
406
424
|
if (me.labelPosition === 'inline') {
|
407
425
|
if (!isEmpty) {
|
408
|
-
delete me.getCenterBorderEl()
|
426
|
+
delete me.getCenterBorderEl()?.width;
|
409
427
|
}
|
410
428
|
|
411
429
|
me.promiseVdomUpdate().then(() => {
|
@@ -521,8 +539,21 @@ class Text extends Base {
|
|
521
539
|
* @protected
|
522
540
|
*/
|
523
541
|
afterSetRequired(value, oldValue) {
|
524
|
-
this
|
525
|
-
|
542
|
+
let me = this;
|
543
|
+
|
544
|
+
me.validate(); // silent
|
545
|
+
me.changeInputElKey('required', value ? value : null, true); // silent update
|
546
|
+
me.labelText = me.labelText;
|
547
|
+
}
|
548
|
+
|
549
|
+
/**
|
550
|
+
* Triggered after the showOptionalText config got changed
|
551
|
+
* @param {Boolean} value
|
552
|
+
* @param {Boolean} oldValue
|
553
|
+
* @protected
|
554
|
+
*/
|
555
|
+
afterSetShowOptionalText(value, oldValue) {
|
556
|
+
this.labelText = this.labelText; // triggers a vdom update
|
526
557
|
}
|
527
558
|
|
528
559
|
/**
|
@@ -720,6 +751,26 @@ class Text extends Base {
|
|
720
751
|
return this.beforeSetEnumValue(value, oldValue, 'labelPosition');
|
721
752
|
}
|
722
753
|
|
754
|
+
/**
|
755
|
+
* Triggered before the labelText config gets changed
|
756
|
+
* @param {String|null} value
|
757
|
+
* @param {String|null} oldValue
|
758
|
+
* @protected
|
759
|
+
* @returns {String}
|
760
|
+
*/
|
761
|
+
beforeSetLabelText(value, oldValue) {
|
762
|
+
let me = this,
|
763
|
+
labelOptionalText = me.labelOptionalText;
|
764
|
+
|
765
|
+
if (me.showOptionalText && !me.required) {
|
766
|
+
return value + labelOptionalText;
|
767
|
+
} else if (value && value.endsWith(labelOptionalText)) {
|
768
|
+
value = value.replace(labelOptionalText, '');
|
769
|
+
}
|
770
|
+
|
771
|
+
return value;
|
772
|
+
}
|
773
|
+
|
723
774
|
/**
|
724
775
|
* Triggered before the subLabelCls config gets changed
|
725
776
|
* @param {String[]} value
|
@@ -780,8 +831,9 @@ class Text extends Base {
|
|
780
831
|
* Changes the value of a inputEl vdom object attribute or removes it in case it has no value
|
781
832
|
* @param {String} key
|
782
833
|
* @param {Array|Number|Object|String|null} value
|
834
|
+
* @param {Boolean} silent=false
|
783
835
|
*/
|
784
|
-
changeInputElKey(key, value) {
|
836
|
+
changeInputElKey(key, value, silent=false) {
|
785
837
|
let me = this;
|
786
838
|
|
787
839
|
if (value || Neo.isBoolean(value) || value === 0) {
|
@@ -790,7 +842,7 @@ class Text extends Base {
|
|
790
842
|
delete me.getInputEl()[key];
|
791
843
|
}
|
792
844
|
|
793
|
-
me.update();
|
845
|
+
!silent && me.update();
|
794
846
|
}
|
795
847
|
|
796
848
|
/**
|
@@ -31,6 +31,7 @@ class Stylesheet extends Base {
|
|
31
31
|
'createStyleSheet',
|
32
32
|
'deleteCssRules',
|
33
33
|
'insertCssRules',
|
34
|
+
'setCssVariable',
|
34
35
|
'swapStyleSheet'
|
35
36
|
]
|
36
37
|
},
|
@@ -264,6 +265,37 @@ class Stylesheet extends Base {
|
|
264
265
|
}
|
265
266
|
}
|
266
267
|
|
268
|
+
/**
|
269
|
+
* @param {Object} data
|
270
|
+
* @param {String} data.key
|
271
|
+
* @param {String} [data.priority] optionally pass 'important'
|
272
|
+
* @param {String} data.theme
|
273
|
+
* @param {String} data.value
|
274
|
+
*/
|
275
|
+
setCssVariable(data) {
|
276
|
+
let key = data.key,
|
277
|
+
rule, sheet;
|
278
|
+
|
279
|
+
if (!key.startsWith('--')) {
|
280
|
+
key = '--' + key;
|
281
|
+
}
|
282
|
+
|
283
|
+
for (sheet of document.styleSheets) {
|
284
|
+
if (sheet.href.includes(data.theme)) {
|
285
|
+
for (rule of sheet.cssRules) {
|
286
|
+
if (rule.type === 1) { // CSSRule.STYLE_RULE
|
287
|
+
if (rule.style.getPropertyValue(key) !== '') {
|
288
|
+
rule.style.setProperty(key, data.value, data.priority);
|
289
|
+
return true;
|
290
|
+
}
|
291
|
+
}
|
292
|
+
}
|
293
|
+
}
|
294
|
+
}
|
295
|
+
|
296
|
+
return false;
|
297
|
+
}
|
298
|
+
|
267
299
|
/**
|
268
300
|
* @param {Object} data
|
269
301
|
* @param {String} data.href
|