@db-ux/ngx-core-components 4.13.1-angular-signal-forms5-fe63b55 → 4.13.1-angular-signal-forms6-a1510bb
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.
|
@@ -1425,9 +1425,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
1425
1425
|
const defaultProps$B = {};
|
|
1426
1426
|
class DBCheckbox {
|
|
1427
1427
|
hasValidState() {
|
|
1428
|
+
if (this.validation() === 'no-validation')
|
|
1429
|
+
return false;
|
|
1428
1430
|
return !!(this.validMessage() || this._valid() === 'valid' || this.validation() === "valid");
|
|
1429
1431
|
}
|
|
1430
1432
|
handleValidation() {
|
|
1433
|
+
// validation="no-validation" suppresses ALL validation UI (Signal Forms + native)
|
|
1434
|
+
if (this.validation() === 'no-validation') {
|
|
1435
|
+
this._valid.set(undefined);
|
|
1436
|
+
this._invalidMessage.set('');
|
|
1437
|
+
this._validMessage.set('');
|
|
1438
|
+
this._descByIds.set(undefined);
|
|
1439
|
+
return;
|
|
1440
|
+
}
|
|
1431
1441
|
// Signal Forms validation bridge: errors InputSignal has priority
|
|
1432
1442
|
const signalFormErrors = this.errors();
|
|
1433
1443
|
if (Array.isArray(signalFormErrors) && signalFormErrors.length > 0) {
|
|
@@ -1447,6 +1457,12 @@ class DBCheckbox {
|
|
|
1447
1457
|
this._validMessage.set(DEFAULT_VALID_MESSAGE);
|
|
1448
1458
|
this._invalidMessage.set('');
|
|
1449
1459
|
}
|
|
1460
|
+
// If Signal Forms says "valid" but native validation disagrees, reset _valid
|
|
1461
|
+
// so native validation can take over via CSS :user-invalid selectors
|
|
1462
|
+
if (this._valid() === 'valid' && this._ref()?.nativeElement && !this._ref()?.nativeElement?.validity?.valid) {
|
|
1463
|
+
this._valid.set(undefined);
|
|
1464
|
+
this._validMessage.set('');
|
|
1465
|
+
}
|
|
1450
1466
|
/* For a11y reasons we need to map the correct message with the checkbox */
|
|
1451
1467
|
if (!this._ref()?.nativeElement?.validity.valid ||
|
|
1452
1468
|
this.validation() === "invalid") {
|
|
@@ -1754,8 +1770,8 @@ class DBCheckbox {
|
|
|
1754
1770
|
<label [attr.for]="_id()"
|
|
1755
1771
|
><input
|
|
1756
1772
|
type="checkbox"
|
|
1757
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
1758
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
1773
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
1774
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
1759
1775
|
#_ref
|
|
1760
1776
|
[attr.id]="_id()"
|
|
1761
1777
|
[attr.name]="name()"
|
|
@@ -1812,8 +1828,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
1812
1828
|
<label [attr.for]="_id()"
|
|
1813
1829
|
><input
|
|
1814
1830
|
type="checkbox"
|
|
1815
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
1816
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
1831
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
1832
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
1817
1833
|
#_ref
|
|
1818
1834
|
[attr.id]="_id()"
|
|
1819
1835
|
[attr.name]="name()"
|
|
@@ -2901,6 +2917,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
2901
2917
|
const defaultProps$w = {};
|
|
2902
2918
|
class DBInput {
|
|
2903
2919
|
hasValidState() {
|
|
2920
|
+
if (this.validation() === 'no-validation')
|
|
2921
|
+
return false;
|
|
2904
2922
|
return !!(this.validMessage() || this._valid() === 'valid' || this.validation() === "valid");
|
|
2905
2923
|
}
|
|
2906
2924
|
getPatternAttr() {
|
|
@@ -2912,6 +2930,14 @@ class DBInput {
|
|
|
2912
2930
|
return undefined;
|
|
2913
2931
|
}
|
|
2914
2932
|
handleValidation() {
|
|
2933
|
+
// validation="no-validation" suppresses ALL validation UI (Signal Forms + native)
|
|
2934
|
+
if (this.validation() === 'no-validation') {
|
|
2935
|
+
this._valid.set(undefined);
|
|
2936
|
+
this._invalidMessage.set('');
|
|
2937
|
+
this._validMessage.set('');
|
|
2938
|
+
this._descByIds.set(undefined);
|
|
2939
|
+
return;
|
|
2940
|
+
}
|
|
2915
2941
|
// Signal Forms validation bridge: errors InputSignal has priority
|
|
2916
2942
|
const signalFormErrors = this.errors();
|
|
2917
2943
|
if (Array.isArray(signalFormErrors) && signalFormErrors.length > 0) {
|
|
@@ -2931,6 +2957,12 @@ class DBInput {
|
|
|
2931
2957
|
this._validMessage.set(DEFAULT_VALID_MESSAGE);
|
|
2932
2958
|
this._invalidMessage.set('');
|
|
2933
2959
|
}
|
|
2960
|
+
// If Signal Forms says "valid" but native validation disagrees, reset _valid
|
|
2961
|
+
// so native validation can take over via CSS :user-invalid selectors
|
|
2962
|
+
if (this._valid() === 'valid' && this._ref()?.nativeElement && !this._ref()?.nativeElement?.validity?.valid) {
|
|
2963
|
+
this._valid.set(undefined);
|
|
2964
|
+
this._validMessage.set('');
|
|
2965
|
+
}
|
|
2934
2966
|
/* For a11y reasons we need to map the correct message with the input */
|
|
2935
2967
|
if (!this._ref()?.nativeElement?.validity.valid ||
|
|
2936
2968
|
this.validation() === "invalid") {
|
|
@@ -3285,8 +3317,8 @@ class DBInput {
|
|
|
3285
3317
|
>
|
|
3286
3318
|
<label [attr.for]="_id()">{{label() ?? DEFAULT_LABEL}}</label>
|
|
3287
3319
|
<input
|
|
3288
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
3289
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
3320
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
3321
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
3290
3322
|
[attr.data-field-sizing]="fieldSizing()"
|
|
3291
3323
|
#_ref
|
|
3292
3324
|
[attr.id]="_id()"
|
|
@@ -3374,8 +3406,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
3374
3406
|
>
|
|
3375
3407
|
<label [attr.for]="_id()">{{label() ?? DEFAULT_LABEL}}</label>
|
|
3376
3408
|
<input
|
|
3377
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
3378
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
3409
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
3410
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
3379
3411
|
[attr.data-field-sizing]="fieldSizing()"
|
|
3380
3412
|
#_ref
|
|
3381
3413
|
[attr.id]="_id()"
|
|
@@ -3953,9 +3985,20 @@ class DBCustomSelect {
|
|
|
3953
3985
|
}
|
|
3954
3986
|
}
|
|
3955
3987
|
hasValidState() {
|
|
3988
|
+
if (this.validation() === 'no-validation')
|
|
3989
|
+
return false;
|
|
3956
3990
|
return !!(this.validMessage() || this._valid() === 'valid' || this.validation() === "valid");
|
|
3957
3991
|
}
|
|
3958
3992
|
handleValidation() {
|
|
3993
|
+
// validation="no-validation" suppresses ALL validation UI (Signal Forms + native)
|
|
3994
|
+
if (this.validation() === 'no-validation') {
|
|
3995
|
+
this._valid.set(undefined);
|
|
3996
|
+
this._validity.set(undefined);
|
|
3997
|
+
this._invalidMessage.set('');
|
|
3998
|
+
this._validMessage.set('');
|
|
3999
|
+
this._descByIds.set(undefined);
|
|
4000
|
+
return;
|
|
4001
|
+
}
|
|
3959
4002
|
// Signal Forms validation bridge: errors InputSignal has priority
|
|
3960
4003
|
const signalFormErrors = this.errors();
|
|
3961
4004
|
if (Array.isArray(signalFormErrors) && signalFormErrors.length > 0) {
|
|
@@ -3977,6 +4020,13 @@ class DBCustomSelect {
|
|
|
3977
4020
|
this._validMessage.set(DEFAULT_VALID_MESSAGE);
|
|
3978
4021
|
this._invalidMessage.set('');
|
|
3979
4022
|
}
|
|
4023
|
+
// If Signal Forms says "valid" but native validation disagrees, reset _valid
|
|
4024
|
+
// so native validation can take over via CSS :user-invalid selectors
|
|
4025
|
+
if (this._valid() === 'valid' && this._ref()?.nativeElement && !this._ref()?.nativeElement?.validity?.valid) {
|
|
4026
|
+
this._valid.set(undefined);
|
|
4027
|
+
this._validity.set(undefined);
|
|
4028
|
+
this._validMessage.set('');
|
|
4029
|
+
}
|
|
3980
4030
|
if (this.selectRef()?.nativeElement) {
|
|
3981
4031
|
this.selectRef().nativeElement.value = this.getNativeSelectValue();
|
|
3982
4032
|
}
|
|
@@ -7953,9 +8003,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
7953
8003
|
const defaultProps$f = {};
|
|
7954
8004
|
class DBSelect {
|
|
7955
8005
|
hasValidState() {
|
|
8006
|
+
if (this.validation() === 'no-validation')
|
|
8007
|
+
return false;
|
|
7956
8008
|
return !!(this.validMessage() || this._valid() === 'valid' || this.validation() === "valid");
|
|
7957
8009
|
}
|
|
7958
8010
|
handleValidation() {
|
|
8011
|
+
// validation="no-validation" suppresses ALL validation UI (Signal Forms + native)
|
|
8012
|
+
if (this.validation() === 'no-validation') {
|
|
8013
|
+
this._valid.set(undefined);
|
|
8014
|
+
this._invalidMessage.set('');
|
|
8015
|
+
this._validMessage.set('');
|
|
8016
|
+
this._descByIds.set(undefined);
|
|
8017
|
+
return;
|
|
8018
|
+
}
|
|
7959
8019
|
// Signal Forms validation bridge: errors InputSignal has priority
|
|
7960
8020
|
const signalFormErrors = this.errors();
|
|
7961
8021
|
if (Array.isArray(signalFormErrors) && signalFormErrors.length > 0) {
|
|
@@ -7975,6 +8035,12 @@ class DBSelect {
|
|
|
7975
8035
|
this._validMessage.set(DEFAULT_VALID_MESSAGE);
|
|
7976
8036
|
this._invalidMessage.set('');
|
|
7977
8037
|
}
|
|
8038
|
+
// If Signal Forms says "valid" but native validation disagrees, reset _valid
|
|
8039
|
+
// so native validation can take over via CSS :user-invalid selectors
|
|
8040
|
+
if (this._valid() === 'valid' && this._ref()?.nativeElement && !this._ref()?.nativeElement?.validity?.valid) {
|
|
8041
|
+
this._valid.set(undefined);
|
|
8042
|
+
this._validMessage.set('');
|
|
8043
|
+
}
|
|
7978
8044
|
/* For a11y reasons we need to map the correct message with the select */
|
|
7979
8045
|
if (!this._ref()?.nativeElement?.validity.valid ||
|
|
7980
8046
|
this.validation() === "invalid") {
|
|
@@ -8323,8 +8389,8 @@ class DBSelect {
|
|
|
8323
8389
|
>
|
|
8324
8390
|
<label [attr.for]="_id()">{{label() ?? DEFAULT_LABEL}}</label>
|
|
8325
8391
|
<select
|
|
8326
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
8327
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
8392
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
8393
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
8328
8394
|
#_ref
|
|
8329
8395
|
[required]="getBoolean(required(), 'required')"
|
|
8330
8396
|
[disabled]="getBoolean(disabled(), 'disabled')"
|
|
@@ -8427,8 +8493,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
8427
8493
|
>
|
|
8428
8494
|
<label [attr.for]="_id()">{{label() ?? DEFAULT_LABEL}}</label>
|
|
8429
8495
|
<select
|
|
8430
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
8431
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
8496
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
8497
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
8432
8498
|
#_ref
|
|
8433
8499
|
[required]="getBoolean(required(), 'required')"
|
|
8434
8500
|
[disabled]="getBoolean(disabled(), 'disabled')"
|
|
@@ -8646,9 +8712,19 @@ const StackJustifyContentList = ['space-between', 'start', 'end', 'center'];
|
|
|
8646
8712
|
const defaultProps$d = {};
|
|
8647
8713
|
class DBSwitch {
|
|
8648
8714
|
hasValidState() {
|
|
8715
|
+
if (this.validation() === 'no-validation')
|
|
8716
|
+
return false;
|
|
8649
8717
|
return !!(this.validMessage() || this._valid() === 'valid' || this.validation() === "valid");
|
|
8650
8718
|
}
|
|
8651
8719
|
handleValidation() {
|
|
8720
|
+
// validation="no-validation" suppresses ALL validation UI (Signal Forms + native)
|
|
8721
|
+
if (this.validation() === 'no-validation') {
|
|
8722
|
+
this._valid.set(undefined);
|
|
8723
|
+
this._invalidMessage.set('');
|
|
8724
|
+
this._validMessage.set('');
|
|
8725
|
+
this._descByIds.set(undefined);
|
|
8726
|
+
return;
|
|
8727
|
+
}
|
|
8652
8728
|
// Signal Forms validation bridge: errors InputSignal has priority
|
|
8653
8729
|
const signalFormErrors = this.errors();
|
|
8654
8730
|
if (Array.isArray(signalFormErrors) && signalFormErrors.length > 0) {
|
|
@@ -8668,6 +8744,12 @@ class DBSwitch {
|
|
|
8668
8744
|
this._validMessage.set(DEFAULT_VALID_MESSAGE);
|
|
8669
8745
|
this._invalidMessage.set('');
|
|
8670
8746
|
}
|
|
8747
|
+
// If Signal Forms says "valid" but native validation disagrees, reset _valid
|
|
8748
|
+
// so native validation can take over via CSS :user-invalid selectors
|
|
8749
|
+
if (this._valid() === 'valid' && this._ref()?.nativeElement && !this._ref()?.nativeElement?.validity?.valid) {
|
|
8750
|
+
this._valid.set(undefined);
|
|
8751
|
+
this._validMessage.set('');
|
|
8752
|
+
}
|
|
8671
8753
|
if (!this._ref()?.nativeElement?.validity?.valid ||
|
|
8672
8754
|
this.validation() === "invalid") {
|
|
8673
8755
|
this._descByIds.set(this._invalidMessageId());
|
|
@@ -8954,7 +9036,7 @@ class DBSwitch {
|
|
|
8954
9036
|
[attr.data-hide-label]="getHideProp(showLabel())"
|
|
8955
9037
|
[attr.data-variant]="variant()"
|
|
8956
9038
|
[attr.data-hide-asterisk]="getHideProp(showRequiredAsterisk())"
|
|
8957
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
9039
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
8958
9040
|
[class]="cls('db-switch', className())"
|
|
8959
9041
|
>
|
|
8960
9042
|
<label [attr.for]="_id()"
|
|
@@ -8966,7 +9048,7 @@ class DBSwitch {
|
|
|
8966
9048
|
[checked]="getBoolean(checked(), 'checked')"
|
|
8967
9049
|
[value]="value()"
|
|
8968
9050
|
[disabled]="getBoolean(disabled(), 'disabled')"
|
|
8969
|
-
[attr.aria-invalid]="validation() === 'invalid' ? 'true' : undefined"
|
|
9051
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid' ? 'true' : undefined"
|
|
8970
9052
|
[attr.aria-describedby]="_descByIds()"
|
|
8971
9053
|
[attr.name]="name()"
|
|
8972
9054
|
[required]="getBoolean(required(), 'required')"
|
|
@@ -9019,7 +9101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
9019
9101
|
[attr.data-hide-label]="getHideProp(showLabel())"
|
|
9020
9102
|
[attr.data-variant]="variant()"
|
|
9021
9103
|
[attr.data-hide-asterisk]="getHideProp(showRequiredAsterisk())"
|
|
9022
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
9104
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
9023
9105
|
[class]="cls('db-switch', className())"
|
|
9024
9106
|
>
|
|
9025
9107
|
<label [attr.for]="_id()"
|
|
@@ -9031,7 +9113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
9031
9113
|
[checked]="getBoolean(checked(), 'checked')"
|
|
9032
9114
|
[value]="value()"
|
|
9033
9115
|
[disabled]="getBoolean(disabled(), 'disabled')"
|
|
9034
|
-
[attr.aria-invalid]="validation() === 'invalid' ? 'true' : undefined"
|
|
9116
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid' ? 'true' : undefined"
|
|
9035
9117
|
[attr.aria-describedby]="_descByIds()"
|
|
9036
9118
|
[attr.name]="name()"
|
|
9037
9119
|
[required]="getBoolean(required(), 'required')"
|
|
@@ -11012,9 +11094,19 @@ const TagBehaviorList = ['static', 'removable'];
|
|
|
11012
11094
|
const defaultProps = {};
|
|
11013
11095
|
class DBTextarea {
|
|
11014
11096
|
hasValidState() {
|
|
11097
|
+
if (this.validation() === 'no-validation')
|
|
11098
|
+
return false;
|
|
11015
11099
|
return !!(this.validMessage() || this._valid() === 'valid' || this.validation() === "valid");
|
|
11016
11100
|
}
|
|
11017
11101
|
handleValidation() {
|
|
11102
|
+
// validation="no-validation" suppresses ALL validation UI (Signal Forms + native)
|
|
11103
|
+
if (this.validation() === 'no-validation') {
|
|
11104
|
+
this._valid.set(undefined);
|
|
11105
|
+
this._invalidMessage.set('');
|
|
11106
|
+
this._validMessage.set('');
|
|
11107
|
+
this._descByIds.set(undefined);
|
|
11108
|
+
return;
|
|
11109
|
+
}
|
|
11018
11110
|
// Signal Forms validation bridge: errors InputSignal has priority
|
|
11019
11111
|
const signalFormErrors = this.errors();
|
|
11020
11112
|
if (Array.isArray(signalFormErrors) && signalFormErrors.length > 0) {
|
|
@@ -11034,6 +11126,12 @@ class DBTextarea {
|
|
|
11034
11126
|
this._validMessage.set(DEFAULT_VALID_MESSAGE);
|
|
11035
11127
|
this._invalidMessage.set('');
|
|
11036
11128
|
}
|
|
11129
|
+
// If Signal Forms says "valid" but native validation disagrees, reset _valid
|
|
11130
|
+
// so native validation can take over via CSS :user-invalid selectors
|
|
11131
|
+
if (this._valid() === 'valid' && this._ref()?.nativeElement && !this._ref()?.nativeElement?.validity?.valid) {
|
|
11132
|
+
this._valid.set(undefined);
|
|
11133
|
+
this._validMessage.set('');
|
|
11134
|
+
}
|
|
11037
11135
|
/* For a11y reasons we need to map the correct message with the textarea */
|
|
11038
11136
|
if (!this._ref()?.nativeElement?.validity.valid ||
|
|
11039
11137
|
this.validation() === "invalid") {
|
|
@@ -11347,8 +11445,8 @@ class DBTextarea {
|
|
|
11347
11445
|
>
|
|
11348
11446
|
<label [attr.for]="_id()">{{label() ?? DEFAULT_LABEL}}</label>
|
|
11349
11447
|
<textarea
|
|
11350
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
11351
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
11448
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
11449
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
11352
11450
|
[attr.data-field-sizing]="fieldSizing()"
|
|
11353
11451
|
#_ref
|
|
11354
11452
|
[attr.id]="_id()"
|
|
@@ -11416,8 +11514,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
11416
11514
|
>
|
|
11417
11515
|
<label [attr.for]="_id()">{{label() ?? DEFAULT_LABEL}}</label>
|
|
11418
11516
|
<textarea
|
|
11419
|
-
[attr.aria-invalid]="(_valid() ?? validation()) === 'invalid'"
|
|
11420
|
-
[attr.data-custom-validity]="_valid() ?? validation()"
|
|
11517
|
+
[attr.aria-invalid]="validation() !== 'no-validation' && (_valid() ?? validation()) === 'invalid'"
|
|
11518
|
+
[attr.data-custom-validity]="validation() === 'no-validation' ? 'no-validation' : (_valid() ?? validation())"
|
|
11421
11519
|
[attr.data-field-sizing]="fieldSizing()"
|
|
11422
11520
|
#_ref
|
|
11423
11521
|
[attr.id]="_id()"
|