@wlcm/angular 17.5.13 → 17.5.16
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/core/esm2022/index.mjs +7 -4
- package/core/esm2022/lib/components/default-loader/default-loader.component.mjs +12 -0
- package/core/esm2022/lib/components/{calendar-icon → icons/calendar-icon}/calendar-icon.component.mjs +1 -1
- package/core/esm2022/lib/components/{chevron-down-icon → icons/chevron-down-icon}/chevron-down-icon.component.mjs +1 -1
- package/core/esm2022/lib/components/{close-icon → icons/close-icon}/close-icon.component.mjs +1 -1
- package/core/esm2022/lib/components/{search-icon → icons/search-icon}/search-icon.component.mjs +1 -1
- package/core/esm2022/lib/components/loader/loader.component.mjs +32 -0
- package/core/esm2022/lib/constants/icon.contants.mjs +4 -4
- package/core/esm2022/lib/constants/loader.constants.mjs +7 -0
- package/core/esm2022/lib/directives/icon.directive.mjs +2 -2
- package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +20 -0
- package/core/fesm2022/wlcm-angular-core.mjs +64 -3
- package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
- package/core/index.d.ts +6 -3
- package/core/lib/components/default-loader/default-loader.component.d.ts +5 -0
- package/core/lib/components/loader/loader.component.d.ts +11 -0
- package/core/lib/constants/loader.constants.d.ts +2 -0
- package/core/lib/utils/paginated-data-emulator.utils.d.ts +10 -0
- package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +7 -5
- package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +39 -5
- package/datepicker/esm2022/lib/components/range/date-range-picker/date-range-picker.component.mjs +14 -9
- package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +2 -2
- package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +15 -9
- package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +3 -1
- package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +20 -4
- package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +23 -4
- package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +12 -8
- package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +12 -8
- package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +7 -4
- package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +10 -5
- package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +10 -5
- package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +2 -2
- package/datepicker/esm2022/lib/models/date-picker.models.mjs +3 -1
- package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +21 -3
- package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +202 -94
- package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
- package/datepicker/lib/components/calendar-header/calendar-header.component.d.ts +3 -1
- package/datepicker/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.d.ts +8 -2
- package/datepicker/lib/components/range/date-range-picker/date-range-picker.component.d.ts +5 -3
- package/datepicker/lib/components/single/datepicker-input-container/datepicker-input-container.component.d.ts +3 -3
- package/datepicker/lib/components/single/datepicker-panel/datepicker-panel.component.d.ts +10 -6
- package/datepicker/lib/constants/datepicker.constants.d.ts +3 -1
- package/datepicker/lib/directives/datepicker-input.base.d.ts +5 -1
- package/datepicker/lib/directives/datepicker-trigger.base.d.ts +7 -2
- package/datepicker/lib/directives/ragne/date-range-picker-input-end.directive.d.ts +4 -2
- package/datepicker/lib/directives/ragne/date-range-picker-input-start.directive.d.ts +4 -2
- package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +3 -1
- package/datepicker/lib/directives/ragne/left-calendar.directive.d.ts +3 -1
- package/datepicker/lib/directives/ragne/right-calendar.directive.d.ts +3 -1
- package/datepicker/lib/directives/single/datepicker-input.directive.d.ts +5 -5
- package/datepicker/lib/models/date-picker.models.d.ts +8 -1
- package/datepicker/lib/models/range/data-range-calendar.models.d.ts +6 -1
- package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +9 -6
- package/forms/fesm2022/wlcm-angular-forms.mjs +8 -5
- package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
- package/forms/lib/forms/components/form-field/form-field.component.d.ts +2 -1
- package/package.json +1 -1
- package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +3 -3
- package/search-field/fesm2022/wlcm-angular-search-field.mjs +2 -2
- package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
- package/styles/components/calendar/_calendar-header.scss +4 -0
- package/styles/components/loader/_loader.scss +168 -0
- package/styles/components/loader/index.scss +5 -0
- package/styles/core/_all-theme.scss +2 -0
- package/table/esm2022/lib/components/table/table.component.mjs +3 -1
- package/table/esm2022/lib/components/table-row/table-row.component.mjs +48 -20
- package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +13 -46
- package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +38 -7
- package/table/fesm2022/wlcm-angular-table.mjs +86 -61
- package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
- package/table/lib/components/table-row/table-row.component.d.ts +9 -4
- package/table/lib/components/table-row-actions/table-row-actions.component.d.ts +3 -12
- package/table/lib/directives/scrollable-table-container.directive.d.ts +9 -1
- /package/core/lib/components/{calendar-icon → icons/calendar-icon}/calendar-icon.component.d.ts +0 -0
- /package/core/lib/components/{chevron-down-icon → icons/chevron-down-icon}/chevron-down-icon.component.d.ts +0 -0
- /package/core/lib/components/{close-icon → icons/close-icon}/close-icon.component.d.ts +0 -0
- /package/core/lib/components/{search-icon → icons/search-icon}/search-icon.component.d.ts +0 -0
@@ -3,19 +3,21 @@ import { DateRange, MatCalendar, MatCalendarUserEvent, MatDateRangeSelectionStra
|
|
3
3
|
import { DateAdapter } from '@angular/material/core';
|
4
4
|
import { WlcmDateRangePickerConfig } from '../../../models/range/date-range-picker.models';
|
5
5
|
import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
|
6
|
+
import { WlcmDatepickerConfig } from '../../../models/date-picker.models';
|
6
7
|
import * as i0 from "@angular/core";
|
7
8
|
export declare class WlcmDateRangePickerComponent {
|
8
|
-
private
|
9
|
+
private rangeConfig;
|
9
10
|
private rangeSelectionStrategy;
|
10
11
|
protected localSelectionModel: MatDateSelectionModel<DateRange<Date>>;
|
11
12
|
protected triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>;
|
12
13
|
protected trigger: WlcmDatepickerTrigger<WlcmDateRangePickerComponent>;
|
14
|
+
protected datepickerConfig: WlcmDatepickerConfig;
|
13
15
|
protected dateAdapter: DateAdapter<Date>;
|
14
16
|
protected headerComponent: Type<unknown>;
|
15
17
|
private _isViewInitialized;
|
16
18
|
private _isComplete;
|
17
19
|
readonly isComplete: Signal<boolean>;
|
18
|
-
constructor(
|
20
|
+
constructor(rangeConfig: WlcmDateRangePickerConfig, rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>, localSelectionModel: MatDateSelectionModel<DateRange<Date>>, triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>, trigger: WlcmDatepickerTrigger<WlcmDateRangePickerComponent>, datepickerConfig: WlcmDatepickerConfig, dateAdapter: DateAdapter<Date>);
|
19
21
|
leftCalendar: MatCalendar<Date>;
|
20
22
|
rightCalendar: MatCalendar<Date>;
|
21
23
|
leftCalendarElement: ElementRef<HTMLElement>;
|
@@ -32,6 +34,6 @@ export declare class WlcmDateRangePickerComponent {
|
|
32
34
|
private get leftCalendarActiveCell();
|
33
35
|
private handleSelectionChanged;
|
34
36
|
private handleRightCalendarPreviewChange;
|
35
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDateRangePickerComponent, [{ optional: true; }, null, null, null, null, null]>;
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDateRangePickerComponent, [{ optional: true; }, null, null, null, null, null, null]>;
|
36
38
|
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDateRangePickerComponent, "wlcm-date-range-picker", never, {}, {}, never, never, true, never>;
|
37
39
|
}
|
@@ -6,7 +6,7 @@ import { Observable } from 'rxjs';
|
|
6
6
|
import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
|
7
7
|
import { Overlay } from '@angular/cdk/overlay';
|
8
8
|
import * as i0 from "@angular/core";
|
9
|
-
export declare class WlcmDatepickerInputContainerComponent extends WlcmDatepickerTrigger<WlcmDatepickerPanelComponent
|
9
|
+
export declare class WlcmDatepickerInputContainerComponent<T> extends WlcmDatepickerTrigger<WlcmDatepickerPanelComponent<T>> implements WlcmFormFieldInput, AfterContentInit {
|
10
10
|
protected overlay: Overlay;
|
11
11
|
protected viewContainerRef: ViewContainerRef;
|
12
12
|
protected selectionModel: MatDateSelectionModel<Date>;
|
@@ -25,6 +25,6 @@ export declare class WlcmDatepickerInputContainerComponent extends WlcmDatepicke
|
|
25
25
|
isFocused: () => boolean;
|
26
26
|
private get inputElement();
|
27
27
|
private attachFocusBlurListeners;
|
28
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDatepickerInputContainerComponent
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDatepickerInputContainerComponent
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDatepickerInputContainerComponent<any>, [null, null, null, { host: true; }]>;
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDatepickerInputContainerComponent<any>, "wlcm-datepicker-input-container", ["wlcmDatepicker"], {}, {}, ["inputRef"], ["[wlcmDatepickerInput]"], true, never>;
|
30
30
|
}
|
@@ -1,13 +1,17 @@
|
|
1
|
-
import {
|
1
|
+
import { Signal } from '@angular/core';
|
2
|
+
import { MatCalendar, MatDateSelectionModel } from '@angular/material/datepicker';
|
2
3
|
import { WlcmCalendarHeaderComponent } from '../../calendar-header/calendar-header.component';
|
3
4
|
import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
|
5
|
+
import { WlcmDatepickerConfig } from '../../../models/date-picker.models';
|
4
6
|
import * as i0 from "@angular/core";
|
5
|
-
export declare class WlcmDatepickerPanelComponent {
|
7
|
+
export declare class WlcmDatepickerPanelComponent<D> {
|
6
8
|
protected selectionModel: MatDateSelectionModel<Date>;
|
7
|
-
protected trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent
|
9
|
+
protected trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent<D>>;
|
10
|
+
protected config: WlcmDatepickerConfig;
|
8
11
|
protected headerComponent: typeof WlcmCalendarHeaderComponent;
|
9
|
-
|
12
|
+
matCalendar: Signal<MatCalendar<D> | undefined>;
|
13
|
+
constructor(selectionModel: MatDateSelectionModel<Date>, trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent<D>>, config: WlcmDatepickerConfig);
|
10
14
|
select(date: Date): void;
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDatepickerPanelComponent
|
12
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDatepickerPanelComponent
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDatepickerPanelComponent<any>, never>;
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDatepickerPanelComponent<any>, "wlcm-datepicker-panel", never, {}, {}, never, never, true, never>;
|
13
17
|
}
|
@@ -1,4 +1,6 @@
|
|
1
|
-
import { Provider } from '@angular/core';
|
1
|
+
import { InjectionToken, Provider } from '@angular/core';
|
2
2
|
import { MatDateFormats } from '@angular/material/core';
|
3
|
+
import { WlcmDatepickerConfig } from '../models/date-picker.models';
|
3
4
|
export declare const WLCM_DEFAULT_DATE_FORMATS: MatDateFormats;
|
4
5
|
export declare const WLCM_DEFAULT_DATEPICKER_PROVIDERS: Provider[];
|
6
|
+
export declare const WLCM_DATEPICKER_CONFIG: InjectionToken<WlcmDatepickerConfig>;
|
@@ -1,17 +1,19 @@
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
2
2
|
import { ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
|
3
3
|
import { DateAdapter, MatDateFormats } from '@angular/material/core';
|
4
|
+
import { WlcmDatepickerTrigger } from './datepicker-trigger.base';
|
4
5
|
import * as i0 from "@angular/core";
|
5
6
|
export declare abstract class WlcmDatepickerInputBase implements ControlValueAccessor, Validator {
|
6
7
|
protected element: ElementRef;
|
7
8
|
protected dateAdapter: DateAdapter<Date>;
|
8
9
|
protected dateFormats: MatDateFormats;
|
10
|
+
protected trigger: WlcmDatepickerTrigger<unknown>;
|
9
11
|
handleBlur(): void;
|
10
12
|
handleInput(): void;
|
11
13
|
protected _changed?: (value: Date | null) => void;
|
12
14
|
protected _touched?: () => void;
|
13
15
|
protected _validatorChanged?: () => void;
|
14
|
-
constructor(element: ElementRef, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats);
|
16
|
+
constructor(element: ElementRef, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, trigger: WlcmDatepickerTrigger<unknown>);
|
15
17
|
writeValue(value: Date | null): void;
|
16
18
|
registerOnChange(callback: (value: Date | null) => void): void;
|
17
19
|
registerOnTouched(callback: () => void): void;
|
@@ -20,6 +22,8 @@ export declare abstract class WlcmDatepickerInputBase implements ControlValueAcc
|
|
20
22
|
parseCurrentValue(): Date | null;
|
21
23
|
protected isValidFormat(value: string, pattern: string): boolean;
|
22
24
|
protected abstract updateSelection(): void;
|
25
|
+
protected get minDate(): Date | undefined;
|
26
|
+
protected get maxDate(): Date | undefined;
|
23
27
|
protected get inputElement(): HTMLInputElement;
|
24
28
|
protected get currentValue(): string;
|
25
29
|
protected updateInputValue(value: Date | null): void;
|
@@ -1,12 +1,15 @@
|
|
1
1
|
import { OverlayRef, Overlay } from '@angular/cdk/overlay';
|
2
|
-
import { ElementRef, Type, ComponentRef, ViewContainerRef } from '@angular/core';
|
2
|
+
import { ElementRef, Type, ComponentRef, ViewContainerRef, Injector, InputSignal } from '@angular/core';
|
3
3
|
import { MatDateSelectionModel } from '@angular/material/datepicker';
|
4
4
|
import { Observable } from 'rxjs';
|
5
|
+
import { WlcmDatepickerConfig } from '../models/date-picker.models';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
export declare abstract class WlcmDatepickerTrigger<T, D = Date> {
|
7
8
|
protected overlay: Overlay;
|
8
9
|
protected viewContainerRef: ViewContainerRef;
|
9
10
|
protected selectionModel: MatDateSelectionModel<D>;
|
11
|
+
minDate: InputSignal<Date | undefined>;
|
12
|
+
maxDate: InputSignal<Date | undefined>;
|
10
13
|
protected overlayRef: OverlayRef;
|
11
14
|
protected abstract connectedTo: ElementRef<HTMLElement>;
|
12
15
|
protected abstract componentType: Type<T>;
|
@@ -17,10 +20,12 @@ export declare abstract class WlcmDatepickerTrigger<T, D = Date> {
|
|
17
20
|
get isOpen(): boolean;
|
18
21
|
get opened(): Observable<void>;
|
19
22
|
get closed(): Observable<void>;
|
23
|
+
get datepickerInjector(): Injector;
|
24
|
+
get datepickerConfig(): WlcmDatepickerConfig;
|
20
25
|
private get overlayOrigin();
|
21
26
|
private handleBackdropClick;
|
22
27
|
private updatePositionStrategy;
|
23
28
|
private createOverlayConfig;
|
24
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDatepickerTrigger<any, any>, never>;
|
25
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmDatepickerTrigger<any, any>, never, never, {}, {}, never, never, false, never>;
|
30
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmDatepickerTrigger<any, any>, never, never, { "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
|
26
31
|
}
|
@@ -3,16 +3,18 @@ import { WlcmDateRangePickerInputBase } from './date-range-picker-input.base';
|
|
3
3
|
import { DateAdapter, MatDateFormats } from '@angular/material/core';
|
4
4
|
import { MatDateSelectionModel, DateRange } from '@angular/material/datepicker';
|
5
5
|
import { ValidationErrors } from '@angular/forms';
|
6
|
+
import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
|
6
7
|
import * as i0 from "@angular/core";
|
7
8
|
export declare class DateRangePickerInputEndDirective extends WlcmDateRangePickerInputBase {
|
8
9
|
element: ElementRef<HTMLInputElement>;
|
9
10
|
protected dateAdapter: DateAdapter<Date>;
|
10
11
|
protected dateFormats: MatDateFormats;
|
11
12
|
protected selectionModel: MatDateSelectionModel<DateRange<Date>>;
|
12
|
-
|
13
|
+
protected trigger: WlcmDatepickerTrigger<unknown>;
|
14
|
+
constructor(element: ElementRef<HTMLInputElement>, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, selectionModel: MatDateSelectionModel<DateRange<Date>>, trigger: WlcmDatepickerTrigger<unknown>);
|
13
15
|
validate(): ValidationErrors | null;
|
14
16
|
updateSelection: () => void;
|
15
17
|
private handleSelectionChange;
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerInputEndDirective, [null, null, { optional: true; }, null]>;
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerInputEndDirective, [null, null, { optional: true; }, null, null]>;
|
17
19
|
static ɵdir: i0.ɵɵDirectiveDeclaration<DateRangePickerInputEndDirective, "[wlcmDateRangePickerInputEnd]", never, {}, {}, never, never, true, never>;
|
18
20
|
}
|
@@ -3,16 +3,18 @@ import { WlcmDateRangePickerInputBase } from './date-range-picker-input.base';
|
|
3
3
|
import { DateAdapter, MatDateFormats } from '@angular/material/core';
|
4
4
|
import { MatDateSelectionModel, DateRange } from '@angular/material/datepicker';
|
5
5
|
import { ValidationErrors } from '@angular/forms';
|
6
|
+
import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
|
6
7
|
import * as i0 from "@angular/core";
|
7
8
|
export declare class DateRangePickerInputStartDirective extends WlcmDateRangePickerInputBase {
|
8
9
|
element: ElementRef<HTMLInputElement>;
|
9
10
|
protected dateAdapter: DateAdapter<Date>;
|
10
11
|
protected dateFormats: MatDateFormats;
|
11
12
|
protected selectionModel: MatDateSelectionModel<DateRange<Date>>;
|
12
|
-
|
13
|
+
protected trigger: WlcmDatepickerTrigger<unknown>;
|
14
|
+
constructor(element: ElementRef<HTMLInputElement>, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, selectionModel: MatDateSelectionModel<DateRange<Date>>, trigger: WlcmDatepickerTrigger<unknown>);
|
13
15
|
validate(): ValidationErrors | null;
|
14
16
|
updateSelection: () => void;
|
15
17
|
private handleSelectionChange;
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerInputStartDirective, [null, null, { optional: true; }, null]>;
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerInputStartDirective, [null, null, { optional: true; }, null, null]>;
|
17
19
|
static ɵdir: i0.ɵɵDirectiveDeclaration<DateRangePickerInputStartDirective, "[wlcmDateRangePickerInputStart]", never, {}, {}, never, never, true, never>;
|
18
20
|
}
|
@@ -2,13 +2,15 @@ import { AfterViewInit, ElementRef } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor, Validator } from '@angular/forms';
|
3
3
|
import { DateAdapter, MatDateFormats } from '@angular/material/core';
|
4
4
|
import { WlcmDatepickerInputBase } from '../datepicker-input.base';
|
5
|
+
import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
export declare abstract class WlcmDateRangePickerInputBase extends WlcmDatepickerInputBase implements AfterViewInit, ControlValueAccessor, Validator {
|
7
8
|
element: ElementRef<HTMLInputElement>;
|
8
9
|
protected dateAdapter: DateAdapter<Date>;
|
9
10
|
protected dateFormats: MatDateFormats;
|
11
|
+
protected trigger: WlcmDatepickerTrigger<unknown>;
|
10
12
|
private _inputMirror;
|
11
|
-
constructor(element: ElementRef<HTMLInputElement>, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats);
|
13
|
+
constructor(element: ElementRef<HTMLInputElement>, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, trigger: WlcmDatepickerTrigger<unknown>);
|
12
14
|
ngAfterViewInit(): void;
|
13
15
|
handleInput(): void;
|
14
16
|
protected updateInputValue(value: Date | null): void;
|
@@ -2,12 +2,14 @@ import { ElementRef } from '@angular/core';
|
|
2
2
|
import { DateAdapter } from '@angular/material/core';
|
3
3
|
import { MatCalendar } from '@angular/material/datepicker';
|
4
4
|
import { WlcmDataRangeCalendar } from '../../models/range/data-range-calendar.models';
|
5
|
+
import { WlcmDatepickerConfig } from '../../models/date-picker.models';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
export declare class WlcmLeftCalendarDirective extends WlcmDataRangeCalendar {
|
7
8
|
element: ElementRef<HTMLElement>;
|
8
9
|
protected dateAdapter: DateAdapter<Date>;
|
9
10
|
protected calendar: MatCalendar<Date>;
|
10
|
-
|
11
|
+
protected datepickerConfig: WlcmDatepickerConfig;
|
12
|
+
constructor(element: ElementRef<HTMLElement>, dateAdapter: DateAdapter<Date>, calendar: MatCalendar<Date>, datepickerConfig: WlcmDatepickerConfig);
|
11
13
|
handleYearChange(): void;
|
12
14
|
handleMonthChange(): void;
|
13
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmLeftCalendarDirective, never>;
|
@@ -2,12 +2,14 @@ import { ElementRef } from '@angular/core';
|
|
2
2
|
import { WlcmDataRangeCalendar } from '../../models/range/data-range-calendar.models';
|
3
3
|
import { MatCalendar } from '@angular/material/datepicker';
|
4
4
|
import { DateAdapter } from '@angular/material/core';
|
5
|
+
import { WlcmDatepickerConfig } from '../../models/date-picker.models';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
export declare class WlcmRightCalendarDirective extends WlcmDataRangeCalendar {
|
7
8
|
element: ElementRef<HTMLElement>;
|
8
9
|
protected dateAdapter: DateAdapter<Date>;
|
9
10
|
protected calendar: MatCalendar<Date>;
|
10
|
-
|
11
|
+
protected datepickerConfig: WlcmDatepickerConfig;
|
12
|
+
constructor(element: ElementRef<HTMLElement>, dateAdapter: DateAdapter<Date>, calendar: MatCalendar<Date>, datepickerConfig: WlcmDatepickerConfig);
|
11
13
|
handleYearChange(): void;
|
12
14
|
handleMonthChange(): void;
|
13
15
|
nextMonth(): void;
|
@@ -6,16 +6,16 @@ import { MatDateSelectionModel } from '@angular/material/datepicker';
|
|
6
6
|
import { WlcmDatepickerInputBase } from '../datepicker-input.base';
|
7
7
|
import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
|
8
8
|
import * as i0 from "@angular/core";
|
9
|
-
export declare class WlcmDatepickerInputDirective extends WlcmDatepickerInputBase implements ControlValueAccessor, Validator {
|
9
|
+
export declare class WlcmDatepickerInputDirective<T> extends WlcmDatepickerInputBase implements ControlValueAccessor, Validator {
|
10
10
|
protected element: ElementRef;
|
11
11
|
protected dateAdapter: DateAdapter<Date>;
|
12
12
|
protected dateFormats: MatDateFormats;
|
13
13
|
protected selectionModel: MatDateSelectionModel<Date | null>;
|
14
|
-
protected trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent
|
15
|
-
constructor(element: ElementRef, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, selectionModel: MatDateSelectionModel<Date | null>, trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent
|
14
|
+
protected trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent<T>>;
|
15
|
+
constructor(element: ElementRef, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, selectionModel: MatDateSelectionModel<Date | null>, trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent<T>>);
|
16
16
|
updateSelection(): void;
|
17
17
|
private handleClosePanel;
|
18
18
|
private handleSelectionChange;
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDatepickerInputDirective
|
20
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmDatepickerInputDirective
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDatepickerInputDirective<any>, never>;
|
20
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmDatepickerInputDirective<any>, "[wlcmDatepickerInput]", ["wlcmDatepickerInput"], {}, {}, never, never, true, never>;
|
21
21
|
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Signal } from '@angular/core';
|
1
2
|
import { DateFnsAdapter } from '@angular/material-date-fns-adapter';
|
2
3
|
import * as i0 from "@angular/core";
|
3
4
|
export declare class WlcmDateAdapter extends DateFnsAdapter {
|
@@ -6,5 +7,11 @@ export declare class WlcmDateAdapter extends DateFnsAdapter {
|
|
6
7
|
static ɵprov: i0.ɵɵInjectableDeclaration<WlcmDateAdapter>;
|
7
8
|
}
|
8
9
|
export declare enum WlcmDateValidation {
|
9
|
-
Format = "WlcmInvalidDateFormat"
|
10
|
+
Format = "WlcmInvalidDateFormat",
|
11
|
+
MinDate = "WlcmDateIsBeforeMinDate",
|
12
|
+
MaxDate = "WlcmDateIsAfterMaxDate"
|
13
|
+
}
|
14
|
+
export interface WlcmDatepickerConfig {
|
15
|
+
minDate?: Signal<Date | undefined>;
|
16
|
+
maxDate?: Signal<Date | undefined>;
|
10
17
|
}
|
@@ -1,20 +1,25 @@
|
|
1
1
|
import { ElementRef, InputSignal, OutputEmitterRef } from '@angular/core';
|
2
2
|
import { MatCalendar, MatCalendarView } from '@angular/material/datepicker';
|
3
|
+
import { WlcmDatepickerConfig } from '../date-picker.models';
|
3
4
|
import { DateAdapter } from '@angular/material/core';
|
4
5
|
import * as i0 from "@angular/core";
|
5
6
|
export declare class WlcmDataRangeCalendar {
|
6
7
|
element: ElementRef<HTMLElement>;
|
7
8
|
protected calendar: MatCalendar<Date>;
|
8
9
|
protected dateAdapter: DateAdapter<Date>;
|
10
|
+
protected datepickerConfig: WlcmDatepickerConfig;
|
9
11
|
location: 'left' | 'right';
|
10
12
|
readonly dateChange: OutputEmitterRef<Date>;
|
11
13
|
readonly viewChange: OutputEmitterRef<MatCalendarView>;
|
12
14
|
readonly disabled: InputSignal<boolean>;
|
13
|
-
constructor(location: 'left' | 'right', element: ElementRef<HTMLElement>, calendar: MatCalendar<Date>, dateAdapter: DateAdapter<Date
|
15
|
+
constructor(location: 'left' | 'right', element: ElementRef<HTMLElement>, calendar: MatCalendar<Date>, dateAdapter: DateAdapter<Date>, datepickerConfig: WlcmDatepickerConfig);
|
16
|
+
get minDate(): Date | undefined;
|
17
|
+
get maxDate(): Date | undefined;
|
14
18
|
prevMonth(): void;
|
15
19
|
nextMonth(): void;
|
16
20
|
prevYear(): void;
|
17
21
|
nextYear(): void;
|
22
|
+
handleConfigValues(): void;
|
18
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDataRangeCalendar, never>;
|
19
24
|
static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmDataRangeCalendar, never, never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; "viewChange": "viewChange"; }, never, never, false, never>;
|
20
25
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, HostBinding, Inject, Optional, ViewChild, forwardRef, } from '@angular/core';
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, HostBinding, Inject, Input, Optional, ViewChild, forwardRef, } from '@angular/core';
|
3
3
|
import { Validators, ControlContainer, NgControl } from '@angular/forms';
|
4
4
|
import { CommonModule } from '@angular/common';
|
5
5
|
import { WlcmErrorComponent } from '../error/error.component';
|
@@ -32,6 +32,7 @@ let WlcmFormFieldComponent = class WlcmFormFieldComponent {
|
|
32
32
|
constructor(parentFormMember, changeDetectorRef) {
|
33
33
|
this.parentFormMember = parentFormMember;
|
34
34
|
this.changeDetectorRef = changeDetectorRef;
|
35
|
+
this.displayErrorMessages = true;
|
35
36
|
}
|
36
37
|
ngAfterViewInit() {
|
37
38
|
if (!this.inputRef && !this.customContainer) {
|
@@ -72,10 +73,10 @@ let WlcmFormFieldComponent = class WlcmFormFieldComponent {
|
|
72
73
|
return events;
|
73
74
|
}
|
74
75
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFormFieldComponent, deps: [{ token: WLCM_FORM_CONTROL, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFormFieldComponent, isStandalone: true, selector: "wlcm-form-field", host: { properties: { "class.wlcm-field-focused": "this.isFocused", "class.wlcm-field-required": "this.isRequired", "class.wlcm-field-invalid": "this.isInvalid", "class.wlcm-field-touched": "this.isTouched", "class.wlcm-field-disabled": "this.isDisabled" }, classAttribute: "wlcm-form-field" }, providers: [
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFormFieldComponent, isStandalone: true, selector: "wlcm-form-field", inputs: { displayErrorMessages: "displayErrorMessages" }, host: { properties: { "class.wlcm-field-focused": "this.isFocused", "class.wlcm-field-required": "this.isRequired", "class.wlcm-field-invalid": "this.isInvalid", "class.wlcm-field-touched": "this.isTouched", "class.wlcm-field-disabled": "this.isDisabled" }, classAttribute: "wlcm-form-field" }, providers: [
|
76
77
|
WLCM_FORM_CONTROL_PROVIDER,
|
77
78
|
{ provide: WLCM_FORM_FIELD, useExisting: forwardRef(() => WlcmFormFieldComponent) },
|
78
|
-
], queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }, { propertyName: "controlContainer", first: true, predicate: ControlContainer, descendants: true }, { propertyName: "_inputRef", first: true, predicate: WLCM_INPUT, descendants: true }, { propertyName: "prefix", first: true, predicate: WlcmFormFieldPrefixDirective, descendants: true }, { propertyName: "suffix", first: true, predicate: WlcmFormFieldSuffixDirective, descendants: true }, { propertyName: "customContainer", first: true, predicate: WlcmFormFieldCustomContainerDirective, descendants: true }], viewQueries: [{ propertyName: "defaultContainer", first: true, predicate: ["defaultContainer"], descendants: true }], ngImport: i0, template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmErrorComponent, selector: "wlcm-error" }, { kind: "pipe", type: ErrorsMapperPipe, name: "errorsMapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
79
|
+
], queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }, { propertyName: "controlContainer", first: true, predicate: ControlContainer, descendants: true }, { propertyName: "_inputRef", first: true, predicate: WLCM_INPUT, descendants: true }, { propertyName: "prefix", first: true, predicate: WlcmFormFieldPrefixDirective, descendants: true }, { propertyName: "suffix", first: true, predicate: WlcmFormFieldSuffixDirective, descendants: true }, { propertyName: "customContainer", first: true, predicate: WlcmFormFieldCustomContainerDirective, descendants: true }], viewQueries: [{ propertyName: "defaultContainer", first: true, predicate: ["defaultContainer"], descendants: true }], ngImport: i0, template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control && displayErrorMessages\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmErrorComponent, selector: "wlcm-error" }, { kind: "pipe", type: ErrorsMapperPipe, name: "errorsMapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
79
80
|
};
|
80
81
|
WlcmFormFieldComponent = __decorate([
|
81
82
|
UntilDestroy(),
|
@@ -87,13 +88,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
87
88
|
args: [{ selector: 'wlcm-form-field', standalone: true, imports: [CommonModule, WlcmErrorComponent, ErrorsMapperPipe], host: { class: 'wlcm-form-field' }, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
88
89
|
WLCM_FORM_CONTROL_PROVIDER,
|
89
90
|
{ provide: WLCM_FORM_FIELD, useExisting: forwardRef(() => WlcmFormFieldComponent) },
|
90
|
-
], template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n" }]
|
91
|
+
], template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control && displayErrorMessages\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n" }]
|
91
92
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
92
93
|
type: Optional
|
93
94
|
}, {
|
94
95
|
type: Inject,
|
95
96
|
args: [WLCM_FORM_CONTROL]
|
96
|
-
}] }, { type: i0.ChangeDetectorRef }], propDecorators: {
|
97
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { displayErrorMessages: [{
|
98
|
+
type: Input
|
99
|
+
}], ngControl: [{
|
97
100
|
type: ContentChild,
|
98
101
|
args: [NgControl, { descendants: true }]
|
99
102
|
}], controlContainer: [{
|
@@ -130,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
130
133
|
type: HostBinding,
|
131
134
|
args: ['class.wlcm-field-disabled']
|
132
135
|
}] } });
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2Zvcm1zL3NyYy9saWIvZm9ybXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQW1CLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFHNUYsT0FBTyxF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cUNBQXFDO2dCQUl6QyxnQkFBZ0I7c0JBRHpCLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUdnQixTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTyxVQUFVO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFJSyxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTSxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTyxVQUFVO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycywgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV2xjbUVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3IvZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IFdMQ01fRk9STV9DT05UUk9MLCBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9mb3JtLXN0YXRlLWhhbmRsZXJzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkQ3VzdG9tQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3JtLWZpZWxkLWN1c3RvbS1jb250YWluZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgRXJyb3JzTWFwcGVyUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2Vycm9ycy1tYXBwZXIucGlwZSc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fRklFTEQsIFdMQ01fSU5QVVQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZm9ybS1lbGVtZW50cy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbUZvcm1GaWVsZFByZWZpeERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9ybS1maWVsZC1wcmVmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRJbnB1dCwgV2xjbUlucHV0R2V0dGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lucHV0Lm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRTdWZmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtc3VmZml4LmRpcmVjdGl2ZSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1mb3JtLWZpZWxkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbUVycm9yQ29tcG9uZW50LCBFcnJvcnNNYXBwZXJQaXBlXSxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tZm9ybS1maWVsZCcgfSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUixcbiAgICB7IHByb3ZpZGU6IFdMQ01fRk9STV9GSUVMRCwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUZvcm1GaWVsZENvbXBvbmVudCkgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAQ29udGVudENoaWxkKE5nQ29udHJvbCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwcml2YXRlIG5nQ29udHJvbD86IE5nQ29udHJvbDtcblxuICBAQ29udGVudENoaWxkKENvbnRyb2xDb250YWluZXIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyPzogQ29udHJvbENvbnRhaW5lcjtcblxuICBAQ29udGVudENoaWxkKFdMQ01fSU5QVVQpIHByaXZhdGUgX2lucHV0UmVmPzogV2xjbUlucHV0R2V0dGVyO1xuXG4gIEBDb250ZW50Q2hpbGQoV2xjbUZvcm1GaWVsZFByZWZpeERpcmVjdGl2ZSkgcHJvdGVjdGVkIHByZWZpeD86IFdsY21Gb3JtRmllbGRQcmVmaXhEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChXbGNtRm9ybUZpZWxkU3VmZml4RGlyZWN0aXZlKSBwcm90ZWN0ZWQgc3VmZml4PzogV2xjbUZvcm1GaWVsZFN1ZmZpeERpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKFdsY21Gb3JtRmllbGRDdXN0b21Db250YWluZXJEaXJlY3RpdmUpXG4gIHByb3RlY3RlZCBjdXN0b21Db250YWluZXI/OiBXbGNtRm9ybUZpZWxkQ3VzdG9tQ29udGFpbmVyRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ2RlZmF1bHRDb250YWluZXInKVxuICBwcm90ZWN0ZWQgZGVmYXVsdENvbnRhaW5lcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1maWVsZC1mb2N1c2VkJykgZ2V0IGlzRm9jdXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dFJlZj8uaXNGb2N1c2VkKCkgPz8gZmFsc2U7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tZmllbGQtcmVxdWlyZWQnKSBnZXQgaXNSZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tZmllbGQtaW52YWxpZCcpIGdldCBpc0ludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uaW52YWxpZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1maWVsZC10b3VjaGVkJykgZ2V0IGlzVG91Y2hlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy50b3VjaGVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWZpZWxkLWRpc2FibGVkJykgZ2V0IGlzRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZGlzYWJsZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoV0xDTV9GT1JNX0NPTlRST0wpXG4gICAgcHJpdmF0ZSBwYXJlbnRGb3JtTWVtYmVyOiBXbGNtRm9ybUNvbnRyb2wsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5wdXRSZWYgJiYgIXRoaXMuY3VzdG9tQ29udGFpbmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IGVsZW1lbnQgc2hvdWxkIGJlIGJvdW5kIHRvIHRoZSB3bGNtSW5wdXQgZGlyZWN0aXZlLicpO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlU3RhdGVDaGFuZ2VzKCk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB0aGlzLmlucHV0UmVmPy5mb2N1cygpO1xuICB9XG5cbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgcmV0dXJuICh0aGlzLmNvbnRyb2xDb250YWluZXI/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpID8/IG51bGw7XG4gIH1cblxuICBnZXQgaW5wdXRDb250YWluZXIoKTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNvbnRhaW5lcj8uZWxlbWVudFJlZiB8fCAodGhpcy5kZWZhdWx0Q29udGFpbmVyIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50czogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gdGhpcy5jb250cm9sRXZlbnRzO1xuXG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybU1lbWJlcikge1xuICAgICAgZXZlbnRzLnB1c2godGhpcy5wYXJlbnRGb3JtTWVtYmVyLnN0YXRlQ2hhbmdlcyQpO1xuICAgIH1cblxuICAgIG1lcmdlKC4uLmV2ZW50cylcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlucHV0UmVmKCk6IFdsY21Gb3JtRmllbGRJbnB1dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0UmVmPy5nZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvbnRyb2xFdmVudHMoKTogT2JzZXJ2YWJsZTx1bmtub3duPltdIHtcbiAgICBjb25zdCBldmVudHM6IE9ic2VydmFibGU8dW5rbm93bj5bXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgIGV2ZW50cy5wdXNoKHRoaXMuaW5wdXRSZWYuZm9jdXMkLCB0aGlzLmlucHV0UmVmLmJsdXIkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBldmVudHMucHVzaCh0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwid2xjbS1sYWJlbFwiPjwvbmctY29udGVudD5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21Gb3JtRmllbGRDdXN0b21Db250YWluZXJdXCI+PC9uZy1jb250ZW50PlxuXG48ZGl2XG4gIGNsYXNzPVwid2xjbS1maWVsZC1jb250YWluZXJcIlxuICAoY2xpY2spPVwiZm9jdXMoKVwiXG4gICNkZWZhdWx0Q29udGFpbmVyXG4gICpuZ0lmPVwiIWN1c3RvbUNvbnRhaW5lclwiXG4+XG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpZWxkLXByZWZpeFwiIFtjbGFzcy5jb250YWlucy1jaGlsZHJlbl09XCJwcmVmaXhcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbd2xjbUZvcm1GaWVsZFByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtSW5wdXRdXCI+PC9uZy1jb250ZW50PlxuXG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpZWxkLXN1ZmZpeFwiIFtjbGFzcy5jb250YWlucy1jaGlsZHJlbl09XCJzdWZmaXhcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbd2xjbUZvcm1GaWVsZFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtRm9ybUZpZWxkSGludF1cIj48L25nLWNvbnRlbnQ+XG5cbjxkaXYgY2xhc3M9XCJ3bGNtLWZpZWxkLWVycm9yLWNvbnRhaW5lclwiICpuZ0lmPVwiY29udHJvbFwiPlxuICA8d2xjbS1lcnJvcj57eyAkYW55KGNvbnRyb2wpIHwgZXJyb3JzTWFwcGVyIH19PC93bGNtLWVycm9yPlxuPC9kaXY+XG4iXX0=
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2Zvcm1zL3NyYy9saWIvZm9ybXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUcsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FB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Z0JBRVksTUFBTTtzQkFBM0QsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBR2hDLGVBQWU7c0JBRHhCLFlBQVk7dUJBQUMscUNBQXFDO2dCQUl6QyxnQkFBZ0I7c0JBRHpCLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUdnQixTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTyxVQUFVO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFJSyxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTSxTQUFTO3NCQUFyRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTyxVQUFVO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdsY21FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uL2Vycm9yL2Vycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fQ09OVFJPTCwgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZm9ybS1zdGF0ZS1oYW5kbGVycy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbUZvcm1GaWVsZEN1c3RvbUNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9ybS1maWVsZC1jdXN0b20tY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IEVycm9yc01hcHBlclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9lcnJvcnMtbWFwcGVyLnBpcGUnO1xuaW1wb3J0IHsgV0xDTV9GT1JNX0ZJRUxELCBXTENNX0lOUFVUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Zvcm0tZWxlbWVudHMuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGRQcmVmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkSW5wdXQsIFdsY21JbnB1dEdldHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9pbnB1dC5tb2RlbHMnO1xuaW1wb3J0IHsgV2xjbUZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkU3VmZml4RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3JtLWZpZWxkLXN1ZmZpeC5kaXJlY3RpdmUnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZm9ybS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdsY21FcnJvckNvbXBvbmVudCwgRXJyb3JzTWFwcGVyUGlwZV0sXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWZvcm0tZmllbGQnIH0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIsXG4gICAgeyBwcm92aWRlOiBXTENNX0ZPUk1fRklFTEQsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21Gb3JtRmllbGRDb21wb25lbnQpIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21Gb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZGlzcGxheUVycm9yTWVzc2FnZXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBDb250ZW50Q2hpbGQoTmdDb250cm9sLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHByaXZhdGUgbmdDb250cm9sPzogTmdDb250cm9sO1xuXG4gIEBDb250ZW50Q2hpbGQoQ29udHJvbENvbnRhaW5lciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI/OiBDb250cm9sQ29udGFpbmVyO1xuXG4gIEBDb250ZW50Q2hpbGQoV0xDTV9JTlBVVCkgcHJpdmF0ZSBfaW5wdXRSZWY/OiBXbGNtSW5wdXRHZXR0ZXI7XG5cbiAgQENvbnRlbnRDaGlsZChXbGNtRm9ybUZpZWxkUHJlZml4RGlyZWN0aXZlKSBwcm90ZWN0ZWQgcHJlZml4PzogV2xjbUZvcm1GaWVsZFByZWZpeERpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKFdsY21Gb3JtRmllbGRTdWZmaXhEaXJlY3RpdmUpIHByb3RlY3RlZCBzdWZmaXg/OiBXbGNtRm9ybUZpZWxkU3VmZml4RGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoV2xjbUZvcm1GaWVsZEN1c3RvbUNvbnRhaW5lckRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIGN1c3RvbUNvbnRhaW5lcj86IFdsY21Gb3JtRmllbGRDdXN0b21Db250YWluZXJEaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZCgnZGVmYXVsdENvbnRhaW5lcicpXG4gIHByb3RlY3RlZCBkZWZhdWx0Q29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWZpZWxkLWZvY3VzZWQnKSBnZXQgaXNGb2N1c2VkKCkge1xuICAgIHJldHVybiB0aGlzLmlucHV0UmVmPy5pc0ZvY3VzZWQoKSA/PyBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1maWVsZC1yZXF1aXJlZCcpIGdldCBpc1JlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1maWVsZC1pbnZhbGlkJykgZ2V0IGlzSW52YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5pbnZhbGlkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWZpZWxkLXRvdWNoZWQnKSBnZXQgaXNUb3VjaGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LnRvdWNoZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tZmllbGQtZGlzYWJsZWQnKSBnZXQgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5kaXNhYmxlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChXTENNX0ZPUk1fQ09OVFJPTClcbiAgICBwcml2YXRlIHBhcmVudEZvcm1NZW1iZXI6IFdsY21Gb3JtQ29udHJvbCxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnB1dFJlZiAmJiAhdGhpcy5jdXN0b21Db250YWluZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5wdXQgZWxlbWVudCBzaG91bGQgYmUgYm91bmQgdG8gdGhlIHdsY21JbnB1dCBkaXJlY3RpdmUuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHRoaXMuaW5wdXRSZWY/LmZvY3VzKCk7XG4gIH1cblxuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICByZXR1cm4gKHRoaXMuY29udHJvbENvbnRhaW5lcj8uY29udHJvbCB8fCB0aGlzLm5nQ29udHJvbD8uY29udHJvbCkgPz8gbnVsbDtcbiAgfVxuXG4gIGdldCBpbnB1dENvbnRhaW5lcigpOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tQ29udGFpbmVyPy5lbGVtZW50UmVmIHx8ICh0aGlzLmRlZmF1bHRDb250YWluZXIgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRzOiBPYnNlcnZhYmxlPHVua25vd24+W10gPSB0aGlzLmNvbnRyb2xFdmVudHM7XG5cbiAgICBpZiAodGhpcy5wYXJlbnRGb3JtTWVtYmVyKSB7XG4gICAgICBldmVudHMucHVzaCh0aGlzLnBhcmVudEZvcm1NZW1iZXIuc3RhdGVDaGFuZ2VzJCk7XG4gICAgfVxuXG4gICAgbWVyZ2UoLi4uZXZlbnRzKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaW5wdXRSZWYoKTogV2xjbUZvcm1GaWVsZElucHV0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRSZWY/LmdldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29udHJvbEV2ZW50cygpOiBPYnNlcnZhYmxlPHVua25vd24+W10ge1xuICAgIGNvbnN0IGV2ZW50czogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW107XG5cbiAgICBpZiAodGhpcy5pbnB1dFJlZikge1xuICAgICAgZXZlbnRzLnB1c2godGhpcy5pbnB1dFJlZi5mb2N1cyQsIHRoaXMuaW5wdXRSZWYuYmx1ciQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGV2ZW50cy5wdXNoKHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXZlbnRzO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJ3bGNtLWxhYmVsXCI+PC9uZy1jb250ZW50PlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJbd2xjbUZvcm1GaWVsZEN1c3RvbUNvbnRhaW5lcl1cIj48L25nLWNvbnRlbnQ+XG5cbjxkaXZcbiAgY2xhc3M9XCJ3bGNtLWZpZWxkLWNvbnRhaW5lclwiXG4gIChjbGljayk9XCJmb2N1cygpXCJcbiAgI2RlZmF1bHRDb250YWluZXJcbiAgKm5nSWY9XCIhY3VzdG9tQ29udGFpbmVyXCJcbj5cbiAgPGRpdiBjbGFzcz1cIndsY20tZmllbGQtcHJlZml4XCIgW2NsYXNzLmNvbnRhaW5zLWNoaWxkcmVuXT1cInByZWZpeFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtRm9ybUZpZWxkUHJlZml4XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21JbnB1dF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgPGRpdiBjbGFzcz1cIndsY20tZmllbGQtc3VmZml4XCIgW2NsYXNzLmNvbnRhaW5zLWNoaWxkcmVuXT1cInN1ZmZpeFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtRm9ybUZpZWxkU3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21Gb3JtRmllbGRIaW50XVwiPjwvbmctY29udGVudD5cblxuPGRpdiBjbGFzcz1cIndsY20tZmllbGQtZXJyb3ItY29udGFpbmVyXCIgKm5nSWY9XCJjb250cm9sICYmIGRpc3BsYXlFcnJvck1lc3NhZ2VzXCI+XG4gIDx3bGNtLWVycm9yPnt7ICRhbnkoY29udHJvbCkgfCBlcnJvcnNNYXBwZXIgfX08L3dsY20tZXJyb3I+XG48L2Rpdj5cbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { Component, ChangeDetectionStrategy, Injectable, InjectionToken, inject, Directive, Pipe, Inject, HostListener, forwardRef, ChangeDetectorRef, Optional, ContentChild, ViewChild, HostBinding,
|
2
|
+
import { Component, ChangeDetectionStrategy, Injectable, InjectionToken, inject, Directive, Pipe, Inject, HostListener, forwardRef, ChangeDetectorRef, Optional, Input, ContentChild, ViewChild, HostBinding, EventEmitter, NgZone, Host, Output, output, input, NgModule } from '@angular/core';
|
3
3
|
import { __decorate, __metadata } from 'tslib';
|
4
4
|
import * as i4 from '@angular/forms';
|
5
5
|
import { Validators, NgControl, ControlContainer, FormControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, ReactiveFormsModule } from '@angular/forms';
|
@@ -181,6 +181,7 @@ let WlcmFormFieldComponent = class WlcmFormFieldComponent {
|
|
181
181
|
constructor(parentFormMember, changeDetectorRef) {
|
182
182
|
this.parentFormMember = parentFormMember;
|
183
183
|
this.changeDetectorRef = changeDetectorRef;
|
184
|
+
this.displayErrorMessages = true;
|
184
185
|
}
|
185
186
|
ngAfterViewInit() {
|
186
187
|
if (!this.inputRef && !this.customContainer) {
|
@@ -221,10 +222,10 @@ let WlcmFormFieldComponent = class WlcmFormFieldComponent {
|
|
221
222
|
return events;
|
222
223
|
}
|
223
224
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmFormFieldComponent, deps: [{ token: WLCM_FORM_CONTROL, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
224
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFormFieldComponent, isStandalone: true, selector: "wlcm-form-field", host: { properties: { "class.wlcm-field-focused": "this.isFocused", "class.wlcm-field-required": "this.isRequired", "class.wlcm-field-invalid": "this.isInvalid", "class.wlcm-field-touched": "this.isTouched", "class.wlcm-field-disabled": "this.isDisabled" }, classAttribute: "wlcm-form-field" }, providers: [
|
225
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmFormFieldComponent, isStandalone: true, selector: "wlcm-form-field", inputs: { displayErrorMessages: "displayErrorMessages" }, host: { properties: { "class.wlcm-field-focused": "this.isFocused", "class.wlcm-field-required": "this.isRequired", "class.wlcm-field-invalid": "this.isInvalid", "class.wlcm-field-touched": "this.isTouched", "class.wlcm-field-disabled": "this.isDisabled" }, classAttribute: "wlcm-form-field" }, providers: [
|
225
226
|
WLCM_FORM_CONTROL_PROVIDER,
|
226
227
|
{ provide: WLCM_FORM_FIELD, useExisting: forwardRef(() => WlcmFormFieldComponent) },
|
227
|
-
], queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }, { propertyName: "controlContainer", first: true, predicate: ControlContainer, descendants: true }, { propertyName: "_inputRef", first: true, predicate: WLCM_INPUT, descendants: true }, { propertyName: "prefix", first: true, predicate: WlcmFormFieldPrefixDirective, descendants: true }, { propertyName: "suffix", first: true, predicate: WlcmFormFieldSuffixDirective, descendants: true }, { propertyName: "customContainer", first: true, predicate: WlcmFormFieldCustomContainerDirective, descendants: true }], viewQueries: [{ propertyName: "defaultContainer", first: true, predicate: ["defaultContainer"], descendants: true }], ngImport: i0, template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmErrorComponent, selector: "wlcm-error" }, { kind: "pipe", type: ErrorsMapperPipe, name: "errorsMapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
228
|
+
], queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }, { propertyName: "controlContainer", first: true, predicate: ControlContainer, descendants: true }, { propertyName: "_inputRef", first: true, predicate: WLCM_INPUT, descendants: true }, { propertyName: "prefix", first: true, predicate: WlcmFormFieldPrefixDirective, descendants: true }, { propertyName: "suffix", first: true, predicate: WlcmFormFieldSuffixDirective, descendants: true }, { propertyName: "customContainer", first: true, predicate: WlcmFormFieldCustomContainerDirective, descendants: true }], viewQueries: [{ propertyName: "defaultContainer", first: true, predicate: ["defaultContainer"], descendants: true }], ngImport: i0, template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control && displayErrorMessages\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmErrorComponent, selector: "wlcm-error" }, { kind: "pipe", type: ErrorsMapperPipe, name: "errorsMapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
228
229
|
};
|
229
230
|
WlcmFormFieldComponent = __decorate([
|
230
231
|
UntilDestroy(),
|
@@ -235,13 +236,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
235
236
|
args: [{ selector: 'wlcm-form-field', standalone: true, imports: [CommonModule, WlcmErrorComponent, ErrorsMapperPipe], host: { class: 'wlcm-form-field' }, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
236
237
|
WLCM_FORM_CONTROL_PROVIDER,
|
237
238
|
{ provide: WLCM_FORM_FIELD, useExisting: forwardRef(() => WlcmFormFieldComponent) },
|
238
|
-
], template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n" }]
|
239
|
+
], template: "<ng-content select=\"wlcm-label\"></ng-content>\n\n<ng-content select=\"[wlcmFormFieldCustomContainer]\"></ng-content>\n\n<div\n class=\"wlcm-field-container\"\n (click)=\"focus()\"\n #defaultContainer\n *ngIf=\"!customContainer\"\n>\n <div class=\"wlcm-field-prefix\" [class.contains-children]=\"prefix\">\n <ng-content select=\"[wlcmFormFieldPrefix]\"></ng-content>\n </div>\n\n <ng-content select=\"[wlcmInput]\"></ng-content>\n\n <div class=\"wlcm-field-suffix\" [class.contains-children]=\"suffix\">\n <ng-content select=\"[wlcmFormFieldSuffix]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"[wlcmFormFieldHint]\"></ng-content>\n\n<div class=\"wlcm-field-error-container\" *ngIf=\"control && displayErrorMessages\">\n <wlcm-error>{{ $any(control) | errorsMapper }}</wlcm-error>\n</div>\n" }]
|
239
240
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
240
241
|
type: Optional
|
241
242
|
}, {
|
242
243
|
type: Inject,
|
243
244
|
args: [WLCM_FORM_CONTROL]
|
244
|
-
}] }, { type: i0.ChangeDetectorRef }], propDecorators: {
|
245
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { displayErrorMessages: [{
|
246
|
+
type: Input
|
247
|
+
}], ngControl: [{
|
245
248
|
type: ContentChild,
|
246
249
|
args: [NgControl, { descendants: true }]
|
247
250
|
}], controlContainer: [{
|