@onemrvapublic/design-system 21.0.0-develop.11 → 21.0.0-develop.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/package.json +2 -6
- package/fesm2022/onemrvapublic-design-system-mat-timepicker.mjs +0 -1296
- package/fesm2022/onemrvapublic-design-system-mat-timepicker.mjs.map +0 -1
- package/mat-timepicker/src/clock/clock.component.scss +0 -144
- package/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.scss +0 -64
- package/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.scss +0 -32
- package/types/onemrvapublic-design-system-mat-timepicker.d.ts +0 -370
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onemrvapublic-design-system-mat-timepicker.mjs","sources":["../../../../projects/onemrva/design-system/mat-timepicker/src/util.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/clock/clock.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/clock/clock.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker.directive.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.module.ts","../../../../projects/onemrva/design-system/mat-timepicker/onemrvapublic-design-system-mat-timepicker.ts"],"sourcesContent":["import { ClockViewType } from './interfaces-and-types';\n\nexport function twoDigits(n: number) {\n return n < 10 ? `0${n}` : `${n}`;\n}\n\nexport function addDays(date: Date, days: number) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n}\n\nexport function convertHoursForMode(hour: number) {\n const isPm = hour >= 12;\n return { hour, isPm };\n}\n\nfunction mod(a: number, b: number) {\n return a - Math.floor(a / b) * b;\n}\n\nexport function getShortestAngle(from: number, to: number) {\n const difference = to - from;\n return from + mod(difference + 180, 360) - 180;\n}\n\nexport function isDateInRange(minDate?: Date, maxDate?: Date, current?: Date) {\n if (!minDate || !maxDate || !current) {\n return false;\n }\n\n const unixCurrentDate = +current;\n return (\n (!minDate || +minDate <= unixCurrentDate) &&\n (!maxDate || unixCurrentDate <= +maxDate)\n );\n}\n\nexport function isTimeInRange(minDate: Date, maxDate: Date, current: Date) {\n if (minDate instanceof Date) {\n const newMinDate = new Date();\n newMinDate.setHours(minDate.getHours());\n newMinDate.setMinutes(minDate.getMinutes());\n newMinDate.setSeconds(0);\n newMinDate.setMilliseconds(0);\n minDate = newMinDate;\n }\n if (maxDate instanceof Date) {\n const newMaxDate = new Date();\n newMaxDate.setHours(maxDate.getHours());\n newMaxDate.setMinutes(maxDate.getMinutes());\n newMaxDate.setSeconds(0);\n newMaxDate.setMilliseconds(0);\n maxDate = newMaxDate;\n }\n if (current instanceof Date) {\n const newCurrent = new Date();\n newCurrent.setHours(current.getHours());\n newCurrent.setMinutes(current.getMinutes());\n newCurrent.setSeconds(0);\n newCurrent.setMilliseconds(0);\n current = newCurrent;\n }\n const unixCurrentDate = +current;\n return (\n (!minDate || +minDate <= unixCurrentDate) &&\n (!maxDate || unixCurrentDate <= +maxDate)\n );\n}\n\n// used when generating the allowed maps\n\nexport function isAllowed(\n hour: number,\n minutes: number,\n minDate: Date,\n maxDate: Date,\n) {\n if (hour > 24 || hour < 0 || minutes > 60 || minutes < 0) {\n return false;\n }\n\n if (!minDate && !maxDate) {\n return true;\n }\n\n const checkDate = new Date();\n\n checkDate.setHours(hour);\n checkDate.setMinutes(minutes);\n checkDate.setSeconds(0);\n checkDate.setMilliseconds(0);\n\n return isDateInRange(minDate, maxDate, checkDate);\n}\n\n// used by the clock component to visually disable the not allowed values\n\nexport function getIsAvailabeFn(allowed24HourMap: any) {\n return (value: number, viewType: ClockViewType, h: number) => {\n const isHourCheck = viewType === 'hours';\n const [hour, minutes] = isHourCheck ? [value, 0] : [h, value];\n\n if (!allowed24HourMap) {\n return true;\n }\n\n if (isHourCheck) {\n return !!Object.values(allowed24HourMap[hour]).find(v => v === true);\n }\n return allowed24HourMap[hour][minutes];\n };\n}\n","import {\n Component,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n input,\n output,\n} from '@angular/core';\nimport {\n ClockViewType,\n ClockNumber,\n IAllowed24HourMap,\n} from '../interfaces-and-types';\nimport { getIsAvailabeFn } from '../util';\n\nimport { MatMiniFabButton } from '@angular/material/button';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'mat-clock',\n templateUrl: './clock.component.html',\n styleUrls: ['./clock.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatMiniFabButton, MatToolbar, OnemRvaColorDirective],\n})\nexport class ClockComponent implements OnChanges {\n readonly viewType = input<ClockViewType>('hours');\n readonly formattedValue = input(0);\n readonly minDate = input.required<Date>();\n readonly maxDate = input.required<Date>();\n readonly formattedHours = input(0);\n readonly minutes = input.required<number>();\n readonly changeEvent = output<any>();\n readonly unavailableSelection = output<any>();\n readonly invalidSelection = output<any>();\n\n readonly allowed24HourMap = input.required<IAllowed24HourMap>();\n\n isFormattedValueAllowed = true;\n\n isAvailableFn?: ReturnType<typeof getIsAvailabeFn>;\n\n touching = false;\n angle?: number;\n numbers: ClockNumber[] = [];\n secondaryNumbers: ClockNumber[] = [];\n minuteDots: ClockNumber[] = [];\n invalidMeridiemEmitted = true;\n\n initIsAllowedFn() {\n const allowed24HourMap = this.allowed24HourMap();\n if (!allowed24HourMap) {\n return;\n }\n this.isAvailableFn = getIsAvailabeFn(allowed24HourMap);\n }\n\n isAvailable(value: number) {\n return this.isAvailableFn\n ? this.isAvailableFn(value, this.viewType(), this.formattedHours())\n : true;\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (\n simpleChanges['allowed24HourMap'] ||\n (simpleChanges['mode'] && !simpleChanges['mode'].firstChange)\n ) {\n this.initIsAllowedFn();\n }\n\n this.calculateAngule();\n this.setNumbers();\n\n if (simpleChanges['formattedValue'] && this.allowed24HourMap()) {\n this.isFormattedValueAllowed = this.isAvailable(this.formattedValue());\n }\n\n const isSelectedTimeAvailable = this.isAvailableFn\n ? this.isAvailableFn(\n this.formattedValue(),\n 'minutes',\n this.formattedHours(),\n )\n : true;\n\n if (this.viewType() === 'minutes' && this.isAvailableFn) {\n const areMinitesAvailable = this.isAvailableFn(\n this.minutes(),\n 'minutes',\n this.formattedHours(),\n );\n if (!areMinitesAvailable) {\n const minDate = this.minDate();\n if (minDate && minDate.getMinutes() > this.minutes()) {\n setTimeout(() => {\n this.changeEvent.emit({\n value: this.minDate().getMinutes(),\n type: 'minutes',\n });\n });\n } else {\n setTimeout(() => {\n this.changeEvent.emit({\n value: this.maxDate().getMinutes(),\n type: 'minutes',\n });\n });\n }\n }\n }\n\n if (isSelectedTimeAvailable && this.invalidMeridiemEmitted) {\n this.invalidMeridiemEmitted = false;\n }\n\n this.invalidSelection.emit(!isSelectedTimeAvailable);\n }\n\n calculateAngule() {\n this.angle = this.getPointerAngle(this.formattedValue(), this.viewType());\n }\n\n setNumbers() {\n if (this.viewType() === 'hours') {\n // if (this.mode === '12h') {\n // const meridiem : string = this.isPm ? 'pm' : 'am';\n // const isAllowedFn = this.allowed12HourMap ? (num : number) => this.allowed12HourMap[meridiem][num + 1][0] : undefined;\n // this.numbers = this.getNumbers(12, { size: 256 }, isAllowedFn);\n // this.secondaryNumbers = [];\n // this.minuteDots = [];\n // } else if (this.mode === '24h') {\n const isAllowedFn = this.allowed24HourMap()\n ? (num: number) => this.allowed24HourMap()[num][0]\n : undefined;\n this.numbers = this.getNumbers(12, { size: 256 }, isAllowedFn);\n this.secondaryNumbers = this.getNumbers(\n 12,\n { size: 256 - 64, start: 13 },\n isAllowedFn,\n );\n this.minuteDots = [];\n //}\n } else {\n //const meridiem : string = this.isPm ? 'pm' : 'am';\n const isAllowedFn =\n // !!this.allowed12HourMap ? (num : number) => this.allowed12HourMap[meridiem][this.formattedHours][num] :\n this.allowed24HourMap()\n ? (num: number) => this.allowed24HourMap()[this.formattedHours()][num]\n : undefined;\n\n this.numbers = this.getNumbers(\n 12,\n { size: 256, start: 5, step: 5 },\n isAllowedFn,\n );\n this.minuteDots = this.getNumbers(60, { size: 256, start: 13 }).map(\n digit => {\n if (digit.display <= 59) {\n digit.allowed = isAllowedFn ? isAllowedFn(digit.display) : true;\n return digit;\n }\n digit.display = digit.display - 60;\n digit.allowed = isAllowedFn ? isAllowedFn(digit.display) : true;\n return digit;\n },\n );\n this.secondaryNumbers = [];\n }\n }\n\n disableAnimatedPointer() {\n this.touching = true;\n }\n\n enableAnimatedPointer() {\n this.touching = false;\n }\n\n handleTouchMove = (e: any) => {\n e.preventDefault(); // prevent scrolling behind the clock on iOS\n const rect = e.target.getBoundingClientRect();\n this.movePointer(\n e.changedTouches[0].clientX - rect.left,\n e.changedTouches[0].clientY - rect.top,\n );\n };\n\n handleTouchEnd(e: any) {\n this.handleTouchMove(e);\n this.enableAnimatedPointer();\n }\n\n handleMouseMove(e: any) {\n // MouseEvent.which is deprecated, but MouseEvent.buttons is not supported in Safari\n if (e.buttons === 1 || e.which === 1) {\n const rect = e.target.getBoundingClientRect();\n this.movePointer(e.clientX - rect.left, e.clientY - rect.top);\n }\n }\n\n handleClick(e: any) {\n const rect = e.target.getBoundingClientRect();\n this.movePointer(e.clientX - rect.left, e.clientY - rect.top);\n }\n\n movePointer(x: number, y: number) {\n const value = this.getPointerValue(x, y, 256);\n if (!this.isAvailable(value)) {\n this.unavailableSelection.emit(undefined);\n return;\n }\n if (value !== this.formattedValue()) {\n const viewType = this.viewType();\n this.changeEvent.emit({\n value,\n type: viewType !== 'minutes' ? 'hours' : 'minutes',\n });\n if (viewType !== 'minutes') {\n if (!this.isAvailable(value)) {\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n if (minDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: minDate.getMinutes(),\n type: 'minutes',\n });\n } else if (maxDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: maxDate.getMinutes(),\n type: 'minutes',\n });\n }\n }\n }\n }\n }\n\n getNumbers(\n count: number,\n { size = 0, start = 1, step = 1 },\n isAllowedFn?: (num: number) => boolean,\n ) {\n // eslint-disable-next-line\n return Array.apply(null, Array(count)).map((_, i) => ({\n display: i * step + start,\n translateX: (size / 2 - 20) * Math.cos((2 * Math.PI * (i - 2)) / count),\n translateY: (size / 2 - 20) * Math.sin((2 * Math.PI * (i - 2)) / count),\n allowed: isAllowedFn ? isAllowedFn(i) : true,\n }));\n }\n\n getPointerAngle(value: number, _mode: ClockViewType) {\n if (this.viewType() === 'hours') {\n return (360 / 12) * ((value % 12) - 3);\n }\n return (360 / 60) * (value - 15);\n }\n\n getPointerValue(x: number, y: number, size: number) {\n let value;\n let angle = (Math.atan2(size / 2 - x, size / 2 - y) / Math.PI) * 180;\n if (angle < 0) {\n angle = 360 + angle;\n }\n\n if (this.viewType() === 'hours') {\n const radius = Math.sqrt(\n Math.pow(size / 2 - x, 2) + Math.pow(size / 2 - y, 2),\n );\n value = 12 - Math.round((angle * 12) / 360);\n if (value === 0) {\n value = 12;\n }\n if (radius < size / 2 - 32) {\n value = value === 12 ? 0 : value + 12;\n }\n return value;\n }\n\n value = Math.round(60 - (60 * angle) / 360);\n return value === 60 ? 0 : value;\n }\n}\n","<div class=\"root\">\n <div\n class=\"circle\"\n tabindex=\"1\"\n (touchmove)=\"handleTouchMove($event)\"\n (mousemove)=\"handleMouseMove($event)\"\n (touchstart)=\"disableAnimatedPointer()\"\n (mousedown)=\"disableAnimatedPointer()\"\n (touchend)=\"handleTouchEnd($event)\"\n (mouseup)=\"enableAnimatedPointer()\"\n (click)=\"handleClick($event)\"\n >\n <div\n class=\"pointer-container\"\n [class]=\"{\n 'small-pointer':\n viewType() === 'hours' &&\n (formattedValue() === 0 || formattedValue() > 12),\n 'animated-pointer': !touching,\n }\"\n [style.transform]=\"'rotate(' + angle + 'deg)'\"\n >\n <button\n aria-disabled=\"true\"\n mat-mini-fab\n color=\"neutral\"\n class=\"inner-dot\"\n aria-label=\"Inner Dot\"\n ></button>\n <mat-toolbar color=\"accent\" class=\"pointer\">\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"outer-dot\"\n aria-label=\"Outer dot\"\n [class.outer-dot-odd]=\"\n viewType() === 'minutes' && formattedValue() % 5 !== 0\n \"\n >\n @if (viewType() === 'minutes' && formattedValue() % 5 !== 0) {\n <ng-container>·</ng-container>\n }\n </button>\n </mat-toolbar>\n </div>\n @for (digit of minuteDots; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number minute-dot\"\n [class]=\"{\n selected:\n formattedValue() === digit.display ||\n (digit.display === 0 && formattedValue() === 0),\n disabled: !isAvailable(digit.display === 60 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n @if (digit.display % 5 !== 0) {\n <ng-container>·</ng-container>\n }\n </button>\n }\n @for (digit of numbers; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number\"\n [class]=\"{\n selected:\n formattedValue() === digit.display ||\n (digit.display === 60 && formattedValue() === 0),\n disabled: !isAvailable(digit.display === 60 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n <ng-template #hoursTemplate>{{ digit.display }}</ng-template>\n <ng-template #minutesTemplate>{{\n digit.display === 60 ? '00' : digit.display\n }}</ng-template>\n @if (viewType() === 'minutes') {\n {{ digit.display === 60 ? '00' : digit.display }}\n } @else {\n {{ digit.display }}\n }\n </button>\n }\n @for (digit of secondaryNumbers; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number small-number\"\n [class]=\"{\n selected:\n formattedValue() === digit.display ||\n (digit.display === 24 && formattedValue() === 0),\n disabled: !isAvailable(digit.display === 24 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n {{ digit.display === 24 ? '00' : digit.display }}\n </button>\n }\n </div>\n</div>\n","import {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogActions,\n MatDialogContent,\n} from '@angular/material/dialog';\nimport {\n Component,\n EventEmitter,\n Output,\n DoCheck,\n inject,\n} from '@angular/core';\nimport { ClockViewType, IAllowed24HourMap } from '../interfaces-and-types';\nimport { twoDigits, convertHoursForMode } from '../util';\nimport { Subject } from 'rxjs';\nimport { MatToolbar } from '@angular/material/toolbar';\n\nimport { ClockComponent } from '../clock/clock.component';\nimport { MatButton } from '@angular/material/button';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\n@Component({\n selector: 'mat-timepicker-dialog',\n templateUrl: './timepicker-dialog.component.html',\n styleUrls: ['./timepicker-dialog.component.scss'],\n standalone: true,\n imports: [\n MatDialogContent,\n MatToolbar,\n ClockComponent,\n MatDialogActions,\n MatButton,\n OnemRvaColorDirective,\n ],\n})\nexport class MatTimepickerComponentDialogComponent implements DoCheck {\n twoDigits = twoDigits;\n\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() okClickEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() cancelClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n allowed24HourMap!: IAllowed24HourMap;\n\n invalidSelection = false;\n\n okLabel = '';\n cancelLabel = '';\n\n set value(value: any) {\n value = value || this.minDate || this.maxDate || new Date();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this._value = value;\n }\n\n get value() {\n return this._value;\n }\n\n viewType: ClockViewType = 'hours';\n\n minutes: any;\n color: OnemrvaMatColor = 'primary';\n isPm = false;\n skipMinuteAutoSwitch = false;\n autoSwitchID: any;\n editHoursClicked = false;\n isClosing = false;\n\n minDate!: Date;\n maxDate!: Date;\n\n _formattedHour: any;\n\n _hours: any;\n\n _value?: Date;\n\n set hours(value: any) {\n this._hours = value;\n this._formattedHour = convertHoursForMode(this.hours).hour;\n }\n\n get hours() {\n return this._hours;\n }\n\n get formattedHours() {\n return this._formattedHour;\n }\n\n bindData(data: any) {\n this.okLabel = data.okLabel;\n this.cancelLabel = data.cancelLabel;\n this.color = data.color;\n this.minDate = data.minDate;\n this.maxDate = data.maxDate;\n this.allowed24HourMap = data.allowed24HourMap;\n }\n\n dialog = inject(MatDialog);\n data = inject(MAT_DIALOG_DATA);\n\n constructor() {\n this.isPm = this.data.isPm;\n this.bindData(this.data);\n // keep this always at the bottom\n this.value = this.data.value;\n }\n\n timepickerInput!: any;\n\n ngDoCheck() {\n this.bindData(this.data);\n }\n\n handleClockChange({\n value,\n type,\n }: {\n value: number;\n type: 'minutes' | 'hours';\n }) {\n if ((type && type === 'hours') || (!type && this.viewType === 'hours')) {\n this.hours = value;\n } else if (\n (type && type === 'minutes') ||\n (!type && this.viewType === 'minutes')\n ) {\n this.minutes = value;\n }\n\n const newValue = new Date();\n const hours = this.hours;\n // newValue.setFullYear(0);\n // newValue.setMonth(0);\n // newValue.setDate(0);\n newValue.setHours(hours);\n newValue.setMinutes(this.minutes);\n newValue.setSeconds(0);\n newValue.setMilliseconds(0);\n this.value = newValue;\n this.changeEvent.emit(newValue);\n }\n\n handleUnavailableSelection() {\n clearTimeout(this.autoSwitchID);\n }\n\n handleClockChangeDone(e: Event) {\n e.preventDefault(); // prevent mouseUp after touchEnd\n\n if (this.viewType === 'hours' && !this.skipMinuteAutoSwitch) {\n this.autoSwitchID = setTimeout(() => {\n this.editMinutes();\n this.autoSwitchID = null;\n }, 300);\n }\n }\n\n editHours() {\n this.viewType = 'hours';\n this.editHoursClicked = true;\n setTimeout(() => {\n this.editHoursClicked = false;\n }, 0);\n }\n\n editMinutes() {\n this.viewType = 'minutes';\n }\n\n invalidSelectionHandler(value: boolean) {\n this.invalidSelection = value;\n }\n\n okClickHandler() {\n this.okClickEvent.emit();\n }\n\n cancelClickHandler() {\n this.cancelClickEvent.emit();\n }\n\n closedStream!: EventEmitter<void>;\n disabled!: boolean;\n id!: string;\n opened!: boolean;\n openedStream!: EventEmitter<void>;\n stateChanges!: Subject<void>;\n}\n","<mat-dialog-content>\n <div class=\"root\">\n <mat-toolbar color=\"accent\" class=\"header\">\n <div class=\"time-frame\">\n <span\n class=\"time fixed-font-size\"\n [class.select]=\"viewType === 'hours' && 'active'\"\n (click)=\"editHours()\"\n role=\"button\"\n tabindex=\"0\"\n >\n {{ twoDigits(formattedHours) }}\n </span>\n <span class=\"fixed-font-size\">:</span>\n <span\n class=\"time fixed-font-size\"\n [class.select]=\"viewType === 'minutes' && 'active'\"\n (click)=\"editMinutes()\"\n tabindex=\"1\"\n role=\"button\"\n >\n {{ twoDigits(minutes) }}\n </span>\n </div>\n </mat-toolbar>\n <div class=\"body\">\n <mat-clock\n [allowed24HourMap]=\"allowed24HourMap\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [viewType]=\"viewType\"\n [formattedHours]=\"formattedHours\"\n [minutes]=\"minutes\"\n (changeEvent)=\"handleClockChange($event)\"\n (unavailableSelection)=\"handleUnavailableSelection()\"\n [formattedValue]=\"viewType === 'minutes' ? minutes : formattedHours\"\n (mouseup)=\"handleClockChangeDone($event)\"\n (touchend)=\"handleClockChangeDone($event)\"\n (invalidSelection)=\"invalidSelectionHandler($event)\"\n />\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button color=\"primary\" (click)=\"cancelClickHandler()\">\n {{ cancelLabel }}\n </button>\n <button\n mat-flat-button\n [disabled]=\"invalidSelection\"\n [color]=\"color\"\n (click)=\"okClickHandler()\"\n >\n {{ okLabel }}\n </button>\n</mat-dialog-actions>\n","import {\n Component,\n Input,\n OnDestroy,\n inject,\n input,\n output,\n signal,\n computed,\n} from '@angular/core';\nimport {\n OnemrvaMatColor,\n OnemrvaMatSize,\n} from '@onemrvapublic/design-system/utils';\nimport { MatTimepickerComponentDialogComponent } from './timepicker-dialog/timepicker-dialog.component';\nimport { Subject } from 'rxjs';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MatTimepickerDirective } from './timepicker.directive';\nimport { ThemePalette } from '@angular/material/core';\nimport { first, takeUntil } from 'rxjs/operators';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'mat-timepicker',\n templateUrl: 'onemrva-mat-timepicker.component.html',\n host: {\n 'class.onemrva-mat-timepicker': 'true',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.role]': 'role()',\n '[attr.id]': 'id()',\n '[attr.data-cy]': 'dataCy()',\n '[class.mat-primary]': '_isPrimary()',\n '[class.mat-accent]': '_isAccent()',\n },\n})\nexport class OnemrvaMatTimepickerComponent implements OnDestroy {\n public modalRef!: MatDialogRef<MatTimepickerComponentDialogComponent>;\n private onChangeFn: any;\n private _value!: Date;\n\n get value(): Date {\n return this._value;\n }\n\n set value(value: Date) {\n this._value = value;\n }\n\n private isAlive: Subject<any> = new Subject<any>();\n\n dialog = inject(MatDialog);\n\n opened = false;\n\n public setTimepickerInput(t: MatTimepickerDirective) {\n this.timepickerInput = t;\n }\n\n timepickerInput: any;\n\n /** Emits when the timepicker's state changes. */\n readonly stateChanges = new Subject<void>();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n readonly openedStream = output<void>({ alias: 'opened' });\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n readonly closedStream = output<void>({ alias: 'closed' });\n\n /**\n * Returns the `aria-label` attribute of the element.\n *\n * @example\n * ```typescript\n * let timepickerLabel = this.timepicker.ariaLabel;\n * ```\n *\n */\n readonly ariaLabel = signal('');\n\n public readonly dialogLabel = input('Pick a Time');\n\n /**\n * Returns the `role` attribute of the element.\n *\n * @example\n * ```typescript\n * let timepickerRole = this.timepicker.role;\n * ```\n */\n readonly role = signal('');\n\n /**\n * Sets the `id` of the element. If not set, the first component instance will have `id` = `\"onemrva-mat-timepicker-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker id=\"my-first-timepicker\"></onemrva-mat-timepicker>\n * ```\n */\n public readonly id = input(`onemrva-mat-timepicker-${NEXT_ID++}`);\n /**\n * Sets the `data-cy` of the element. If not set, the first component instance will have `data-cy` = `\"onemrva-mat-timepicker-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker id=\"my-first-timepicker\"></onemrva-mat-timepicker>\n * ```\n */\n public readonly dataCy = input(`onemrva-mat-timepicker-${NEXT_ID++}`);\n /**\n * @hidden\n * @internal\n */\n private _color: ThemePalette = 'primary';\n\n /**\n * Returns the color of the element.\n *\n * @example\n * ```typescript\n * let color = this.timepicker.color;\n * ```\n */\n @Input()\n public get color(): ThemePalette {\n return this._color;\n }\n\n /**\n * Sets the size of the element.\n * By default, the color is `\"primary\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker size=\"large\"></onemrva-mat-timepicker>\n * ```\n */\n public set color(value: ThemePalette) {\n switch (value) {\n case OnemrvaMatColor.PRIMARY:\n case OnemrvaMatColor.ACCENT:\n case OnemrvaMatColor.WARN:\n this._color = value;\n break;\n default:\n this._color = OnemrvaMatColor.PRIMARY;\n }\n }\n\n /** @hidden @internal */\n readonly _isPrimary = computed(() => this.color === OnemrvaMatColor.PRIMARY);\n\n /** @hidden @internal */\n readonly _isAccent = computed(() => this.color === OnemrvaMatColor.ACCENT);\n\n /**\n * @hidden\n * @internal\n */\n private _size: string | OnemrvaMatSize = OnemrvaMatSize.SMALL;\n\n /**\n * Returns the size of the element.\n *\n * @example\n * ```typescript\n * let timepickerSize = this.timepicker.size;\n * ```\n */\n @Input()\n public get size(): string | OnemrvaMatSize {\n return this._size;\n }\n\n /**\n * Sets the size of the element.\n * By default, the size is `\"medium\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker size=\"large\"></onemrva-mat-timepicker>\n * ```\n */\n public set size(value: string | OnemrvaMatSize) {\n switch (value) {\n case OnemrvaMatSize.XSMALL:\n case OnemrvaMatSize.SMALL:\n case OnemrvaMatSize.MEDIUM:\n case OnemrvaMatSize.LARGE:\n case OnemrvaMatSize.XLARGE:\n this._size = value;\n break;\n default:\n this._size = OnemrvaMatSize.MEDIUM;\n }\n }\n\n open() {\n if (this.timepickerInput.disabled) {\n return;\n }\n\n this.value = this.timepickerInput.currentValue;\n if (this.value === undefined || this.value === null) {\n this.value = new Date();\n }\n\n this.modalRef = this.dialog.open(MatTimepickerComponentDialogComponent, {\n ariaLabel: this.dialogLabel(),\n autoFocus: false,\n data: {\n value: this.timepickerInput.currentValue,\n okLabel: this.timepickerInput.okLabel,\n cancelLabel: this.timepickerInput.cancelLabel,\n color: this.color,\n minDate: this.timepickerInput.minDate,\n maxDate: this.timepickerInput.maxDate,\n allowed24HourMap: this.timepickerInput.allowed24HourMap,\n },\n });\n\n const instance = this.modalRef.componentInstance;\n instance.changeEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleChange);\n instance.okClickEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleOk);\n instance.cancelClickEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleCancel);\n this.modalRef\n .beforeClosed()\n .pipe(first())\n .subscribe(() => (instance.isClosing = true));\n this.modalRef\n .afterClosed()\n .pipe(first())\n .subscribe(() => {\n if (this.timepickerInput.onTouchedFn) {\n this.timepickerInput.onTouchedFn();\n }\n //this.modalRef = null;\n this.timepickerInput.elRef.nativeElement.focus();\n });\n this.timepickerInput.currentValue = this.value as Date;\n }\n\n handleChange = (newValue: Date) => {\n if (!(newValue instanceof Date)) {\n return;\n }\n const v =\n this.value instanceof Date ? new Date(this.value.getTime()) : new Date();\n v.setHours(newValue.getHours());\n v.setMinutes(newValue.getMinutes());\n v.setSeconds(0);\n v.setMilliseconds(0);\n this.value = v;\n };\n\n handleOk = () => {\n if (this.onChangeFn) {\n this.onChangeFn(this.value);\n }\n this.timepickerInput.value = this.value;\n this.modalRef.close();\n };\n\n handleCancel = () => {\n this.modalRef.close();\n };\n\n ngOnDestroy() {\n this.isAlive.next('0');\n this.isAlive.complete();\n this.stateChanges.complete();\n\n // if (this._platform.isBrowser) {\n // this.fm.stopMonitoring(this.elRef.nativeElement);\n // }\n //\n // this.listeners.forEach(l => l());\n }\n}\n","","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport { merge, Observable, of as observableOf, Subscription } from 'rxjs';\nimport { OnemrvaMatTimepickerComponent } from '../onemrva-mat-timepicker.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n/** Can be used to override the icon of a `matDatepickerToggle`. */\n@Directive({\n selector: '[matDatepickerToggleIcon]',\n})\nexport class MatTimepickerToggleIconDirective {}\n\n@Component({\n selector: 'mat-timepicker-toggle',\n templateUrl: 'timepicker-toggle.component.html',\n styleUrls: ['timepicker-toggle.component.scss'],\n\n host: {\n class: 'mat-timepicker-toggle',\n '[attr.tabindex]': 'null',\n '[class.mat-timepicker-toggle-active]':\n 'timepicker() && timepicker().opened',\n '[class.mat-accent]': 'timepicker() && timepicker().color === \"accent\"',\n '[class.mat-warn]': 'timepicker() && timepicker().color === \"warn\"',\n // Used by the test harness to tie this toggle to its timepicker.\n '[attr.data-mat-calendar]': 'timepicker() ? timepicker().id() : null',\n // Bind the `click` on the host, rather than the inner `button`, so that we can call\n // `stopPropagation` on it without affecting the user's `click` handlers. We need to stop\n // it so that the input doesn't get focused automatically by the form field (See #21836).\n '(click)': '_open($event)',\n },\n exportAs: 'matDatepickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatIconButton, MatIcon],\n})\nexport class MatTimePickerToggle\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private _stateChanges = Subscription.EMPTY;\n\n /** Datepicker instance that the button will toggle. */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly timepicker = input.required<OnemrvaMatTimepickerComponent>({\n alias: 'for',\n });\n\n /** Tabindex for the toggle. */\n readonly tabIndex = input<number | null>();\n\n /** Screenreader label for the button. */\n readonly ariaLabel = input('');\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n const timepicker = this.timepicker();\n if (timepicker) {\n return timepicker.timepickerInput._disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled = false;\n\n /** Whether ripples on the toggle should be disabled. */\n readonly disableRipple = input(false);\n $event: Event = new Event('abrupt');\n\n /** Underlying button element. */\n //@ViewChild('button') _button: MatButton;\n\n _changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor() {\n // TODO: Fix this index\n // const defaultTabIndex = inject(new HostAttributeToken('tabindex'), {\n // optional: true,\n // });\n // const parsedTabIndex = Number(defaultTabIndex);\n // this.tabIndex =\n // parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['timepicker']) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n _open(event: Event): void {\n const timepicker = this.timepicker();\n if (timepicker && !this.disabled) {\n timepicker.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const timepicker = this.timepicker();\n const datepickerStateChanged = timepicker\n ? timepicker.stateChanges\n : observableOf();\n const timepickerValue = this.timepicker();\n const inputStateChanged =\n timepickerValue && timepickerValue.timepickerInput\n ? timepickerValue.timepickerInput.stateChanges\n : observableOf();\n const timepickerVal = this.timepicker();\n const datepickerToggled = timepickerVal\n ? merge(\n outputToObservable(timepickerVal.openedStream),\n outputToObservable(timepickerVal.closedStream),\n )\n : observableOf();\n\n this._stateChanges.unsubscribe();\n this._stateChanges = merge(\n datepickerStateChanged as Observable<void>,\n inputStateChanged,\n datepickerToggled,\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n}\n","<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"timepicker() ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex()\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple()\"\n>\n <mat-icon>schedule</mat-icon>\n\n <ng-content select=\"[mattimepickerToggleIcon]\" />\n</button>\n","import {\n ControlValueAccessor,\n NgForm,\n NgControl,\n FormGroupDirective,\n FormControl,\n Validators,\n} from '@angular/forms';\nimport {\n Directive,\n OnInit,\n Input,\n ElementRef,\n OnChanges,\n Renderer2,\n NgZone,\n HostBinding,\n inject,\n input,\n output,\n} from '@angular/core';\nimport {\n MatFormFieldControl,\n MatFormField,\n} from '@angular/material/form-field';\nimport { IAllowed24HourMap } from './interfaces-and-types';\nimport { twoDigits, isAllowed, isDateInRange, isTimeInRange } from './util';\nimport { Subject, Subscription } from 'rxjs';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OnemrvaMatTimepickerComponent } from './onemrva-mat-timepicker.component';\n\n@Directive({\n selector: 'input[matTimepicker]',\n providers: [\n { provide: MatFormFieldControl, useExisting: MatTimepickerDirective },\n ],\n\n host: {\n class: 'mat-input-element mat-form-field-autofill-control',\n '[class.mat-input-server]': '_isServer',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n '(input)': 'inputHandler()',\n '(keydown)': 'keydownHandler($event)',\n '(keyup)': 'keyupHandler($event)',\n '(focus)': 'focusHandler()',\n '(focusout)': 'focusoutHandler()',\n },\n exportAs: 'matTimepicker',\n standalone: true,\n})\nexport class MatTimepickerDirective\n implements OnInit, OnChanges, ControlValueAccessor, MatFormFieldControl<any>\n{\n static nextId = 0;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n private _closedSubscription = Subscription.EMPTY;\n\n /** The datepicker that this input is associated with. */\n @Input()\n set matTimepicker(timepicker: OnemrvaMatTimepickerComponent) {\n if (timepicker) {\n this._timepicker = timepicker;\n this._timepicker.setTimepickerInput(this);\n // this._closedSubscription = timepicker.closedStream.subscribe(() =>\n // this._onTouched(),\n // );\n //this._registerModel(datepicker.registerInput(this));\n }\n }\n\n _timepicker!: OnemrvaMatTimepickerComponent;\n\n _errorState = false;\n get errorState() {\n const oldState = this._errorState;\n const parent = this._parentFormGroup || this._parentForm;\n const control = this.ngControl\n ? (this.ngControl.control as FormControl)\n : null;\n const errorStateMatcher = this.errorStateMatcher();\n const newState = errorStateMatcher\n ? errorStateMatcher.isErrorState(control, parent)\n : oldState;\n\n if (newState !== oldState) {\n this._errorState = newState;\n this.stateChanges.next();\n }\n\n return newState;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched = () => {};\n\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n this.stateChanges.next();\n }\n\n protected _disabled = false;\n\n @Input() get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n protected _id = '0';\n\n @Input() get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n private _readonly = false;\n\n stateChanges = new Subject<void>();\n\n protected _uid = `mat-input-${MatTimepickerDirective.nextId++}`;\n\n @HostBinding('class.floating') get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n @HostBinding('attr.aria-describedby') describedBy = '';\n\n readonly errorStateMatcher = input<ErrorStateMatcher>();\n\n @Input() get required() {\n if (this.ngControl?.control) {\n return this.ngControl.control.hasValidator(Validators.required);\n }\n return this._required;\n }\n\n set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n private _required = false;\n\n @Input() get placeholder() {\n return this._placeholder;\n }\n\n set placeholder(plh) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n focused = false;\n private pattern = new RegExp('[0-2]?[0-9]:[0-6]?[0-9]');\n\n private allowed24HourMap: IAllowed24HourMap = this.generateAllowedMap();\n\n private isInputFocused = false;\n\n /** Override the label of the ok button. */\n readonly okLabel = input('Ok');\n /** Override the label of the cancel button. */\n readonly cancelLabel = input('Cancel');\n\n /** Sets the clock mode, 12-hour or 24-hour clocks are supported. */\n readonly color = input('primary');\n readonly disableDialogOpenOnClick = input(false);\n readonly strict = input(true);\n\n controlType = 'angular-material-timepicker';\n\n readonly minDate = input<Date>();\n readonly maxDate = input<Date>();\n\n private _value: Date | null = null;\n private _formattedValueString = '';\n\n private _skipValueChangeEmission = true;\n\n @Input() set value(value: Date | null) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (!value) {\n this._formattedValueString = '';\n this.setInputElementValue(value);\n this.currentValue = value ?? new Date();\n return;\n }\n\n this._formattedValueString = `${twoDigits(value.getHours())}:${twoDigits(\n value.getMinutes(),\n )}`;\n\n if (!this.isInputFocused) {\n this.setInputElementValue(this.formattedValueString);\n }\n this.currentValue = value;\n this.stateChanges.next();\n\n if (this._skipValueChangeEmission) {\n return;\n }\n this.timeChange.emit(this.currentValue);\n\n if (this.onChangeFn) this.onChangeFn(this.value);\n }\n\n get value() {\n return this._value;\n }\n\n get empty() {\n return !(this.currentValue instanceof Date);\n }\n\n private get formattedValueString() {\n return this._formattedValueString;\n }\n\n private currentValue!: Date;\n\n private onChangeFn: any;\n private onTouchedFn: any;\n private combination: string[] = [];\n\n readonly timeChange = output<any>();\n readonly invalidInput = output<any>();\n\n inputHandler() {\n const value = (this.elRef.nativeElement as any).value as string;\n const length = value.length;\n\n if (length === 0) {\n this.writeValue(null, true);\n this._value = null;\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n\n if (this.onChangeFn) {\n this.onChangeFn(null);\n }\n\n return;\n }\n\n const valueHasColumn = value.includes(':');\n let [hours, minutes]: any =\n length === 1\n ? [value, 0]\n : length === 2 && !valueHasColumn\n ? [value, 0]\n : valueHasColumn\n ? value.split(':')\n : value.split(/(\\d\\d)/).filter(v => v);\n\n hours = +hours;\n\n if (/\\s/.test(minutes)) {\n let other;\n [minutes, other] = minutes.split(/\\s/);\n if (other === 'pm' && !isNaN(hours) && hours < 12) {\n hours += 12;\n }\n }\n\n minutes = +minutes;\n\n if (isNaN(hours) || isNaN(minutes)) {\n //this.writeValue(null, true);\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n return;\n }\n\n if (+hours > 24) {\n hours = '24';\n } else if (+hours < 0) {\n hours = '0';\n }\n\n if (+minutes > 59) {\n minutes = '59';\n } else if (+minutes < 0) {\n minutes = '0';\n }\n\n const d = this.value ? new Date(this.value.getTime()) : new Date();\n d.setHours(+hours);\n d.setMinutes(+minutes);\n d.setSeconds(0);\n d.setMilliseconds(0);\n\n const isValueInRange = isDateInRange(this.minDate(), this.maxDate(), d);\n if (!isValueInRange) {\n this.invalidInput.emit(undefined);\n }\n\n this.writeValue(d, true);\n if (this.onChangeFn) {\n this.onChangeFn(d);\n }\n }\n\n keydownHandler(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ':',\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n if (event.metaKey || event.ctrlKey || event.altKey) {\n this.combination = this.combination.concat(event.code);\n return;\n }\n const target = event.target;\n const tValue = target.value;\n const value = `${tValue.slice(0, target.selectionStart)}${\n event.key\n }${tValue.slice(target.selectionEnd)}`;\n if (value.match(this.pattern) || this.combination.length > 0) {\n return true;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n\n keyupHandler(event: any) {\n this.combination = this.combination.filter(v => v !== event.code);\n }\n\n focusHandler() {\n this.isInputFocused = true;\n }\n\n focusoutHandler() {\n this.isInputFocused = false;\n this.setInputElementValue(this.formattedValueString);\n if (this.onTouchedFn && !this._timepicker.modalRef) {\n this.onTouchedFn();\n }\n }\n\n public readonly ngControl = inject(NgControl, { optional: true, self: true });\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly fm = inject(FocusMonitor);\n private readonly elRef = inject(ElementRef<HTMLElement>);\n private readonly ngZone = inject(NgZone);\n protected readonly _platform = inject(Platform);\n private readonly _parentForm = inject(NgForm, { optional: true });\n private readonly _matFormFiled = inject(MatFormField, { optional: true });\n private readonly _parentFormGroup = inject(FormGroupDirective, {\n optional: true,\n });\n // private readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\n constructor() {\n // TODO: fix this error matcher state\n // this.errorStateMatcher = this._defaultErrorStateMatcher;\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n if (this._platform.IOS) {\n this.ngZone.runOutsideAngular(() => {\n this.elRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n }\n\n setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(' ');\n }\n\n onContainerClick(event: MouseEvent) {\n if ((event.target as Element).tagName.toLowerCase() !== 'input') {\n this.elRef.nativeElement.focus();\n }\n }\n\n setInputElementValue(value: any) {\n Promise.resolve().then(() => {\n this.zone.runOutsideAngular(() => {\n this.renderer.setProperty(this.elRef.nativeElement, 'value', value);\n });\n });\n }\n\n validate() {\n const isValueInRange = this.strict()\n ? isDateInRange(this.minDate(), this.maxDate(), this.currentValue)\n : isTimeInRange(this.minDate()!, this.maxDate()!, this.currentValue);\n\n return isValueInRange ? null : { dateRange: true };\n }\n\n ngOnInit() {\n if (this._platform.isBrowser) {\n this.fm.monitor(this.elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n if (!this.value) {\n const hasMaxDate = !!this.maxDate();\n const hasMinDate = !!this.minDate();\n\n //if (hasMinDate || hasMaxDate) {\n if (hasMinDate) {\n this.minDate()!.setSeconds(0);\n this.minDate()!.setMilliseconds(0);\n }\n if (hasMaxDate) {\n this.maxDate()!.setSeconds(0);\n this.maxDate()!.setMilliseconds(0);\n }\n\n if (\n !(this.ngControl as any)._rawValidators.find((v: any) => v === this)\n ) {\n (this.ngControl as any)._rawValidators.push(this);\n }\n //}\n }\n this._skipValueChangeEmission = false;\n }\n\n generateAllowedMap(): IAllowed24HourMap {\n const isStrictMode = this.strict() && this.value instanceof Date;\n const a24hm: IAllowed24HourMap = {};\n for (let h = 0; h < 24; h++) {\n for (let m = 0; m < 60; m++) {\n const hourMap = a24hm[h] || {};\n if (isStrictMode && this.value) {\n const currentDate = new Date(this.value.getTime());\n currentDate.setHours(h);\n currentDate.setMinutes(m);\n currentDate.setSeconds(0);\n currentDate.setMilliseconds(0);\n hourMap[m] = isDateInRange(\n this.minDate(),\n this.maxDate(),\n currentDate,\n );\n } else {\n hourMap[m] = isAllowed(h, m, this.minDate()!, this.maxDate()!);\n }\n a24hm[h] = hourMap;\n }\n }\n\n return a24hm;\n }\n\n ngOnChanges() {\n this.pattern = /^[0-9]{1,2}:?([0-9]{1,2})?$/;\n\n if (\n !this._timepicker.modalRef ||\n !this._timepicker.modalRef.componentInstance\n ) {\n return;\n }\n\n this._timepicker.modalRef.componentInstance.data = {\n value: this.currentValue,\n okLabel: this.okLabel(),\n cancelLabel: this.cancelLabel(),\n color: this.color(),\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n allowed24HourMap: this.allowed24HourMap,\n };\n }\n\n checkValidity(value: Date) {\n if (!value) {\n return false;\n }\n const hour = value.getHours();\n const minutes = value.getMinutes();\n return isAllowed(hour, minutes, this.minDate()!, this.maxDate()!);\n }\n\n writeValue(value: Date | null, isInnerCall = false): void {\n if (!isInnerCall) {\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n }\n\n if (value) {\n value.setSeconds(0);\n value.setMilliseconds(0);\n }\n\n if (this.value && +this.value === +(value ?? 0)) {\n return;\n } else {\n this.value = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatTimepickerComponent } from './onemrva-mat-timepicker.component';\nimport {\n MatTimePickerToggle,\n MatTimepickerToggleIconDirective,\n} from './timepicker-toggle/timepicker-toggle.component';\nimport { MatTimepickerDirective } from './timepicker.directive';\nimport { ClockComponent } from './clock/clock.component';\nimport { MatTimepickerComponentDialogComponent } from './timepicker-dialog/timepicker-dialog.component';\n\n@NgModule({\n imports: [\n ClockComponent,\n MatTimepickerDirective,\n MatTimepickerComponentDialogComponent,\n MatTimepickerToggleIconDirective,\n MatTimePickerToggle,\n OnemrvaMatTimepickerComponent,\n ],\n exports: [\n MatTimepickerDirective,\n MatTimePickerToggle,\n OnemrvaMatTimepickerComponent,\n ],\n})\nexport class OnemrvaMatTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf"],"mappings":"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"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
.root {
|
|
2
|
-
width: 256px;
|
|
3
|
-
height: 256px;
|
|
4
|
-
cursor: default;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.circle {
|
|
8
|
-
width: 256px;
|
|
9
|
-
height: 256px;
|
|
10
|
-
border-radius: 50%;
|
|
11
|
-
position: relative;
|
|
12
|
-
background: var(--mat-sys-surface-container-high);
|
|
13
|
-
cursor: pointer;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.mat-mdc-mini-fab {
|
|
17
|
-
&.number {
|
|
18
|
-
width: 32px;
|
|
19
|
-
height: 32px;
|
|
20
|
-
left: calc(50% - 16px);
|
|
21
|
-
top: calc(50% - 16px);
|
|
22
|
-
position: absolute;
|
|
23
|
-
text-align: center;
|
|
24
|
-
line-height: 32px;
|
|
25
|
-
cursor: pointer;
|
|
26
|
-
font-size: 14px;
|
|
27
|
-
pointer-events: none;
|
|
28
|
-
user-select: none;
|
|
29
|
-
display: flex;
|
|
30
|
-
align-items: center;
|
|
31
|
-
justify-content: center;
|
|
32
|
-
flex-direction: column;
|
|
33
|
-
background-color: transparent;
|
|
34
|
-
box-shadow: none;
|
|
35
|
-
color: var(--mat-sys-on-surface);
|
|
36
|
-
|
|
37
|
-
&.selected {
|
|
38
|
-
background: var(--background-gradient);
|
|
39
|
-
color: var(--on-background-gradient);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
&.disabled {
|
|
43
|
-
opacity: 0.1;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
&:not(.selected):not(.disabled) {
|
|
47
|
-
color: var(--mat-sys-on-surface);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
&:not(.disabled).minute-dot {
|
|
51
|
-
&.selected {
|
|
52
|
-
//color: transparent;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.small-number {
|
|
59
|
-
font-size: 12px;
|
|
60
|
-
|
|
61
|
-
&:not(.selected):not(.disabled) {
|
|
62
|
-
color: var(--mat-sys-on-surface-variant);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.pointer-container {
|
|
67
|
-
width: calc(50% - 20px);
|
|
68
|
-
height: 2px;
|
|
69
|
-
position: absolute;
|
|
70
|
-
left: 50%;
|
|
71
|
-
top: calc(50% - 1px);
|
|
72
|
-
transform-origin: left center;
|
|
73
|
-
pointer-events: none;
|
|
74
|
-
|
|
75
|
-
&.disabled {
|
|
76
|
-
* {
|
|
77
|
-
background-color: transparent;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.pointer {
|
|
83
|
-
height: 1px;
|
|
84
|
-
background-color: var(--mat-sys-on-surface);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.animated-pointer {
|
|
88
|
-
transition: all 200ms ease-out;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.pointer-container {
|
|
92
|
-
&.small-pointer {
|
|
93
|
-
width: calc(50% - 52px);
|
|
94
|
-
.mini-fab {
|
|
95
|
-
}
|
|
96
|
-
mat-toolbar {
|
|
97
|
-
padding: 0 16px;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
mat-toolbar {
|
|
101
|
-
padding: 0 54px;
|
|
102
|
-
button {
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.inner-dot {
|
|
108
|
-
position: absolute;
|
|
109
|
-
top: -3px;
|
|
110
|
-
left: -4px;
|
|
111
|
-
width: 8px;
|
|
112
|
-
height: 8px;
|
|
113
|
-
border-radius: 50%;
|
|
114
|
-
box-shadow:
|
|
115
|
-
0 3px 5px -1px #0003,
|
|
116
|
-
0 6px 10px #00000024,
|
|
117
|
-
0 1px 18px #0000001f;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.outer-dot {
|
|
121
|
-
width: 32px;
|
|
122
|
-
height: 32px;
|
|
123
|
-
position: absolute;
|
|
124
|
-
right: -16px;
|
|
125
|
-
box-shadow:
|
|
126
|
-
0 3px 5px -1px #0003,
|
|
127
|
-
0 6px 10px #00000024,
|
|
128
|
-
0 1px 18px #0000001f;
|
|
129
|
-
border-radius: 50%;
|
|
130
|
-
box-sizing: content-box;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.outer-dot-odd {
|
|
134
|
-
box-shadow:
|
|
135
|
-
0 3px 5px -1px #0003,
|
|
136
|
-
0 6px 10px #00000024,
|
|
137
|
-
0 1px 18px #0000001f;
|
|
138
|
-
width: 32px;
|
|
139
|
-
height: 32px;
|
|
140
|
-
display: flex;
|
|
141
|
-
align-items: center;
|
|
142
|
-
justify-content: center;
|
|
143
|
-
flex-direction: column;
|
|
144
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
.mdc-dialog__content {
|
|
2
|
-
min-height: 395px;
|
|
3
|
-
padding: 0 !important;
|
|
4
|
-
// margin-top: -24px;
|
|
5
|
-
overflow: hidden;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
mat-dialog-actions {
|
|
9
|
-
justify-content: flex-end;
|
|
10
|
-
margin: 0;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.root {
|
|
14
|
-
min-width: 282px;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.header {
|
|
18
|
-
border-top-left-radius: 2px;
|
|
19
|
-
border-top-right-radius: 2px;
|
|
20
|
-
padding: 20px 0;
|
|
21
|
-
line-height: 58px;
|
|
22
|
-
font-size: 58px;
|
|
23
|
-
display: flex;
|
|
24
|
-
justify-content: center;
|
|
25
|
-
align-items: center;
|
|
26
|
-
user-select: none;
|
|
27
|
-
height: 98px;
|
|
28
|
-
|
|
29
|
-
.fixed-font-size {
|
|
30
|
-
font-size: 58px;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.time-frame {
|
|
34
|
-
height: 60px;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.time {
|
|
39
|
-
transition: all 200ms ease-out;
|
|
40
|
-
cursor: pointer;
|
|
41
|
-
&:not(.select) {
|
|
42
|
-
opacity: 0.6;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.placeholder {
|
|
47
|
-
flex: 1;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.ampm {
|
|
51
|
-
display: flex;
|
|
52
|
-
flex-direction: column-reverse;
|
|
53
|
-
flex: 1;
|
|
54
|
-
font-size: 14px;
|
|
55
|
-
line-height: 20px;
|
|
56
|
-
margin-left: 16px;
|
|
57
|
-
font-weight: 700;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.body {
|
|
61
|
-
padding: 24px 16px 20px;
|
|
62
|
-
display: flex;
|
|
63
|
-
justify-content: center;
|
|
64
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
//@use '../../../../../node_modules/@angular/cdk/index';
|
|
2
|
-
|
|
3
|
-
.mat-form-field-appearance-legacy {
|
|
4
|
-
.mat-form-field-prefix,
|
|
5
|
-
.mat-form-field-suffix {
|
|
6
|
-
.mat-datepicker-toggle-default-icon {
|
|
7
|
-
width: 1em;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.mat-form-field:not(.mat-form-field-appearance-legacy) {
|
|
13
|
-
.mat-form-field-prefix,
|
|
14
|
-
.mat-form-field-suffix {
|
|
15
|
-
.mat-datepicker-toggle-default-icon {
|
|
16
|
-
display: block;
|
|
17
|
-
width: 1.5em;
|
|
18
|
-
height: 1.5em;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.mat-icon-button .mat-datepicker-toggle-default-icon {
|
|
22
|
-
margin: auto;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//@include cdk.high-contrast(active, off) {
|
|
27
|
-
// .mat-datepicker-toggle-default-icon {
|
|
28
|
-
// // On Chromium-based browsers the icon doesn't appear to inherit the text color in high
|
|
29
|
-
// // contrast mode so we have to set it explicitly. This is a no-op on IE and Firefox.
|
|
30
|
-
// color: CanvasText;
|
|
31
|
-
// }
|
|
32
|
-
//}
|