@wlcm/angular 17.5.12 → 17.5.15

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.
Files changed (73) hide show
  1. package/core/esm2022/index.mjs +7 -4
  2. package/core/esm2022/lib/components/default-loader/default-loader.component.mjs +12 -0
  3. package/core/esm2022/lib/components/{calendar-icon → icons/calendar-icon}/calendar-icon.component.mjs +1 -1
  4. package/core/esm2022/lib/components/{chevron-down-icon → icons/chevron-down-icon}/chevron-down-icon.component.mjs +1 -1
  5. package/core/esm2022/lib/components/{close-icon → icons/close-icon}/close-icon.component.mjs +1 -1
  6. package/core/esm2022/lib/components/{search-icon → icons/search-icon}/search-icon.component.mjs +1 -1
  7. package/core/esm2022/lib/components/loader/loader.component.mjs +32 -0
  8. package/core/esm2022/lib/constants/icon.contants.mjs +4 -4
  9. package/core/esm2022/lib/constants/loader.constants.mjs +7 -0
  10. package/core/esm2022/lib/directives/icon.directive.mjs +2 -2
  11. package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +20 -0
  12. package/core/fesm2022/wlcm-angular-core.mjs +64 -3
  13. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  14. package/core/index.d.ts +6 -3
  15. package/core/lib/components/default-loader/default-loader.component.d.ts +5 -0
  16. package/core/lib/components/loader/loader.component.d.ts +11 -0
  17. package/core/lib/constants/loader.constants.d.ts +2 -0
  18. package/core/lib/utils/paginated-data-emulator.utils.d.ts +10 -0
  19. package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +7 -5
  20. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +39 -5
  21. package/datepicker/esm2022/lib/components/range/date-range-picker/date-range-picker.component.mjs +14 -9
  22. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +2 -2
  23. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +15 -9
  24. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +3 -1
  25. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +20 -4
  26. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +23 -4
  27. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +12 -8
  28. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +12 -8
  29. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +7 -4
  30. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +10 -5
  31. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +10 -5
  32. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +2 -2
  33. package/datepicker/esm2022/lib/models/date-picker.models.mjs +3 -1
  34. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +21 -3
  35. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +202 -94
  36. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
  37. package/datepicker/lib/components/calendar-header/calendar-header.component.d.ts +3 -1
  38. package/datepicker/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.d.ts +8 -2
  39. package/datepicker/lib/components/range/date-range-picker/date-range-picker.component.d.ts +5 -3
  40. package/datepicker/lib/components/single/datepicker-input-container/datepicker-input-container.component.d.ts +3 -3
  41. package/datepicker/lib/components/single/datepicker-panel/datepicker-panel.component.d.ts +10 -6
  42. package/datepicker/lib/constants/datepicker.constants.d.ts +3 -1
  43. package/datepicker/lib/directives/datepicker-input.base.d.ts +5 -1
  44. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +7 -2
  45. package/datepicker/lib/directives/ragne/date-range-picker-input-end.directive.d.ts +4 -2
  46. package/datepicker/lib/directives/ragne/date-range-picker-input-start.directive.d.ts +4 -2
  47. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +3 -1
  48. package/datepicker/lib/directives/ragne/left-calendar.directive.d.ts +3 -1
  49. package/datepicker/lib/directives/ragne/right-calendar.directive.d.ts +3 -1
  50. package/datepicker/lib/directives/single/datepicker-input.directive.d.ts +5 -5
  51. package/datepicker/lib/models/date-picker.models.d.ts +8 -1
  52. package/datepicker/lib/models/range/data-range-calendar.models.d.ts +6 -1
  53. package/package.json +5 -5
  54. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +3 -3
  55. package/search-field/fesm2022/wlcm-angular-search-field.mjs +2 -2
  56. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
  57. package/styles/components/calendar/_calendar-header.scss +4 -0
  58. package/styles/components/loader/_loader.scss +168 -0
  59. package/styles/components/loader/index.scss +5 -0
  60. package/styles/core/_all-theme.scss +2 -0
  61. package/table/esm2022/lib/components/table/table.component.mjs +3 -1
  62. package/table/esm2022/lib/components/table-row/table-row.component.mjs +48 -20
  63. package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +13 -46
  64. package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +38 -7
  65. package/table/fesm2022/wlcm-angular-table.mjs +86 -61
  66. package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
  67. package/table/lib/components/table-row/table-row.component.d.ts +9 -4
  68. package/table/lib/components/table-row-actions/table-row-actions.component.d.ts +3 -12
  69. package/table/lib/directives/scrollable-table-container.directive.d.ts +9 -1
  70. /package/core/lib/components/{calendar-icon → icons/calendar-icon}/calendar-icon.component.d.ts +0 -0
  71. /package/core/lib/components/{chevron-down-icon → icons/chevron-down-icon}/chevron-down-icon.component.d.ts +0 -0
  72. /package/core/lib/components/{close-icon → icons/close-icon}/close-icon.component.d.ts +0 -0
  73. /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 config;
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(config: WlcmDateRangePickerConfig, rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>, localSelectionModel: MatDateSelectionModel<DateRange<Date>>, triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>, trigger: WlcmDatepickerTrigger<WlcmDateRangePickerComponent>, dateAdapter: DateAdapter<Date>);
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> implements WlcmFormFieldInput, AfterContentInit {
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, [null, null, null, { host: true; }]>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDatepickerInputContainerComponent, "wlcm-datepicker-input-container", ["wlcmDatepicker"], {}, {}, ["inputRef"], ["[wlcmDatepickerInput]"], true, never>;
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 { MatDateSelectionModel } from '@angular/material/datepicker';
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
- constructor(selectionModel: MatDateSelectionModel<Date>, trigger: WlcmDatepickerTrigger<WlcmDatepickerPanelComponent>);
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, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDatepickerPanelComponent, "wlcm-datepicker-panel", never, {}, {}, never, never, true, never>;
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
- constructor(element: ElementRef<HTMLInputElement>, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, selectionModel: MatDateSelectionModel<DateRange<Date>>);
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
- constructor(element: ElementRef<HTMLInputElement>, dateAdapter: DateAdapter<Date>, dateFormats: MatDateFormats, selectionModel: MatDateSelectionModel<DateRange<Date>>);
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
- constructor(element: ElementRef<HTMLElement>, dateAdapter: DateAdapter<Date>, calendar: MatCalendar<Date>);
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
- constructor(element: ElementRef<HTMLElement>, dateAdapter: DateAdapter<Date>, calendar: MatCalendar<Date>);
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, never>;
20
- static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmDatepickerInputDirective, "[wlcmDatepickerInput]", ["wlcmDatepickerInput"], {}, {}, never, never, true, never>;
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wlcm/angular",
3
- "version": "17.5.12",
3
+ "version": "17.5.15",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./index.mjs",
@@ -62,10 +62,10 @@
62
62
  "default": "./stepper/fesm2022/wlcm-angular-stepper.mjs"
63
63
  },
64
64
  "./table": {
65
- "types": "./stepper/index.d.ts",
66
- "esm2022": "./stepper/esm2022/wlcm-angular-table.mjs",
67
- "fesm2022": "./stepper/fesm2022/wlcm-angular-table.mjs",
68
- "default": "./stepper/fesm2022/wlcm-angular-table.mjs"
65
+ "types": "./table/index.d.ts",
66
+ "esm2022": "./table/esm2022/wlcm-angular-table.mjs",
67
+ "fesm2022": "./table/fesm2022/wlcm-angular-table.mjs",
68
+ "default": "./table/fesm2022/wlcm-angular-table.mjs"
69
69
  }
70
70
  },
71
71
  "dependencies": {
@@ -24,11 +24,11 @@ export class WlcmSearchFieldComponent {
24
24
  });
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmSearchFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmSearchFieldComponent, isStandalone: true, selector: "wlcm-search-field", inputs: { placeholder: "placeholder", queryParams: "queryParams" }, outputs: { queryParamsChange: "queryParamsChange" }, host: { classAttribute: "wlcm-search-field" }, ngImport: i0, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n [wlcmIconStopPropagation]=\"false\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmFormFieldComponent, selector: "wlcm-form-field" }, { kind: "directive", type: i1.WlcmInputDirective, selector: "[wlcmInput]" }, { kind: "directive", type: i1.WlcmFormFieldPrefixDirective, selector: "[wlcmFormFieldPrefix]" }, { kind: "directive", type: WlcmIconDirective, selector: "[wlcmIcon]", inputs: ["wlcmIcon", "wlcmIconStopPropagation"], outputs: ["wlcmIconClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmSearchFieldComponent, isStandalone: true, selector: "wlcm-search-field", inputs: { placeholder: "placeholder", queryParams: "queryParams" }, outputs: { queryParamsChange: "queryParamsChange" }, host: { classAttribute: "wlcm-search-field" }, ngImport: i0, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmFormFieldComponent, selector: "wlcm-form-field" }, { kind: "directive", type: i1.WlcmInputDirective, selector: "[wlcmInput]" }, { kind: "directive", type: i1.WlcmFormFieldPrefixDirective, selector: "[wlcmFormFieldPrefix]" }, { kind: "directive", type: WlcmIconDirective, selector: "[wlcmIcon]", inputs: ["wlcmIcon", "wlcmIconStopPropagation"], outputs: ["wlcmIconClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmSearchFieldComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ selector: 'wlcm-search-field', standalone: true, host: { class: 'wlcm-search-field' }, imports: [CommonModule, SearchIconComponent, WlcmFormsModule, WlcmIconDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n [wlcmIconStopPropagation]=\"false\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n" }]
31
+ args: [{ selector: 'wlcm-search-field', standalone: true, host: { class: 'wlcm-search-field' }, imports: [CommonModule, SearchIconComponent, WlcmFormsModule, WlcmIconDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n" }]
32
32
  }], propDecorators: { placeholder: [{
33
33
  type: Input
34
34
  }], queryParams: [{
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
36
36
  }], queryParamsChange: [{
37
37
  type: Output
38
38
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2VhcmNoLWZpZWxkL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtZmllbGQvc2VhcmNoLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2VhcmNoLWZpZWxkL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtZmllbGQvc2VhcmNoLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFlBQVksR0FDYixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFXdEQsTUFBTSxPQUFPLHdCQUF3QjtJQVRyQztRQVVXLGdCQUFXLEdBQVcsV0FBVyxDQUFDO1FBRWxDLGdCQUFXLEdBQWdCLG9CQUFvQixDQUFDO1FBRS9DLHNCQUFpQixHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5FLGlCQUFZLEdBQTRCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLGlCQUFZLEdBQUcsWUFBWSxDQUFDO0tBZXRDO0lBYkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDN0UsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFFcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdkJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHFQQ3JCckMsc1pBaUJBLHlERERZLFlBQVksOEJBQXVCLGVBQWUsa1NBQUUsaUJBQWlCOzsyRkFLcEUsd0JBQXdCO2tCQVRwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFFBQ1YsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsV0FDM0IsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLG1CQUcvRCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERFRkFVTFRfUVVFUllfUEFSQU1TLFxuICBRdWVyeVBhcmFtcyxcbiAgU2VhcmNoSWNvbkNvbXBvbmVudCxcbiAgV2xjbUljb25EaXJlY3RpdmUsXG4gIFdsY21JY29uTmFtZSxcbn0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lLCBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV2xjbUZvcm1zTW9kdWxlIH0gZnJvbSAnQHdsY20vYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tc2VhcmNoLWZpZWxkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tc2VhcmNoLWZpZWxkJyB9LFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTZWFyY2hJY29uQ29tcG9uZW50LCBXbGNtRm9ybXNNb2R1bGUsIFdsY21JY29uRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVNlYXJjaEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWFyY2ggYnknO1xuXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyA9IERFRkFVTFRfUVVFUllfUEFSQU1TO1xuXG4gIEBPdXRwdXQoKSBxdWVyeVBhcmFtc0NoYW5nZTogRXZlbnRFbWl0dGVyPFF1ZXJ5UGFyYW1zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBfaW5wdXRWYWx1ZSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgV2xjbUljb25OYW1lID0gV2xjbUljb25OYW1lO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2lucHV0VmFsdWUkLm5leHQodGhpcy5xdWVyeVBhcmFtcy5xdWVyeSk7XG5cbiAgICB0aGlzLmhhbmRsZUlucHV0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dFZhbHVlJC5waXBlKHNraXAoMSksIGRlYm91bmNlVGltZSg0MDApKS5zdWJzY3JpYmUoKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtczogUXVlcnlQYXJhbXMgPSB7IC4uLnRoaXMucXVlcnlQYXJhbXMsIHBhZ2U6IDEsIHF1ZXJ5IH07XG5cbiAgICAgIHRoaXMucXVlcnlQYXJhbXNDaGFuZ2UuZW1pdChwYXJhbXMpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8d2xjbS1mb3JtLWZpZWxkPlxuICA8bmctY29udGFpbmVyXG4gICAgW3dsY21JY29uXT1cIldsY21JY29uTmFtZS5TRUFSQ0hcIlxuICAgIFt3bGNtSWNvblN0b3BQcm9wYWdhdGlvbl09XCJmYWxzZVwiXG4gICAgd2xjbUZvcm1GaWVsZFByZWZpeFxuICA+PC9uZy1jb250YWluZXI+XG5cbiAgPGlucHV0XG4gICAgI2ZpZWxkXG4gICAgd2xjbUlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwid2xjbS1zZWFyY2gtZmllbGRfX2lucHV0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFt2YWx1ZV09XCJxdWVyeVBhcmFtcy5xdWVyeVwiXG4gICAgKGlucHV0KT1cIl9pbnB1dFZhbHVlJC5uZXh0KGZpZWxkLnZhbHVlKVwiXG4gIC8+XG48L3dsY20tZm9ybS1maWVsZD5cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2VhcmNoLWZpZWxkL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtZmllbGQvc2VhcmNoLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2VhcmNoLWZpZWxkL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtZmllbGQvc2VhcmNoLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFlBQVksR0FDYixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFXdEQsTUFBTSxPQUFPLHdCQUF3QjtJQVRyQztRQVVXLGdCQUFXLEdBQVcsV0FBVyxDQUFDO1FBRWxDLGdCQUFXLEdBQWdCLG9CQUFvQixDQUFDO1FBRS9DLHNCQUFpQixHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5FLGlCQUFZLEdBQTRCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLGlCQUFZLEdBQUcsWUFBWSxDQUFDO0tBZXRDO0lBYkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDN0UsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFFcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdkJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHFQQ3JCckMsNldBZ0JBLHlEREFZLFlBQVksOEJBQXVCLGVBQWUsa1NBQUUsaUJBQWlCOzsyRkFLcEUsd0JBQXdCO2tCQVRwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFFBQ1YsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsV0FDM0IsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLG1CQUcvRCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERFRkFVTFRfUVVFUllfUEFSQU1TLFxuICBRdWVyeVBhcmFtcyxcbiAgU2VhcmNoSWNvbkNvbXBvbmVudCxcbiAgV2xjbUljb25EaXJlY3RpdmUsXG4gIFdsY21JY29uTmFtZSxcbn0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lLCBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV2xjbUZvcm1zTW9kdWxlIH0gZnJvbSAnQHdsY20vYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tc2VhcmNoLWZpZWxkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tc2VhcmNoLWZpZWxkJyB9LFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTZWFyY2hJY29uQ29tcG9uZW50LCBXbGNtRm9ybXNNb2R1bGUsIFdsY21JY29uRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVNlYXJjaEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWFyY2ggYnknO1xuXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyA9IERFRkFVTFRfUVVFUllfUEFSQU1TO1xuXG4gIEBPdXRwdXQoKSBxdWVyeVBhcmFtc0NoYW5nZTogRXZlbnRFbWl0dGVyPFF1ZXJ5UGFyYW1zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBfaW5wdXRWYWx1ZSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgV2xjbUljb25OYW1lID0gV2xjbUljb25OYW1lO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2lucHV0VmFsdWUkLm5leHQodGhpcy5xdWVyeVBhcmFtcy5xdWVyeSk7XG5cbiAgICB0aGlzLmhhbmRsZUlucHV0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dFZhbHVlJC5waXBlKHNraXAoMSksIGRlYm91bmNlVGltZSg0MDApKS5zdWJzY3JpYmUoKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtczogUXVlcnlQYXJhbXMgPSB7IC4uLnRoaXMucXVlcnlQYXJhbXMsIHBhZ2U6IDEsIHF1ZXJ5IH07XG5cbiAgICAgIHRoaXMucXVlcnlQYXJhbXNDaGFuZ2UuZW1pdChwYXJhbXMpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8d2xjbS1mb3JtLWZpZWxkPlxuICA8bmctY29udGFpbmVyXG4gICAgW3dsY21JY29uXT1cIldsY21JY29uTmFtZS5TRUFSQ0hcIlxuICAgIHdsY21Gb3JtRmllbGRQcmVmaXhcbiAgPjwvbmctY29udGFpbmVyPlxuXG4gIDxpbnB1dFxuICAgICNmaWVsZFxuICAgIHdsY21JbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBjbGFzcz1cIndsY20tc2VhcmNoLWZpZWxkX19pbnB1dFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwicXVlcnlQYXJhbXMucXVlcnlcIlxuICAgIChpbnB1dCk9XCJfaW5wdXRWYWx1ZSQubmV4dChmaWVsZC52YWx1ZSlcIlxuICAvPlxuPC93bGNtLWZvcm0tZmllbGQ+XG4iXX0=
@@ -25,11 +25,11 @@ class WlcmSearchFieldComponent {
25
25
  });
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmSearchFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmSearchFieldComponent, isStandalone: true, selector: "wlcm-search-field", inputs: { placeholder: "placeholder", queryParams: "queryParams" }, outputs: { queryParamsChange: "queryParamsChange" }, host: { classAttribute: "wlcm-search-field" }, ngImport: i0, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n [wlcmIconStopPropagation]=\"false\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmFormFieldComponent, selector: "wlcm-form-field" }, { kind: "directive", type: i1.WlcmInputDirective, selector: "[wlcmInput]" }, { kind: "directive", type: i1.WlcmFormFieldPrefixDirective, selector: "[wlcmFormFieldPrefix]" }, { kind: "directive", type: WlcmIconDirective, selector: "[wlcmIcon]", inputs: ["wlcmIcon", "wlcmIconStopPropagation"], outputs: ["wlcmIconClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmSearchFieldComponent, isStandalone: true, selector: "wlcm-search-field", inputs: { placeholder: "placeholder", queryParams: "queryParams" }, outputs: { queryParamsChange: "queryParamsChange" }, host: { classAttribute: "wlcm-search-field" }, ngImport: i0, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmFormFieldComponent, selector: "wlcm-form-field" }, { kind: "directive", type: i1.WlcmInputDirective, selector: "[wlcmInput]" }, { kind: "directive", type: i1.WlcmFormFieldPrefixDirective, selector: "[wlcmFormFieldPrefix]" }, { kind: "directive", type: WlcmIconDirective, selector: "[wlcmIcon]", inputs: ["wlcmIcon", "wlcmIconStopPropagation"], outputs: ["wlcmIconClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmSearchFieldComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'wlcm-search-field', standalone: true, host: { class: 'wlcm-search-field' }, imports: [CommonModule, SearchIconComponent, WlcmFormsModule, WlcmIconDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n [wlcmIconStopPropagation]=\"false\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n" }]
32
+ args: [{ selector: 'wlcm-search-field', standalone: true, host: { class: 'wlcm-search-field' }, imports: [CommonModule, SearchIconComponent, WlcmFormsModule, WlcmIconDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n" }]
33
33
  }], propDecorators: { placeholder: [{
34
34
  type: Input
35
35
  }], queryParams: [{
@@ -1 +1 @@
1
- {"version":3,"file":"wlcm-angular-search-field.mjs","sources":["../../../../modules/search-field/src/lib/components/search-field/search-field.component.ts","../../../../modules/search-field/src/lib/components/search-field/search-field.component.html","../../../../modules/search-field/src/lib/search-field.module.ts","../../../../modules/search-field/src/wlcm-angular-search-field.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n DEFAULT_QUERY_PARAMS,\n QueryParams,\n SearchIconComponent,\n WlcmIconDirective,\n WlcmIconName,\n} from '@wlcm/angular/core';\nimport { BehaviorSubject, debounceTime, skip } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFormsModule } from '@wlcm/angular/forms';\n\n@Component({\n selector: 'wlcm-search-field',\n standalone: true,\n host: { class: 'wlcm-search-field' },\n imports: [CommonModule, SearchIconComponent, WlcmFormsModule, WlcmIconDirective],\n templateUrl: './search-field.component.html',\n styleUrls: ['./search-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmSearchFieldComponent implements OnInit {\n @Input() placeholder: string = 'Search by';\n\n @Input() queryParams: QueryParams = DEFAULT_QUERY_PARAMS;\n\n @Output() queryParamsChange: EventEmitter<QueryParams> = new EventEmitter();\n\n readonly _inputValue$: BehaviorSubject<string> = new BehaviorSubject('');\n\n readonly WlcmIconName = WlcmIconName;\n\n ngOnInit(): void {\n this._inputValue$.next(this.queryParams.query);\n\n this.handleInputValue();\n }\n\n private handleInputValue(): void {\n this._inputValue$.pipe(skip(1), debounceTime(400)).subscribe((query: string) => {\n const params: QueryParams = { ...this.queryParams, page: 1, query };\n\n this.queryParamsChange.emit(params);\n });\n }\n}\n","<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n [wlcmIconStopPropagation]=\"false\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmSearchFieldComponent } from './components/search-field/search-field.component';\n@NgModule({\n declarations: [],\n imports: [CommonModule, WlcmSearchFieldComponent],\n exports: [WlcmSearchFieldComponent],\n})\nexport class WlcmSearchFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wlcm-angular-search-field.mjs","sources":["../../../../modules/search-field/src/lib/components/search-field/search-field.component.ts","../../../../modules/search-field/src/lib/components/search-field/search-field.component.html","../../../../modules/search-field/src/lib/search-field.module.ts","../../../../modules/search-field/src/wlcm-angular-search-field.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n DEFAULT_QUERY_PARAMS,\n QueryParams,\n SearchIconComponent,\n WlcmIconDirective,\n WlcmIconName,\n} from '@wlcm/angular/core';\nimport { BehaviorSubject, debounceTime, skip } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFormsModule } from '@wlcm/angular/forms';\n\n@Component({\n selector: 'wlcm-search-field',\n standalone: true,\n host: { class: 'wlcm-search-field' },\n imports: [CommonModule, SearchIconComponent, WlcmFormsModule, WlcmIconDirective],\n templateUrl: './search-field.component.html',\n styleUrls: ['./search-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmSearchFieldComponent implements OnInit {\n @Input() placeholder: string = 'Search by';\n\n @Input() queryParams: QueryParams = DEFAULT_QUERY_PARAMS;\n\n @Output() queryParamsChange: EventEmitter<QueryParams> = new EventEmitter();\n\n readonly _inputValue$: BehaviorSubject<string> = new BehaviorSubject('');\n\n readonly WlcmIconName = WlcmIconName;\n\n ngOnInit(): void {\n this._inputValue$.next(this.queryParams.query);\n\n this.handleInputValue();\n }\n\n private handleInputValue(): void {\n this._inputValue$.pipe(skip(1), debounceTime(400)).subscribe((query: string) => {\n const params: QueryParams = { ...this.queryParams, page: 1, query };\n\n this.queryParamsChange.emit(params);\n });\n }\n}\n","<wlcm-form-field>\n <ng-container\n [wlcmIcon]=\"WlcmIconName.SEARCH\"\n wlcmFormFieldPrefix\n ></ng-container>\n\n <input\n #field\n wlcmInput\n type=\"text\"\n class=\"wlcm-search-field__input\"\n [placeholder]=\"placeholder\"\n [value]=\"queryParams.query\"\n (input)=\"_inputValue$.next(field.value)\"\n />\n</wlcm-form-field>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmSearchFieldComponent } from './components/search-field/search-field.component';\n@NgModule({\n declarations: [],\n imports: [CommonModule, WlcmSearchFieldComponent],\n exports: [WlcmSearchFieldComponent],\n})\nexport class WlcmSearchFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -54,6 +54,10 @@
54
54
  &-right {
55
55
  transform: rotate(-90deg);
56
56
  }
57
+
58
+ &[disabled] {
59
+ pointer-events: none;
60
+ }
57
61
  }
58
62
  }
59
63
  }
@@ -0,0 +1,168 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @mixin theme($theme-config) {
5
+ $theme: utils.using-theme($theme_config);
6
+
7
+ .wlcm-loader {
8
+ width: 100%;
9
+ display: block;
10
+
11
+ &.wlcm-loader-hidden {
12
+ width: 0;
13
+ height: 0;
14
+ overflow: hidden;
15
+ visibility: hidden;
16
+ }
17
+ }
18
+
19
+ .wlcm-loader-container {
20
+ width: 100%;
21
+ display: flex;
22
+ justify-content: center;
23
+ }
24
+
25
+ .wlcm-default-loader {
26
+ width: 28px;
27
+ height: 28px;
28
+ display: block;
29
+ position: relative;
30
+
31
+ .spinner {
32
+ font-size: 28px;
33
+ position: relative;
34
+ display: inline-block;
35
+ width: 1em;
36
+ height: 1em;
37
+ }
38
+
39
+ .spinner.center {
40
+ position: absolute;
41
+ left: 0;
42
+ right: 0;
43
+ top: 0;
44
+ bottom: 0;
45
+ margin: auto;
46
+ }
47
+
48
+ .spinner .spinner-blade {
49
+ position: absolute;
50
+ left: 0.4629em;
51
+ bottom: 0;
52
+ width: 0.074em;
53
+ height: 0.2777em;
54
+ border-radius: 0.0555em;
55
+ background-color: transparent;
56
+ -webkit-transform-origin: center -0.2222em;
57
+ -ms-transform-origin: center -0.2222em;
58
+ transform-origin: center -0.2222em;
59
+ animation: spinner-fade 1s infinite linear;
60
+ }
61
+
62
+ .spinner .spinner-blade:nth-child(1) {
63
+ -webkit-animation-delay: 0s;
64
+ animation-delay: 0s;
65
+ -webkit-transform: rotate(0deg);
66
+ -ms-transform: rotate(0deg);
67
+ transform: rotate(0deg);
68
+ }
69
+
70
+ .spinner .spinner-blade:nth-child(2) {
71
+ -webkit-animation-delay: 0.083s;
72
+ animation-delay: 0.083s;
73
+ -webkit-transform: rotate(30deg);
74
+ -ms-transform: rotate(30deg);
75
+ transform: rotate(30deg);
76
+ }
77
+
78
+ .spinner .spinner-blade:nth-child(3) {
79
+ -webkit-animation-delay: 0.166s;
80
+ animation-delay: 0.166s;
81
+ -webkit-transform: rotate(60deg);
82
+ -ms-transform: rotate(60deg);
83
+ transform: rotate(60deg);
84
+ }
85
+
86
+ .spinner .spinner-blade:nth-child(4) {
87
+ -webkit-animation-delay: 0.249s;
88
+ animation-delay: 0.249s;
89
+ -webkit-transform: rotate(90deg);
90
+ -ms-transform: rotate(90deg);
91
+ transform: rotate(90deg);
92
+ }
93
+
94
+ .spinner .spinner-blade:nth-child(5) {
95
+ -webkit-animation-delay: 0.332s;
96
+ animation-delay: 0.332s;
97
+ -webkit-transform: rotate(120deg);
98
+ -ms-transform: rotate(120deg);
99
+ transform: rotate(120deg);
100
+ }
101
+
102
+ .spinner .spinner-blade:nth-child(6) {
103
+ -webkit-animation-delay: 0.415s;
104
+ animation-delay: 0.415s;
105
+ -webkit-transform: rotate(150deg);
106
+ -ms-transform: rotate(150deg);
107
+ transform: rotate(150deg);
108
+ }
109
+
110
+ .spinner .spinner-blade:nth-child(7) {
111
+ -webkit-animation-delay: 0.498s;
112
+ animation-delay: 0.498s;
113
+ -webkit-transform: rotate(180deg);
114
+ -ms-transform: rotate(180deg);
115
+ transform: rotate(180deg);
116
+ }
117
+
118
+ .spinner .spinner-blade:nth-child(8) {
119
+ -webkit-animation-delay: 0.581s;
120
+ animation-delay: 0.581s;
121
+ -webkit-transform: rotate(210deg);
122
+ -ms-transform: rotate(210deg);
123
+ transform: rotate(210deg);
124
+ }
125
+
126
+ .spinner .spinner-blade:nth-child(9) {
127
+ -webkit-animation-delay: 0.664s;
128
+ animation-delay: 0.664s;
129
+ -webkit-transform: rotate(240deg);
130
+ -ms-transform: rotate(240deg);
131
+ transform: rotate(240deg);
132
+ }
133
+
134
+ .spinner .spinner-blade:nth-child(10) {
135
+ -webkit-animation-delay: 0.747s;
136
+ animation-delay: 0.747s;
137
+ -webkit-transform: rotate(270deg);
138
+ -ms-transform: rotate(270deg);
139
+ transform: rotate(270deg);
140
+ }
141
+
142
+ .spinner .spinner-blade:nth-child(11) {
143
+ -webkit-animation-delay: 0.83s;
144
+ animation-delay: 0.83s;
145
+ -webkit-transform: rotate(300deg);
146
+ -ms-transform: rotate(300deg);
147
+ transform: rotate(300deg);
148
+ }
149
+
150
+ .spinner .spinner-blade:nth-child(12) {
151
+ -webkit-animation-delay: 0.913s;
152
+ animation-delay: 0.913s;
153
+ -webkit-transform: rotate(330deg);
154
+ -ms-transform: rotate(330deg);
155
+ transform: rotate(330deg);
156
+ }
157
+
158
+ @keyframes spinner-fade {
159
+ 0% {
160
+ background-color: map-get($theme, primary-color);
161
+ }
162
+
163
+ 100% {
164
+ background-color: transparent;
165
+ }
166
+ }
167
+ }
168
+ }
@@ -0,0 +1,5 @@
1
+ @use './loader' as loader;
2
+
3
+ @mixin theme($theme-config) {
4
+ @include loader.theme($theme-config);
5
+ }