mat-pick-range-dates
Version:
Angular 2 component range date picker.
1 lines • 30.5 kB
Source Map (JSON)
{"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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"}