@vsn-ux/ngx-gaia 0.9.3 → 0.9.5
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/DOCS.md +995 -0
- package/fesm2022/vsn-ux-ngx-gaia.mjs +139 -50
- package/fesm2022/vsn-ux-ngx-gaia.mjs.map +1 -1
- package/index.d.ts +77 -18
- package/package.json +1 -1
|
@@ -561,6 +561,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
561
561
|
}] });
|
|
562
562
|
|
|
563
563
|
const GA_FORM_CONTROL_ADAPTER = new InjectionToken('ga-form-control-adapter');
|
|
564
|
+
/**
|
|
565
|
+
* @internal - This function is for internal library use only
|
|
566
|
+
*/
|
|
564
567
|
function injectNgControlState({ implicitChildNgControl, explicitNgControl, explicitNgForm, } = {}) {
|
|
565
568
|
const gaFormControlAdapter = inject(GA_FORM_CONTROL_ADAPTER, {
|
|
566
569
|
optional: true,
|
|
@@ -605,7 +608,7 @@ function injectNgControlState({ implicitChildNgControl, explicitNgControl, expli
|
|
|
605
608
|
}
|
|
606
609
|
const ngControl = explicitNgControl ??
|
|
607
610
|
implicitChildNgControl?.() ??
|
|
608
|
-
injector.get(NgControl, null, {
|
|
611
|
+
injector.get(NgControl, null, { optional: true });
|
|
609
612
|
if (ngControl?.control) {
|
|
610
613
|
const updateStatuses = () => {
|
|
611
614
|
ngControlErrors.set(ngControl.errors);
|
|
@@ -1244,10 +1247,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
1244
1247
|
}, template: "<div class=\"ga-calendar__header\">\n <div class=\"ga-calendar__month-year\">\n <button\n type=\"button\"\n class=\"ga-calendar__month-year-button\"\n (click)=\"toggleMonthView()\"\n [attr.aria-label]=\"i18n.selectMonthLabel\"\n >\n {{ getMonthName(viewDate().month) }}\n <ga-icon\n [icon]=\"viewMode() === 'month' ? icons.ChevronUp : icons.ChevronDown\"\n size=\"16\"\n />\n </button>\n <button\n type=\"button\"\n class=\"ga-calendar__month-year-button\"\n (click)=\"toggleYearView()\"\n [attr.aria-label]=\"i18n.selectYearLabel\"\n >\n {{ viewDate().year }}\n <ga-icon\n [icon]=\"viewMode() === 'year' ? icons.ChevronUp : icons.ChevronDown\"\n size=\"16\"\n />\n </button>\n </div>\n @if (viewMode() !== 'month') {\n <div class=\"ga-calendar__navigation\">\n <button\n type=\"button\"\n class=\"ga-calendar__navigation-button\"\n (click)=\"navigatePrevious()\"\n [attr.aria-label]=\"i18n.previousLabel\"\n >\n <ga-icon [icon]=\"icons.ChevronLeft\" size=\"24\" />\n </button>\n <button\n type=\"button\"\n class=\"ga-calendar__navigation-button\"\n (click)=\"navigateNext()\"\n [attr.aria-label]=\"i18n.nextLabel\"\n >\n <ga-icon [icon]=\"icons.ChevronRight\" size=\"24\" />\n </button>\n </div>\n }\n</div>\n\n@switch (viewMode()) {\n @case ('day') {\n <div class=\"ga-calendar__weekdays\">\n @for (day of weekDays(); track day) {\n <div class=\"ga-calendar__weekday\">{{ day }}</div>\n }\n </div>\n <div class=\"ga-calendar__selection ga-calendar__selection--day\">\n @for (\n dateStruct of calendarDays();\n track dateStruct.year + '-' + dateStruct.month + '-' + dateStruct.day\n ) {\n <button\n type=\"button\"\n class=\"ga-calendar__day\"\n [class.ga-calendar__day--selected]=\"isSelected(dateStruct)\"\n [class.ga-calendar__day--current]=\"isToday(dateStruct)\"\n [class.ga-calendar__day--disabled]=\"isDateDisabled(dateStruct)\"\n [class.ga-calendar__day--weekend]=\"isWeekend(dateStruct)\"\n [disabled]=\"isDateDisabled(dateStruct)\"\n (click)=\"selectDate(dateStruct)\"\n >\n {{ dateStruct.day }}\n </button>\n }\n </div>\n }\n @case ('month') {\n <div class=\"ga-calendar__selection ga-calendar__selection--month\">\n @for (month of months(); track month.index) {\n <button\n type=\"button\"\n class=\"ga-calendar__month\"\n [class.ga-calendar__month--selected]=\"isSelectedMonth(month.index)\"\n [class.ga-calendar__month--disabled]=\"isMonthDisabled(month.index)\"\n [disabled]=\"isMonthDisabled(month.index)\"\n (click)=\"selectMonth(month.index)\"\n >\n {{ month.shortName }}\n </button>\n }\n </div>\n }\n @case ('year') {\n <div class=\"ga-calendar__selection ga-calendar__selection--year\">\n @for (year of years(); track year) {\n <button\n type=\"button\"\n class=\"ga-calendar__year\"\n [class.ga-calendar__year--selected]=\"isSelectedYear(year)\"\n [class.ga-calendar__year--disabled]=\"isYearDisabled(year)\"\n [disabled]=\"isYearDisabled(year)\"\n (click)=\"selectYear(year)\"\n >\n {{ year }}\n </button>\n }\n </div>\n }\n}\n", styles: [":host{display:block}\n"] }]
|
|
1245
1248
|
}] });
|
|
1246
1249
|
|
|
1250
|
+
/**
|
|
1251
|
+
* @internal - Internal service for form field coordination
|
|
1252
|
+
*/
|
|
1247
1253
|
class GaFormFieldConnector {
|
|
1248
1254
|
controlDisabled = signal(false);
|
|
1249
1255
|
controlId = signal(null);
|
|
1250
1256
|
labelId = signal(null);
|
|
1257
|
+
control = signal(null);
|
|
1251
1258
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFormFieldConnector, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1252
1259
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFormFieldConnector });
|
|
1253
1260
|
}
|
|
@@ -1721,6 +1728,8 @@ class GaDatepickerInputDirective {
|
|
|
1721
1728
|
if (emitToNgModel) {
|
|
1722
1729
|
this.onNgTouchedFn?.();
|
|
1723
1730
|
this.onNgChangeFn?.(value);
|
|
1731
|
+
this.dateInput.emit(value);
|
|
1732
|
+
this.dateChange.emit(value);
|
|
1724
1733
|
}
|
|
1725
1734
|
}
|
|
1726
1735
|
// ControlValueAccessor implementation
|
|
@@ -2031,49 +2040,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
2031
2040
|
}]
|
|
2032
2041
|
}] });
|
|
2033
2042
|
|
|
2034
|
-
const
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2043
|
+
const GA_FORM_ERRORS = new InjectionToken('GA_FORM_ERRORS', { providedIn: 'root', factory: () => ({}) });
|
|
2044
|
+
/**
|
|
2045
|
+
* Provides global form error messages that can be used across the application.
|
|
2046
|
+
* These errors will be displayed when a form control has validation errors
|
|
2047
|
+
* but no specific gaError directive template is provided.
|
|
2048
|
+
*
|
|
2049
|
+
* @param config - Either a static record of error messages or a factory function
|
|
2050
|
+
* @returns EnvironmentProviders for configuring global form errors
|
|
2051
|
+
*
|
|
2052
|
+
* @example
|
|
2053
|
+
* ```ts
|
|
2054
|
+
* // Static configuration
|
|
2055
|
+
* provideGaFormErrors({
|
|
2056
|
+
* required: 'This field is required',
|
|
2057
|
+
* email: 'Please enter a valid email address',
|
|
2058
|
+
* minlength: 'Input is too short'
|
|
2059
|
+
* })
|
|
2060
|
+
*
|
|
2061
|
+
* // Dynamic configuration with functions that access error data
|
|
2062
|
+
* provideGaFormErrors({
|
|
2063
|
+
* required: 'This field is required',
|
|
2064
|
+
* minlength: (error) => `Minimum ${error.requiredLength} characters required`,
|
|
2065
|
+
* pattern: (error) => `Input format is invalid. Expected pattern: ${error.requiredPattern}`
|
|
2066
|
+
* })
|
|
2067
|
+
*
|
|
2068
|
+
* // Factory function for lazy evaluation
|
|
2069
|
+
* provideGaFormErrors(() => ({
|
|
2070
|
+
* required: translateService.get('errors.required'),
|
|
2071
|
+
* email: translateService.get('errors.email')
|
|
2072
|
+
* }))
|
|
2073
|
+
* ```
|
|
2074
|
+
*/
|
|
2075
|
+
function provideGaFormErrors(config) {
|
|
2076
|
+
return makeEnvironmentProviders([
|
|
2077
|
+
typeof config === 'function'
|
|
2078
|
+
? { provide: GA_FORM_ERRORS, useFactory: config }
|
|
2079
|
+
: { provide: GA_FORM_ERRORS, useValue: config },
|
|
2080
|
+
]);
|
|
2061
2081
|
}
|
|
2062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFormControlDirective, decorators: [{
|
|
2063
|
-
type: Directive,
|
|
2064
|
-
args: [{
|
|
2065
|
-
exportAs: 'gaFormControl',
|
|
2066
|
-
selector: '[gaFormControl]',
|
|
2067
|
-
host: {
|
|
2068
|
-
'[attr.aria-invalid]': 'inError() ? "true" : null',
|
|
2069
|
-
'[attr.aria-errormessage]': 'ariaErrorMessageId()',
|
|
2070
|
-
},
|
|
2071
|
-
}]
|
|
2072
|
-
}] });
|
|
2073
2082
|
|
|
2074
2083
|
class GaFieldCalloutComponent {
|
|
2075
2084
|
icons = { OctagonAlert };
|
|
2076
2085
|
formField = inject(GaFormFieldComponent);
|
|
2086
|
+
globalErrors = inject(GA_FORM_ERRORS);
|
|
2077
2087
|
id = this.formField.uniqueId + '-callout';
|
|
2078
2088
|
shouldShowError = computed(() => {
|
|
2079
2089
|
const formControl = this.formField.formControl();
|
|
@@ -2091,20 +2101,40 @@ class GaFieldCalloutComponent {
|
|
|
2091
2101
|
.fieldErrors()
|
|
2092
2102
|
.filter((err) => err.key());
|
|
2093
2103
|
const controlErrorKeys = Object.keys(formControl.errors());
|
|
2094
|
-
|
|
2104
|
+
const errors = [];
|
|
2105
|
+
// First, add errors that have matching gaError directives
|
|
2106
|
+
const registeredErrorKeys = new Set(registeredErrors.map((err) => err.key()));
|
|
2107
|
+
registeredErrors
|
|
2095
2108
|
.filter((err) => controlErrorKeys.includes(err.key()))
|
|
2096
|
-
.
|
|
2109
|
+
.forEach((err) => {
|
|
2097
2110
|
const errorKey = err.key();
|
|
2098
|
-
|
|
2111
|
+
errors.push({
|
|
2099
2112
|
key: errorKey,
|
|
2100
2113
|
templateRef: err.templateRef,
|
|
2101
2114
|
error: formControl.errors()[errorKey],
|
|
2102
|
-
};
|
|
2115
|
+
});
|
|
2116
|
+
});
|
|
2117
|
+
// Then, add global errors for keys that don't have gaError directives
|
|
2118
|
+
controlErrorKeys
|
|
2119
|
+
.filter((key) => !registeredErrorKeys.has(key))
|
|
2120
|
+
.forEach((key) => {
|
|
2121
|
+
const errorMessage = this.globalErrors[key];
|
|
2122
|
+
if (errorMessage) {
|
|
2123
|
+
const message = typeof errorMessage === 'function'
|
|
2124
|
+
? errorMessage(formControl.errors()[key])
|
|
2125
|
+
: errorMessage;
|
|
2126
|
+
errors.push({
|
|
2127
|
+
key,
|
|
2128
|
+
error: formControl.errors()[key],
|
|
2129
|
+
message,
|
|
2130
|
+
});
|
|
2131
|
+
}
|
|
2103
2132
|
});
|
|
2133
|
+
return errors;
|
|
2104
2134
|
});
|
|
2105
2135
|
hasCallout = computed(() => !!this.formField.fieldInfo() || this.shouldShowError());
|
|
2106
2136
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFieldCalloutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2107
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: GaFieldCalloutComponent, isStandalone: true, selector: "ga-field-callout", host: { properties: { "attr.id": "id", "style.display": "hasCallout() ? null : \"none\"" }, classAttribute: "ga-form-field__info" }, ngImport: i0, template: "@if (shouldShowError()) {\n <ga-icon\n [icon]=\"icons.OctagonAlert\"\n class=\"ga-icon\"\n style=\"color: var(--ga-color-icon-error)\"\n size=\"16\"\n />\n <div>\n @for (error of overlappingErrors(); track error.key; let last = $last) {\n <span\n
|
|
2137
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: GaFieldCalloutComponent, isStandalone: true, selector: "ga-field-callout", host: { properties: { "attr.id": "id", "style.display": "hasCallout() ? null : \"none\"" }, classAttribute: "ga-form-field__info" }, ngImport: i0, template: "@if (shouldShowError()) {\n <ga-icon\n [icon]=\"icons.OctagonAlert\"\n class=\"ga-icon\"\n style=\"color: var(--ga-color-icon-error)\"\n size=\"16\"\n />\n <div>\n @for (error of overlappingErrors(); track error.key; let last = $last) {\n <span>\n @if (error.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"error.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error }\"\n />\n } @else {\n {{ error.message }}\n }\n @if (!last) {\n \n }\n </span>\n }\n </div>\n} @else if (formField.fieldInfo()) {\n <ng-container [ngTemplateOutlet]=\"formField.fieldInfo()!.templateRef()\" />\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: GaIconModule }, { kind: "component", type: GaIconComponent, selector: "ga-icon", inputs: ["icon", "size", "color", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2108
2138
|
}
|
|
2109
2139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFieldCalloutComponent, decorators: [{
|
|
2110
2140
|
type: Component,
|
|
@@ -2112,7 +2142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
2112
2142
|
class: 'ga-form-field__info',
|
|
2113
2143
|
'[attr.id]': 'id',
|
|
2114
2144
|
'[style.display]': 'hasCallout() ? null : "none"',
|
|
2115
|
-
}, template: "@if (shouldShowError()) {\n <ga-icon\n [icon]=\"icons.OctagonAlert\"\n class=\"ga-icon\"\n style=\"color: var(--ga-color-icon-error)\"\n size=\"16\"\n />\n <div>\n @for (error of overlappingErrors(); track error.key; let last = $last) {\n <span\n
|
|
2145
|
+
}, template: "@if (shouldShowError()) {\n <ga-icon\n [icon]=\"icons.OctagonAlert\"\n class=\"ga-icon\"\n style=\"color: var(--ga-color-icon-error)\"\n size=\"16\"\n />\n <div>\n @for (error of overlappingErrors(); track error.key; let last = $last) {\n <span>\n @if (error.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"error.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error.error }\"\n />\n } @else {\n {{ error.message }}\n }\n @if (!last) {\n \n }\n </span>\n }\n </div>\n} @else if (formField.fieldInfo()) {\n <ng-container [ngTemplateOutlet]=\"formField.fieldInfo()!.templateRef()\" />\n}\n" }]
|
|
2116
2146
|
}] });
|
|
2117
2147
|
|
|
2118
2148
|
class GaFieldInfoComponent {
|
|
@@ -2145,6 +2175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
2145
2175
|
}]
|
|
2146
2176
|
}] });
|
|
2147
2177
|
|
|
2178
|
+
const GA_FORM_FIELD_ID = new InjectionToken('ga-form-field-id');
|
|
2179
|
+
|
|
2148
2180
|
let nextUniqueId$6 = 0;
|
|
2149
2181
|
class GaFormFieldComponent {
|
|
2150
2182
|
uniqueId = inject(GA_FORM_FIELD_ID);
|
|
@@ -2156,9 +2188,7 @@ class GaFormFieldComponent {
|
|
|
2156
2188
|
disabled = computed(() => {
|
|
2157
2189
|
return this.disabledInput() ?? this.formFieldConnector.controlDisabled();
|
|
2158
2190
|
});
|
|
2159
|
-
formControl =
|
|
2160
|
-
descendants: true,
|
|
2161
|
-
});
|
|
2191
|
+
formControl = this.formFieldConnector.control.asReadonly();
|
|
2162
2192
|
fieldInfo = contentChild(GaFieldInfoComponent);
|
|
2163
2193
|
fieldErrors = contentChildren(GaFieldErrorDirective);
|
|
2164
2194
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -2168,7 +2198,7 @@ class GaFormFieldComponent {
|
|
|
2168
2198
|
useFactory: () => `ga-form-field-${++nextUniqueId$6}`,
|
|
2169
2199
|
},
|
|
2170
2200
|
GaFormFieldConnector,
|
|
2171
|
-
], queries: [{ propertyName: "
|
|
2201
|
+
], queries: [{ propertyName: "fieldInfo", first: true, predicate: GaFieldInfoComponent, descendants: true, isSignal: true }, { propertyName: "fieldErrors", predicate: GaFieldErrorDirective, isSignal: true }], exportAs: ["gaFormField"], ngImport: i0, template: "<ng-content select=\"ga-label\" />\n<ng-content />\n<ga-field-callout />\n", dependencies: [{ kind: "component", type: GaFieldCalloutComponent, selector: "ga-field-callout" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2172
2202
|
}
|
|
2173
2203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFormFieldComponent, decorators: [{
|
|
2174
2204
|
type: Component,
|
|
@@ -2184,6 +2214,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
2184
2214
|
}] });
|
|
2185
2215
|
|
|
2186
2216
|
let nextUniqueId$5 = 0;
|
|
2217
|
+
/**
|
|
2218
|
+
* Internal tooltip component used by the gaTooltip directive.
|
|
2219
|
+
* This component is not intended for direct use in templates.
|
|
2220
|
+
* Use the [gaTooltip] directive instead.
|
|
2221
|
+
* @internal
|
|
2222
|
+
*/
|
|
2187
2223
|
class GaTooltipComponent {
|
|
2188
2224
|
uniqueId = `ga-tooltip-${++nextUniqueId$5}`;
|
|
2189
2225
|
mouseLeaveSubject = new Subject();
|
|
@@ -2624,6 +2660,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
2624
2660
|
}, template: "<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -->\n<label\n [attr.id]=\"id()\"\n [attr.for]=\"controlId()\"\n class=\"ga-form-field__label\"\n [class.ga-form-field__label--defined]=\"!!definition()\"\n [class.ga-form-field__label--disabled]=\"formField.disabled()\"\n (click)=\"focusControl()\"\n [attr.tabindex]=\"definition() ? 0 : -1\"\n>\n <span\n class=\"ga-form-field__label-text\"\n [gaTooltip]=\"definition()\"\n gaTooltipPlacement=\"top-start\"\n ><ng-content\n /></span>\n @if (state()) {\n <span class=\"ga-form-field__label-state\">{{ state() }}</span>\n }\n</label>\n" }]
|
|
2625
2661
|
}], ctorParameters: () => [] });
|
|
2626
2662
|
|
|
2663
|
+
class GaFormControlDirective {
|
|
2664
|
+
formFieldId = inject(GA_FORM_FIELD_ID, { optional: true });
|
|
2665
|
+
formFieldConnector = inject(GaFormFieldConnector, {
|
|
2666
|
+
optional: true,
|
|
2667
|
+
});
|
|
2668
|
+
ngControlInput = input(undefined, {
|
|
2669
|
+
alias: 'gaFormControl',
|
|
2670
|
+
});
|
|
2671
|
+
explicitNgControl = computed(() => {
|
|
2672
|
+
const ngControl = this.ngControlInput();
|
|
2673
|
+
if (ngControl instanceof NgControl) {
|
|
2674
|
+
return ngControl;
|
|
2675
|
+
}
|
|
2676
|
+
return null;
|
|
2677
|
+
});
|
|
2678
|
+
ngControlState = injectNgControlState({
|
|
2679
|
+
explicitNgControl: this.explicitNgControl,
|
|
2680
|
+
});
|
|
2681
|
+
inError = this.ngControlState.inError;
|
|
2682
|
+
errors = this.ngControlState.errors;
|
|
2683
|
+
ariaErrorMessageId = computed(() => {
|
|
2684
|
+
if (!this.formFieldId || !this.inError()) {
|
|
2685
|
+
return null;
|
|
2686
|
+
}
|
|
2687
|
+
return `${this.formFieldId}-callout`;
|
|
2688
|
+
});
|
|
2689
|
+
ngOnInit() {
|
|
2690
|
+
this.formFieldConnector?.control.set(this);
|
|
2691
|
+
}
|
|
2692
|
+
ngOnDestroy() {
|
|
2693
|
+
this.formFieldConnector?.control.set(null);
|
|
2694
|
+
}
|
|
2695
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFormControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2696
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.4", type: GaFormControlDirective, isStandalone: true, selector: "[gaFormControl]", inputs: { ngControlInput: { classPropertyName: "ngControlInput", publicName: "gaFormControl", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-invalid": "inError() ? \"true\" : null", "attr.aria-errormessage": "ariaErrorMessageId()" } }, exportAs: ["gaFormControl"], ngImport: i0 });
|
|
2697
|
+
}
|
|
2698
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaFormControlDirective, decorators: [{
|
|
2699
|
+
type: Directive,
|
|
2700
|
+
args: [{
|
|
2701
|
+
exportAs: 'gaFormControl',
|
|
2702
|
+
selector: '[gaFormControl]',
|
|
2703
|
+
host: {
|
|
2704
|
+
'[attr.aria-invalid]': 'inError() ? "true" : null',
|
|
2705
|
+
'[attr.aria-errormessage]': 'ariaErrorMessageId()',
|
|
2706
|
+
},
|
|
2707
|
+
}]
|
|
2708
|
+
}] });
|
|
2709
|
+
|
|
2627
2710
|
class GaLabelledByFormFieldDirective {
|
|
2628
2711
|
formFieldConnector = inject(GaFormFieldConnector, {
|
|
2629
2712
|
optional: true,
|
|
@@ -4155,11 +4238,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
4155
4238
|
}, template: "@if (loading()) {\n <ga-select-dropdown-spinner />\n} @else {\n <ng-content />\n}\n" }]
|
|
4156
4239
|
}] });
|
|
4157
4240
|
|
|
4241
|
+
/**
|
|
4242
|
+
* @internal - Internal validator provider for ga-select required validation
|
|
4243
|
+
*/
|
|
4158
4244
|
const GA_SELECT_REQUIRED_VALIDATOR = {
|
|
4159
4245
|
provide: NG_VALIDATORS,
|
|
4160
4246
|
useExisting: forwardRef(() => GaSelectRequiredValidator),
|
|
4161
4247
|
multi: true,
|
|
4162
4248
|
};
|
|
4249
|
+
/**
|
|
4250
|
+
* @internal - Internal directive for ga-select required validation
|
|
4251
|
+
*/
|
|
4163
4252
|
class GaSelectRequiredValidator extends RequiredValidator {
|
|
4164
4253
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GaSelectRequiredValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
4165
4254
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.4", type: GaSelectRequiredValidator, isStandalone: true, selector: "ga-select[required][formControlName], ga-select[required][formControl], ga-select[required][ngModel]", providers: [GA_SELECT_REQUIRED_VALIDATOR], usesInheritance: true, ngImport: i0 });
|
|
@@ -4491,5 +4580,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
4491
4580
|
* Generated bundle index. Do not edit.
|
|
4492
4581
|
*/
|
|
4493
4582
|
|
|
4494
|
-
export { CHECKBOX_CONTROL_VALUE_ACCESSOR, DEFAULT_MODAL_OPTIONS, GA_ALERT_I18N_FACTORY, GA_BASE_FONT_SIZE, GA_BUTTON_I18N_FACTORY, GA_CHECKBOX_REQUIRED_VALIDATOR, GA_DATEPICKER_I18N_FACTORY, GA_DATEPICKER_PARSER_FORMATTER_FACTORY, GA_DATEPICKER_VALUE_ADAPTER_FACTORY, GA_DATE_PARSER_FORMATTER_CONFIG, GA_DEFAULT_DATEPICKER_FORMATS, GA_FORM_CONTROL_ADAPTER, GA_ICON_DEFAULT_SIZE, GA_MODAL_DATA, GA_MODAL_I18N_FACTORY, GA_SELECT_I18N_FACTORY, GA_SELECT_REQUIRED_VALIDATOR, GA_TOOLTIP_DEFAULT_OFFSET, GaAlertComponent, GaAlertI18n, GaAlertI18nDefault, GaAlertModule, GaAlertTitleActionsComponent, GaAlertTitleComponent, GaBadgeComponent, GaBadgeModule, GaButtonDirective, GaButtonI18n, GaButtonI18nDefault, GaButtonModule, GaCardComponent, GaCardModule, GaCheckboxComponent, GaCheckboxModule, GaCheckboxRequiredValidator, GaDatepickerComponent, GaDatepickerI18n, GaDatepickerI18nDefault, GaDatepickerInputDirective, GaDatepickerModule, GaDatepickerNativeUtcIsoValueAdapter, GaDatepickerNativeUtcValueAdapter, GaDatepickerParserFormatter, GaDatepickerParserFormatterDefault, GaDatepickerStructValueAdapter, GaDatepickerToggleComponent, GaDatepickerValueAdapter, GaFieldErrorDirective, GaFieldInfoComponent, GaFieldLabelComponent, GaFormControlDirective, GaFormControlErrorsDirective, GaFormFieldComponent, GaFormFieldConnector, GaFormFieldModule, GaIconButtonDirective, GaIconComponent, GaIconModule, GaInputComponent, GaInputDirective, GaInputModule, GaLabelledByFormFieldDirective, GaLinkDirective, GaLinkModule, GaMenuComponent, GaMenuItemComponent, GaMenuModule, GaMenuSeparatorComponent, GaMenuTitleComponent, GaMenuTriggerDirective, GaMenuTriggerIconComponent, GaModalActionsComponent, GaModalCloseDirective, GaModalComponent, GaModalContentComponent, GaModalDescriptionComponent, GaModalDescriptionDirective, GaModalHeaderComponent, GaModalI18n, GaModalI18nDefault, GaModalLabelDirective, GaModalModule, GaModalOptions, GaModalRef, GaModalService, GaModalTitleDirective, GaOptgroupComponent, GaOptionComponent, GaRadioButtonComponent, GaRadioGroupComponent, GaRadioModule, GaSegmentedControlButtonDirective, GaSegmentedControlComponent, GaSegmentedControlIconButtonComponent, GaSegmentedControlModule, GaSegmentedControlTextButtonComponent, GaSelectComponent, GaSelectDropdownComponent, GaSelectDropdownSpinnerComponent, GaSelectI18n, GaSelectI18nDefault, GaSelectModule, GaSelectRequiredValidator, GaSelectValueComponent, GaSpinnerComponent, GaSpinnerModule, GaSwitchComponent, GaSwitchModule, GaTextAreaDirective, GaTextAreaModule, GaTooltipComponent, GaTooltipDirective, GaTooltipModule, RADIO_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, compareStructs, extendGaDateParserFormatter, injectNgControlState, provideGaAlertI18n, provideGaBaseFontSize, provideGaButtonI18n, provideGaDatepickerI18n, provideGaDatepickerParserFormatter, provideGaDatepickerValueAdapter, provideGaModalI18n, provideGaModalOptions, provideGaSelectI18n };
|
|
4583
|
+
export { CHECKBOX_CONTROL_VALUE_ACCESSOR, DEFAULT_MODAL_OPTIONS, GA_ALERT_I18N_FACTORY, GA_BASE_FONT_SIZE, GA_BUTTON_I18N_FACTORY, GA_CHECKBOX_REQUIRED_VALIDATOR, GA_DATEPICKER_I18N_FACTORY, GA_DATEPICKER_PARSER_FORMATTER_FACTORY, GA_DATEPICKER_VALUE_ADAPTER_FACTORY, GA_DATE_PARSER_FORMATTER_CONFIG, GA_DEFAULT_DATEPICKER_FORMATS, GA_FORM_CONTROL_ADAPTER, GA_FORM_ERRORS, GA_ICON_DEFAULT_SIZE, GA_MODAL_DATA, GA_MODAL_I18N_FACTORY, GA_SELECT_I18N_FACTORY, GA_SELECT_REQUIRED_VALIDATOR, GA_TOOLTIP_DEFAULT_OFFSET, GaAlertComponent, GaAlertI18n, GaAlertI18nDefault, GaAlertModule, GaAlertTitleActionsComponent, GaAlertTitleComponent, GaBadgeComponent, GaBadgeModule, GaButtonDirective, GaButtonI18n, GaButtonI18nDefault, GaButtonModule, GaCardComponent, GaCardModule, GaCheckboxComponent, GaCheckboxModule, GaCheckboxRequiredValidator, GaDatepickerComponent, GaDatepickerI18n, GaDatepickerI18nDefault, GaDatepickerInputDirective, GaDatepickerModule, GaDatepickerNativeUtcIsoValueAdapter, GaDatepickerNativeUtcValueAdapter, GaDatepickerParserFormatter, GaDatepickerParserFormatterDefault, GaDatepickerStructValueAdapter, GaDatepickerToggleComponent, GaDatepickerValueAdapter, GaFieldErrorDirective, GaFieldInfoComponent, GaFieldLabelComponent, GaFormControlDirective, GaFormControlErrorsDirective, GaFormFieldComponent, GaFormFieldConnector, GaFormFieldModule, GaIconButtonDirective, GaIconComponent, GaIconModule, GaInputComponent, GaInputDirective, GaInputModule, GaLabelledByFormFieldDirective, GaLinkDirective, GaLinkModule, GaMenuComponent, GaMenuItemComponent, GaMenuModule, GaMenuSeparatorComponent, GaMenuTitleComponent, GaMenuTriggerDirective, GaMenuTriggerIconComponent, GaModalActionsComponent, GaModalCloseDirective, GaModalComponent, GaModalContentComponent, GaModalDescriptionComponent, GaModalDescriptionDirective, GaModalHeaderComponent, GaModalI18n, GaModalI18nDefault, GaModalLabelDirective, GaModalModule, GaModalOptions, GaModalRef, GaModalService, GaModalTitleDirective, GaOptgroupComponent, GaOptionComponent, GaRadioButtonComponent, GaRadioGroupComponent, GaRadioModule, GaSegmentedControlButtonDirective, GaSegmentedControlComponent, GaSegmentedControlIconButtonComponent, GaSegmentedControlModule, GaSegmentedControlTextButtonComponent, GaSelectComponent, GaSelectDropdownComponent, GaSelectDropdownSpinnerComponent, GaSelectI18n, GaSelectI18nDefault, GaSelectModule, GaSelectRequiredValidator, GaSelectValueComponent, GaSpinnerComponent, GaSpinnerModule, GaSwitchComponent, GaSwitchModule, GaTextAreaDirective, GaTextAreaModule, GaTooltipComponent, GaTooltipDirective, GaTooltipModule, RADIO_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, compareStructs, extendGaDateParserFormatter, injectNgControlState, provideGaAlertI18n, provideGaBaseFontSize, provideGaButtonI18n, provideGaDatepickerI18n, provideGaDatepickerParserFormatter, provideGaDatepickerValueAdapter, provideGaFormErrors, provideGaModalI18n, provideGaModalOptions, provideGaSelectI18n };
|
|
4495
4584
|
//# sourceMappingURL=vsn-ux-ngx-gaia.mjs.map
|