{"version":3,"file":"ngx-mat-timepicker.mjs","sources":["../../../projects/ngx-mat-timepicker/src/lib/models/ngx-mat-timepicker-format.enum.ts","../../../projects/ngx-mat-timepicker/src/lib/models/ngx-mat-timepicker-periods.enum.ts","../../../projects/ngx-mat-timepicker/src/lib/services/ngx-mat-timepicker-adapter.ts","../../../projects/ngx-mat-timepicker/src/lib/models/ngx-mat-timepicker-units.enum.ts","../../../projects/ngx-mat-timepicker/src/lib/tokens/ngx-mat-timepicker-config.token.ts","../../../projects/ngx-mat-timepicker/src/lib/services/ngx-mat-timepicker.service.ts","../../../projects/ngx-mat-timepicker/src/lib/services/ngx-mat-timepicker-event.service.ts","../../../projects/ngx-mat-timepicker/src/lib/tokens/ngx-mat-timepicker-time-locale.token.ts","../../../projects/ngx-mat-timepicker/src/lib/services/ngx-mat-timepicker-locale.service.ts","../../../projects/ngx-mat-timepicker/src/lib/directives/ngx-mat-timepicker-base.directive.ts","../../../projects/ngx-mat-timepicker/src/lib/utils/ngx-mat-timepicker.utils.ts","../../../projects/ngx-mat-timepicker/src/lib/models/ngx-mat-timepicker-measures.enum.ts","../../../projects/ngx-mat-timepicker/src/lib/pipes/ngx-mat-timepicker-time-localizer.pipe.ts","../../../projects/ngx-mat-timepicker/src/lib/pipes/ngx-mat-timepicker-minutes-formatter.pipe.ts","../../../projects/ngx-mat-timepicker/src/lib/pipes/ngx-mat-timepicker-active-minute.pipe.ts","../../../projects/ngx-mat-timepicker/src/lib/pipes/ngx-mat-timepicker-active-hour.pipe.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-face/ngx-mat-timepicker-face.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-face/ngx-mat-timepicker-face.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-minutes-face/ngx-mat-timepicker-minutes-face.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-minutes-face/ngx-mat-timepicker-minutes-face.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-hours-face/ngx-mat-timepicker-hours-face.directive.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-12-hours-face/ngx-mat-timepicker-12-hours-face.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-12-hours-face/ngx-mat-timepicker-12-hours-face.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-24-hours-face/ngx-mat-timepicker-24-hours-face.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-24-hours-face/ngx-mat-timepicker-24-hours-face.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-period/ngx-mat-timepicker-period.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-period/ngx-mat-timepicker-period.component.html","../../../projects/ngx-mat-timepicker/src/lib/pipes/ngx-mat-timepicker-parser.pipe.ts","../../../projects/ngx-mat-timepicker/src/lib/directives/ngx-mat-timepicker-autofocus.directive.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-dial-control/ngx-mat-timepicker-dial-control.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-dial-control/ngx-mat-timepicker-dial-control.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-dial/ngx-mat-timepicker-dial.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-dial/ngx-mat-timepicker-dial.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-content/ngx-mat-timepicker-content.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-content/ngx-mat-timepicker-content.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-dialog/ngx-mat-timepicker-dialog.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-dialog/ngx-mat-timepicker-dialog.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-standalone/ngx-mat-timepicker-standalone.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-standalone/ngx-mat-timepicker-standalone.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker/ngx-mat-timepicker.component.ts","../../../projects/ngx-mat-timepicker/src/lib/directives/ngx-mat-timepicker-toggle-icon.directive.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-toggle/ngx-mat-timepicker-toggle.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-toggle/ngx-mat-timepicker-toggle.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-control/ngx-mat-timepicker-control.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-control/ngx-mat-timepicker-control.component.html","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-field/ngx-mat-timepicker-field.component.ts","../../../projects/ngx-mat-timepicker/src/lib/components/ngx-mat-timepicker-field/ngx-mat-timepicker-field.component.html","../../../projects/ngx-mat-timepicker/src/lib/directives/ngx-mat-timepicker.directive.ts","../../../projects/ngx-mat-timepicker/src/lib/pipes/ngx-mat-timepicker-time-formatter.pipe.ts","../../../projects/ngx-mat-timepicker/src/lib/ngx-mat-timepicker.module.ts","../../../projects/ngx-mat-timepicker/src/public-api.ts","../../../projects/ngx-mat-timepicker/src/ngx-mat-timepicker.ts"],"sourcesContent":["export enum NgxMatTimepickerFormat {\r\n TWELVE = \"hh:mm a\",\r\n TWELVE_SHORT = \"h:m a\",\r\n TWENTY_FOUR = \"HH:mm\",\r\n TWENTY_FOUR_SHORT = \"H:m\"\r\n}\r\n","export enum NgxMatTimepickerPeriods {\r\n AM = \"AM\",\r\n PM = \"PM\"\r\n}\r\n","import {NgxMatTimepickerFormat} from \"../models/ngx-mat-timepicker-format.enum\";\r\nimport {NgxMatTimepickerFormatType} from \"../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerPeriods} from \"../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerOptions} from \"../models/ngx-mat-timepicker-options.interface\";\r\n//\r\nimport {DateTime, LocaleOptions, NumberingSystem} from \"ts-luxon\";\r\n\r\n// @dynamic\r\nexport class NgxMatTimepickerAdapter {\r\n\r\n static defaultFormat: NgxMatTimepickerFormatType = 12;\r\n static defaultLocale: string = \"en-US\";\r\n static defaultNumberingSystem: NumberingSystem = \"latn\";\r\n\r\n /***\r\n * Format hour according to time format (12 or 24)\r\n */\r\n static formatHour(currentHour: number, format: NgxMatTimepickerFormatType, period: NgxMatTimepickerPeriods): number {\r\n if (this.isTwentyFour(format)) {\r\n return currentHour;\r\n }\r\n const hour = period === NgxMatTimepickerPeriods.AM ? currentHour : currentHour + 12;\r\n\r\n if (period === NgxMatTimepickerPeriods.AM && hour === 12) {\r\n return 0;\r\n }\r\n else if (period === NgxMatTimepickerPeriods.PM && hour === 24) {\r\n return 12;\r\n }\r\n\r\n return hour;\r\n }\r\n\r\n static formatTime(time: string, opts: NgxMatTimepickerOptions): string {\r\n if (!time) {\r\n return \"Invalid Time\";\r\n }\r\n const parsedTime = this.parseTime(time, opts).setLocale(this.defaultLocale);\r\n if (!parsedTime.isValid) {\r\n return \"Invalid time\";\r\n }\r\n const isTwelve = !this.isTwentyFour(opts.format as NgxMatTimepickerFormatType);\r\n if (isTwelve) {\r\n return parsedTime.toLocaleString({\r\n ...DateTime.TIME_SIMPLE,\r\n hour12: isTwelve\r\n }).replace(/\\u200E/g, \"\");\r\n }\r\n\r\n return parsedTime.toISOTime({\r\n includeOffset: false,\r\n suppressMilliseconds: true,\r\n suppressSeconds: true\r\n }).replace(/\\u200E/g, \"\");\r\n }\r\n\r\n static fromDateTimeToString(time: DateTime, format: NgxMatTimepickerFormatType): string {\r\n\r\n return time.reconfigure({\r\n numberingSystem: this.defaultNumberingSystem,\r\n locale: this.defaultLocale\r\n }).toFormat(this.isTwentyFour(format) ? NgxMatTimepickerFormat.TWENTY_FOUR : NgxMatTimepickerFormat.TWELVE);\r\n }\r\n\r\n static isBetween(time: DateTime, before: DateTime, after: DateTime, unit: \"hours\" | \"minutes\" = \"minutes\"): boolean {\r\n const innerUnit = unit === \"hours\" ? unit : void 0;\r\n\r\n return this.isSameOrBefore(time, after, innerUnit) && this.isSameOrAfter(time, before, innerUnit);\r\n }\r\n\r\n static isSameOrAfter(time: DateTime, compareWith: DateTime, unit: \"hours\" | \"minutes\" = \"minutes\"): boolean {\r\n if (unit === \"hours\") {\r\n return time.hour >= compareWith.hour;\r\n }\r\n\r\n return time.hasSame(compareWith, unit) || time.valueOf() > compareWith.valueOf();\r\n }\r\n\r\n static isSameOrBefore(time: DateTime, compareWith: DateTime, unit: \"hours\" | \"minutes\" = \"minutes\"): boolean {\r\n if (unit === \"hours\") {\r\n return time.hour <= compareWith.hour;\r\n }\r\n\r\n return time.hasSame(compareWith, unit) || time.valueOf() <= compareWith.valueOf();\r\n }\r\n\r\n static isTimeAvailable(time: string,\r\n min?: DateTime,\r\n max?: DateTime,\r\n granularity?: \"hours\" | \"minutes\",\r\n minutesGap?: number | null,\r\n format?: number): boolean {\r\n if (!time) {\r\n return void 0;\r\n }\r\n\r\n const convertedTime = this.parseTime(time, {format});\r\n const minutes = convertedTime.minute;\r\n\r\n if (minutesGap && minutes === minutes && minutes % minutesGap !== 0) {\r\n throw new Error(`Your minutes - ${minutes} doesn\\'t match your minutesGap - ${minutesGap}`);\r\n }\r\n const isAfter = (min && !max)\r\n && this.isSameOrAfter(convertedTime, min, granularity);\r\n const isBefore = (max && !min)\r\n && this.isSameOrBefore(convertedTime, max, granularity);\r\n const between = (min && max)\r\n && this.isBetween(convertedTime, min, max, granularity);\r\n const isAvailable = !min && !max;\r\n\r\n return isAfter || isBefore || between || isAvailable;\r\n }\r\n\r\n static isTwentyFour(format: NgxMatTimepickerFormatType): boolean {\r\n return format === 24;\r\n }\r\n\r\n static parseTime(time: string, opts: NgxMatTimepickerOptions): DateTime {\r\n const localeOpts = this._getLocaleOptionsByTime(time, opts);\r\n let timeMask = NgxMatTimepickerFormat.TWENTY_FOUR_SHORT;\r\n // If there's a space, means we have the meridiem. Way faster than splitting text\r\n // if (~time.indexOf(\" \")) {\r\n // 09/02/2023 it seems that sometimes the space from the formatter is a nnbsp (Chromium >= 110)\r\n // which causes the indexOf(\" \") to fail: charCode 32, while nbsp is 8239\r\n if (time.match(/\\s/g)) {\r\n /*\r\n * We translate the meridiem in simple AM or PM letters (instead of A.M.)\r\n * because even if we set the locale with NgxMatTimepickerModule.setLocale\r\n * the default (en-US) will always be used here\r\n */\r\n time = time.replace(/\\.\\s*/g, \"\");\r\n timeMask = NgxMatTimepickerFormat.TWELVE_SHORT;\r\n }\r\n\r\n return DateTime.fromFormat(time.replace(/\\s+/g, \" \"), timeMask, {\r\n numberingSystem: localeOpts.numberingSystem,\r\n locale: localeOpts.locale\r\n });\r\n }\r\n\r\n static toLocaleTimeString(time: string, opts: NgxMatTimepickerOptions = {}): string {\r\n const {format = this.defaultFormat, locale = this.defaultLocale} = opts;\r\n let hourCycle: \"h12\" | \"h23\" = \"h12\";\r\n let timeMask = NgxMatTimepickerFormat.TWELVE_SHORT;\r\n if (this.isTwentyFour(format as NgxMatTimepickerFormatType)) {\r\n hourCycle = \"h23\";\r\n timeMask = NgxMatTimepickerFormat.TWENTY_FOUR_SHORT;\r\n }\r\n\r\n return DateTime.fromFormat(time, timeMask).reconfigure({\r\n locale,\r\n numberingSystem: opts.numberingSystem,\r\n defaultToEN: opts.defaultToEN,\r\n outputCalendar: opts.outputCalendar\r\n }).toLocaleString({\r\n ...DateTime.TIME_SIMPLE,\r\n hourCycle\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @param time\r\n * @param opts\r\n * @private\r\n */\r\n private static _getLocaleOptionsByTime(time: string, opts: NgxMatTimepickerOptions): LocaleOptions {\r\n const {numberingSystem, locale} = DateTime.now().reconfigure({\r\n locale: opts.locale,\r\n numberingSystem: opts.numberingSystem,\r\n outputCalendar: opts.outputCalendar,\r\n defaultToEN: opts.defaultToEN\r\n }).resolvedLocaleOptions();\r\n\r\n return isNaN(parseInt(time, 10)) ? {\r\n numberingSystem: numberingSystem as NumberingSystem,\r\n locale\r\n } : {\r\n numberingSystem: this.defaultNumberingSystem,\r\n locale: this.defaultLocale\r\n };\r\n }\r\n}\r\n","export enum NgxMatTimepickerUnits {\r\n HOUR,\r\n MINUTE\r\n}\r\n","import {InjectionToken, Provider} from \"@angular/core\";\r\n//\r\nimport {NgxMatTimepickerConfig} from \"../models/ngx-mat-timepicker-config.interface\";\r\n\r\nexport const NGX_MAT_TIMEPICKER_CONFIG = new InjectionToken(\"NGX_MAT_TIMEPICKER_CONFIG\");\r\n\r\nexport function provideNgxMatTimepickerOptions(config: NgxMatTimepickerConfig): Provider[] {\r\n return [\r\n {provide: NGX_MAT_TIMEPICKER_CONFIG, useValue: config},\r\n ];\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\n//\r\nimport {NgxMatTimepickerClockFace} from \"../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerPeriods} from \"../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerAdapter} from \"./ngx-mat-timepicker-adapter\";\r\n//\r\nimport {BehaviorSubject, Observable} from \"rxjs\";\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\nconst DEFAULT_HOUR: NgxMatTimepickerClockFace = {\r\n time: 12,\r\n angle: 360\r\n};\r\nconst DEFAULT_MINUTE: NgxMatTimepickerClockFace = {\r\n time: 0,\r\n angle: 360\r\n};\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class NgxMatTimepickerService {\r\n\r\n\r\n set hour(hour: NgxMatTimepickerClockFace) {\r\n this._hour$.next(hour);\r\n }\r\n\r\n set minute(minute: NgxMatTimepickerClockFace) {\r\n this._minute$.next(minute);\r\n }\r\n\r\n set period(period: NgxMatTimepickerPeriods) {\r\n const isPeriodValid = (period === NgxMatTimepickerPeriods.AM) || (period === NgxMatTimepickerPeriods.PM);\r\n\r\n if (isPeriodValid) {\r\n this._period$.next(period);\r\n }\r\n }\r\n\r\n get selectedHour(): Observable {\r\n return this._hour$.asObservable();\r\n }\r\n\r\n get selectedMinute(): Observable {\r\n return this._minute$.asObservable();\r\n }\r\n\r\n get selectedPeriod(): Observable {\r\n return this._period$.asObservable();\r\n }\r\n\r\n private _hour$ = new BehaviorSubject(DEFAULT_HOUR);\r\n private _minute$ = new BehaviorSubject(DEFAULT_MINUTE);\r\n private _period$ = new BehaviorSubject(NgxMatTimepickerPeriods.AM);\r\n\r\n getFullTime(format: number): string {\r\n const selectedHour = this._hour$.getValue().time;\r\n const selectedMinute = this._minute$.getValue().time;\r\n const hour = selectedHour != null ? selectedHour : DEFAULT_HOUR.time;\r\n const minute = selectedMinute != null ? selectedMinute : DEFAULT_MINUTE.time;\r\n const period = format === 12 ? this._period$.getValue() : \"\";\r\n const time = `${hour}:${minute} ${period}`.trim();\r\n\r\n return NgxMatTimepickerAdapter.formatTime(time, {format});\r\n }\r\n\r\n\r\n setDefaultTimeIfAvailable(time: string, min: DateTime, max: DateTime, format: number, minutesGap?: number) {\r\n /* Workaround to double error message*/\r\n try {\r\n if (NgxMatTimepickerAdapter.isTimeAvailable(time, min, max, \"minutes\", minutesGap)) {\r\n this._setDefaultTime(time, format);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n private _resetTime(): void {\r\n this.hour = {...DEFAULT_HOUR};\r\n this.minute = {...DEFAULT_MINUTE};\r\n this.period = NgxMatTimepickerPeriods.AM;\r\n }\r\n\r\n private _setDefaultTime(time: string, format: number) {\r\n const defaultDto = NgxMatTimepickerAdapter.parseTime(time, {format});\r\n\r\n if (defaultDto.isValid) {\r\n const period = time.substring(time.length - 2).toUpperCase();\r\n const hour = defaultDto.hour;\r\n\r\n this.hour = {...DEFAULT_HOUR, time: formatHourByPeriod(hour, period as NgxMatTimepickerPeriods)};\r\n this.minute = {...DEFAULT_MINUTE, time: defaultDto.minute};\r\n this.period = period as NgxMatTimepickerPeriods;\r\n\r\n }\r\n else {\r\n this._resetTime();\r\n }\r\n }\r\n}\r\n\r\n/***\r\n * Format hour in 24hours format to meridian (AM or PM) format\r\n */\r\nfunction formatHourByPeriod(hour: number, period: NgxMatTimepickerPeriods): number {\r\n switch (period) {\r\n case NgxMatTimepickerPeriods.AM:\r\n return hour === 0 ? 12 : hour;\r\n case NgxMatTimepickerPeriods.PM:\r\n return hour === 12 ? 12 : hour - 12;\r\n default:\r\n return hour;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\n//\r\nimport {Observable, Subject} from \"rxjs\";\r\nimport {shareReplay} from \"rxjs/operators\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class NgxMatTimepickerEventService {\r\n\r\n get backdropClick(): Observable {\r\n return this._backdropClick$.asObservable().pipe(shareReplay({bufferSize: 1, refCount: true}));\r\n }\r\n\r\n get keydownEvent(): Observable {\r\n return this._keydownEvent$.asObservable().pipe(shareReplay({bufferSize: 1, refCount: true}));\r\n }\r\n\r\n private _backdropClick$: Subject = new Subject();\r\n private _keydownEvent$: Subject = new Subject();\r\n\r\n constructor() {\r\n }\r\n\r\n dispatchEvent(event: KeyboardEvent | MouseEvent): void {\r\n switch (event.type) {\r\n case \"click\":\r\n this._backdropClick$.next(event as MouseEvent);\r\n break;\r\n case \"keydown\":\r\n this._keydownEvent$.next(event as KeyboardEvent);\r\n break;\r\n default:\r\n throw new Error(\"no such event type\");\r\n }\r\n }\r\n\r\n}\r\n","import { InjectionToken } from \"@angular/core\";\r\n//\r\nimport { NgxMatTimepickerAdapter } from \"../services/ngx-mat-timepicker-adapter\";\r\n\r\nexport const NGX_MAT_TIMEPICKER_LOCALE = new InjectionToken(\"TimeLocale\", {\r\n providedIn: \"root\",\r\n factory: () => NgxMatTimepickerAdapter.defaultLocale\r\n});\r\n","import {Inject, Injectable} from \"@angular/core\";\r\n//\r\nimport {NGX_MAT_TIMEPICKER_LOCALE} from \"../tokens/ngx-mat-timepicker-time-locale.token\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class NgxMatTimepickerLocaleService {\r\n\r\n get locale(): string {\r\n return this._locale;\r\n }\r\n\r\n protected _initialLocale: string;\r\n protected _locale;\r\n\r\n constructor(@Inject(NGX_MAT_TIMEPICKER_LOCALE) initialLocale: string) {\r\n this._locale = initialLocale;\r\n }\r\n\r\n updateLocale(newValue: string): void {\r\n this._locale = newValue || this._initialLocale;\r\n }\r\n}\r\n","import {Directive, HostListener, Inject, Input, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\n//\r\nimport {NgxMatTimepickerEventService} from \"../services/ngx-mat-timepicker-event.service\";\r\nimport {NgxMatTimepickerLocaleService} from \"../services/ngx-mat-timepicker-locale.service\";\r\nimport {NgxMatTimepickerService} from \"../services/ngx-mat-timepicker.service\";\r\nimport {NgxMatTimepickerAdapter} from \"../services/ngx-mat-timepicker-adapter\";\r\n//\r\nimport {NgxMatTimepickerUnits} from \"../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerClockFace} from \"../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerPeriods} from \"../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerConfig} from \"../models/ngx-mat-timepicker-config.interface\";\r\nimport {NGX_MAT_TIMEPICKER_CONFIG} from \"../tokens/ngx-mat-timepicker-config.token\";\r\n//\r\nimport {Observable, Subject} from \"rxjs\";\r\nimport {shareReplay, takeUntil} from \"rxjs/operators\";\r\n\r\n@Directive({\r\n selector: \"[ngxMatTimepickerBase]\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerBaseDirective implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n set color(newValue: ThemePalette) {\r\n this._color = newValue;\r\n }\r\n\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n get defaultTime(): string {\r\n return this._defaultTime;\r\n }\r\n\r\n @Input()\r\n set defaultTime(time: string) {\r\n this._defaultTime = time;\r\n this._setDefaultTime(time);\r\n }\r\n\r\n private get _locale(): string {\r\n return this._timepickerLocaleSrv.locale;\r\n }\r\n\r\n activeTimeUnit: NgxMatTimepickerUnits = NgxMatTimepickerUnits.HOUR;\r\n selectedHour: Observable;\r\n selectedMinute: Observable;\r\n selectedPeriod: Observable;\r\n timeUnit: typeof NgxMatTimepickerUnits = NgxMatTimepickerUnits;\r\n\r\n protected _color: ThemePalette = \"primary\";\r\n protected _defaultTime: string;\r\n protected _subsCtrl$: Subject = new Subject();\r\n\r\n constructor(protected _timepickerSrv: NgxMatTimepickerService,\r\n protected _eventSrv: NgxMatTimepickerEventService,\r\n protected _timepickerLocaleSrv: NgxMatTimepickerLocaleService,\r\n @Inject(NGX_MAT_TIMEPICKER_CONFIG) public data: NgxMatTimepickerConfig) {\r\n\r\n this.color = data.color;\r\n this.defaultTime = data.defaultTime;\r\n }\r\n\r\n changePeriod(period: NgxMatTimepickerPeriods): void {\r\n this._timepickerSrv.period = period;\r\n this._onTimeChange();\r\n }\r\n\r\n changeTimeUnit(unit: NgxMatTimepickerUnits): void {\r\n this.activeTimeUnit = unit;\r\n }\r\n\r\n close(): void {\r\n this.data.timepickerBaseRef.close();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subsCtrl$.next();\r\n this._subsCtrl$.complete();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._defineTime();\r\n this.selectedHour = this._timepickerSrv.selectedHour\r\n .pipe(shareReplay({bufferSize: 1, refCount: true}));\r\n this.selectedMinute = this._timepickerSrv.selectedMinute\r\n .pipe(shareReplay({bufferSize: 1, refCount: true}));\r\n this.selectedPeriod = this._timepickerSrv.selectedPeriod\r\n .pipe(shareReplay({bufferSize: 1, refCount: true}));\r\n this.data.timepickerBaseRef.timeUpdated.pipe(takeUntil(this._subsCtrl$))\r\n .subscribe(this._setDefaultTime.bind(this));\r\n }\r\n\r\n onHourChange(hour: NgxMatTimepickerClockFace): void {\r\n this._timepickerSrv.hour = hour;\r\n this._onTimeChange();\r\n }\r\n\r\n onHourSelected(hour: number): void {\r\n if (!this.data.hoursOnly) {\r\n this.changeTimeUnit(NgxMatTimepickerUnits.MINUTE);\r\n }\r\n this.data.timepickerBaseRef.hourSelected.next(hour);\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeydown(e: any): void {\r\n this._eventSrv.dispatchEvent(e);\r\n e.stopPropagation();\r\n }\r\n\r\n onMinuteChange(minute: NgxMatTimepickerClockFace): void {\r\n this._timepickerSrv.minute = minute;\r\n this._onTimeChange();\r\n }\r\n\r\n setTime(): void {\r\n this.data.timepickerBaseRef.timeSet.emit(this._timepickerSrv.getFullTime(this.data.format));\r\n this.close();\r\n }\r\n\r\n protected _defineTime(): void {\r\n const minTime = this.data.minTime;\r\n\r\n if (minTime && (!this.data.time && !this.data.defaultTime)) {\r\n const time = NgxMatTimepickerAdapter.fromDateTimeToString(minTime, this.data.format);\r\n\r\n this._setDefaultTime(time);\r\n }\r\n }\r\n\r\n protected _onTimeChange(): void {\r\n const time = NgxMatTimepickerAdapter.toLocaleTimeString(this._timepickerSrv.getFullTime(this.data.format), {\r\n locale: this._locale,\r\n format: this.data.format\r\n });\r\n\r\n this.data.timepickerBaseRef.timeChanged.emit(time);\r\n }\r\n\r\n protected _setDefaultTime(time: string): void {\r\n this._timepickerSrv.setDefaultTimeIfAvailable(\r\n time, this.data.minTime, this.data.maxTime, this.data.format, this.data.minutesGap);\r\n }\r\n}\r\n","import {NgxMatTimepickerClockFace} from \"../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerAdapter} from \"../services/ngx-mat-timepicker-adapter\";\r\nimport {NgxMatTimepickerFormat} from \"../models/ngx-mat-timepicker-format.enum\";\r\nimport {NgxMatTimepickerDisabledConfig} from \"../models/ngx-mat-timepicker-disabled-config.interface\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\n// @dynamic\r\nexport class NgxMatTimepickerUtils {\r\n\r\n static disableHours(hours: NgxMatTimepickerClockFace[], config: NgxMatTimepickerDisabledConfig): NgxMatTimepickerClockFace[] {\r\n if (config.min || config.max) {\r\n\r\n return hours.map(value => {\r\n const hour = NgxMatTimepickerAdapter.isTwentyFour(config.format)\r\n ? value.time\r\n : NgxMatTimepickerAdapter.formatHour(value.time, config.format, config.period);\r\n const currentTime = DateTime.fromObject({hour}).toFormat(NgxMatTimepickerFormat.TWELVE);\r\n\r\n return {\r\n ...value,\r\n disabled: !NgxMatTimepickerAdapter.isTimeAvailable(currentTime, config.min, config.max, \"hours\")\r\n };\r\n });\r\n }\r\n\r\n return hours;\r\n }\r\n\r\n static disableMinutes(minutes: NgxMatTimepickerClockFace[], selectedHour: number, config: NgxMatTimepickerDisabledConfig) {\r\n if (config.min || config.max) {\r\n\r\n const hour = NgxMatTimepickerAdapter.formatHour(selectedHour, config.format, config.period);\r\n let currentTime = DateTime.fromObject({\r\n hour,\r\n minute: 0\r\n });\r\n\r\n return minutes.map(value => {\r\n currentTime = currentTime.set({minute: value.time});\r\n\r\n return {\r\n ...value,\r\n disabled: !NgxMatTimepickerAdapter.isTimeAvailable(currentTime.toFormat(NgxMatTimepickerFormat.TWELVE), config.min, config.max, \"minutes\")\r\n };\r\n });\r\n }\r\n\r\n return minutes;\r\n }\r\n\r\n static getHours(format: number): NgxMatTimepickerClockFace[] {\r\n return Array(format).fill(1).map((v, i) => {\r\n const angleStep = 30;\r\n const time = v + i;\r\n const angle = angleStep * time;\r\n\r\n return {time: time === 24 ? 0 : time, angle};\r\n });\r\n }\r\n\r\n static getMinutes(gap = 1): NgxMatTimepickerClockFace[] {\r\n const minutesCount = 60;\r\n const angleStep = 360 / minutesCount;\r\n const minutes = [];\r\n\r\n for (let i = 0; i < minutesCount; i++) {\r\n const angle = angleStep * i;\r\n if (i % gap === 0) {\r\n minutes.push({time: i, angle: angle !== 0 ? angle : 360});\r\n }\r\n }\r\n\r\n return minutes;\r\n }\r\n\r\n static isDigit(e: KeyboardEvent) {\r\n // Allow: backspace, delete, tab, escape, enter\r\n if ([46, 8, 9, 27, 13].some(n => n === e.keyCode) ||\r\n // Allow: Ctrl/cmd+A\r\n (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||\r\n // Allow: Ctrl/cmd+C\r\n (e.keyCode === 67 && (e.ctrlKey === true || e.metaKey === true)) ||\r\n // Allow: Ctrl/cmd+X\r\n (e.keyCode === 88 && (e.ctrlKey === true || e.metaKey === true)) ||\r\n // Allow: home, end, left, right, up, down\r\n (e.keyCode >= 35 && e.keyCode <= 40)) {\r\n\r\n return true;\r\n }\r\n\r\n return !((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105));\r\n }\r\n\r\n\r\n}\r\n","export enum NgxMatTimepickerMeasure {\r\n hour = \"hour\",\r\n minute = \"minute\"\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n//\r\nimport {NgxMatTimepickerLocaleService} from \"../services/ngx-mat-timepicker-locale.service\";\r\nimport {NgxMatTimepickerUnits} from \"../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerMeasure} from \"../models/ngx-mat-timepicker-measures.enum\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\n@Pipe({\r\n name: \"timeLocalizer\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerTimeLocalizerPipe implements PipeTransform {\r\n\r\n private get _locale(): string {\r\n return this._timepickerLocaleSrv.locale;\r\n }\r\n\r\n constructor(private _timepickerLocaleSrv: NgxMatTimepickerLocaleService) {\r\n }\r\n\r\n transform(time: number | string, timeUnit: NgxMatTimepickerUnits, isKeyboardEnabled = false): string {\r\n if (time == null || time === \"\") {\r\n return \"\";\r\n }\r\n\r\n switch (timeUnit) {\r\n case NgxMatTimepickerUnits.HOUR: {\r\n const format = (time === 0 || isKeyboardEnabled) ? \"HH\" : \"H\";\r\n\r\n return this._formatTime(NgxMatTimepickerMeasure.hour, time, format);\r\n }\r\n case NgxMatTimepickerUnits.MINUTE:\r\n return this._formatTime(NgxMatTimepickerMeasure.minute, time, \"mm\");\r\n default:\r\n throw new Error(`There is no Time Unit with type ${timeUnit}`);\r\n }\r\n }\r\n\r\n private _formatTime(timeMeasure: NgxMatTimepickerMeasure, time: string | number, format: string): string {\r\n try {\r\n return DateTime.fromObject({[timeMeasure]: +time}).setLocale(this._locale).toFormat(format);\r\n }\r\n catch {\r\n throw new Error(`Cannot format provided time - ${time} to locale - ${this._locale}`);\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"minutesFormatter\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerMinutesFormatterPipe implements PipeTransform {\r\n\r\n transform(minute: number, gap = 5): number | string {\r\n if (!minute) {\r\n return minute;\r\n }\r\n\r\n return minute % gap === 0 ? minute : \"\";\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"activeMinute\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerActiveMinutePipe implements PipeTransform {\r\n\r\n transform(minute: number, currentMinute: number, gap: number, isClockFaceDisabled: boolean): boolean {\r\n if (minute == null || isClockFaceDisabled) {\r\n return false;\r\n }\r\n const defaultGap = 5;\r\n\r\n return ((currentMinute === minute) && (minute % (gap || defaultGap) === 0));\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"activeHour\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerActiveHourPipe implements PipeTransform {\r\n\r\n transform(hour: number, currentHour: number, isClockFaceDisabled: boolean): boolean {\r\n if (hour == null || isClockFaceDisabled) {\r\n return false;\r\n }\r\n\r\n return hour === currentHour;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {NgStyle, NgFor, NgIf, NgTemplateOutlet, NgClass, SlicePipe} from \"@angular/common\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\n//\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerFormatType} from \"../../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerUnits} from \"../../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerAdapter} from \"../../services/ngx-mat-timepicker-adapter\";\r\nimport {NgxMatTimepickerTimeLocalizerPipe} from \"../../pipes/ngx-mat-timepicker-time-localizer.pipe\";\r\nimport {NgxMatTimepickerMinutesFormatterPipe} from \"../../pipes/ngx-mat-timepicker-minutes-formatter.pipe\";\r\nimport {NgxMatTimepickerActiveMinutePipe} from \"../../pipes/ngx-mat-timepicker-active-minute.pipe\";\r\nimport {NgxMatTimepickerActiveHourPipe} from \"../../pipes/ngx-mat-timepicker-active-hour.pipe\";\r\n\r\nfunction roundAngle(angle: number, step: number): number {\r\n return Math.round(angle / step) * step;\r\n}\r\n\r\nfunction countAngleByCords(x0: number, y0: number, x: number, y: number, currentAngle: number): number {\r\n if (y > y0 && x >= x0) {// II quarter\r\n return 180 - currentAngle;\r\n }\r\n else if (y > y0 && x < x0) {// III quarter\r\n return 180 + currentAngle;\r\n }\r\n else if (y < y0 && x < x0) {// IV quarter\r\n return 360 - currentAngle;\r\n }\r\n else {// I quarter\r\n return currentAngle;\r\n }\r\n}\r\n\r\nconst CLOCK_HAND_STYLES = {\r\n small: {\r\n height: \"75px\",\r\n top: \"calc(50% - 75px)\"\r\n },\r\n large: {\r\n height: \"103px\",\r\n top: \"calc(50% - 103px)\"\r\n }\r\n};\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-face\",\r\n templateUrl: \"./ngx-mat-timepicker-face.component.html\",\r\n styleUrls: [\"./ngx-mat-timepicker-face.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n MatButtonModule,\r\n NgStyle,\r\n NgFor,\r\n NgIf,\r\n NgTemplateOutlet,\r\n MatToolbarModule,\r\n NgClass,\r\n SlicePipe,\r\n NgxMatTimepickerActiveHourPipe,\r\n NgxMatTimepickerActiveMinutePipe,\r\n NgxMatTimepickerMinutesFormatterPipe,\r\n NgxMatTimepickerTimeLocalizerPipe]\r\n})\r\nexport class NgxMatTimepickerFaceComponent implements AfterViewInit, OnChanges, OnDestroy {\r\n\r\n @ViewChild(\"clockFace\", {static: true}) clockFace: ElementRef;\r\n @ViewChild(\"clockHand\", {static: true, read: ElementRef}) clockHand: ElementRef;\r\n\r\n @Input() color: ThemePalette = \"primary\";\r\n\r\n @Input() faceTime: NgxMatTimepickerClockFace[];\r\n\r\n @Input() format: NgxMatTimepickerFormatType;\r\n\r\n innerClockFaceSize = 85;\r\n isClockFaceDisabled: boolean;\r\n\r\n @Input() minutesGap: number;\r\n\r\n @Input() selectedTime: NgxMatTimepickerClockFace;\r\n\r\n @Output() timeChange = new EventEmitter();\r\n\r\n @Output() timeSelected = new EventEmitter();\r\n\r\n timeUnit = NgxMatTimepickerUnits;\r\n\r\n @Input() unit: NgxMatTimepickerUnits;\r\n\r\n private _isStarted: boolean;\r\n private _touchEndHandler: (e: any) => any;\r\n private _touchStartHandler: (e: any) => any;\r\n\r\n ngAfterViewInit(): void {\r\n this._setClockHandPosition();\r\n this._addTouchEvents();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // tslint:disable-next-line:no-string-literal\r\n const faceTimeChanges = changes[\"faceTime\"];\r\n // tslint:disable-next-line:no-string-literal\r\n const selectedTimeChanges = changes[\"selectedTime\"];\r\n\r\n if ((faceTimeChanges && faceTimeChanges.currentValue)\r\n && (selectedTimeChanges && selectedTimeChanges.currentValue)) {\r\n /* Set time according to pass an input value */\r\n this.selectedTime = this.faceTime.find(time => time.time === this.selectedTime.time);\r\n }\r\n if (selectedTimeChanges && selectedTimeChanges.currentValue) {\r\n this._setClockHandPosition();\r\n }\r\n if (faceTimeChanges && faceTimeChanges.currentValue) {\r\n // To avoid an error ExpressionChangedAfterItHasBeenCheckedError\r\n setTimeout(() => this._selectAvailableTime());\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._removeTouchEvents();\r\n }\r\n\r\n @HostListener(\"mousedown\", [\"$event\"])\r\n onMousedown(e: any) {\r\n e.preventDefault();\r\n this._isStarted = true;\r\n }\r\n\r\n @HostListener(\"mouseup\", [\"$event\"])\r\n onMouseup(e: any) {\r\n e.preventDefault();\r\n this._isStarted = false;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n @HostListener(\"touchmove\", [\"$event.changedTouches[0]\"])\r\n @HostListener(\"touchend\", [\"$event.changedTouches[0]\"])\r\n @HostListener(\"mousemove\", [\"$event\"])\r\n selectTime(e: any): void {\r\n\r\n if (!this._isStarted && (e instanceof MouseEvent && e.type !== \"click\")) {\r\n return;\r\n }\r\n const clockFaceCords = this.clockFace.nativeElement.getBoundingClientRect();\r\n\r\n /* Get x0 and y0 of the circle */\r\n const centerX = clockFaceCords.left + clockFaceCords.width / 2;\r\n const centerY = clockFaceCords.top + clockFaceCords.height / 2;\r\n /* Counting the arctangent and convert it to from radian to deg */\r\n const arctangent = Math.atan(Math.abs(e.clientX - centerX) / Math.abs(e.clientY - centerY)) * 180 / Math.PI;\r\n /* Get angle according to quadrant */\r\n const circleAngle = countAngleByCords(centerX, centerY, e.clientX, e.clientY, arctangent);\r\n /* Check if selected time from the inner clock face (24 hours format only) */\r\n const isInnerClockChosen = this.format && this._isInnerClockFace(centerX, centerY, e.clientX, e.clientY);\r\n /* Round angle according to angle step */\r\n const angleStep = this.unit === NgxMatTimepickerUnits.MINUTE ? (6 * (this.minutesGap || 1)) : 30;\r\n const roundedAngle = roundAngle(circleAngle, angleStep);\r\n const angle = (roundedAngle || 360) + (isInnerClockChosen ? 360 : 0);\r\n\r\n const selectedTime = this.faceTime.find(val => val.angle === angle);\r\n\r\n if (selectedTime && !selectedTime.disabled) {\r\n this.timeChange.next(selectedTime);\r\n\r\n /* To let know whether user ended interaction with clock face */\r\n if (!this._isStarted) {\r\n this.timeSelected.next(selectedTime.time);\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n trackByTime(_item_: any, time: NgxMatTimepickerClockFace): string | number {\r\n return time.time;\r\n }\r\n\r\n private _addTouchEvents(): void {\r\n this._touchStartHandler = this.onMousedown.bind(this);\r\n this._touchEndHandler = this.onMouseup.bind(this);\r\n\r\n this.clockFace.nativeElement.addEventListener(\"touchstart\", this._touchStartHandler);\r\n this.clockFace.nativeElement.addEventListener(\"touchend\", this._touchEndHandler);\r\n }\r\n\r\n private _decreaseClockHand(): void {\r\n this.clockHand.nativeElement.style.height = CLOCK_HAND_STYLES.small.height;\r\n this.clockHand.nativeElement.style.top = CLOCK_HAND_STYLES.small.top;\r\n }\r\n\r\n private _increaseClockHand(): void {\r\n this.clockHand.nativeElement.style.height = CLOCK_HAND_STYLES.large.height;\r\n this.clockHand.nativeElement.style.top = CLOCK_HAND_STYLES.large.top;\r\n }\r\n\r\n private _isInnerClockFace(x0: number, y0: number, x: number, y: number): boolean {\r\n /* Detect whether time from the inner clock face or not (24 format only) */\r\n return Math.sqrt(Math.pow(x - x0, 2) + Math.pow(y - y0, 2)) < this.innerClockFaceSize;\r\n }\r\n\r\n private _removeTouchEvents(): void {\r\n this.clockFace.nativeElement.removeEventListener(\"touchstart\", this._touchStartHandler);\r\n this.clockFace.nativeElement.removeEventListener(\"touchend\", this._touchEndHandler);\r\n }\r\n\r\n private _selectAvailableTime(): void {\r\n const currentTime = this.faceTime.find(time => this.selectedTime.time === time.time);\r\n this.isClockFaceDisabled = this.faceTime.every(time => time.disabled);\r\n\r\n if ((currentTime && currentTime.disabled) && !this.isClockFaceDisabled) {\r\n const availableTime = this.faceTime.find(time => !time.disabled);\r\n\r\n this.timeChange.next(availableTime);\r\n }\r\n }\r\n\r\n private _setClockHandPosition(): void {\r\n if (NgxMatTimepickerAdapter.isTwentyFour(this.format)) {\r\n if (this.selectedTime.time > 12 || this.selectedTime.time === 0) {\r\n this._decreaseClockHand();\r\n }\r\n else {\r\n this._increaseClockHand();\r\n }\r\n }\r\n\r\n this.clockHand.nativeElement.style.transform = `rotate(${this.selectedTime.angle}deg)`;\r\n }\r\n}\r\n","\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
12\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges} from \"@angular/core\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\n//\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerFormatType} from \"../../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerUnits} from \"../../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerPeriods} from \"../../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\nimport { NgxMatTimepickerFaceComponent } from \"../ngx-mat-timepicker-face/ngx-mat-timepicker-face.component\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-minutes-face\",\r\n templateUrl: \"./ngx-mat-timepicker-minutes-face.component.html\",\r\n standalone: true,\r\n imports: [NgxMatTimepickerFaceComponent]\r\n})\r\nexport class NgxMatTimepickerMinutesFaceComponent implements OnChanges {\r\n\r\n @Input()\r\n set color(newValue: ThemePalette) {\r\n this._color = newValue;\r\n }\r\n\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n @Input() format: NgxMatTimepickerFormatType;\r\n @Input() maxTime: DateTime;\r\n @Input() minTime: DateTime;\r\n\r\n @Output() minuteChange = new EventEmitter();\r\n @Input() minutesGap: number;\r\n\r\n minutesList: NgxMatTimepickerClockFace[] = [];\r\n @Input() period: NgxMatTimepickerPeriods;\r\n @Input() selectedHour: number;\r\n\r\n @Input() selectedMinute: NgxMatTimepickerClockFace;\r\n timeUnit = NgxMatTimepickerUnits;\r\n\r\n private _color: ThemePalette = \"primary\";\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes[\"period\"] && changes[\"period\"].currentValue) {\r\n const minutes = NgxMatTimepickerUtils.getMinutes(this.minutesGap);\r\n this.minutesList = NgxMatTimepickerUtils.disableMinutes(minutes, this.selectedHour, {\r\n min: this.minTime,\r\n max: this.maxTime,\r\n format: this.format,\r\n period: this.period\r\n });\r\n }\r\n }\r\n}\r\n\r\n","\r\n","import {Directive, EventEmitter, Input, Output} from \"@angular/core\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\n//\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerFormatType} from \"../../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\n@Directive({\r\n selector: \"[ngxMatTimepickerHoursFace]\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerHoursFaceDirective {\r\n\r\n @Input()\r\n set color(newValue: ThemePalette) {\r\n this._color = newValue;\r\n }\r\n\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n @Input()\r\n set format(newValue: NgxMatTimepickerFormatType) {\r\n this._format = newValue;\r\n this.hoursList = NgxMatTimepickerUtils.getHours(this._format);\r\n }\r\n\r\n get format(): NgxMatTimepickerFormatType {\r\n return this._format;\r\n }\r\n\r\n @Output() hourChange = new EventEmitter();\r\n @Output() hourSelected = new EventEmitter();\r\n\r\n hoursList: NgxMatTimepickerClockFace[] = [];\r\n @Input() maxTime: DateTime;\r\n @Input() minTime: DateTime;\r\n @Input() selectedHour: NgxMatTimepickerClockFace;\r\n\r\n protected _color: ThemePalette = \"primary\";\r\n protected _format: NgxMatTimepickerFormatType = 24;\r\n\r\n constructor() {\r\n }\r\n\r\n onTimeSelected(time: number): void {\r\n this.hourSelected.next(time);\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges} from \"@angular/core\";\r\n//\r\nimport {\r\n NgxMatTimepickerHoursFaceDirective\r\n} from \"../ngx-mat-timepicker-hours-face/ngx-mat-timepicker-hours-face.directive\";\r\nimport {NgxMatTimepickerPeriods} from \"../../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\nimport {NgxMatTimepickerFaceComponent} from \"../ngx-mat-timepicker-face/ngx-mat-timepicker-face.component\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-12-hours-face\",\r\n templateUrl: \"ngx-mat-timepicker-12-hours-face.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgxMatTimepickerFaceComponent]\r\n})\r\nexport class NgxMatTimepicker12HoursFaceComponent extends NgxMatTimepickerHoursFaceDirective implements OnChanges {\r\n\r\n @Input() period: NgxMatTimepickerPeriods;\r\n\r\n constructor() {\r\n super();\r\n this.format = 12;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes[\"period\"] && changes[\"period\"].currentValue) {\r\n this.hoursList = NgxMatTimepickerUtils.disableHours(this.hoursList, {\r\n min: this.minTime,\r\n max: this.maxTime,\r\n format: this.format,\r\n period: this.period\r\n });\r\n }\r\n }\r\n}\r\n","\r\n","import {AfterContentInit, ChangeDetectionStrategy, Component} from \"@angular/core\";\r\n//\r\nimport {\r\n NgxMatTimepickerHoursFaceDirective\r\n} from \"../ngx-mat-timepicker-hours-face/ngx-mat-timepicker-hours-face.directive\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\nimport {NgxMatTimepickerFaceComponent} from \"../ngx-mat-timepicker-face/ngx-mat-timepicker-face.component\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-24-hours-face\",\r\n templateUrl: \"ngx-mat-timepicker-24-hours-face.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgxMatTimepickerFaceComponent]\r\n})\r\nexport class NgxMatTimepicker24HoursFaceComponent extends NgxMatTimepickerHoursFaceDirective implements AfterContentInit {\r\n\r\n constructor() {\r\n super();\r\n this.format = 24;\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.hoursList = NgxMatTimepickerUtils.disableHours(this.hoursList, {\r\n min: this.minTime,\r\n max: this.maxTime,\r\n format: this.format\r\n });\r\n }\r\n}\r\n","\r\n","import {Component, EventEmitter, Input, Output} from \"@angular/core\";\r\nimport {animate, sequence, style, transition, trigger} from \"@angular/animations\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { FlexibleConnectedPositionStrategy, Overlay, ScrollStrategy, CdkOverlayOrigin, CdkConnectedOverlay } from \"@angular/cdk/overlay\";\r\n//\r\nimport {NgxMatTimepickerFormatType} from \"../../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerPeriods} from \"../../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerUnits} from \"../../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-period\",\r\n templateUrl: \"ngx-mat-timepicker-period.component.html\",\r\n styleUrls: [\"ngx-mat-timepicker-period.component.scss\"],\r\n animations: [\r\n trigger(\"scaleInOut\", [\r\n transition(\":enter\", [\r\n style({ transform: \"scale(0)\" }),\r\n animate(\".2s\", style({ transform: \"scale(1)\" })),\r\n sequence([\r\n animate(\"3s\", style({ opacity: 1 })),\r\n animate(\".3s\", style({ opacity: 0 }))\r\n ])\r\n ])\r\n ])\r\n ],\r\n standalone: true,\r\n imports: [CdkOverlayOrigin, NgClass, CdkConnectedOverlay, NgIf]\r\n})\r\nexport class NgxMatTimepickerPeriodComponent {\r\n\r\n @Input() activeTimeUnit: NgxMatTimepickerUnits;\r\n @Input() format: NgxMatTimepickerFormatType;\r\n @Input() hours: NgxMatTimepickerClockFace[];\r\n isPeriodAvailable = true;\r\n @Input() maxTime: DateTime;\r\n @Input() meridiems: string[];\r\n @Input() minTime: DateTime;\r\n @Input() minutes: NgxMatTimepickerClockFace[];\r\n overlayPositionStrategy: FlexibleConnectedPositionStrategy;\r\n overlayScrollStrategy: ScrollStrategy = this._overlay.scrollStrategies.reposition();\r\n @Output() periodChanged = new EventEmitter();\r\n @Input() selectedHour: number | string;\r\n @Input() selectedPeriod: NgxMatTimepickerPeriods;\r\n timePeriod = NgxMatTimepickerPeriods;\r\n\r\n constructor(protected _overlay: Overlay) {\r\n }\r\n\r\n animationDone(): void {\r\n this.isPeriodAvailable = true;\r\n }\r\n\r\n changePeriod(period: NgxMatTimepickerPeriods): void {\r\n this.isPeriodAvailable = this._isSwitchPeriodAvailable(period);\r\n if (this.isPeriodAvailable) {\r\n this.periodChanged.next(period);\r\n }\r\n }\r\n\r\n private _getDisabledTimeByPeriod(period: NgxMatTimepickerPeriods): NgxMatTimepickerClockFace[] {\r\n switch (this.activeTimeUnit) {\r\n case NgxMatTimepickerUnits.HOUR:\r\n return NgxMatTimepickerUtils.disableHours(this.hours, {\r\n min: this.minTime,\r\n max: this.maxTime,\r\n format: this.format,\r\n period\r\n });\r\n case NgxMatTimepickerUnits.MINUTE:\r\n return NgxMatTimepickerUtils.disableMinutes(this.minutes, +this.selectedHour, {\r\n min: this.minTime,\r\n max: this.maxTime,\r\n format: this.format,\r\n period\r\n });\r\n default:\r\n throw new Error(\"no such NgxMatTimepickerUnits\");\r\n }\r\n }\r\n\r\n private _isSwitchPeriodAvailable(period: NgxMatTimepickerPeriods): boolean {\r\n const time = this._getDisabledTimeByPeriod(period);\r\n\r\n return !time.every(t => t.disabled);\r\n }\r\n}\r\n","
\r\n\t\r\n\t\r\n
\r\n\r\n\t
\r\n\t\t

Current time would be invalid in this period.

\r\n\t
\r\n\r\n","import {Injectable, Pipe, PipeTransform} from \"@angular/core\";\r\n//\r\nimport {NgxMatTimepickerUnits} from \"../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerMeasure} from \"../models/ngx-mat-timepicker-measures.enum\";\r\nimport {NgxMatTimepickerLocaleService} from \"../services/ngx-mat-timepicker-locale.service\";\r\n//\r\nimport {DateTime, NumberingSystem} from \"ts-luxon\";\r\n\r\n@Pipe({\r\n name: \"ngxMatTimepickerParser\",\r\n standalone: true\r\n})\r\n@Injectable()\r\nexport class NgxMatTimepickerParserPipe implements PipeTransform {\r\n\r\n private get _locale(): string {\r\n return this._timepickerLocaleSrv.locale;\r\n }\r\n\r\n private readonly _numberingSystem: NumberingSystem;\r\n\r\n constructor(private _timepickerLocaleSrv: NgxMatTimepickerLocaleService) {\r\n this._numberingSystem = DateTime.local().setLocale(this._locale).resolvedLocaleOptions().numberingSystem as NumberingSystem;\r\n }\r\n\r\n transform(time: string | number, timeUnit = NgxMatTimepickerUnits.HOUR): string {\r\n if (time == null || time === \"\") {\r\n return \"\";\r\n }\r\n\r\n if (!isNaN(+time)) {\r\n return `${time}`;\r\n }\r\n\r\n if (timeUnit === NgxMatTimepickerUnits.MINUTE) {\r\n return this._parseTime(time, \"mm\", NgxMatTimepickerMeasure.minute).toString();\r\n }\r\n\r\n return this._parseTime(time, \"HH\", NgxMatTimepickerMeasure.hour).toString();\r\n }\r\n\r\n private _parseTime(time: string | number, format: string, timeMeasure: NgxMatTimepickerMeasure): number {\r\n const parsedTime = DateTime.fromFormat(String(time), format, {numberingSystem: this._numberingSystem})[timeMeasure];\r\n if (!isNaN(parsedTime)) {\r\n return parsedTime;\r\n }\r\n\r\n throw new Error(`Cannot parse time - ${time}`);\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, Inject, Input, OnChanges, OnDestroy, Optional} from \"@angular/core\";\r\nimport {DOCUMENT} from \"@angular/common\";\r\n\r\n@Directive({\r\n selector: \"[ngxMatTimepickerAutofocus]\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerAutofocusDirective implements OnChanges, OnDestroy {\r\n\r\n @Input(\"ngxMatTimepickerAutofocus\") isFocusActive: boolean;\r\n\r\n private _activeElement: HTMLElement;\r\n\r\n constructor(private _element: ElementRef, @Optional() @Inject(DOCUMENT) private _document: any) {\r\n this._activeElement = this._document.activeElement;\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.isFocusActive) {\r\n // To avoid ExpressionChangedAfterItHasBeenCheckedError;\r\n setTimeout(() => this._element.nativeElement.focus({preventScroll: true}));\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n // To avoid ExpressionChangedAfterItHasBeenCheckedError;\r\n setTimeout(() => this._activeElement.focus({preventScroll: true}));\r\n }\r\n}\r\n","import {Component, EventEmitter, OnDestroy, Input, Output, ElementRef, AfterViewInit} from \"@angular/core\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {NgIf, NgClass} from \"@angular/common\";\r\n//\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerUnits} from \"../../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerParserPipe} from \"../../pipes/ngx-mat-timepicker-parser.pipe\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\nimport {NgxMatTimepickerTimeLocalizerPipe} from \"../../pipes/ngx-mat-timepicker-time-localizer.pipe\";\r\nimport {NgxMatTimepickerAutofocusDirective} from \"../../directives/ngx-mat-timepicker-autofocus.directive\";\r\n\r\nfunction retainSelection(this: HTMLInputElement) {\r\n this.selectionStart = this.selectionEnd;\r\n}\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-dial-control\",\r\n templateUrl: \"ngx-mat-timepicker-dial-control.component.html\",\r\n styleUrls: [\"ngx-mat-timepicker-dial-control.component.scss\"],\r\n providers: [NgxMatTimepickerParserPipe],\r\n standalone: true,\r\n imports: [\r\n NgIf,\r\n FormsModule,\r\n NgClass,\r\n NgxMatTimepickerAutofocusDirective,\r\n NgxMatTimepickerParserPipe,\r\n NgxMatTimepickerTimeLocalizerPipe\r\n ]\r\n})\r\nexport class NgxMatTimepickerDialControlComponent implements AfterViewInit, OnDestroy {\r\n\r\n private get _selectedTime(): NgxMatTimepickerClockFace | undefined {\r\n if (!!this.time) {\r\n return this.timeList.find(t => t.time === +this.time);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n @Input() disabled: boolean;\r\n\r\n @Output() focused = new EventEmitter();\r\n\r\n @Input() isActive: boolean;\r\n\r\n @Input() isEditable: boolean;\r\n\r\n @Input() minutesGap: number;\r\n\r\n previousTime: number | string;\r\n\r\n @Input() time: string;\r\n\r\n @Output() timeChanged = new EventEmitter();\r\n\r\n @Input() timeList: NgxMatTimepickerClockFace[];\r\n\r\n @Input() timeUnit: NgxMatTimepickerUnits;\r\n\r\n @Output() timeUnitChanged = new EventEmitter();\r\n\r\n @Output() unfocused = new EventEmitter();\r\n\r\n constructor(private _elRef: ElementRef, private _timeParserPipe: NgxMatTimepickerParserPipe) {\r\n }\r\n\r\n changeTimeByKeyboard(e: any): void {\r\n const char = String.fromCharCode(e.keyCode);\r\n\r\n if (isTimeDisabledToChange(this.time, char, this.timeList)) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._elRef.nativeElement.querySelector(\"input\").addEventListener(\"select\", retainSelection, false);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elRef.nativeElement.querySelector(\"input\").removeEventListener(\"select\", retainSelection);\r\n }\r\n\r\n onKeydown(e: any): void {\r\n if (!NgxMatTimepickerUtils.isDigit(e)) {\r\n e.preventDefault();\r\n }\r\n else {\r\n this._changeTimeByArrow(e.keyCode);\r\n }\r\n }\r\n\r\n onModelChange(value: string): void {\r\n this.time = this._timeParserPipe.transform(value, this.timeUnit);\r\n }\r\n\r\n saveTimeAndChangeTimeUnit(event: FocusEvent, unit: NgxMatTimepickerUnits): void {\r\n event.preventDefault();\r\n this.previousTime = this.time;\r\n this.timeUnitChanged.next(unit);\r\n this.focused.next();\r\n }\r\n\r\n updateTime(): void {\r\n if (this._selectedTime) {\r\n this.timeChanged.next(this._selectedTime);\r\n this.previousTime = this._selectedTime.time;\r\n }\r\n }\r\n\r\n private _addTime(amount: number): string {\r\n return `0${+this.time + amount}`.substr(-2);\r\n }\r\n\r\n private _changeTimeByArrow(keyCode: number): void {\r\n let time: string;\r\n\r\n // arrow up\r\n if (keyCode === 38) {\r\n time = this._addTime(this.minutesGap || 1);\r\n }\r\n // arrow down\r\n else if (keyCode === 40) {\r\n time = this._addTime(-1 * (this.minutesGap || 1));\r\n }\r\n\r\n if (!isTimeUnavailable(time, this.timeList)) {\r\n this.time = time;\r\n this.updateTime();\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction isTimeDisabledToChange(currentTime: string, nextTime: string, timeList: NgxMatTimepickerClockFace[]): boolean | undefined {\r\n const isNumber = /\\d/.test(nextTime);\r\n\r\n if (isNumber) {\r\n const time = currentTime + nextTime;\r\n\r\n return isTimeUnavailable(time, timeList);\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction isTimeUnavailable(time: string, timeList: NgxMatTimepickerClockFace[]): boolean {\r\n const selectedTime = timeList.find(value => value.time === +time);\r\n\r\n return !selectedTime || (selectedTime && selectedTime.disabled);\r\n}\r\n","\r\n\r\n\r\n \r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef\r\n} from \"@angular/core\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\nimport { NgIf, NgClass, NgTemplateOutlet } from \"@angular/common\";\r\n//\r\nimport {NgxMatTimepickerFormatType} from \"../../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerPeriods} from \"../../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerUnits} from \"../../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerLocaleService} from \"../../services/ngx-mat-timepicker-locale.service\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\nimport { NgxMatTimepickerPeriodComponent } from \"../ngx-mat-timepicker-period/ngx-mat-timepicker-period.component\";\r\nimport { NgxMatTimepickerDialControlComponent } from \"../ngx-mat-timepicker-dial-control/ngx-mat-timepicker-dial-control.component\";\r\n//\r\nimport {DateTime, Info} from \"ts-luxon\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-dial\",\r\n templateUrl: \"ngx-mat-timepicker-dial.component.html\",\r\n styleUrls: [\"ngx-mat-timepicker-dial.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgxMatTimepickerDialControlComponent, NgIf, NgxMatTimepickerPeriodComponent, NgClass, NgTemplateOutlet]\r\n})\r\nexport class NgxMatTimepickerDialComponent implements OnChanges {\r\n\r\n @Input() activeTimeUnit: NgxMatTimepickerUnits;\r\n\r\n @Input()\r\n set color(newValue: ThemePalette) {\r\n this._color = newValue;\r\n }\r\n\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n get hourString() {\r\n return `${this.hour}`;\r\n }\r\n\r\n\r\n get minuteString() {\r\n return `${this.minute}`;\r\n }\r\n\r\n private get _locale(): string {\r\n return this._localeSrv.locale;\r\n }\r\n\r\n @Input() editableHintTmpl: TemplateRef;\r\n @Input() format: NgxMatTimepickerFormatType;\r\n @Input() hour: number | string;\r\n @Output() hourChanged = new EventEmitter();\r\n\r\n hours: NgxMatTimepickerClockFace[];\r\n @Input() hoursOnly: boolean;\r\n @Input() isEditable: boolean;\r\n\r\n isHintVisible: boolean;\r\n @Input() maxTime: DateTime;\r\n meridiems = Info.meridiems({locale: this._locale});\r\n @Input() minTime: DateTime;\r\n @Input() minute: number | string;\r\n @Output() minuteChanged = new EventEmitter();\r\n minutes: NgxMatTimepickerClockFace[];\r\n @Input() minutesGap: number;\r\n @Input() period: NgxMatTimepickerPeriods;\r\n\r\n @Output() periodChanged = new EventEmitter();\r\n\r\n timeUnit = NgxMatTimepickerUnits;\r\n @Output() timeUnitChanged = new EventEmitter();\r\n\r\n private _color: ThemePalette = \"primary\";\r\n\r\n constructor(private _localeSrv: NgxMatTimepickerLocaleService) {\r\n }\r\n\r\n changeHour(hour: NgxMatTimepickerClockFace): void {\r\n this.hourChanged.next(hour);\r\n }\r\n\r\n changeMinute(minute: NgxMatTimepickerClockFace): void {\r\n this.minuteChanged.next(minute);\r\n }\r\n\r\n changePeriod(period: NgxMatTimepickerPeriods): void {\r\n this.periodChanged.next(period);\r\n }\r\n\r\n changeTimeUnit(unit: NgxMatTimepickerUnits): void {\r\n this.timeUnitChanged.next(unit);\r\n }\r\n\r\n hideHint(): void {\r\n this.isHintVisible = false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // tslint:disable-next-line:no-string-literal\r\n const periodChanged = changes[\"period\"] && changes[\"period\"].currentValue;\r\n // tslint:disable-next-line:no-string-literal\r\n if (periodChanged || changes[\"format\"] && changes[\"format\"].currentValue) {\r\n const hours = NgxMatTimepickerUtils.getHours(this.format);\r\n\r\n this.hours = NgxMatTimepickerUtils.disableHours(hours, {\r\n min: this.minTime,\r\n max: this.maxTime,\r\n format: this.format,\r\n period: this.period\r\n });\r\n }\r\n // tslint:disable-next-line:no-string-literal\r\n if (periodChanged || changes[\"hour\"] && changes[\"hour\"].currentValue) {\r\n const minutes = NgxMatTimepickerUtils.getMinutes(this.minutesGap);\r\n\r\n this.minutes = NgxMatTimepickerUtils.disableMinutes(minutes, +this.hour, {\r\n min: this.minTime,\r\n max: this.maxTime,\r\n format: this.format,\r\n period: this.period\r\n });\r\n }\r\n }\r\n\r\n showHint(): void {\r\n this.isHintVisible = true;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n\r\n \r\n :\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n * use arrows (⇅) to change the time\r\n \r\n
\r\n
\r\n","import {Component, Input} from \"@angular/core\";\r\nimport { NgIf, NgTemplateOutlet } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-content\",\r\n templateUrl: \"./ngx-mat-timepicker-content.component.html\",\r\n standalone: true,\r\n imports: [NgIf, NgTemplateOutlet],\r\n})\r\nexport class NgxMatTimepickerContentComponent {\r\n\r\n @Input() appendToInput: boolean;\r\n @Input() inputElement: any;\r\n\r\n}\r\n","
\r\n\t\r\n
\r\n\r\n\t\r\n\r\n\r\n\t\r\n\r\n","import {Component, Inject, ViewEncapsulation} from \"@angular/core\";\r\nimport {NgClass, NgSwitch, NgSwitchCase, NgIf, NgTemplateOutlet, AsyncPipe} from \"@angular/common\";\r\nimport {MAT_DIALOG_DATA, MatDialogRef, MatDialogModule} from \"@angular/material/dialog\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\r\n//\r\nimport {NgxMatTimepickerBaseDirective} from \"../../directives/ngx-mat-timepicker-base.directive\";\r\nimport {NgxMatTimepickerConfig} from \"../../models/ngx-mat-timepicker-config.interface\";\r\nimport {NgxMatTimepickerLocaleService} from \"../../services/ngx-mat-timepicker-locale.service\";\r\nimport {NgxMatTimepickerService} from \"../../services/ngx-mat-timepicker.service\";\r\nimport {NgxMatTimepickerEventService} from \"../../services/ngx-mat-timepicker-event.service\";\r\nimport {\r\n NgxMatTimepickerMinutesFaceComponent\r\n} from \"../ngx-mat-timepicker-minutes-face/ngx-mat-timepicker-minutes-face.component\";\r\nimport {\r\n NgxMatTimepicker12HoursFaceComponent\r\n} from \"../ngx-mat-timepicker-12-hours-face/ngx-mat-timepicker-12-hours-face.component\";\r\nimport {\r\n NgxMatTimepicker24HoursFaceComponent\r\n} from \"../ngx-mat-timepicker-24-hours-face/ngx-mat-timepicker-24-hours-face.component\";\r\nimport {NgxMatTimepickerDialComponent} from \"../ngx-mat-timepicker-dial/ngx-mat-timepicker-dial.component\";\r\nimport {NgxMatTimepickerContentComponent} from \"../ngx-mat-timepicker-content/ngx-mat-timepicker-content.component\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-dialog\",\r\n styleUrls: [\"./ngx-mat-timepicker-dialog.component.scss\"],\r\n templateUrl: \"./ngx-mat-timepicker-dialog.component.html\",\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [MatButtonModule,\r\n MatDialogModule,\r\n NgxMatTimepickerContentComponent,\r\n NgClass, MatToolbarModule,\r\n NgxMatTimepickerDialComponent,\r\n NgSwitch,\r\n NgSwitchCase,\r\n NgIf,\r\n NgxMatTimepicker24HoursFaceComponent,\r\n NgxMatTimepicker12HoursFaceComponent,\r\n NgxMatTimepickerMinutesFaceComponent,\r\n NgTemplateOutlet,\r\n AsyncPipe\r\n ]\r\n})\r\nexport class NgxMatTimepickerDialogComponent extends NgxMatTimepickerBaseDirective {\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public override data: NgxMatTimepickerConfig,\r\n protected _dialogRef: MatDialogRef,\r\n timepickerSrv: NgxMatTimepickerService,\r\n eventSrv: NgxMatTimepickerEventService,\r\n timepickerLocaleSrv: NgxMatTimepickerLocaleService) {\r\n\r\n super(timepickerSrv, eventSrv, timepickerLocaleSrv, data);\r\n }\r\n\r\n override close(): void {\r\n this._dialogRef.close();\r\n }\r\n\r\n}\r\n","\r\n \r\n\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import {Component, Inject, ViewEncapsulation} from \"@angular/core\";\r\nimport {NgClass, NgSwitch, NgSwitchCase, NgIf, NgTemplateOutlet, AsyncPipe} from \"@angular/common\";\r\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\r\nimport {A11yModule} from \"@angular/cdk/a11y\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\n//\r\nimport {NgxMatTimepickerLocaleService} from \"../../services/ngx-mat-timepicker-locale.service\";\r\nimport {NgxMatTimepickerService} from \"../../services/ngx-mat-timepicker.service\";\r\nimport {NgxMatTimepickerEventService} from \"../../services/ngx-mat-timepicker-event.service\";\r\nimport {NgxMatTimepickerConfig} from \"../../models/ngx-mat-timepicker-config.interface\";\r\nimport {NgxMatTimepickerBaseDirective} from \"../../directives/ngx-mat-timepicker-base.directive\";\r\nimport {NGX_MAT_TIMEPICKER_CONFIG} from \"../../tokens/ngx-mat-timepicker-config.token\";\r\nimport {\r\n NgxMatTimepickerMinutesFaceComponent\r\n} from \"../ngx-mat-timepicker-minutes-face/ngx-mat-timepicker-minutes-face.component\";\r\nimport {\r\n NgxMatTimepicker12HoursFaceComponent\r\n} from \"../ngx-mat-timepicker-12-hours-face/ngx-mat-timepicker-12-hours-face.component\";\r\nimport {\r\n NgxMatTimepicker24HoursFaceComponent\r\n} from \"../ngx-mat-timepicker-24-hours-face/ngx-mat-timepicker-24-hours-face.component\";\r\nimport {NgxMatTimepickerDialComponent} from \"../ngx-mat-timepicker-dial/ngx-mat-timepicker-dial.component\";\r\nimport {NgxMatTimepickerContentComponent} from \"../ngx-mat-timepicker-content/ngx-mat-timepicker-content.component\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-standalone\",\r\n templateUrl: \"ngx-mat-timepicker-standalone.component.html\",\r\n styleUrls: [\"ngx-mat-timepicker-standalone.component.scss\"],\r\n // tslint:disable-next-line:no-host-metadata-property\r\n host: {\r\n \"[class.mat-app-background]\": \"true\"\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n MatButtonModule,\r\n A11yModule,\r\n NgxMatTimepickerContentComponent,\r\n NgClass,\r\n MatToolbarModule,\r\n NgxMatTimepickerDialComponent,\r\n NgSwitch,\r\n NgSwitchCase,\r\n NgIf,\r\n NgxMatTimepicker24HoursFaceComponent,\r\n NgxMatTimepicker12HoursFaceComponent,\r\n NgxMatTimepickerMinutesFaceComponent,\r\n NgTemplateOutlet,\r\n AsyncPipe\r\n ]\r\n})\r\nexport class NgxMatTimepickerStandaloneComponent extends NgxMatTimepickerBaseDirective {\r\n\r\n constructor(@Inject(NGX_MAT_TIMEPICKER_CONFIG) public override data: NgxMatTimepickerConfig,\r\n timepickerSrv: NgxMatTimepickerService,\r\n eventSrv: NgxMatTimepickerEventService,\r\n timepickerLocaleSrv: NgxMatTimepickerLocaleService) {\r\n\r\n super(timepickerSrv, eventSrv, timepickerLocaleSrv, data);\r\n }\r\n\r\n override close(): void {\r\n this.data.timepickerBaseRef.close();\r\n }\r\n}\r\n","\r\n\t\r\n\r\n\r\n\t\r\n\r\n
\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
\r\n","import {coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {Component, EventEmitter, HostBinding, Input, Output, TemplateRef} from \"@angular/core\";\r\nimport { CdkOverlayOrigin, ConnectedPosition, Overlay, OverlayRef, CdkConnectedOverlay } from \"@angular/cdk/overlay\";\r\nimport {MatDialog, MatDialogRef} from \"@angular/material/dialog\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\n//\r\nimport {NgxMatTimepickerConfig} from \"../../models/ngx-mat-timepicker-config.interface\";\r\nimport {NgxMatTimepickerFormatType} from \"../../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerAdapter} from \"../../services/ngx-mat-timepicker-adapter\";\r\nimport {NgxMatTimepickerEventService} from \"../../services/ngx-mat-timepicker-event.service\";\r\nimport {NgxMatTimepickerDirective} from \"../../directives/ngx-mat-timepicker.directive\";\r\nimport {NgxMatTimepickerRef} from \"../../models/ngx-mat-timepicker-ref.interface\";\r\nimport {NgxMatTimepickerDialogComponent} from \"../ngx-mat-timepicker-dialog/ngx-mat-timepicker-dialog.component\";\r\nimport {NGX_MAT_TIMEPICKER_CONFIG} from \"../../tokens/ngx-mat-timepicker-config.token\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\nimport {BehaviorSubject} from \"rxjs\";\r\nimport { NgxMatTimepickerStandaloneComponent } from \"../ngx-mat-timepicker-standalone/ngx-mat-timepicker-standalone.component\";\r\n\r\nlet config: NgxMatTimepickerConfig;\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker\",\r\n template: `\r\n\t\t\r\n\t\t\t\r\n\t\t`,\r\n providers: [\r\n {\r\n provide: NGX_MAT_TIMEPICKER_CONFIG, useFactory() {\r\n return config;\r\n }\r\n }\r\n ],\r\n standalone: true,\r\n imports: [CdkConnectedOverlay, NgxMatTimepickerStandaloneComponent]\r\n})\r\nexport class NgxMatTimepickerComponent implements NgxMatTimepickerRef {\r\n\r\n static nextId: number = 0;\r\n\r\n @Input()\r\n set appendToInput(newValue: boolean | string | void) {\r\n this._appendToInput = coerceBooleanProperty(newValue);\r\n }\r\n\r\n @Input()\r\n set color(newValue: ThemePalette) {\r\n this._color = newValue;\r\n }\r\n\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n get disabled(): boolean {\r\n return this._timepickerInput && this._timepickerInput.disabled;\r\n }\r\n\r\n @Input()\r\n set enableKeyboardInput(newValue: boolean | string | void) {\r\n this._enableKeyboardInput = coerceBooleanProperty(newValue);\r\n }\r\n\r\n get enableKeyboardInput(): boolean {\r\n return this._enableKeyboardInput;\r\n }\r\n\r\n get format(): NgxMatTimepickerFormatType {\r\n return this._timepickerInput ? this._timepickerInput.format : this._format;\r\n }\r\n\r\n @Input()\r\n set format(value: NgxMatTimepickerFormatType) {\r\n this._format = NgxMatTimepickerAdapter.isTwentyFour(value) ? 24 : 12;\r\n }\r\n\r\n get inputElement(): HTMLElement {\r\n return this._timepickerInput && this._timepickerInput.element;\r\n }\r\n\r\n get maxTime(): DateTime {\r\n return this._timepickerInput ? (this._timepickerInput.max as DateTime) : this.max;\r\n }\r\n\r\n get minTime(): DateTime {\r\n return this._timepickerInput ? (this._timepickerInput.min as DateTime) : this.min;\r\n }\r\n\r\n get minutesGap(): number {\r\n return this._minutesGap;\r\n }\r\n\r\n @Input()\r\n set minutesGap(gap: number) {\r\n if (gap == null) {\r\n return;\r\n }\r\n gap = Math.floor(gap);\r\n this._minutesGap = gap <= 59 ? gap : 1;\r\n }\r\n\r\n get overlayOrigin(): CdkOverlayOrigin {\r\n return this._timepickerInput ? this._timepickerInput.cdkOverlayOrigin : void 0;\r\n }\r\n\r\n get time(): string {\r\n return this._timepickerInput && this._timepickerInput.value;\r\n }\r\n\r\n @Input() cancelBtnTmpl: TemplateRef;\r\n @Output() closed = new EventEmitter();\r\n @Input() confirmBtnTmpl: TemplateRef;\r\n @Input() defaultTime: string;\r\n @Input() disableAnimation: boolean;\r\n @Input() editableHintTmpl: TemplateRef;\r\n @Output() hourSelected = new EventEmitter();\r\n @Input() hoursOnly = false;\r\n @HostBinding(\"id\") id: string = `ngx_mat_timepicker_${++NgxMatTimepickerComponent.nextId}`;\r\n @Input() isEsc = !0;\r\n @Input() max: DateTime;\r\n @Input() min: DateTime;\r\n @Output() opened = new EventEmitter();\r\n overlayPositions: ConnectedPosition[] = [\r\n {\r\n originX: \"center\",\r\n originY: \"bottom\",\r\n overlayX: \"center\",\r\n overlayY: \"top\",\r\n offsetY: 0\r\n },\r\n {\r\n originX: \"center\",\r\n originY: \"top\",\r\n overlayX: \"center\",\r\n overlayY: \"bottom\",\r\n offsetY: 0\r\n }\r\n ];\r\n @Input() preventOverlayClick: boolean;\r\n showPicker: boolean = !1;\r\n @Output() timeChanged = new EventEmitter();\r\n @Input() timepickerClass: string;\r\n @Output() timeSet = new EventEmitter();\r\n timeUpdated = new BehaviorSubject(void 0); // used in the dialog, check if a better approach can be used\r\n\r\n private _appendToInput: boolean = !1;\r\n private _color: ThemePalette = \"primary\";\r\n private _dialogRef: MatDialogRef;\r\n private _enableKeyboardInput: boolean = !1;\r\n private _format: NgxMatTimepickerFormatType = 12;\r\n private _minutesGap: number;\r\n private _overlayRef: OverlayRef;\r\n private _timepickerInput: NgxMatTimepickerDirective;\r\n\r\n constructor(private _eventService: NgxMatTimepickerEventService,\r\n private _dialog: MatDialog,\r\n private _overlay: Overlay) {\r\n }\r\n\r\n close(): void {\r\n if (this._appendToInput) {\r\n this._overlayRef && this._overlayRef.dispose();\r\n }\r\n else {\r\n this._dialogRef && this._dialogRef.close();\r\n }\r\n this.inputElement.focus(); // Fix ExpressionHasChangedAfterCheck error on overlay destroy\r\n this.showPicker = !1;\r\n this.closed.emit();\r\n }\r\n\r\n open(): void {\r\n // Set data to be injected\r\n config = {\r\n timepickerBaseRef: this,\r\n time: this.time,\r\n defaultTime: this.defaultTime,\r\n maxTime: this.maxTime,\r\n minTime: this.minTime,\r\n format: this.format,\r\n minutesGap: this.minutesGap,\r\n disableAnimation: this.disableAnimation,\r\n cancelBtnTmpl: this.cancelBtnTmpl,\r\n confirmBtnTmpl: this.confirmBtnTmpl,\r\n editableHintTmpl: this.editableHintTmpl,\r\n disabled: this.disabled,\r\n enableKeyboardInput: this.enableKeyboardInput,\r\n preventOverlayClick: this.preventOverlayClick,\r\n appendToInput: this._appendToInput,\r\n hoursOnly: this.hoursOnly,\r\n timepickerClass: this.timepickerClass,\r\n inputElement: this.inputElement,\r\n color: this.color\r\n };\r\n\r\n if (this._appendToInput) {\r\n this.showPicker = !0;\r\n }\r\n else {\r\n this._dialogRef = this._dialog.open(NgxMatTimepickerDialogComponent, {\r\n panelClass: \"ngx-mat-timepicker-dialog\",\r\n data: {\r\n ...config\r\n }\r\n });\r\n this._dialogRef\r\n .afterClosed()\r\n .subscribe(() => {\r\n this.closed.emit();\r\n });\r\n }\r\n this.opened.emit();\r\n }\r\n\r\n /***\r\n * Register an input with this timepicker.\r\n * input - The timepicker input to register with this timepicker\r\n */\r\n registerInput(input: NgxMatTimepickerDirective): void {\r\n if (this._timepickerInput) {\r\n console.warn(\"Input for this timepicker was already set\", input.element);\r\n throw Error(\"A Timepicker can only be associated with a single input.\");\r\n }\r\n this._timepickerInput = input;\r\n }\r\n\r\n unregisterInput(): void {\r\n this._timepickerInput = void 0;\r\n }\r\n\r\n updateTime(time: string): void {\r\n this.timeUpdated.next(time);\r\n }\r\n}\r\n","import {Directive} from \"@angular/core\";\r\n\r\n/* To override a default toggle icon */\r\n@Directive({\r\n selector: \"[ngxMatTimepickerToggleIcon]\",\r\n standalone: true\r\n})\r\n\r\nexport class NgxMatTimepickerToggleIconDirective {\r\n}\r\n","import {Component, ContentChild, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport { NgIf } from \"@angular/common\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\n//\r\nimport {NgxMatTimepickerToggleIconDirective} from \"../../directives/ngx-mat-timepicker-toggle-icon.directive\";\r\nimport {NgxMatTimepickerComponent} from \"../ngx-mat-timepicker/ngx-mat-timepicker.component\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-toggle\",\r\n templateUrl: \"ngx-mat-timepicker-toggle.component.html\",\r\n styleUrls: [\"ngx-mat-timepicker-toggle.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [MatButtonModule, NgIf]\r\n})\r\n\r\nexport class NgxMatTimepickerToggleComponent {\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled === void 0 ? this.timepicker?.disabled : this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = value;\r\n }\r\n\r\n @ContentChild(NgxMatTimepickerToggleIconDirective, {static: true}) customIcon: NgxMatTimepickerToggleIconDirective;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input(\"for\") timepicker: NgxMatTimepickerComponent;\r\n\r\n private _disabled: boolean;\r\n\r\n open(event: MouseEvent): void {\r\n if (this.timepicker) {\r\n this.timepicker.open();\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges} from \"@angular/core\";\r\nimport { NgClass } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\nimport { FloatLabelType, MatFormFieldModule } from \"@angular/material/form-field\";\r\n//\r\nimport {NgxMatTimepickerUnits} from \"../../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerParserPipe} from \"../../pipes/ngx-mat-timepicker-parser.pipe\";\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\nimport { NgxMatTimepickerTimeLocalizerPipe } from \"../../pipes/ngx-mat-timepicker-time-localizer.pipe\";\r\n\r\nfunction concatTime(currentTime: string, nextTime: string): number | undefined {\r\n const isNumber = /\\d/.test(nextTime);\r\n\r\n if (isNumber) {\r\n const time = currentTime + nextTime;\r\n\r\n return +time;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-time-control\",\r\n templateUrl: \"./ngx-mat-timepicker-control.component.html\",\r\n styleUrls: [\"./ngx-mat-timepicker-control.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [NgxMatTimepickerParserPipe],\r\n standalone: true,\r\n imports: [MatFormFieldModule, NgClass, MatInputModule, FormsModule, NgxMatTimepickerParserPipe, NgxMatTimepickerTimeLocalizerPipe]\r\n})\r\n\r\nexport class NgxMatTimepickerControlComponent implements OnChanges {\r\n\r\n static nextId: number = 0;\r\n\r\n @Input()\r\n set color(newValue: ThemePalette) {\r\n this._color = newValue;\r\n }\r\n\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n @Input() disabled: boolean;\r\n\r\n @Input()\r\n set floatLabel(newValue: FloatLabelType) {\r\n this._floatLabel = newValue;\r\n }\r\n\r\n get floatLabel(): FloatLabelType {\r\n return this._floatLabel;\r\n }\r\n\r\n id: number = NgxMatTimepickerControlComponent.nextId++;\r\n isFocused: boolean;\r\n @Input() max: number;\r\n @Input() min: number;\r\n @Input() placeholder: string;\r\n @Input() preventTyping: boolean;\r\n\r\n @Input() time: number;\r\n\r\n @Output() timeChanged = new EventEmitter();\r\n @Input() timeList: NgxMatTimepickerClockFace[];\r\n @Input() timeUnit: NgxMatTimepickerUnits;\r\n\r\n private _color: ThemePalette = \"primary\";\r\n private _floatLabel: FloatLabelType = \"auto\";\r\n private _previousTime: number;\r\n\r\n constructor(private _timeParser: NgxMatTimepickerParserPipe) {\r\n }\r\n\r\n changeTime(event: InputEvent): void {\r\n event.stopPropagation();\r\n const char = event.data;\r\n const time = concatTime(String(this.time), char);\r\n\r\n this._changeTimeIfValid(time);\r\n }\r\n\r\n decrease(): void {\r\n if (!this.disabled) {\r\n let previousTime = +this.time - 1;\r\n\r\n if (previousTime < this.min) {\r\n previousTime = this.max;\r\n }\r\n\r\n if (this._isSelectedTimeDisabled(previousTime)) {\r\n previousTime = this._getAvailableTime(previousTime, this._getPrevAvailableTime.bind(this));\r\n }\r\n\r\n if (previousTime !== this.time) {\r\n this.timeChanged.emit(previousTime);\r\n }\r\n }\r\n }\r\n\r\n increase(): void {\r\n if (!this.disabled) {\r\n let nextTime = +this.time + 1;\r\n\r\n if (nextTime > this.max) {\r\n nextTime = this.min;\r\n }\r\n\r\n if (this._isSelectedTimeDisabled(nextTime)) {\r\n nextTime = this._getAvailableTime(nextTime, this._getNextAvailableTime.bind(this));\r\n }\r\n\r\n if (nextTime !== this.time) {\r\n this.timeChanged.emit(nextTime);\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes[\"timeList\"] && this.time != null) {\r\n if (this._isSelectedTimeDisabled(this.time)) {\r\n this._setAvailableTime();\r\n }\r\n }\r\n }\r\n\r\n onBlur(): void {\r\n this.isFocused = false;\r\n\r\n if (this._previousTime !== this.time) {\r\n this._changeTimeIfValid(+this.time);\r\n }\r\n }\r\n\r\n onFocus(): void {\r\n this.isFocused = true;\r\n this._previousTime = this.time;\r\n }\r\n\r\n onKeydown(event: any): void {\r\n event.stopPropagation();\r\n\r\n if (!NgxMatTimepickerUtils.isDigit(event)) {\r\n event.preventDefault();\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowUp\":\r\n this.increase();\r\n break;\r\n case \"ArrowDown\":\r\n this.decrease();\r\n break;\r\n }\r\n\r\n if (this.preventTyping && event.key !== \"Tab\") {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n onModelChange(value: string): void {\r\n this.time = +this._timeParser.transform(value, this.timeUnit);\r\n }\r\n\r\n private _changeTimeIfValid(value: number | undefined): void {\r\n if (!isNaN(value)) {\r\n this.time = value;\r\n\r\n if (this.time > this.max) {\r\n const timeString = String(value);\r\n this.time = +timeString[timeString.length - 1];\r\n }\r\n\r\n if (this.time < this.min) {\r\n this.time = this.min;\r\n }\r\n\r\n this.timeChanged.emit(this.time);\r\n }\r\n }\r\n\r\n private _getAvailableTime(currentTime: number, fn: (index: number) => number | undefined): number | undefined {\r\n const currentTimeIndex = this.timeList.findIndex(time => time.time === currentTime);\r\n const availableTime = fn(currentTimeIndex);\r\n\r\n return availableTime != null ? availableTime : this.time;\r\n }\r\n\r\n private _getNextAvailableTime(index: number): number | undefined {\r\n const timeCollection = this.timeList;\r\n const maxValue = timeCollection.length;\r\n for (let i = index + 1; i < maxValue; i++) {\r\n const time = timeCollection[i];\r\n if (!time.disabled) {\r\n return time.time;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private _getPrevAvailableTime(index: number): number | undefined {\r\n for (let i = index; i >= 0; i--) {\r\n const time = this.timeList[i];\r\n if (!time.disabled) {\r\n return time.time;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private _isSelectedTimeDisabled(time: number): boolean {\r\n return this.timeList.find((faceTime: NgxMatTimepickerClockFace) => faceTime.time === time).disabled;\r\n }\r\n\r\n private _setAvailableTime(): void {\r\n this.time = this.timeList.find(t => !t.disabled).time;\r\n this.timeChanged.emit(this.time);\r\n }\r\n}\r\n\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {NgClass, NgIf, NgFor, NgTemplateOutlet} from \"@angular/common\";\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule} from \"@angular/forms\";\r\nimport {MatSelectChange, MatSelectModule} from \"@angular/material/select\";\r\nimport {ThemePalette, MatOptionModule} from \"@angular/material/core\";\r\nimport {FloatLabelType, MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\n//\r\nimport {NgxMatTimepickerLocaleService} from \"../../services/ngx-mat-timepicker-locale.service\";\r\nimport {NgxMatTimepickerFormatType} from \"../../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerService} from \"../../services/ngx-mat-timepicker.service\";\r\nimport {NgxMatTimepickerClockFace} from \"../../models/ngx-mat-timepicker-clock-face.interface\";\r\nimport {NgxMatTimepickerPeriods} from \"../../models/ngx-mat-timepicker-periods.enum\";\r\nimport {NgxMatTimepickerUnits} from \"../../models/ngx-mat-timepicker-units.enum\";\r\nimport {NgxMatTimepickerAdapter} from \"../../services/ngx-mat-timepicker-adapter\";\r\nimport {NgxMatTimepickerUtils} from \"../../utils/ngx-mat-timepicker.utils\";\r\nimport {NgxMatTimepickerComponent} from \"../ngx-mat-timepicker/ngx-mat-timepicker.component\";\r\nimport {NgxMatTimepickerToggleIconDirective} from \"../../directives/ngx-mat-timepicker-toggle-icon.directive\";\r\nimport {NgxMatTimepickerToggleComponent} from \"../ngx-mat-timepicker-toggle/ngx-mat-timepicker-toggle.component\";\r\nimport {NgxMatTimepickerControlComponent} from \"../ngx-mat-timepicker-control/ngx-mat-timepicker-control.component\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\nimport {BehaviorSubject, Subject} from \"rxjs\";\r\nimport {distinctUntilChanged, map, takeUntil, tap} from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-mat-timepicker-field\",\r\n templateUrl: \"./ngx-mat-timepicker-field.component.html\",\r\n styleUrls: [\"./ngx-mat-timepicker-field.component.scss\"],\r\n providers: [\r\n NgxMatTimepickerService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: NgxMatTimepickerFieldComponent,\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n NgxMatTimepickerControlComponent,\r\n NgIf,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n FormsModule,\r\n NgFor,\r\n MatOptionModule,\r\n NgxMatTimepickerToggleComponent,\r\n NgxMatTimepickerToggleIconDirective,\r\n NgTemplateOutlet,\r\n NgxMatTimepickerComponent,\r\n MatIconModule\r\n ]\r\n})\r\nexport class NgxMatTimepickerFieldComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n @Input()\r\n set color(newValue: ThemePalette) {\r\n this._color = newValue;\r\n }\r\n\r\n get defaultTime(): string {\r\n return this._defaultTime;\r\n }\r\n\r\n @Input()\r\n set defaultTime(val: string) {\r\n this._defaultTime = val;\r\n this._isDefaultTime = !!val;\r\n }\r\n\r\n get floatLabel(): FloatLabelType {\r\n return this._floatLabel;\r\n }\r\n\r\n @Input()\r\n set floatLabel(newValue: FloatLabelType) {\r\n this._floatLabel = newValue;\r\n }\r\n\r\n get format(): NgxMatTimepickerFormatType {\r\n return this._format;\r\n }\r\n\r\n @Input()\r\n set format(value: NgxMatTimepickerFormatType) {\r\n if (NgxMatTimepickerAdapter.isTwentyFour(value)) {\r\n this._format = 24;\r\n this.minHour = 0;\r\n this.maxHour = 23;\r\n }\r\n else {\r\n this._format = 12;\r\n this.minHour = 1;\r\n this.maxHour = 12;\r\n }\r\n this.hoursList = NgxMatTimepickerUtils.getHours(this._format);\r\n const isDynamicallyChanged = value && (this._previousFormat && this._previousFormat !== this._format);\r\n\r\n if (isDynamicallyChanged) {\r\n this._updateTime(this.timepickerTime);\r\n }\r\n this._previousFormat = this._format;\r\n }\r\n\r\n get max(): DateTime {\r\n return this._max;\r\n }\r\n\r\n @Input()\r\n set max(value: string | DateTime) {\r\n if (typeof value === \"string\") {\r\n this._max = NgxMatTimepickerAdapter.parseTime(value, {locale: this._locale, format: this.format});\r\n\r\n return;\r\n }\r\n this._max = value;\r\n }\r\n\r\n get min(): DateTime {\r\n return this._min;\r\n }\r\n\r\n @Input()\r\n set min(value: string | DateTime) {\r\n if (typeof value === \"string\") {\r\n this._min = NgxMatTimepickerAdapter.parseTime(value, {locale: this._locale, format: this.format});\r\n\r\n return;\r\n }\r\n this._min = value;\r\n }\r\n\r\n private get _locale(): string {\r\n return this._timepickerLocaleSrv.locale;\r\n }\r\n\r\n @Input() cancelBtnTmpl: TemplateRef;\r\n\r\n @Input() confirmBtnTmpl: TemplateRef;\r\n\r\n @Input() controlOnly: boolean;\r\n\r\n @Input() disabled: boolean;\r\n\r\n hour$: BehaviorSubject = new BehaviorSubject(void 0);\r\n\r\n hoursList: NgxMatTimepickerClockFace[];\r\n isChangePeriodDisabled: boolean;\r\n isTimeRangeSet: boolean;\r\n maxHour = 12;\r\n minHour = 1;\r\n minute$: BehaviorSubject = new BehaviorSubject(void 0);\r\n minutesList: NgxMatTimepickerClockFace[];\r\n period: NgxMatTimepickerPeriods = NgxMatTimepickerPeriods.AM;\r\n periods: NgxMatTimepickerPeriods[] = [\r\n NgxMatTimepickerPeriods.AM,\r\n NgxMatTimepickerPeriods.PM\r\n ];\r\n\r\n @Output() timeChanged = new EventEmitter();\r\n timepickerTime: string;\r\n\r\n timeUnit = NgxMatTimepickerUnits;\r\n @Input() toggleIcon: TemplateRef;\r\n\r\n private _color: ThemePalette = \"primary\";\r\n private _defaultTime: string;\r\n private _floatLabel: FloatLabelType = \"auto\";\r\n private _format: NgxMatTimepickerFormatType = 12;\r\n private _isDefaultTime: boolean;\r\n private _isFirstTimeChange: boolean = true;\r\n private _max: DateTime;\r\n private _min: DateTime;\r\n private _previousFormat: number;\r\n private _selectedHour: number;\r\n private _subsCtrl$: Subject = new Subject();\r\n\r\n constructor(private _timepickerService: NgxMatTimepickerService,\r\n private _timepickerLocaleSrv: NgxMatTimepickerLocaleService) {\r\n }\r\n\r\n changeHour(hour: number): void {\r\n this._timepickerService.hour = this.hoursList.find(h => h.time === hour);\r\n this._changeTime();\r\n }\r\n\r\n changeMinute(minute: number): void {\r\n this._timepickerService.minute = this.minutesList.find(m => m.time === minute);\r\n this._changeTime();\r\n }\r\n\r\n changePeriod(event: MatSelectChange): void {\r\n this._timepickerService.period = event.value as NgxMatTimepickerPeriods;\r\n this._changeTime();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subsCtrl$.next();\r\n this._subsCtrl$.complete();\r\n }\r\n\r\n ngOnInit() {\r\n this._initTime(this.defaultTime);\r\n\r\n this.hoursList = NgxMatTimepickerUtils.getHours(this._format);\r\n this.minutesList = NgxMatTimepickerUtils.getMinutes();\r\n this.isTimeRangeSet = !!(this.min || this.max);\r\n\r\n this._timepickerService.selectedHour.pipe(\r\n tap((clockTime: NgxMatTimepickerClockFace) => this._selectedHour = clockTime?.time),\r\n map(this._changeDefaultTimeValue.bind(this)),\r\n tap(() => this.isTimeRangeSet && this._updateAvailableMinutes())\r\n )\r\n .subscribe({\r\n next: (v: NgxMatTimepickerClockFace) => this.hour$.next(v)\r\n });\r\n this._timepickerService.selectedMinute.pipe(\r\n map(this._changeDefaultTimeValue.bind(this)),\r\n tap(() => this._isFirstTimeChange = false)\r\n )\r\n .subscribe({\r\n next: (v: NgxMatTimepickerClockFace) => this.minute$.next(v)\r\n });\r\n\r\n if (this.format === 12) {\r\n this._timepickerService.selectedPeriod.pipe(\r\n distinctUntilChanged(),\r\n tap((period: NgxMatTimepickerPeriods) => this.period = period),\r\n tap(period => this.isChangePeriodDisabled = this._isPeriodDisabled(period)),\r\n takeUntil(this._subsCtrl$)\r\n ).subscribe(() => this.isTimeRangeSet && this._updateAvailableTime());\r\n }\r\n\r\n }\r\n\r\n onTimeSet(time: string): void {\r\n this._updateTime(time);\r\n this._emitLocalTimeChange(time);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(val: string): void {\r\n if (val) {\r\n this._initTime(val);\r\n }\r\n else {\r\n this._resetTime();\r\n }\r\n }\r\n\r\n private _changeDefaultTimeValue(clockFaceTime: NgxMatTimepickerClockFace): NgxMatTimepickerClockFace {\r\n if (!this._isDefaultTime && this._isFirstTimeChange) {\r\n return {...clockFaceTime, time: null};\r\n }\r\n\r\n return clockFaceTime;\r\n }\r\n\r\n private _changeTime(): void {\r\n if (!isNaN(this.hour$.getValue()?.time) && !isNaN(this.minute$.getValue()?.time)) {\r\n const time = this._timepickerService.getFullTime(this.format);\r\n this.timepickerTime = time;\r\n this._emitLocalTimeChange(time);\r\n }\r\n }\r\n\r\n private _emitLocalTimeChange(time: string): void {\r\n const localTime = NgxMatTimepickerAdapter.toLocaleTimeString(time, {format: this.format, locale: this._locale});\r\n\r\n this._onChange(localTime);\r\n this._onTouched(localTime);\r\n this.timeChanged.emit(localTime);\r\n }\r\n\r\n private _initTime(time: string): void {\r\n const isDefaultTimeAvailable = NgxMatTimepickerAdapter\r\n .isTimeAvailable(time, this.min as DateTime, this.max as DateTime, \"minutes\", null, this.format);\r\n if (!isDefaultTimeAvailable) {\r\n if (this.min) {\r\n this._updateTime(NgxMatTimepickerAdapter.fromDateTimeToString(this.min as DateTime, this.format));\r\n\r\n return;\r\n }\r\n if (this.max) {\r\n this._updateTime(NgxMatTimepickerAdapter.fromDateTimeToString(this.max as DateTime, this.format));\r\n\r\n return;\r\n }\r\n }\r\n this._updateTime(time);\r\n }\r\n\r\n private _isPeriodDisabled(period: NgxMatTimepickerPeriods): boolean {\r\n return NgxMatTimepickerUtils.disableHours(NgxMatTimepickerUtils.getHours(12), {\r\n min: this.min as DateTime,\r\n max: this.max as DateTime,\r\n format: 12,\r\n period: period === NgxMatTimepickerPeriods.AM ? NgxMatTimepickerPeriods.PM : NgxMatTimepickerPeriods.AM\r\n }).every(time => time.disabled);\r\n }\r\n\r\n private _onChange: (value: string) => void = () => {\r\n };\r\n\r\n private _onTouched: (value: string) => void = () => {\r\n };\r\n\r\n private _resetTime(): void {\r\n this._timepickerService.hour = {angle: 0, time: null};\r\n this._timepickerService.minute = {angle: 0, time: null};\r\n }\r\n\r\n private _updateAvailableHours(): void {\r\n this.hoursList = NgxMatTimepickerUtils.disableHours(this.hoursList, {\r\n min: this.min as DateTime,\r\n max: this.max as DateTime,\r\n format: this.format,\r\n period: this.period\r\n });\r\n }\r\n\r\n private _updateAvailableMinutes(): void {\r\n this.minutesList = NgxMatTimepickerUtils.disableMinutes(this.minutesList, this._selectedHour, {\r\n min: this.min as DateTime,\r\n max: this.max as DateTime,\r\n format: this.format,\r\n period: this.period\r\n });\r\n }\r\n\r\n private _updateAvailableTime(): void {\r\n this._updateAvailableHours();\r\n if (this._selectedHour) {\r\n this._updateAvailableMinutes();\r\n }\r\n }\r\n\r\n private _updateTime(time: string): void {\r\n if (time) {\r\n const formattedTime = NgxMatTimepickerAdapter.formatTime(time, {locale: this._locale, format: this.format});\r\n this._timepickerService.setDefaultTimeIfAvailable(formattedTime, this.min as DateTime, this.max as DateTime, this.format);\r\n this.timepickerTime = formattedTime;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n :\r\n \r\n \r\n \r\n {{option}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n watch_later\r\n\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n Optional\r\n} from \"@angular/core\";\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\r\nimport {CdkOverlayOrigin} from \"@angular/cdk/overlay\";\r\nimport {MatFormField} from \"@angular/material/form-field\";\r\n//\r\nimport {NgxMatTimepickerComponent} from \"../components/ngx-mat-timepicker/ngx-mat-timepicker.component\";\r\nimport {NgxMatTimepickerFormatType} from \"../models/ngx-mat-timepicker-format.type\";\r\nimport {NgxMatTimepickerAdapter} from \"../services/ngx-mat-timepicker-adapter\";\r\nimport {NgxMatTimepickerLocaleService} from \"../services/ngx-mat-timepicker-locale.service\";\r\n//\r\nimport {Subject, takeUntil} from \"rxjs\";\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\n@Directive({\r\n selector: \"[ngxMatTimepicker]\",\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: NgxMatTimepickerDirective,\r\n multi: true\r\n }\r\n ],\r\n // tslint:disable-next-line:no-host-metadata-property\r\n host: {\r\n \"[disabled]\": \"disabled\",\r\n \"(blur)\": \"onTouched()\"\r\n },\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerDirective implements ControlValueAccessor, OnDestroy, OnChanges {\r\n\r\n get element(): HTMLElement {\r\n return this._elementRef && this._elementRef.nativeElement;\r\n }\r\n\r\n get format(): NgxMatTimepickerFormatType {\r\n return this._format;\r\n }\r\n\r\n @Input()\r\n set format(value: number) {\r\n this._format = NgxMatTimepickerAdapter.isTwentyFour(+value as NgxMatTimepickerFormatType) ? 24 : 12;\r\n const isDynamicallyChanged = value && (this._previousFormat && this._previousFormat !== this._format);\r\n\r\n if (isDynamicallyChanged) {\r\n this.value = this._value;\r\n this._timepicker.updateTime(this._value);\r\n }\r\n this._previousFormat = this._format;\r\n }\r\n\r\n get max(): string | DateTime {\r\n return this._max;\r\n }\r\n\r\n @Input()\r\n set max(value: string | DateTime) {\r\n if (typeof value === \"string\") {\r\n this._max = NgxMatTimepickerAdapter.parseTime(value, {locale: this._locale, format: this.format});\r\n\r\n return;\r\n }\r\n this._max = value;\r\n }\r\n\r\n get min(): string | DateTime {\r\n return this._min;\r\n }\r\n\r\n @Input()\r\n set min(value: string | DateTime) {\r\n if (typeof value === \"string\") {\r\n this._min = NgxMatTimepickerAdapter.parseTime(value, {locale: this._locale, format: this.format});\r\n\r\n return;\r\n }\r\n this._min = value;\r\n }\r\n\r\n @Input(\"ngxMatTimepicker\")\r\n set timepicker(picker: NgxMatTimepickerComponent) {\r\n this._registerTimepicker(picker);\r\n }\r\n\r\n get value(): string {\r\n if (!this._value) {\r\n return \"\";\r\n }\r\n\r\n return NgxMatTimepickerAdapter.toLocaleTimeString(this._value, {format: this.format, locale: this._locale});\r\n }\r\n\r\n @Input()\r\n set value(value: string) {\r\n if (!value) {\r\n this._value = \"\";\r\n this._updateInputValue();\r\n\r\n return;\r\n }\r\n const time = NgxMatTimepickerAdapter.formatTime(value, {locale: this._locale, format: this.format});\r\n const isAvailable = NgxMatTimepickerAdapter.isTimeAvailable(\r\n time,\r\n this._min as DateTime,\r\n this._max as DateTime,\r\n \"minutes\",\r\n this._timepicker.minutesGap,\r\n this._format\r\n );\r\n\r\n if (isAvailable) {\r\n this._value = time;\r\n this._updateInputValue();\r\n\r\n return;\r\n }\r\n console.warn(\"Selected time doesn't match min or max value\");\r\n }\r\n\r\n private set _defaultTime(time: string) {\r\n this._timepicker.defaultTime = NgxMatTimepickerAdapter.formatTime(time, {\r\n locale: this._locale,\r\n format: this.format\r\n });\r\n }\r\n\r\n private get _locale(): string {\r\n return this._timepickerLocaleSrv.locale;\r\n }\r\n\r\n @HostBinding(\"attr.cdkOverlayOrigin\") cdkOverlayOrigin: CdkOverlayOrigin =\r\n new CdkOverlayOrigin(this._matFormField ? this._matFormField.getConnectedOverlayOrigin() : this._elementRef);\r\n @Input() disableClick: boolean;\r\n @Input() disabled: boolean;\r\n\r\n private _format: NgxMatTimepickerFormatType = 12;\r\n private _max: string | DateTime;\r\n private _min: string | DateTime;\r\n private _previousFormat: number;\r\n private _subsCtrl$: Subject = new Subject();\r\n private _timepicker: NgxMatTimepickerComponent;\r\n private _value: string = \"\";\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _timepickerLocaleSrv: NgxMatTimepickerLocaleService,\r\n @Optional() @Inject(MatFormField) private _matFormField: MatFormField) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // tslint:disable-next-line:no-string-literal\r\n const vChanges = changes[\"value\"];\r\n if (vChanges && vChanges.currentValue) {\r\n this._defaultTime = vChanges.currentValue;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unregisterTimepicker();\r\n this._subsCtrl$.next();\r\n this._subsCtrl$.complete();\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n onClick(event: MouseEvent) {\r\n if (!this.disableClick) {\r\n this._timepicker.open();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n onTouched = () => {\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n @HostListener(\"change\", [\"$event\"])\r\n updateValue(e: Event) {\r\n this.value = (e.target as HTMLInputElement).value;\r\n this._onChange(this.value);\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value = value;\r\n if (value) {\r\n this._defaultTime = value;\r\n }\r\n }\r\n\r\n private _onChange: (value: any) => void = () => {\r\n }\r\n\r\n private _registerTimepicker(picker: NgxMatTimepickerComponent): void {\r\n if (picker) {\r\n this._timepicker = picker;\r\n this._timepicker.registerInput(this);\r\n this._timepicker.timeSet\r\n .pipe(takeUntil(this._subsCtrl$))\r\n .subscribe((time: string) => {\r\n this.value = time;\r\n this._onChange(this.value);\r\n this.onTouched();\r\n this._defaultTime = this._value;\r\n });\r\n }\r\n else {\r\n throw new Error(\"NgxMatTimepickerComponent is not defined.\" +\r\n \" Please make sure you passed the timepicker to ngxMatTimepicker directive\");\r\n }\r\n }\r\n\r\n private _unregisterTimepicker(): void {\r\n if (this._timepicker) {\r\n this._timepicker.unregisterInput();\r\n }\r\n }\r\n\r\n private _updateInputValue(): void {\r\n this._elementRef.nativeElement.value = this.value;\r\n }\r\n\r\n}\r\n\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n//\r\nimport {NgxMatTimepickerUnits} from \"../models/ngx-mat-timepicker-units.enum\";\r\n//\r\nimport {DateTime} from \"ts-luxon\";\r\n\r\n@Pipe({\r\n name: \"timeFormatter\",\r\n standalone: true\r\n})\r\nexport class NgxMatTimepickerTimeFormatterPipe implements PipeTransform {\r\n\r\n transform(time: number | string, timeUnit: NgxMatTimepickerUnits): any {\r\n if (time == null || time === \"\") {\r\n return time;\r\n }\r\n switch (timeUnit) {\r\n case NgxMatTimepickerUnits.HOUR:\r\n return DateTime.fromObject({hour: +time}).toFormat(\"HH\");\r\n case NgxMatTimepickerUnits.MINUTE:\r\n return DateTime.fromObject({minute: +time}).toFormat(\"mm\");\r\n default:\r\n throw new Error(\"no such time unit\");\r\n }\r\n }\r\n\r\n}\r\n","import {ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {OverlayModule} from \"@angular/cdk/overlay\";\r\nimport {PortalModule} from \"@angular/cdk/portal\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {A11yModule} from \"@angular/cdk/a11y\";\r\n// MATERIAL\r\nimport {MAT_FAB_DEFAULT_OPTIONS, MatButtonModule} from \"@angular/material/button\";\r\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {MatDialogModule} from \"@angular/material/dialog\";\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\nimport {MatSelectModule} from \"@angular/material/select\";\r\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\r\n// NGX-MAT-TIMEPICKER\r\n// DIRECTIVES\r\nimport {NgxMatTimepickerDirective} from \"./directives/ngx-mat-timepicker.directive\";\r\nimport {NgxMatTimepickerToggleIconDirective} from \"./directives/ngx-mat-timepicker-toggle-icon.directive\";\r\nimport {NgxMatTimepickerBaseDirective} from \"./directives/ngx-mat-timepicker-base.directive\";\r\nimport {\r\n NgxMatTimepickerHoursFaceDirective\r\n} from \"./components/ngx-mat-timepicker-hours-face/ngx-mat-timepicker-hours-face.directive\";\r\n// COMPONENTS\r\nimport {\r\n NgxMatTimepickerContentComponent\r\n} from \"./components/ngx-mat-timepicker-content/ngx-mat-timepicker-content.component\";\r\nimport {\r\n NgxMatTimepickerDialogComponent\r\n} from \"./components/ngx-mat-timepicker-dialog/ngx-mat-timepicker-dialog.component\";\r\nimport {\r\n NgxMatTimepickerStandaloneComponent\r\n} from \"./components/ngx-mat-timepicker-standalone/ngx-mat-timepicker-standalone.component\";\r\nimport {NgxMatTimepickerComponent} from \"./components/ngx-mat-timepicker/ngx-mat-timepicker.component\";\r\nimport {\r\n NgxMatTimepickerToggleComponent\r\n} from \"./components/ngx-mat-timepicker-toggle/ngx-mat-timepicker-toggle.component\";\r\nimport {\r\n NgxMatTimepicker24HoursFaceComponent\r\n} from \"./components/ngx-mat-timepicker-24-hours-face/ngx-mat-timepicker-24-hours-face.component\";\r\nimport {\r\n NgxMatTimepicker12HoursFaceComponent\r\n} from \"./components/ngx-mat-timepicker-12-hours-face/ngx-mat-timepicker-12-hours-face.component\";\r\nimport {\r\n NgxMatTimepickerMinutesFaceComponent\r\n} from \"./components/ngx-mat-timepicker-minutes-face/ngx-mat-timepicker-minutes-face.component\";\r\nimport {NgxMatTimepickerFaceComponent} from \"./components/ngx-mat-timepicker-face/ngx-mat-timepicker-face.component\";\r\nimport {NgxMatTimepickerDialComponent} from \"./components/ngx-mat-timepicker-dial/ngx-mat-timepicker-dial.component\";\r\nimport {\r\n NgxMatTimepickerDialControlComponent\r\n} from \"./components/ngx-mat-timepicker-dial-control/ngx-mat-timepicker-dial-control.component\";\r\nimport {\r\n NgxMatTimepickerPeriodComponent\r\n} from \"./components/ngx-mat-timepicker-period/ngx-mat-timepicker-period.component\";\r\nimport {NgxMatTimepickerTimeFormatterPipe} from \"./pipes/ngx-mat-timepicker-time-formatter.pipe\";\r\nimport {NgxMatTimepickerMinutesFormatterPipe} from \"./pipes/ngx-mat-timepicker-minutes-formatter.pipe\";\r\nimport {NgxMatTimepickerAutofocusDirective} from \"./directives/ngx-mat-timepicker-autofocus.directive\";\r\nimport {NgxMatTimepickerFieldComponent} from \"./components/ngx-mat-timepicker-field/ngx-mat-timepicker-field.component\";\r\nimport {\r\n NgxMatTimepickerControlComponent\r\n} from \"./components/ngx-mat-timepicker-control/ngx-mat-timepicker-control.component\";\r\n// PIPES + SERVICES + TOKENS\r\nimport {NgxMatTimepickerLocaleService} from \"./services/ngx-mat-timepicker-locale.service\";\r\nimport {NgxMatTimepickerTimeLocalizerPipe} from \"./pipes/ngx-mat-timepicker-time-localizer.pipe\";\r\nimport {NGX_MAT_TIMEPICKER_CONFIG} from \"./tokens/ngx-mat-timepicker-config.token\";\r\nimport {NGX_MAT_TIMEPICKER_LOCALE} from \"./tokens/ngx-mat-timepicker-time-locale.token\";\r\nimport {NgxMatTimepickerParserPipe} from \"./pipes/ngx-mat-timepicker-parser.pipe\";\r\nimport {NgxMatTimepickerActiveHourPipe} from \"./pipes/ngx-mat-timepicker-active-hour.pipe\";\r\nimport {NgxMatTimepickerActiveMinutePipe} from \"./pipes/ngx-mat-timepicker-active-minute.pipe\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n FormsModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatDialogModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n OverlayModule,\r\n PortalModule,\r\n // Not really used, but needed to use it as abstract class\r\n NgxMatTimepickerBaseDirective,\r\n NgxMatTimepickerHoursFaceDirective,\r\n //\r\n NgxMatTimepickerActiveHourPipe,\r\n NgxMatTimepickerActiveMinutePipe,\r\n NgxMatTimepickerComponent,\r\n NgxMatTimepickerDialComponent,\r\n NgxMatTimepickerDialControlComponent,\r\n NgxMatTimepickerDialogComponent,\r\n NgxMatTimepickerDirective,\r\n NgxMatTimepickerFaceComponent,\r\n NgxMatTimepickerMinutesFaceComponent,\r\n NgxMatTimepickerPeriodComponent,\r\n NgxMatTimepickerStandaloneComponent,\r\n NgxMatTimepickerToggleComponent,\r\n NgxMatTimepicker12HoursFaceComponent,\r\n NgxMatTimepicker24HoursFaceComponent,\r\n NgxMatTimepickerToggleIconDirective,\r\n NgxMatTimepickerAutofocusDirective,\r\n NgxMatTimepickerMinutesFormatterPipe,\r\n NgxMatTimepickerFieldComponent,\r\n NgxMatTimepickerControlComponent,\r\n NgxMatTimepickerParserPipe,\r\n NgxMatTimepickerContentComponent,\r\n NgxMatTimepickerTimeFormatterPipe,\r\n NgxMatTimepickerTimeLocalizerPipe\r\n ],\r\n exports: [\r\n NgxMatTimepickerComponent,\r\n NgxMatTimepickerToggleComponent,\r\n NgxMatTimepickerFieldComponent,\r\n NgxMatTimepickerDirective,\r\n NgxMatTimepickerToggleIconDirective\r\n ],\r\n providers: [\r\n NgxMatTimepickerLocaleService,\r\n {\r\n provide: MAT_FAB_DEFAULT_OPTIONS, useValue: { color: \"void\" }\r\n }\r\n ]\r\n})\r\nexport class NgxMatTimepickerModule {\r\n\r\n static setLocale(locale: string): ModuleWithProviders {\r\n return {\r\n ngModule: NgxMatTimepickerModule,\r\n providers: [\r\n {provide: NGX_MAT_TIMEPICKER_LOCALE, useValue: locale},\r\n {provide: NGX_MAT_TIMEPICKER_CONFIG, useValue: undefined},\r\n NgxMatTimepickerLocaleService\r\n ]\r\n };\r\n }\r\n}\r\n","// COMPONENTS\r\nexport {NgxMatTimepickerComponent} from \"./lib/components/ngx-mat-timepicker/ngx-mat-timepicker.component\";\r\nexport {NgxMatTimepickerFieldComponent} from \"./lib/components/ngx-mat-timepicker-field/ngx-mat-timepicker-field.component\";\r\nexport {NgxMatTimepickerToggleComponent} from \"./lib/components/ngx-mat-timepicker-toggle/ngx-mat-timepicker-toggle.component\";\r\n// DIRECTIVES\r\nexport {NgxMatTimepickerDirective} from \"./lib/directives/ngx-mat-timepicker.directive\";\r\nexport {NgxMatTimepickerToggleIconDirective} from \"./lib/directives/ngx-mat-timepicker-toggle-icon.directive\";\r\n// MODELS\r\nexport {NgxMatTimepickerConfig} from \"./lib/models/ngx-mat-timepicker-config.interface\";\r\nexport {NgxMatTimepickerFormatType} from \"./lib/models/ngx-mat-timepicker-format.type\";\r\n// SERVICES\r\nexport {NgxMatTimepickerLocaleService} from \"./lib/services/ngx-mat-timepicker-locale.service\";\r\n//\r\nexport * from \"./lib/ngx-mat-timepicker.module\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxMatTimepickerLocaleService","i2","i1","i1.NgxMatTimepickerParserPipe","i2.NgxMatTimepickerService","i3.NgxMatTimepickerEventService","i4.NgxMatTimepickerLocaleService","i5","i1.NgxMatTimepickerService","i2.NgxMatTimepickerEventService","i3.NgxMatTimepickerLocaleService","i4","i1.NgxMatTimepickerEventService","i3","i2.NgxMatTimepickerLocaleService","takeUntil"],"mappings":"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"}