@onemrvapublic/design-system 20.7.0-develop.12 → 20.7.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.
@@ -295,7 +295,7 @@ class ClockComponent {
295
295
  return value === 60 ? 0 : value;
296
296
  }
297
297
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: ClockComponent, isStandalone: true, selector: "mat-clock", inputs: { viewType: "viewType", formattedValue: "formattedValue", minDate: "minDate", maxDate: "maxDate", formattedHours: "formattedHours", minutes: "minutes", allowed24HourMap: "allowed24HourMap" }, outputs: { changeEvent: "changeEvent", unavailableSelection: "unavailableSelection", invalidSelection: "invalidSelection" }, usesOnChanges: true, ngImport: i0, template: "<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 [ngClass]=\"{\n 'small-pointer':\n viewType === 'hours' && (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 [ngClass]=\"{\n 'outer-dot-odd': viewType === 'minutes' && formattedValue % 5 !== 0,\n }\"\n >\n @if (viewType === 'minutes' && formattedValue % 5 !== 0) {\n <ng-container>\u00B7</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 [ngClass]=\"{\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>\u00B7</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 [ngClass]=\"{\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 [ngClass]=\"{\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", styles: [".root{width:256px;height:256px;cursor:default}.circle{width:256px;height:256px;border-radius:50%;position:relative;background:var(--mat-sys-surface-container-high);cursor:pointer}.mat-mdc-mini-fab.number{width:32px;height:32px;left:calc(50% - 16px);top:calc(50% - 16px);position:absolute;text-align:center;line-height:32px;cursor:pointer;font-size:14px;pointer-events:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;flex-direction:column;background-color:transparent;box-shadow:none;color:var(--mat-sys-on-surface)}.mat-mdc-mini-fab.number.selected{background:var(--background-gradient);color:var(--on-background-gradient)}.mat-mdc-mini-fab.number.disabled{opacity:.1}.mat-mdc-mini-fab.number:not(.selected):not(.disabled){color:var(--mat-sys-on-surface)}.small-number{font-size:12px}.small-number:not(.selected):not(.disabled){color:var(--mat-sys-on-surface-variant)}.pointer-container{width:calc(50% - 20px);height:2px;position:absolute;left:50%;top:calc(50% - 1px);transform-origin:left center;pointer-events:none}.pointer-container.disabled *{background-color:transparent}.pointer{height:1px;background-color:var(--mat-sys-on-surface)}.animated-pointer{transition:all .2s ease-out}.pointer-container.small-pointer{width:calc(50% - 52px)}.pointer-container.small-pointer mat-toolbar{padding:0 16px}.pointer-container mat-toolbar{padding:0 54px}.inner-dot{position:absolute;top:-3px;left:-4px;width:8px;height:8px;border-radius:50%;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.outer-dot{width:32px;height:32px;position:absolute;right:-16px;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;border-radius:50%;box-sizing:content-box}.outer-dot-odd{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: OnemRvaColorDirective, selector: "onemrva-mat-selectable-box[color],div[color],onemrva-mat-avatar[color],mat-card[color],mat-toolbar[color],onemrva-mat-spinner[color],onemrva-mat-notification[color],onemrva-mat-task-list[color],onemrva-mat-sticker[color],onemrva-mat-panel[color],onemrva-mat-task[color],onemrva-mat-choice-chip[color],mat-form-field[color],button[color],mat-icon[color],mat-chip[color],mat-chip-option[color]", inputs: ["color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
298
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: ClockComponent, isStandalone: true, selector: "mat-clock", inputs: { viewType: "viewType", formattedValue: "formattedValue", minDate: "minDate", maxDate: "maxDate", formattedHours: "formattedHours", minutes: "minutes", allowed24HourMap: "allowed24HourMap" }, outputs: { changeEvent: "changeEvent", unavailableSelection: "unavailableSelection", invalidSelection: "invalidSelection" }, usesOnChanges: true, ngImport: i0, template: "<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 [ngClass]=\"{\n 'small-pointer':\n viewType === 'hours' && (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 [ngClass]=\"{\n 'outer-dot-odd': viewType === 'minutes' && formattedValue % 5 !== 0,\n }\"\n >\n @if (viewType === 'minutes' && formattedValue % 5 !== 0) {\n <ng-container>\u00B7</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 [ngClass]=\"{\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>\u00B7</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 [ngClass]=\"{\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 [ngClass]=\"{\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", styles: [".root{width:256px;height:256px;cursor:default}.circle{width:256px;height:256px;border-radius:50%;position:relative;background:var(--mat-sys-surface-container-high);cursor:pointer}.mat-mdc-mini-fab.number{width:32px;height:32px;left:calc(50% - 16px);top:calc(50% - 16px);position:absolute;text-align:center;line-height:32px;cursor:pointer;font-size:14px;pointer-events:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;flex-direction:column;background-color:transparent;box-shadow:none;color:var(--mat-sys-on-surface)}.mat-mdc-mini-fab.number.selected{background:var(--background-gradient);color:var(--on-background-gradient)}.mat-mdc-mini-fab.number.disabled{opacity:.1}.mat-mdc-mini-fab.number:not(.selected):not(.disabled){color:var(--mat-sys-on-surface)}.small-number{font-size:12px}.small-number:not(.selected):not(.disabled){color:var(--mat-sys-on-surface-variant)}.pointer-container{width:calc(50% - 20px);height:2px;position:absolute;left:50%;top:calc(50% - 1px);transform-origin:left center;pointer-events:none}.pointer-container.disabled *{background-color:transparent}.pointer{height:1px;background-color:var(--mat-sys-on-surface)}.animated-pointer{transition:all .2s ease-out}.pointer-container.small-pointer{width:calc(50% - 52px)}.pointer-container.small-pointer mat-toolbar{padding:0 16px}.pointer-container mat-toolbar{padding:0 54px}.inner-dot{position:absolute;top:-3px;left:-4px;width:8px;height:8px;border-radius:50%;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.outer-dot{width:32px;height:32px;position:absolute;right:-16px;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;border-radius:50%;box-sizing:content-box}.outer-dot-odd{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: OnemRvaColorDirective, selector: "onemrva-mat-selectable-box[color],div[color],onemrva-mat-avatar[color],mat-card[color],mat-toolbar[color],onemrva-mat-spinner[color],onemrva-mat-notification[color],onemrva-mat-task-list[color],onemrva-mat-sticker[color],onemrva-mat-panel[color],onemrva-mat-task[color],onemrva-mat-choice-chip[color],mat-form-field[color],button[color],mat-icon[color],mat-chip[color],mat-chip-option[color]mat-hint[color],", inputs: ["color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
299
299
  }
300
300
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClockComponent, decorators: [{
301
301
  type: Component,
@@ -426,7 +426,7 @@ class MatTimepickerComponentDialogComponent {
426
426
  this.cancelClickEvent.emit();
427
427
  }
428
428
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MatTimepickerComponentDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
429
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: MatTimepickerComponentDialogComponent, isStandalone: true, selector: "mat-timepicker-dialog", outputs: { changeEvent: "changeEvent", okClickEvent: "okClickEvent", cancelClickEvent: "cancelClickEvent" }, ngImport: i0, template: "<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 [ngClass]=\"{ 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 [ngClass]=\"{ 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 ></mat-clock>\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", styles: [".mdc-dialog__content{min-height:395px;padding:0!important;overflow:hidden}mat-dialog-actions{justify-content:flex-end;margin:0}.root{min-width:282px}.header{border-top-left-radius:2px;border-top-right-radius:2px;padding:20px 0;line-height:58px;font-size:58px;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none;height:98px}.header .fixed-font-size{font-size:58px}.header .time-frame{height:60px}.time{transition:all .2s ease-out;cursor:pointer}.time:not(.select){opacity:.6}.placeholder{flex:1}.ampm{display:flex;flex-direction:column-reverse;flex:1;font-size:14px;line-height:20px;margin-left:16px;font-weight:700}.body{padding:24px 16px 20px;display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ClockComponent, selector: "mat-clock", inputs: ["viewType", "formattedValue", "minDate", "maxDate", "formattedHours", "minutes", "allowed24HourMap"], outputs: ["changeEvent", "unavailableSelection", "invalidSelection"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: OnemRvaColorDirective, selector: "onemrva-mat-selectable-box[color],div[color],onemrva-mat-avatar[color],mat-card[color],mat-toolbar[color],onemrva-mat-spinner[color],onemrva-mat-notification[color],onemrva-mat-task-list[color],onemrva-mat-sticker[color],onemrva-mat-panel[color],onemrva-mat-task[color],onemrva-mat-choice-chip[color],mat-form-field[color],button[color],mat-icon[color],mat-chip[color],mat-chip-option[color]", inputs: ["color"] }] }); }
429
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: MatTimepickerComponentDialogComponent, isStandalone: true, selector: "mat-timepicker-dialog", outputs: { changeEvent: "changeEvent", okClickEvent: "okClickEvent", cancelClickEvent: "cancelClickEvent" }, ngImport: i0, template: "<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 [ngClass]=\"{ 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 [ngClass]=\"{ 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 ></mat-clock>\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", styles: [".mdc-dialog__content{min-height:395px;padding:0!important;overflow:hidden}mat-dialog-actions{justify-content:flex-end;margin:0}.root{min-width:282px}.header{border-top-left-radius:2px;border-top-right-radius:2px;padding:20px 0;line-height:58px;font-size:58px;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none;height:98px}.header .fixed-font-size{font-size:58px}.header .time-frame{height:60px}.time{transition:all .2s ease-out;cursor:pointer}.time:not(.select){opacity:.6}.placeholder{flex:1}.ampm{display:flex;flex-direction:column-reverse;flex:1;font-size:14px;line-height:20px;margin-left:16px;font-weight:700}.body{padding:24px 16px 20px;display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ClockComponent, selector: "mat-clock", inputs: ["viewType", "formattedValue", "minDate", "maxDate", "formattedHours", "minutes", "allowed24HourMap"], outputs: ["changeEvent", "unavailableSelection", "invalidSelection"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: OnemRvaColorDirective, selector: "onemrva-mat-selectable-box[color],div[color],onemrva-mat-avatar[color],mat-card[color],mat-toolbar[color],onemrva-mat-spinner[color],onemrva-mat-notification[color],onemrva-mat-task-list[color],onemrva-mat-sticker[color],onemrva-mat-panel[color],onemrva-mat-task[color],onemrva-mat-choice-chip[color],mat-form-field[color],button[color],mat-icon[color],mat-chip[color],mat-chip-option[color]mat-hint[color],", inputs: ["color"] }] }); }
430
430
  }
431
431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MatTimepickerComponentDialogComponent, decorators: [{
432
432
  type: Component,
@@ -1 +1 @@
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 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 Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {\n ClockViewType,\n ClockNumber,\n IAllowed24HourMap,\n} from '../interfaces-and-types';\nimport { getIsAvailabeFn } from '../util';\nimport { NgClass } from '@angular/common';\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: [NgClass, MatMiniFabButton, MatToolbar, OnemRvaColorDirective],\n})\nexport class ClockComponent implements OnChanges {\n @Input() viewType: ClockViewType = 'hours';\n @Input() formattedValue = 0;\n @Input() minDate!: Date;\n @Input() maxDate!: Date;\n @Input() formattedHours = 0;\n @Input() minutes!: number;\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() unavailableSelection: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidSelection: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() allowed24HourMap!: 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 if (!this.allowed24HourMap) {\n return;\n }\n this.isAvailableFn = getIsAvailabeFn(this.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(this.formattedValue, 'minutes', this.formattedHours)\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 if (this.minDate && this.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();\n return;\n }\n if (value !== this.formattedValue) {\n this.changeEvent.emit({\n value,\n type: this.viewType !== 'minutes' ? 'hours' : 'minutes',\n });\n if (this.viewType !== 'minutes') {\n if (!this.isAvailable(value)) {\n if (this.minDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.minDate.getMinutes(),\n type: 'minutes',\n });\n } else if (this.maxDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.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 [ngClass]=\"{\n 'small-pointer':\n viewType === 'hours' && (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 [ngClass]=\"{\n 'outer-dot-odd': 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 [ngClass]=\"{\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 [ngClass]=\"{\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 [ngClass]=\"{\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';\nimport { NgClass } from '@angular/common';\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 NgClass,\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 [ngClass]=\"{ 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 [ngClass]=\"{ 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 ></mat-clock>\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 EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n inject,\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';\nimport { ONEMRVA_THEME_CLASS } from '@onemrvapublic/design-system/shared';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'mat-timepicker',\n templateUrl: 'onemrva-mat-timepicker.component.html',\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 @Output('opened') readonly openedStream = new EventEmitter<void>();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('closed') readonly closedStream = new EventEmitter<void>();\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 @HostBinding('attr.aria-label')\n public ariaLabel = '';\n\n @Input()\n public dialogLabel = '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 @HostBinding('attr.role')\n public role = '';\n\n /**\n * Host `class.onemrva-mat-timepicker` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-timepicker')\n public cssClass = 'onemrva-mat-timepicker';\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 @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\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 @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\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 @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n HostAttributeToken,\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]': '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 @Input('for') timepicker!: OnemrvaMatTimepickerComponent;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input() ariaLabel = '';\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this.timepicker) {\n return this.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 @Input() disableRipple = 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 const defaultTabIndex = inject(new HostAttributeToken('tabindex'), {\n optional: true,\n });\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 if (this.timepicker && !this.disabled) {\n this.timepicker.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const datepickerStateChanged = this.timepicker\n ? this.timepicker.stateChanges\n : observableOf();\n const inputStateChanged =\n this.timepicker && this.timepicker.timepickerInput\n ? this.timepicker.timepickerInput.stateChanges\n : observableOf();\n const datepickerToggled = this.timepicker\n ? merge(this.timepicker.openedStream, this.timepicker.closedStream)\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]\"></ng-content>\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 EventEmitter,\n Input,\n ElementRef,\n OnChanges,\n Renderer2,\n NgZone,\n HostBinding,\n Output,\n HostListener,\n inject,\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 },\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 newState = this.errorStateMatcher\n ? this.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 @Input() errorStateMatcher: 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 @Input() okLabel = 'Ok';\n /** Override the label of the cancel button. */\n @Input() cancelLabel = 'Cancel';\n\n /** Sets the clock mode, 12-hour or 24-hour clocks are supported. */\n @Input() color = 'primary';\n @Input() disableDialogOpenOnClick = false;\n @Input() strict = true;\n\n controlType = 'angular-material-timepicker';\n\n @Input() minDate!: Date;\n @Input() maxDate!: 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 @Output() timeChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidInput: EventEmitter<any> = new EventEmitter<any>();\n\n @HostListener('input') 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();\n }\n\n this.writeValue(d, true);\n if (this.onChangeFn) {\n this.onChangeFn(d);\n }\n }\n\n @HostListener('keydown', ['$event']) 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 @HostListener('keyup', ['$event']) keyupHandler(event: any) {\n this.combination = this.combination.filter(v => v !== event.code);\n }\n\n @HostListener('focus') focusHandler() {\n this.isInputFocused = true;\n }\n\n @HostListener('focusout') 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 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(this.minDate, this.maxDate, currentDate);\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
+ {"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 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 Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {\n ClockViewType,\n ClockNumber,\n IAllowed24HourMap,\n} from '../interfaces-and-types';\nimport { getIsAvailabeFn } from '../util';\nimport { NgClass } from '@angular/common';\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: [NgClass, MatMiniFabButton, MatToolbar, OnemRvaColorDirective],\n})\nexport class ClockComponent implements OnChanges {\n @Input() viewType: ClockViewType = 'hours';\n @Input() formattedValue = 0;\n @Input() minDate!: Date;\n @Input() maxDate!: Date;\n @Input() formattedHours = 0;\n @Input() minutes!: number;\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() unavailableSelection: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidSelection: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() allowed24HourMap!: 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 if (!this.allowed24HourMap) {\n return;\n }\n this.isAvailableFn = getIsAvailabeFn(this.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(this.formattedValue, 'minutes', this.formattedHours)\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 if (this.minDate && this.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();\n return;\n }\n if (value !== this.formattedValue) {\n this.changeEvent.emit({\n value,\n type: this.viewType !== 'minutes' ? 'hours' : 'minutes',\n });\n if (this.viewType !== 'minutes') {\n if (!this.isAvailable(value)) {\n if (this.minDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.minDate.getMinutes(),\n type: 'minutes',\n });\n } else if (this.maxDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.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 [ngClass]=\"{\n 'small-pointer':\n viewType === 'hours' && (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 [ngClass]=\"{\n 'outer-dot-odd': 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 [ngClass]=\"{\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 [ngClass]=\"{\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 [ngClass]=\"{\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';\nimport { NgClass } from '@angular/common';\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 NgClass,\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 [ngClass]=\"{ 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 [ngClass]=\"{ 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 ></mat-clock>\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 EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n inject,\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';\nimport { ONEMRVA_THEME_CLASS } from '@onemrvapublic/design-system/shared';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'mat-timepicker',\n templateUrl: 'onemrva-mat-timepicker.component.html',\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 @Output('opened') readonly openedStream = new EventEmitter<void>();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('closed') readonly closedStream = new EventEmitter<void>();\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 @HostBinding('attr.aria-label')\n public ariaLabel = '';\n\n @Input()\n public dialogLabel = '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 @HostBinding('attr.role')\n public role = '';\n\n /**\n * Host `class.onemrva-mat-timepicker` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-timepicker')\n public cssClass = 'onemrva-mat-timepicker';\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 @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\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 @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\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 @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n HostAttributeToken,\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]': '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 @Input('for') timepicker!: OnemrvaMatTimepickerComponent;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input() ariaLabel = '';\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this.timepicker) {\n return this.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 @Input() disableRipple = 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 const defaultTabIndex = inject(new HostAttributeToken('tabindex'), {\n optional: true,\n });\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 if (this.timepicker && !this.disabled) {\n this.timepicker.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const datepickerStateChanged = this.timepicker\n ? this.timepicker.stateChanges\n : observableOf();\n const inputStateChanged =\n this.timepicker && this.timepicker.timepickerInput\n ? this.timepicker.timepickerInput.stateChanges\n : observableOf();\n const datepickerToggled = this.timepicker\n ? merge(this.timepicker.openedStream, this.timepicker.closedStream)\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]\"></ng-content>\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 EventEmitter,\n Input,\n ElementRef,\n OnChanges,\n Renderer2,\n NgZone,\n HostBinding,\n Output,\n HostListener,\n inject,\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 },\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 newState = this.errorStateMatcher\n ? this.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 @Input() errorStateMatcher: 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 @Input() okLabel = 'Ok';\n /** Override the label of the cancel button. */\n @Input() cancelLabel = 'Cancel';\n\n /** Sets the clock mode, 12-hour or 24-hour clocks are supported. */\n @Input() color = 'primary';\n @Input() disableDialogOpenOnClick = false;\n @Input() strict = true;\n\n controlType = 'angular-material-timepicker';\n\n @Input() minDate!: Date;\n @Input() maxDate!: 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 @Output() timeChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidInput: EventEmitter<any> = new EventEmitter<any>();\n\n @HostListener('input') 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();\n }\n\n this.writeValue(d, true);\n if (this.onChangeFn) {\n this.onChangeFn(d);\n }\n }\n\n @HostListener('keydown', ['$event']) 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 @HostListener('keyup', ['$event']) keyupHandler(event: any) {\n this.combination = this.combination.filter(v => v !== event.code);\n }\n\n @HostListener('focus') focusHandler() {\n this.isInputFocused = true;\n }\n\n @HostListener('focusout') 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 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(this.minDate, this.maxDate, currentDate);\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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"}
@@ -30,7 +30,7 @@ class OnemrvaMatToastComponent {
30
30
  >
31
31
  <span>{{ data.message }}</span>
32
32
  </div>
33
- `, isInline: true, styles: [":host .onemrva-mat-toast{position:relative;padding:var(--double-spacer);margin:-15px -17px;border-radius:4px 4px 0 0;background-color:var(--mat-sys-primary-container);color:var(--mat-sys-primary);border-bottom:1px solid var(--mat-sys-primary)}:host .onemrva-mat-toast span{margin-left:var(--spacer)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: OnemRvaColorDirective, selector: "onemrva-mat-selectable-box[color],div[color],onemrva-mat-avatar[color],mat-card[color],mat-toolbar[color],onemrva-mat-spinner[color],onemrva-mat-notification[color],onemrva-mat-task-list[color],onemrva-mat-sticker[color],onemrva-mat-panel[color],onemrva-mat-task[color],onemrva-mat-choice-chip[color],mat-form-field[color],button[color],mat-icon[color],mat-chip[color],mat-chip-option[color]", inputs: ["color"] }] }); }
33
+ `, isInline: true, styles: [":host .onemrva-mat-toast{position:relative;padding:var(--double-spacer);margin:-15px -17px;border-radius:4px 4px 0 0;background-color:var(--mat-sys-primary-container);color:var(--mat-sys-primary);border-bottom:1px solid var(--mat-sys-primary)}:host .onemrva-mat-toast span{margin-left:var(--spacer)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: OnemRvaColorDirective, selector: "onemrva-mat-selectable-box[color],div[color],onemrva-mat-avatar[color],mat-card[color],mat-toolbar[color],onemrva-mat-spinner[color],onemrva-mat-notification[color],onemrva-mat-task-list[color],onemrva-mat-sticker[color],onemrva-mat-panel[color],onemrva-mat-task[color],onemrva-mat-choice-chip[color],mat-form-field[color],button[color],mat-icon[color],mat-chip[color],mat-chip-option[color]mat-hint[color],", inputs: ["color"] }] }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OnemrvaMatToastComponent, decorators: [{
36
36
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-toast.mjs","sources":["../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.component.ts","../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.module.ts","../../../../projects/onemrva/design-system/mat-toast/index.ts","../../../../projects/onemrva/design-system/mat-toast/onemrvapublic-design-system-mat-toast.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { NgClass } from '@angular/common';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\n\nexport enum ToastType {\n info = 'info',\n success = 'success',\n warn = 'warn',\n error = 'error',\n accent = 'accent',\n primary = 'primary',\n}\n\n@Component({\n selector: 'onemrva-mat-toast',\n styleUrl: 'onemrva-mat-toast.component.scss',\n template: `\n <div\n class=\"onemrva-mat-toast show-icon\"\n [color]=\"data.type\"\n [ngClass]=\"data.type\"\n [attr.data-cy]=\"dataCy\"\n role=\"alert\"\n aria-atomic=\"true\"\n >\n <span>{{ data.message }}</span>\n </div>\n `,\n standalone: true,\n imports: [NgClass, OnemRvaColorDirective],\n})\nexport class OnemrvaMatToastComponent {\n dataCy: string;\n data = inject(MAT_SNACK_BAR_DATA) as {\n type: ToastType;\n message: string;\n dataCy?: string;\n };\n\n constructor() {\n this.dataCy = this.data.dataCy ? this.data.dataCy : 'onemrva-mat-toast';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { OnemrvaMatToastComponent } from './onemrva-mat-toast.component';\n\n@NgModule({\n imports: [OnemrvaMatToastComponent],\n exports: [OnemrvaMatToastComponent, MatSnackBarModule],\n})\nexport class OnemrvaMatToastModule {}\n","/*\n * Public API Surface of mat-toast\n */\n\nexport * from './src/onemrva-mat-toast.component';\nexport * from './src/onemrva-mat-toast.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;IAKY;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAPW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;MA2BR,wBAAwB,CAAA;AAQnC,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAI/B;QAGC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB;IACzE;8GAVW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAfzB;;;;;;;;;;;GAWT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAES,OAAO,oFAAE,qBAAqB,EAAA,QAAA,EAAA,yYAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE7B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAlBpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,QAAA,EAEnB;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA;;;MCtB9B,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,OAAA,EAAA,CAHtB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CACxB,wBAAwB,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAE1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAFI,iBAAiB,CAAA,EAAA,CAAA,CAAA;;2FAE1C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;AACvD,iBAAA;;;ACPD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-toast.mjs","sources":["../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.component.ts","../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.module.ts","../../../../projects/onemrva/design-system/mat-toast/index.ts","../../../../projects/onemrva/design-system/mat-toast/onemrvapublic-design-system-mat-toast.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { NgClass } from '@angular/common';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\n\nexport enum ToastType {\n info = 'info',\n success = 'success',\n warn = 'warn',\n error = 'error',\n accent = 'accent',\n primary = 'primary',\n}\n\n@Component({\n selector: 'onemrva-mat-toast',\n styleUrl: 'onemrva-mat-toast.component.scss',\n template: `\n <div\n class=\"onemrva-mat-toast show-icon\"\n [color]=\"data.type\"\n [ngClass]=\"data.type\"\n [attr.data-cy]=\"dataCy\"\n role=\"alert\"\n aria-atomic=\"true\"\n >\n <span>{{ data.message }}</span>\n </div>\n `,\n standalone: true,\n imports: [NgClass, OnemRvaColorDirective],\n})\nexport class OnemrvaMatToastComponent {\n dataCy: string;\n data = inject(MAT_SNACK_BAR_DATA) as {\n type: ToastType;\n message: string;\n dataCy?: string;\n };\n\n constructor() {\n this.dataCy = this.data.dataCy ? this.data.dataCy : 'onemrva-mat-toast';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { OnemrvaMatToastComponent } from './onemrva-mat-toast.component';\n\n@NgModule({\n imports: [OnemrvaMatToastComponent],\n exports: [OnemrvaMatToastComponent, MatSnackBarModule],\n})\nexport class OnemrvaMatToastModule {}\n","/*\n * Public API Surface of mat-toast\n */\n\nexport * from './src/onemrva-mat-toast.component';\nexport * from './src/onemrva-mat-toast.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;IAKY;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAPW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;MA2BR,wBAAwB,CAAA;AAQnC,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAI/B;QAGC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB;IACzE;8GAVW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAfzB;;;;;;;;;;;GAWT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAES,OAAO,oFAAE,qBAAqB,EAAA,QAAA,EAAA,yZAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE7B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAlBpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,QAAA,EAEnB;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAA,MAAA,EAAA,CAAA,+SAAA,CAAA,EAAA;;;MCtB9B,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,OAAA,EAAA,CAHtB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CACxB,wBAAwB,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAE1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAFI,iBAAiB,CAAA,EAAA,CAAA,CAAA;;2FAE1C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;AACvD,iBAAA;;;ACPD;;AAEG;;ACFH;;AAEG;;;;"}