@wlcm/angular 18.2.19 → 18.2.22

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 (20) hide show
  1. package/_index.scss +1 -0
  2. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +798 -702
  3. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
  4. package/datepicker/index.d.ts +4 -1
  5. package/datepicker/lib/components/range/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.d.ts +3 -3
  6. package/datepicker/lib/components/range/date-range-picker-input/date-range-picker-input.component.d.ts +5 -5
  7. package/datepicker/lib/components/range/{date-range-picker/date-range-picker.component.d.ts → double-calendar-range-picker/double-calendar-range-picker.component.d.ts} +12 -16
  8. package/datepicker/lib/components/range/single-calendar-range-picker/single-calendar-range-picker.component.d.ts +27 -0
  9. package/datepicker/lib/constants/range/date-range-picker.constants.d.ts +2 -1
  10. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +1 -2
  11. package/datepicker/lib/models/range/date-range-picker.models.d.ts +15 -1
  12. package/forms/fesm2022/wlcm-angular-forms.mjs +9 -6
  13. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  14. package/forms/lib/forms/components/autocomplete/autocomplete.component.d.ts +1 -0
  15. package/forms/lib/forms/components/select/select.component.d.ts +1 -0
  16. package/package.json +1 -1
  17. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs +1 -1
  18. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -1
  19. package/styles/components/datepicker/date-range-picker/_date-range-picker-body.scss +1 -1
  20. package/styles/components/datepicker/date-range-picker/_date-range-picker-input.scss +1 -0
@@ -1,10 +1,13 @@
1
1
  export { WlcmDateRangePickerInputComponent } from './lib/components/range/date-range-picker-input/date-range-picker-input.component';
2
+ export { DoubleCalendarRangePickerComponent } from './lib/components/range/double-calendar-range-picker/double-calendar-range-picker.component';
3
+ export { SingleCalendarRangePickerComponent } from './lib/components/range/single-calendar-range-picker/single-calendar-range-picker.component';
2
4
  export { WlcmDatepickerInputContainerComponent } from './lib/components/single/datepicker-input-container/datepicker-input-container.component';
3
5
  export { DateRangePickerInputEndDirective } from './lib/directives/ragne/date-range-picker-input-end.directive';
4
6
  export { DateRangePickerInputStartDirective } from './lib/directives/ragne/date-range-picker-input-start.directive';
5
7
  export { WlcmDatepickerInputDirective } from './lib/directives/single/datepicker-input.directive';
6
- export { WlcmDateRangeValidation } from './lib/models/range/date-range-validation.models';
7
8
  export { WlcmDateRangeInputValidator } from './lib/utils/range/date-range-input.validators';
9
+ export { WlcmDateRangeValidation } from './lib/models/range/date-range-validation.models';
10
+ export { WlcmDateRangePicker } from './lib/models/range/date-range-picker.models';
8
11
  export { WlcmDateValidation } from './lib/models/date-picker.models';
9
12
  export { WlcmDatepickerModule } from './lib/datepicker.module';
10
13
  export { WLCM_DATEPICKER_CONFIG } from './lib/constants/datepicker.constants';
@@ -1,8 +1,8 @@
1
- import { WlcmDateRangePickerComponent } from '../date-range-picker/date-range-picker.component';
1
+ import { WlcmDateRangePicker } from '../../../models/range/date-range-picker.models';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class WlcmDateRangePickerBottomPanelComponent {
4
- protected picker: WlcmDateRangePickerComponent;
5
- constructor(picker: WlcmDateRangePickerComponent);
4
+ protected picker: WlcmDateRangePicker;
5
+ constructor(picker: WlcmDateRangePicker);
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDateRangePickerBottomPanelComponent, never>;
7
7
  static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDateRangePickerBottomPanelComponent, "wlcm-date-range-picker-bottom-panel", never, {}, {}, never, never, true, never>;
8
8
  }
@@ -2,12 +2,12 @@ import { AfterContentInit, AfterViewInit, ElementRef, Type, ViewContainerRef } f
2
2
  import { DateRange, MatDateSelectionModel } from '@angular/material/datepicker';
3
3
  import { WlcmFormField, WlcmFormFieldInput } from '@wlcm/angular/forms';
4
4
  import { Observable } from 'rxjs';
5
- import { Overlay } from '@angular/cdk/overlay';
6
- import { WlcmDateRangePickerComponent } from '../date-range-picker/date-range-picker.component';
7
5
  import { ControlContainer } from '@angular/forms';
6
+ import { WlcmDateRangePicker } from '../../../models/range/date-range-picker.models';
8
7
  import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
8
+ import { Overlay } from '@angular/cdk/overlay';
9
9
  import * as i0 from "@angular/core";
10
- export declare class WlcmDateRangePickerInputComponent extends WlcmDatepickerTrigger<WlcmDateRangePickerComponent, DateRange<Date>> implements WlcmFormFieldInput, AfterContentInit, AfterViewInit {
10
+ export declare class WlcmDateRangePickerInputComponent extends WlcmDatepickerTrigger<WlcmDateRangePicker, DateRange<Date>> implements WlcmFormFieldInput, AfterContentInit, AfterViewInit {
11
11
  protected overlay: Overlay;
12
12
  protected viewContainerRef: ViewContainerRef;
13
13
  protected selectionModel: MatDateSelectionModel<DateRange<Date>>;
@@ -17,9 +17,9 @@ export declare class WlcmDateRangePickerInputComponent extends WlcmDatepickerTri
17
17
  private readonly _blurStream$;
18
18
  focus$: Observable<unknown>;
19
19
  blur$: Observable<unknown>;
20
+ componentType: Type<WlcmDateRangePicker>;
20
21
  private startInput;
21
22
  private endInput;
22
- componentType: Type<WlcmDateRangePickerComponent>;
23
23
  protected connectedTo: ElementRef<HTMLElement>;
24
24
  constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, selectionModel: MatDateSelectionModel<DateRange<Date>>, formField: WlcmFormField, controlContainer: ControlContainer);
25
25
  ngAfterContentInit(): void;
@@ -32,5 +32,5 @@ export declare class WlcmDateRangePickerInputComponent extends WlcmDatepickerTri
32
32
  private checkInputs;
33
33
  private attachFocusBlurListeners;
34
34
  static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDateRangePickerInputComponent, [null, null, null, { host: true; }, { host: true; }]>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDateRangePickerInputComponent, "wlcm-date-range-picker-input", ["wlcmDateRangePickerInput"], {}, {}, ["startInput", "endInput"], ["[wlcmDateRangePickerInputStart]", "[wlcmDateRangePickerInputEnd]"], true, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDateRangePickerInputComponent, "wlcm-date-range-picker-input", ["wlcmDateRangePickerInput"], { "componentType": { "alias": "componentType"; "required": false; }; }, {}, ["startInput", "endInput"], ["[wlcmDateRangePickerInputStart]", "[wlcmDateRangePickerInputEnd]"], true, never>;
36
36
  }
@@ -1,39 +1,35 @@
1
- import { ElementRef, Signal, Type, WritableSignal } from '@angular/core';
2
- import { DateRange, MatCalendar, MatCalendarUserEvent, MatDateRangeSelectionStrategy, MatDateSelectionModel, MatMonthView } from '@angular/material/datepicker';
1
+ import { ElementRef, Type, ViewContainerRef, WritableSignal } from '@angular/core';
2
+ import { WlcmDateRangePicker, WlcmDateRangePickerConfig } from '../../../models/range/date-range-picker.models';
3
3
  import { DateAdapter } from '@angular/material/core';
4
- import { WlcmDateRangePickerConfig } from '../../../models/range/date-range-picker.models';
4
+ import { MatDateRangeSelectionStrategy, MatDateSelectionModel, DateRange, MatCalendar, MatMonthView } from '@angular/material/datepicker';
5
5
  import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
6
6
  import { WlcmDatepickerConfig } from '../../../models/date-picker.models';
7
7
  import * as i0 from "@angular/core";
8
- export declare class WlcmDateRangePickerComponent {
8
+ export declare class DoubleCalendarRangePickerComponent extends WlcmDateRangePicker {
9
9
  private rangeConfig;
10
- private rangeSelectionStrategy;
10
+ protected rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>;
11
11
  protected localSelectionModel: MatDateSelectionModel<DateRange<Date>>;
12
12
  protected triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>;
13
- protected trigger: WlcmDatepickerTrigger<WlcmDateRangePickerComponent>;
13
+ protected trigger: WlcmDatepickerTrigger<DoubleCalendarRangePickerComponent>;
14
14
  protected datepickerConfig: WlcmDatepickerConfig;
15
+ protected pickerBottomPanel: Type<unknown>;
15
16
  protected dateAdapter: DateAdapter<Date>;
16
17
  protected headerComponent: Type<unknown>;
17
18
  private _isViewInitialized;
18
- private _isComplete;
19
- readonly isComplete: Signal<boolean>;
20
- constructor(rangeConfig: WlcmDateRangePickerConfig, rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>, localSelectionModel: MatDateSelectionModel<DateRange<Date>>, triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>, trigger: WlcmDatepickerTrigger<WlcmDateRangePickerComponent>, datepickerConfig: WlcmDatepickerConfig, dateAdapter: DateAdapter<Date>);
19
+ constructor(rangeConfig: WlcmDateRangePickerConfig, rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>, localSelectionModel: MatDateSelectionModel<DateRange<Date>>, triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>, trigger: WlcmDatepickerTrigger<DoubleCalendarRangePickerComponent>, datepickerConfig: WlcmDatepickerConfig, pickerBottomPanel: Type<unknown>, dateAdapter: DateAdapter<Date>);
21
20
  leftCalendar: MatCalendar<Date>;
22
21
  rightCalendar: MatCalendar<Date>;
23
22
  leftCalendarElement: ElementRef<HTMLElement>;
24
- monthView: MatMonthView<any>;
23
+ bottomPanelContainer: ViewContainerRef;
24
+ monthView: MatMonthView<Date>;
25
25
  startDate: WritableSignal<Date>;
26
26
  leftCalendarYearViewActivated: WritableSignal<boolean>;
27
27
  rightCalendarYearViewActivated: WritableSignal<boolean>;
28
28
  ngAfterViewInit(): void;
29
- calendarSelection(event: MatCalendarUserEvent<Date | null>): void;
30
- calendarDragDrop(event: MatCalendarUserEvent<DateRange<Date>>): void;
31
29
  apply(): void;
32
30
  reset(): void;
33
- get selected(): DateRange<Date>;
34
31
  private get leftCalendarActiveCell();
35
- private handleSelectionChanged;
36
32
  private handleRightCalendarPreviewChange;
37
- static ɵfac: i0.ɵɵFactoryDeclaration<WlcmDateRangePickerComponent, [{ optional: true; }, null, null, null, null, null, null]>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<WlcmDateRangePickerComponent, "wlcm-date-range-picker", never, {}, {}, never, never, true, never>;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<DoubleCalendarRangePickerComponent, [{ optional: true; }, null, null, null, null, null, null, null]>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<DoubleCalendarRangePickerComponent, "wlcm-double-calendar-range-picker", never, {}, {}, never, never, true, never>;
39
35
  }
@@ -0,0 +1,27 @@
1
+ import { AfterViewInit, Type, ViewContainerRef } from '@angular/core';
2
+ import { DateAdapter } from '@angular/material/core';
3
+ import { MatDateRangeSelectionStrategy, MatDateSelectionModel, DateRange } from '@angular/material/datepicker';
4
+ import { WlcmCalendarHeaderComponent } from '../../calendar-header/calendar-header.component';
5
+ import { WlcmDateRangePicker } from '../../../models/range/date-range-picker.models';
6
+ import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
7
+ import { WlcmDatepickerConfig } from '../../../models/date-picker.models';
8
+ import * as i0 from "@angular/core";
9
+ export declare class SingleCalendarRangePickerComponent extends WlcmDateRangePicker implements AfterViewInit {
10
+ protected rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>;
11
+ protected localSelectionModel: MatDateSelectionModel<DateRange<Date>>;
12
+ protected triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>;
13
+ protected trigger: WlcmDatepickerTrigger<SingleCalendarRangePickerComponent>;
14
+ protected datepickerConfig: WlcmDatepickerConfig;
15
+ protected pickerBottomPanel: Type<unknown>;
16
+ protected dateAdapter: DateAdapter<Date>;
17
+ protected headerComponent: Type<WlcmCalendarHeaderComponent>;
18
+ bottomPanelContainer: ViewContainerRef;
19
+ constructor(rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>, localSelectionModel: MatDateSelectionModel<DateRange<Date>>, triggerSelectionModel: MatDateSelectionModel<DateRange<Date>>, trigger: WlcmDatepickerTrigger<SingleCalendarRangePickerComponent>, datepickerConfig: WlcmDatepickerConfig, pickerBottomPanel: Type<unknown>, dateAdapter: DateAdapter<Date>);
20
+ ngAfterViewInit(): void;
21
+ get minDate(): Date | undefined;
22
+ get maxDate(): Date | undefined;
23
+ apply(): void;
24
+ reset(): void;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<SingleCalendarRangePickerComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<SingleCalendarRangePickerComponent, "wlcm-single-calendar-range-picker", never, {}, {}, never, never, true, never>;
27
+ }
@@ -1,3 +1,4 @@
1
- import { InjectionToken } from '@angular/core';
1
+ import { InjectionToken, Type } from '@angular/core';
2
2
  import { WlcmDateRangePickerConfig } from '../../models/range/date-range-picker.models';
3
3
  export declare const WLCM_DATE_RANGE_PICKER_CONFIG: InjectionToken<WlcmDateRangePickerConfig>;
4
+ export declare const WLCM_DATE_RANGE_PICKER_BP: InjectionToken<Type<unknown>>;
@@ -1,8 +1,8 @@
1
1
  import { OverlayRef, Overlay } from '@angular/cdk/overlay';
2
2
  import { ElementRef, Type, ComponentRef, ViewContainerRef, Injector, InputSignal } from '@angular/core';
3
3
  import { MatDateSelectionModel } from '@angular/material/datepicker';
4
- import { Observable } from 'rxjs';
5
4
  import { WlcmDatepickerConfig } from '../models/date-picker.models';
5
+ import { Observable } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare abstract class WlcmDatepickerTrigger<T, D = Date> {
8
8
  protected overlay: Overlay;
@@ -25,7 +25,6 @@ export declare abstract class WlcmDatepickerTrigger<T, D = Date> {
25
25
  get datepickerInjector(): Injector;
26
26
  get defaultDatepickerConfig(): WlcmDatepickerConfig;
27
27
  get datepickerConfig(): WlcmDatepickerConfig;
28
- private get overlayOrigin();
29
28
  private handleBackdropClick;
30
29
  private updatePositionStrategy;
31
30
  private createOverlayConfig;
@@ -1,4 +1,18 @@
1
- import { Type } from '@angular/core';
1
+ import { Signal, Type, WritableSignal } from '@angular/core';
2
+ import { MatDateSelectionModel, DateRange, MatCalendarUserEvent, MatDateRangeSelectionStrategy } from '@angular/material/datepicker';
3
+ export declare abstract class WlcmDateRangePicker {
4
+ protected localSelectionModel: MatDateSelectionModel<DateRange<Date>>;
5
+ protected rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>;
6
+ protected _isComplete: WritableSignal<boolean>;
7
+ readonly isComplete: Signal<boolean>;
8
+ constructor(localSelectionModel: MatDateSelectionModel<DateRange<Date>>, rangeSelectionStrategy: MatDateRangeSelectionStrategy<Date>);
9
+ abstract apply(): void;
10
+ abstract reset(): void;
11
+ calendarSelection(event: MatCalendarUserEvent<Date | null>): void;
12
+ calendarDragDrop(event: MatCalendarUserEvent<DateRange<Date>>): void;
13
+ get selected(): DateRange<Date>;
14
+ private handleSelectionChanged;
15
+ }
2
16
  export interface WlcmDateRangePickerConfig {
3
17
  headerComponent?: Type<unknown>;
4
18
  }
@@ -506,15 +506,16 @@ let WlcmAutocompleteComponent = class WlcmAutocompleteComponent extends WlcmAuto
506
506
  this.handleLoadMoreEvent();
507
507
  this.handleControlValueChanges();
508
508
  this.handleAdjustedValue();
509
+ if (formField) {
510
+ this._preferredOverlayOrigin = new MatAutocompleteOrigin(this.formField.inputContainer);
511
+ }
509
512
  }
510
513
  ngOnInit() {
511
514
  this.loadOptions().pipe(first()).subscribe();
512
515
  }
513
516
  ngAfterViewInit() {
514
517
  this.viewReady$.next();
515
- const container = this.formField.inputContainer;
516
- const origin = new MatAutocompleteOrigin(container);
517
- this.autocompleteTrigger.connectedTo = origin;
518
+ this.autocompleteTrigger.connectedTo = this._preferredOverlayOrigin;
518
519
  this.attachFocusBlurListeners();
519
520
  }
520
521
  displayWith(value) {
@@ -951,6 +952,9 @@ let WlcmSelectComponent = class WlcmSelectComponent {
951
952
  if (this.parentFormMember) {
952
953
  this.handleStateChange();
953
954
  }
955
+ if (formField) {
956
+ this._preferredOverlayOrigin = new CdkOverlayOrigin(this.formField.inputContainer);
957
+ }
954
958
  this.handleAdjustedValue();
955
959
  toObservable(this.paginated)
956
960
  .pipe(untilDestroyed(this))
@@ -961,9 +965,8 @@ let WlcmSelectComponent = class WlcmSelectComponent {
961
965
  }
962
966
  ngAfterViewInit() {
963
967
  this.viewReady$.next();
964
- const formField = this.formField.inputContainer;
965
- if (formField) {
966
- this.matSelect._preferredOverlayOrigin = new CdkOverlayOrigin(this.formField.inputContainer);
968
+ if (this._preferredOverlayOrigin) {
969
+ this.matSelect._preferredOverlayOrigin = this._preferredOverlayOrigin;
967
970
  }
968
971
  this._focusStream$.next(this.matSelect._openedStream);
969
972
  this._blurStream$.next(this.matSelect._closedStream);