{"version":3,"file":"mat-pick-range-dates.mjs","sources":["../../../projects/mat-pick-range-dates/src/lib/services/config-store.service.ts","../../../projects/mat-pick-range-dates/src/lib/calendar/calendar.component.ts","../../../projects/mat-pick-range-dates/src/lib/calendar/calendar.component.html","../../../projects/mat-pick-range-dates/src/lib/services/range-store.service.ts","../../../projects/mat-pick-range-dates/src/lib/picker-overlay/picker-overlay.component.ts","../../../projects/mat-pick-range-dates/src/lib/picker-overlay/picker-overlay.component.html","../../../projects/mat-pick-range-dates/src/lib/services/calendar-overlay.service.ts","../../../projects/mat-pick-range-dates/src/lib/mat-pick-range/mat-pick-range.component.ts","../../../projects/mat-pick-range-dates/src/lib/mat-pick-range/mat-pick-range.component.html","../../../projects/mat-pick-range-dates/src/lib/mat-pick-range.module.ts","../../../projects/mat-pick-range-dates/src/mat-pick-range-dates.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Options } from '../model/model';\r\n\r\n@Injectable()\r\nexport class ConfigStoreService {\r\n  private _rdpOptions: Options;\r\n  private defaultOptions: Options = {\r\n    applyLabel: 'Apply',\r\n    cancelLabel: 'Cancel',\r\n    placeholder: 'Choose a date',\r\n    format: 'mediumDate',\r\n    excludeWeekends: false,\r\n    locale: 'en-US',\r\n    fromMinMax: { fromDate: null, toDate: null },\r\n    toMinMax: { fromDate: null, toDate: null },\r\n    range: { fromDate: new Date(), toDate: new Date() },\r\n    calendarOverlayConfig: {\r\n      panelClass: 'mat-prd-overlay',\r\n      hasBackdrop: true,\r\n      backdropClass: 'mat-prd-overlay-backdrop',\r\n      shouldCloseOnBackdropClick: true,\r\n    },\r\n  };\r\n\r\n  constructor() {\r\n    this._rdpOptions = this.defaultOptions;\r\n  }\r\n\r\n  get options(): Options {\r\n    return this._rdpOptions;\r\n  }\r\n\r\n  set options(options: Options) {\r\n    this._rdpOptions = { ...this.defaultOptions, ...options };\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { MatCalendar } from '@angular/material/datepicker';\r\nimport { ConfigStoreService } from '../services/config-store.service';\r\n\r\n@Component({\r\n    selector: 'calendar',\r\n    templateUrl: './calendar.component.html',\r\n    styleUrls: ['./calendar.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CalendarComponent implements OnChanges {\r\n  @ViewChild(MatCalendar, { static: true }) matCalendar: MatCalendar<Date>;\r\n\r\n  @Output()\r\n  readonly selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n  dateFormat: string;\r\n  @Input() selectedDate: Date;\r\n  @Input() prefixLabel: string;\r\n  @Input() minDate: Date;\r\n  @Input() maxDate: Date;\r\n  weekendFilter = (d: Date) => true;\r\n\r\n  constructor(private configStore: ConfigStoreService) {\r\n    this.dateFormat = configStore.options.format;\r\n    if (configStore.options.excludeWeekends) {\r\n      this.weekendFilter = (d: Date): boolean => {\r\n        const day = d.getDay();\r\n        return day !== 0 && day !== 6;\r\n      };\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes && changes['selectedDate'] && this.matCalendar) {\r\n      this.matCalendar.activeDate = changes['selectedDate'].currentValue;\r\n    }\r\n  }\r\n\r\n  onSelectedChange(date) {\r\n    this.selectedDateChange.emit(date);\r\n  }\r\n\r\n  onYearSelected(e) {}\r\n\r\n  onUserSelection(e) {}\r\n}\r\n","<div>\r\n  <span class=\"mat-prd-label\" *ngIf=\"selectedDate && prefixLabel\">\r\n    <label>{{ prefixLabel }}</label>\r\n    <label class=\"mat-prd-selected-label\">{{ selectedDate | date : dateFormat }}</label>\r\n  </span>\r\n  <mat-calendar\r\n    [startAt]=\"selectedDate\"\r\n    [selected]=\"selectedDate\"\r\n    [minDate]=\"minDate\"\r\n    [maxDate]=\"maxDate\"\r\n    (selectedChange)=\"onSelectedChange($event)\"\r\n    (yearSelected)=\"onYearSelected($event)\"\r\n    (_userSelection)=\"onUserSelection($event)\"\r\n    [dateFilter]=\"weekendFilter\"\r\n  >\r\n  </mat-calendar>\r\n</div>\r\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { Range } from '../model/model';\r\n\r\nexport const DATE = new InjectionToken<Date>('date');\r\n\r\n@Injectable()\r\nexport class RangeStoreService {\r\n  rangeUpdate$: Subject<Range> = new Subject<Range>();\r\n\r\n  constructor(@Inject(DATE) private _fromDate: Date, @Inject(DATE) private _toDate: Date) {}\r\n\r\n  get fromDate(): Date {\r\n    return this._fromDate;\r\n  }\r\n\r\n  get toDate(): Date {\r\n    return this._toDate;\r\n  }\r\n\r\n  updateRange(fromDate: Date = this._fromDate, toDate: Date = this._toDate) {\r\n    this._fromDate = fromDate;\r\n    this._toDate = toDate;\r\n    this.rangeUpdate$.next({ fromDate: this._fromDate, toDate: this._toDate });\r\n  }\r\n}\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { PresetItem } from '../model/model';\r\nimport { ConfigStoreService } from '../services/config-store.service';\r\nimport { RangeStoreService } from '../services/range-store.service';\r\n\r\n@Component({\r\n    selector: 'picker-overlay',\r\n    templateUrl: './picker-overlay.component.html',\r\n    styleUrls: ['./picker-overlay.component.scss'],\r\n    encapsulation: ViewEncapsulation.None,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class PickerOverlayComponent implements OnInit {\r\n  fromDate: Date;\r\n  toDate: Date;\r\n  fromMinDate: Date;\r\n  fromMaxDate: Date;\r\n  toMinDate: Date;\r\n  toMaxDate: Date;\r\n\r\n  constructor(private rangeStoreService: RangeStoreService, public configService: ConfigStoreService, private overlayRef: OverlayRef) {}\r\n\r\n  ngOnInit() {\r\n    this.fromDate = this.rangeStoreService.fromDate;\r\n    if (this.fromDate) {\r\n      this.toMinDate = this.fromDate;\r\n    }\r\n    this.toDate = this.rangeStoreService.toDate;\r\n    if (this.toDate) {\r\n      this.toMinDate = this.toDate;\r\n    }\r\n    ({ fromDate: this.fromMinDate, toDate: this.fromMaxDate } = this.configService.options.fromMinMax);\r\n    ({ fromDate: this.toMinDate, toDate: this.toMaxDate } = this.configService.options.toMinMax);\r\n  }\r\n\r\n  updateFromDate(date: Date) {\r\n    this.fromDate = date;\r\n    this.toMinDate = date;\r\n  }\r\n\r\n  updateToDate(date: Date) {\r\n    this.toDate = date;\r\n    this.fromMaxDate = date;\r\n  }\r\n\r\n  updateRangeByPreset(presetItem: PresetItem) {\r\n    this.updateFromDate(presetItem.range.fromDate);\r\n    this.updateToDate(presetItem.range.toDate);\r\n  }\r\n\r\n  applyNewDates(e) {\r\n    this.rangeStoreService.updateRange(this.fromDate, this.toDate);\r\n    this.disposeOverLay();\r\n  }\r\n\r\n  discardNewDates(e) {\r\n    this.disposeOverLay();\r\n  }\r\n\r\n  private disposeOverLay() {\r\n    this.overlayRef.dispose();\r\n  }\r\n}\r\n","<div class=\"mat-prd-calendar-container\">\r\n  <div class=\"mat-prd-controls\">\r\n    <button mat-button color=\"primary\" (click)=\"applyNewDates($event)\">\r\n      {{ configService?.options?.applyLabel }}\r\n    </button>\r\n    <button mat-button (click)=\"discardNewDates($event)\">\r\n      {{ configService?.options?.cancelLabel }}\r\n    </button>\r\n  </div>\r\n  <div class=\"mat-prd-calendar-items\">\r\n    <div class=\"mat-prd-calendar-item\">\r\n      <calendar\r\n        [prefixLabel]=\"configService?.options?.startDatePrefix\"\r\n        [selectedDate]=\"fromDate\"\r\n        [minDate]=\"fromMinDate\"\r\n        [maxDate]=\"fromMaxDate\"\r\n        (selectedDateChange)=\"updateFromDate($event)\"\r\n      >\r\n      </calendar>\r\n    </div>\r\n    <div class=\"mat-prd-calendar-item\">\r\n      <calendar\r\n        [prefixLabel]=\"configService?.options?.endDatePrefix\"\r\n        [selectedDate]=\"toDate\"\r\n        [minDate]=\"toMinDate\"\r\n        [maxDate]=\"toMaxDate\"\r\n        (selectedDateChange)=\"updateToDate($event)\"\r\n      >\r\n      </calendar>\r\n    </div>\r\n    <div class=\"mat-prd-calendar-item\" *ngIf=\"configService?.options?.presets && configService?.options?.presets.length > 0\">\r\n      <div class=\"mat-prd-menu\">\r\n        <ul class=\"mat-prd-presets-list\">\r\n          <li *ngFor=\"let preset of configService?.options?.presets\" (click)=\"updateRangeByPreset(preset)\">\r\n            {{ preset.presetLabel }}\r\n          </li>\r\n        </ul>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { ElementRef, Injectable, Injector } from '@angular/core';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { CalendarOverlayConfig } from '../model/model';\r\nimport { PickerOverlayComponent } from '../picker-overlay/picker-overlay.component';\r\n\r\nconst DEFAULT_CONFIG: CalendarOverlayConfig = {\r\n  panelClass: 'mat-prd-overlay',\r\n  hasBackdrop: true,\r\n  backdropClass: 'mat-prd-overlay-backdrop',\r\n  shouldCloseOnBackdropClick: true,\r\n};\r\n\r\n@Injectable()\r\nexport class CalendarOverlayService {\r\n  private hostElemRef: ElementRef;\r\n\r\n  constructor(private readonly overlay: Overlay, private readonly injector: Injector) {}\r\n\r\n  open(config: CalendarOverlayConfig = {}, hostElemRef: ElementRef): OverlayRef {\r\n    this.hostElemRef = hostElemRef;\r\n    const overlayConfig = { ...DEFAULT_CONFIG, ...config };\r\n    const overlayRef = this.createOverlay(overlayConfig);\r\n    const portalInjector = this.createInjector(overlayRef);\r\n    const calendarPortal = new ComponentPortal(PickerOverlayComponent, null, portalInjector);\r\n    overlayRef.attach(calendarPortal);\r\n    overlayRef\r\n      .backdropClick()\r\n      .pipe(takeWhile(() => overlayConfig?.shouldCloseOnBackdropClick))\r\n      .subscribe(() => overlayRef.dispose());\r\n    return overlayRef;\r\n  }\r\n\r\n  private createOverlay(config: CalendarOverlayConfig): OverlayRef {\r\n    const overlayConfig = this.getOverlayConfig(config);\r\n    return this.overlay.create(overlayConfig);\r\n  }\r\n\r\n  private getOverlayConfig(config: CalendarOverlayConfig): OverlayConfig {\r\n    const positionStrategy = this.overlay\r\n      .position()\r\n      .flexibleConnectedTo(this.hostElemRef)\r\n      .withFlexibleDimensions(false)\r\n      .withViewportMargin(8)\r\n      .withDefaultOffsetY(12)\r\n      .withPositions([\r\n        {\r\n          originX: 'start',\r\n          originY: 'bottom',\r\n          overlayX: 'start',\r\n          overlayY: 'top',\r\n        },\r\n        {\r\n          originX: 'start',\r\n          originY: 'top',\r\n          overlayX: 'start',\r\n          overlayY: 'bottom',\r\n        },\r\n        {\r\n          originX: 'end',\r\n          originY: 'bottom',\r\n          overlayX: 'end',\r\n          overlayY: 'top',\r\n        },\r\n        {\r\n          originX: 'end',\r\n          originY: 'top',\r\n          overlayX: 'end',\r\n          overlayY: 'bottom',\r\n        },\r\n      ]);\r\n    const overlayConfig = new OverlayConfig({\r\n      hasBackdrop: config.hasBackdrop,\r\n      backdropClass: config.backdropClass,\r\n      panelClass: config.panelClass,\r\n      scrollStrategy: this.overlay.scrollStrategies.block(),\r\n      positionStrategy,\r\n    });\r\n    return overlayConfig;\r\n  }\r\n\r\n  private createInjector(overlayRef: OverlayRef): Injector {\r\n    const options = { providers: [{ provide: OverlayRef, useValue: overlayRef }], parent: this.injector };\r\n    return Injector.create(options);\r\n  }\r\n}\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Options, Range } from '../model/model';\r\nimport { CalendarOverlayService } from '../services/calendar-overlay.service';\r\nimport { ConfigStoreService } from '../services/config-store.service';\r\nimport { RangeStoreService } from '../services/range-store.service';\r\n\r\n@Component({\r\n    selector: 'mat-pick-range',\r\n    templateUrl: './mat-pick-range.component.html',\r\n    providers: [CalendarOverlayService, RangeStoreService, ConfigStoreService, DatePipe],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class MatPickRangeComponent implements OnInit, OnDestroy {\r\n  @ViewChild('calendarInput', { static: true }) calendarInput: ElementRef;\r\n  @Output() readonly selectedDateRangeChanged: EventEmitter<Range> = new EventEmitter<Range>();\r\n  @Input() options: Options;\r\n\r\n  private rangeUpdate$: Subscription;\r\n  public selectedDateRange = '';\r\n\r\n  constructor(\r\n    private changeDetectionRef: ChangeDetectorRef,\r\n    private calendarOverlayService: CalendarOverlayService,\r\n    public rangeStoreService: RangeStoreService,\r\n    public confStore: ConfigStoreService,\r\n    private datePipe: DatePipe\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.confStore.options = this.options;\r\n    this.rangeUpdate$ = this.rangeStoreService.rangeUpdate$.subscribe((range) => {\r\n      const from: string = this.formatToDateString(range.fromDate, this.confStore.options.format);\r\n      const to: string = this.formatToDateString(range.toDate, this.confStore.options.format);\r\n      this.selectedDateRange = `${from} - ${to}`;\r\n      this.selectedDateRangeChanged.emit(range);\r\n    });\r\n    this.rangeStoreService.updateRange(this.confStore.options.range.fromDate, this.confStore.options.range.toDate);\r\n    this.changeDetectionRef.detectChanges();\r\n  }\r\n\r\n  private formatToDateString(date: Date, format: string): string {\r\n    return this.datePipe.transform(date, format);\r\n  }\r\n\r\n  openCalendar(event) {\r\n    const overlayRef: OverlayRef = this.calendarOverlayService.open(this.confStore.options.calendarOverlayConfig, this.calendarInput);\r\n  }\r\n\r\n  public resetDates(range: Range) {\r\n    this.rangeStoreService.updateRange(range.fromDate, range.toDate);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.rangeUpdate$) {\r\n      this.rangeUpdate$.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","<div>\r\n  <mat-form-field class=\"mat-prd-display\">\r\n    <mat-label *ngIf=\"options?.matLabel\">{{ options.matLabel }}</mat-label>\r\n    <input\r\n      class=\"mat-prd-input\"\r\n      matInput\r\n      [placeholder]=\"options?.placeholder\"\r\n      [value]=\"selectedDateRange\"\r\n      [matTooltip]=\"selectedDateRange\"\r\n      (click)=\"openCalendar($event)\"\r\n      readonly\r\n      #calendarInput\r\n    />\r\n    <div matSuffix class=\"mat-prd-calendar\" (click)=\"openCalendar($event)\"></div>\r\n  </mat-form-field>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatPickRangeComponent } from './mat-pick-range/mat-pick-range.component';\r\nimport { PickerOverlayComponent } from './picker-overlay/picker-overlay.component';\r\n\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { CalendarComponent } from './calendar/calendar.component';\r\nimport { DATE } from './services/range-store.service';\r\n\r\n@NgModule({\r\n  declarations: [MatPickRangeComponent, CalendarComponent, PickerOverlayComponent],\r\n  imports: [CommonModule, MatFormFieldModule, MatDatepickerModule, MatNativeDateModule, MatInputModule, MatButtonModule, MatTooltipModule, OverlayModule],\r\n  providers: [{ provide: DATE, useValue: new Date() }],\r\n  exports: [MatPickRangeComponent],\r\n})\r\nexport class MatPickRangeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ConfigStoreService","i2","i1.RangeStoreService","i2.ConfigStoreService","i3","i6.CalendarComponent","i1","i1.CalendarOverlayService","i2.RangeStoreService","i3.ConfigStoreService","i5"],"mappings":"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"}