@dhutaryan/ngx-mat-timepicker 16.0.1 → 16.0.2

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.
@@ -9,6 +9,10 @@ $inputs-separator-line-height: 1.25rem;
9
9
  $primary-opacity: 0.15;
10
10
 
11
11
  @mixin _color($palette) {
12
+ .mat-timepicker-toggle.mat-timepicker-toggle-active {
13
+ color: mat.get-color-from-palette($palette);
14
+ }
15
+
12
16
  .mat-time-period-item-active,
13
17
  .mat-clock-dial-value.mat-clock-dial-value-active {
14
18
  color: mat.get-color-from-palette($palette);
@@ -52,6 +56,10 @@ $primary-opacity: 0.15;
52
56
 
53
57
  @include _color(map.get($config, primary));
54
58
 
59
+ .mat-timepicker-toggle {
60
+ color: mat.get-color-from-palette($foreground, icon);
61
+ }
62
+
55
63
  .mat-timepicker-content {
56
64
  @include mat.elevation(4);
57
65
  background-color: mat.get-color-from-palette($background, card);
@@ -37,13 +37,14 @@ export class MatTimepickerToggle {
37
37
  }
38
38
  }
39
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: MatTimepickerToggle, deps: [{ token: 'tabindex', attribute: true }, { token: i1.MatTimepickerIntl }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: MatTimepickerToggle, selector: "mat-timepicker-toggle", inputs: { timepicker: ["for", "timepicker"], disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex", ariaLabel: ["aria-label", "ariaLabel"] }, host: { listeners: { "click": "open($event)" }, properties: { "attr.tabindex": "null" }, classAttribute: "mat-timepicker-toggle" }, queries: [{ propertyName: "customIcon", first: true, predicate: MatTimepickerToggleIcon, descendants: true }], exportAs: ["matTimepickerToggle"], ngImport: i0, template: "<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field .mat-form-field-prefix .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-timepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field .mat-form-field-prefix .mat-icon-button .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-icon-button .mat-timepicker-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: MatTimepickerToggle, selector: "mat-timepicker-toggle", inputs: { timepicker: ["for", "timepicker"], disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex", ariaLabel: ["aria-label", "ariaLabel"] }, host: { listeners: { "click": "open($event)" }, properties: { "attr.tabindex": "null", "class.mat-timepicker-toggle-active": "timepicker && timepicker.opened" }, classAttribute: "mat-timepicker-toggle" }, queries: [{ propertyName: "customIcon", first: true, predicate: MatTimepickerToggleIcon, descendants: true }], exportAs: ["matTimepickerToggle"], ngImport: i0, template: "<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field .mat-form-field-prefix .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-timepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field .mat-form-field-prefix .mat-icon-button .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-icon-button .mat-timepicker-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
41
41
  }
42
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: MatTimepickerToggle, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'mat-timepicker-toggle', exportAs: 'matTimepickerToggle', host: {
45
45
  class: 'mat-timepicker-toggle',
46
46
  '[attr.tabindex]': 'null',
47
+ '[class.mat-timepicker-toggle-active]': 'timepicker && timepicker.opened',
47
48
  '(click)': 'open($event)',
48
49
  }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field .mat-form-field-prefix .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-timepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field .mat-form-field-prefix .mat-icon-button .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-icon-button .mat-timepicker-toggle-default-icon{margin:auto}\n"] }]
49
50
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -65,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
65
66
  type: Input,
66
67
  args: ['aria-label']
67
68
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGltZXBpY2tlci9zcmMvbGliL3RpbWVwaWNrZXItdG9nZ2xlLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRpbWVwaWNrZXIvc3JjL2xpYi90aW1lcGlja2VyLXRvZ2dsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQU01RSxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTs7QUFnQnBELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsNkNBQTZDO0lBQzdDLElBQ0ksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBZUQsWUFDeUIsZUFBdUIsRUFDdkMsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFFL0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRO1lBQ1gsY0FBYyxJQUFJLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25FLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsSUFBSSxDQUFDLEtBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs4R0E3Q1UsbUJBQW1CLGtCQStCakIsVUFBVTtrR0EvQlosbUJBQW1CLDRZQXlCaEIsdUJBQXVCLG1GQ3ZEdkMsdXhCQTBCQTs7MkZESWEsbUJBQW1CO2tCQWIvQixTQUFTOytCQUNFLHVCQUF1QixZQUd2QixxQkFBcUIsUUFDekI7d0JBQ0osS0FBSyxFQUFFLHVCQUF1Qjt3QkFDOUIsaUJBQWlCLEVBQUUsTUFBTTt3QkFDekIsU0FBUyxFQUFFLGNBQWM7cUJBQzFCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWlDNUMsU0FBUzsyQkFBQyxVQUFVOzRFQTdCVCxVQUFVO3NCQUF2QixLQUFLO3VCQUFDLEtBQUs7Z0JBSVIsUUFBUTtzQkFEWCxLQUFLO2dCQWNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHaUMsVUFBVTtzQkFBaEQsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBR2hCLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIERpcmVjdGl2ZSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGQsXG4gIEF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IE1hdFRpbWVwaWNrZXIgfSBmcm9tICcuL3RpbWVwaWNrZXInO1xuaW1wb3J0IHsgTWF0VGltZXBpY2tlckludGwgfSBmcm9tICcuL3RpbWVwaWNrZXItaW50bCc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1ttYXRUaW1lcGlja2VyVG9nZ2xlSWNvbl0nIH0pXG5leHBvcnQgY2xhc3MgTWF0VGltZXBpY2tlclRvZ2dsZUljb24ge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LXRpbWVwaWNrZXItdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWVwaWNrZXItdG9nZ2xlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aW1lcGlja2VyLXRvZ2dsZS5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnbWF0VGltZXBpY2tlclRvZ2dsZScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ21hdC10aW1lcGlja2VyLXRvZ2dsZScsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcbiAgICAnKGNsaWNrKSc6ICdvcGVuKCRldmVudCknLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWF0VGltZXBpY2tlclRvZ2dsZTxUPiB7XG4gIC8qKiBUaW1lcGlja2VyIGluc3RhbmNlLiAqL1xuICBASW5wdXQoJ2ZvcicpIHRpbWVwaWNrZXI6IE1hdFRpbWVwaWNrZXI8VD47XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRvZ2dsZSBidXR0b24gaXMgZGlzYWJsZWQuICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT09IHVuZGVmaW5lZCAmJiB0aGlzLnRpbWVwaWNrZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLnRpbWVwaWNrZXIuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgcmlwcGxlcyBvbiB0aGUgdG9nZ2xlIHNob3VsZCBiZSBkaXNhYmxlZC4gKi9cbiAgQElucHV0KCkgZGlzYWJsZVJpcHBsZTogYm9vbGVhbjtcblxuICAvKiogVGFiaW5kZXggZm9yIHRoZSB0b2dnbGUuICovXG4gIEBJbnB1dCgpIHRhYkluZGV4OiBudW1iZXIgfCBudWxsO1xuXG4gIC8qKiBDdXN0b20gaWNvbiBzZXQgYnkgdGhlIGNvbnN1bWVyLiAqL1xuICBAQ29udGVudENoaWxkKE1hdFRpbWVwaWNrZXJUb2dnbGVJY29uKSBjdXN0b21JY29uOiBNYXRUaW1lcGlja2VyVG9nZ2xlSWNvbjtcblxuICAvKiogU2NyZWVuLXJlYWRlciBsYWJlbCBmb3IgdGhlIGJ1dHRvbi4gKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSBkZWZhdWx0VGFiSW5kZXg6IHN0cmluZyxcbiAgICBwdWJsaWMgX2ludGw6IE1hdFRpbWVwaWNrZXJJbnRsXG4gICkge1xuICAgIGNvbnN0IHBhcnNlZFRhYkluZGV4ID0gTnVtYmVyKGRlZmF1bHRUYWJJbmRleCk7XG4gICAgdGhpcy50YWJJbmRleCA9XG4gICAgICBwYXJzZWRUYWJJbmRleCB8fCBwYXJzZWRUYWJJbmRleCA9PT0gMCA/IHBhcnNlZFRhYkluZGV4IDogbnVsbDtcbiAgfVxuXG4gIC8qKiBPcGVucyB0aW1lcGlja2VyLiAqL1xuICBvcGVuKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVwaWNrZXIgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMudGltZXBpY2tlci5vcGVuKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgdHlwZT1cImJ1dHRvblwiXG4gICNidXR0b25cbiAgbWF0LWljb24tYnV0dG9uXG4gIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwidGltZXBpY2tlciA/ICdkaWFsb2cnIDogbnVsbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IF9pbnRsLm9wZW5UaW1lcGlja2VyTGFiZWxcIlxuICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IC0xIDogdGFiSW5kZXhcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbZGlzYWJsZVJpcHBsZV09XCJkaXNhYmxlUmlwcGxlXCJcbj5cbiAgPHN2Z1xuICAgIGNsYXNzPVwibWF0LXRpbWVwaWNrZXItdG9nZ2xlLWRlZmF1bHQtaWNvblwiXG4gICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgd2lkdGg9XCIyNFwiXG4gICAgaGVpZ2h0PVwiMjRcIlxuICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAqbmdJZj1cIiFjdXN0b21JY29uXCJcbiAgPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTEyLDJDNi41LDIsMiw2LjUsMiwxMnM0LjUsMTAsMTAsMTBzMTAtNC41LDEwLTEwUzE3LjUsMiwxMiwyeiBNMTIsMjBjLTQuNDEsMC04LTMuNTktOC04czMuNTktOCw4LThzOCwzLjU5LDgsOCBTMTYuNDEsMjAsMTIsMjB6IE0xMi41LDdIMTF2Nmw1LjIsMy4ybDAuOC0xLjNsLTQuNS0yLjdWN3pcIlxuICAgIC8+XG4gIDwvc3ZnPlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRUaW1lcGlja2VyVG9nZ2xlSWNvbl1cIj48L25nLWNvbnRlbnQ+XG48L2J1dHRvbj5cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGltZXBpY2tlci9zcmMvbGliL3RpbWVwaWNrZXItdG9nZ2xlLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRpbWVwaWNrZXIvc3JjL2xpYi90aW1lcGlja2VyLXRvZ2dsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQU01RSxNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTs7QUFpQnBELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsNkNBQTZDO0lBQzdDLElBQ0ksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBZUQsWUFDeUIsZUFBdUIsRUFDdkMsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFFL0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRO1lBQ1gsY0FBYyxJQUFJLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25FLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsSUFBSSxDQUFDLEtBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs4R0E3Q1UsbUJBQW1CLGtCQStCakIsVUFBVTtrR0EvQlosbUJBQW1CLHFkQXlCaEIsdUJBQXVCLG1GQ3hEdkMsdXhCQTBCQTs7MkZES2EsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLHVCQUF1QixZQUd2QixxQkFBcUIsUUFDekI7d0JBQ0osS0FBSyxFQUFFLHVCQUF1Qjt3QkFDOUIsaUJBQWlCLEVBQUUsTUFBTTt3QkFDekIsc0NBQXNDLEVBQUUsaUNBQWlDO3dCQUN6RSxTQUFTLEVBQUUsY0FBYztxQkFDMUIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBaUM1QyxTQUFTOzJCQUFDLFVBQVU7NEVBN0JULFVBQVU7c0JBQXZCLEtBQUs7dUJBQUMsS0FBSztnQkFJUixRQUFRO3NCQURYLEtBQUs7Z0JBY0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdpQyxVQUFVO3NCQUFoRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFHaEIsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgRGlyZWN0aXZlLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHsgTWF0VGltZXBpY2tlciB9IGZyb20gJy4vdGltZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRUaW1lcGlja2VySW50bCB9IGZyb20gJy4vdGltZXBpY2tlci1pbnRsJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW21hdFRpbWVwaWNrZXJUb2dnbGVJY29uXScgfSlcbmV4cG9ydCBjbGFzcyBNYXRUaW1lcGlja2VyVG9nZ2xlSWNvbiB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtdGltZXBpY2tlci10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZXBpY2tlci10b2dnbGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVwaWNrZXItdG9nZ2xlLnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdtYXRUaW1lcGlja2VyVG9nZ2xlJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbWF0LXRpbWVwaWNrZXItdG9nZ2xlJyxcbiAgICAnW2F0dHIudGFiaW5kZXhdJzogJ251bGwnLFxuICAgICdbY2xhc3MubWF0LXRpbWVwaWNrZXItdG9nZ2xlLWFjdGl2ZV0nOiAndGltZXBpY2tlciAmJiB0aW1lcGlja2VyLm9wZW5lZCcsXG4gICAgJyhjbGljayknOiAnb3BlbigkZXZlbnQpJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdFRpbWVwaWNrZXJUb2dnbGU8VD4ge1xuICAvKiogVGltZXBpY2tlciBpbnN0YW5jZS4gKi9cbiAgQElucHV0KCdmb3InKSB0aW1lcGlja2VyOiBNYXRUaW1lcGlja2VyPFQ+O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSB0b2dnbGUgYnV0dG9uIGlzIGRpc2FibGVkLiAqL1xuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkID09PSB1bmRlZmluZWQgJiYgdGhpcy50aW1lcGlja2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy50aW1lcGlja2VyLmRpc2FibGVkO1xuICAgIH1cblxuICAgIHJldHVybiAhIXRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIHJpcHBsZXMgb24gdGhlIHRvZ2dsZSBzaG91bGQgYmUgZGlzYWJsZWQuICovXG4gIEBJbnB1dCgpIGRpc2FibGVSaXBwbGU6IGJvb2xlYW47XG5cbiAgLyoqIFRhYmluZGV4IGZvciB0aGUgdG9nZ2xlLiAqL1xuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyIHwgbnVsbDtcblxuICAvKiogQ3VzdG9tIGljb24gc2V0IGJ5IHRoZSBjb25zdW1lci4gKi9cbiAgQENvbnRlbnRDaGlsZChNYXRUaW1lcGlja2VyVG9nZ2xlSWNvbikgY3VzdG9tSWNvbjogTWF0VGltZXBpY2tlclRvZ2dsZUljb247XG5cbiAgLyoqIFNjcmVlbi1yZWFkZXIgbGFiZWwgZm9yIHRoZSBidXR0b24uICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBBdHRyaWJ1dGUoJ3RhYmluZGV4JykgZGVmYXVsdFRhYkluZGV4OiBzdHJpbmcsXG4gICAgcHVibGljIF9pbnRsOiBNYXRUaW1lcGlja2VySW50bFxuICApIHtcbiAgICBjb25zdCBwYXJzZWRUYWJJbmRleCA9IE51bWJlcihkZWZhdWx0VGFiSW5kZXgpO1xuICAgIHRoaXMudGFiSW5kZXggPVxuICAgICAgcGFyc2VkVGFiSW5kZXggfHwgcGFyc2VkVGFiSW5kZXggPT09IDAgPyBwYXJzZWRUYWJJbmRleCA6IG51bGw7XG4gIH1cblxuICAvKiogT3BlbnMgdGltZXBpY2tlci4gKi9cbiAgb3BlbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50aW1lcGlja2VyICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnRpbWVwaWNrZXIub3BlbigpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIHR5cGU9XCJidXR0b25cIlxuICAjYnV0dG9uXG4gIG1hdC1pY29uLWJ1dHRvblxuICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cInRpbWVwaWNrZXIgPyAnZGlhbG9nJyA6IG51bGxcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCBfaW50bC5vcGVuVGltZXBpY2tlckxhYmVsXCJcbiAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4XCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2Rpc2FibGVSaXBwbGVdPVwiZGlzYWJsZVJpcHBsZVwiXG4+XG4gIDxzdmdcbiAgICBjbGFzcz1cIm1hdC10aW1lcGlja2VyLXRvZ2dsZS1kZWZhdWx0LWljb25cIlxuICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgIHdpZHRoPVwiMjRcIlxuICAgIGhlaWdodD1cIjI0XCJcbiAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgKm5nSWY9XCIhY3VzdG9tSWNvblwiXG4gID5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0xMiwyQzYuNSwyLDIsNi41LDIsMTJzNC41LDEwLDEwLDEwczEwLTQuNSwxMC0xMFMxNy41LDIsMTIsMnogTTEyLDIwYy00LjQxLDAtOC0zLjU5LTgtOHMzLjU5LTgsOC04czgsMy41OSw4LDggUzE2LjQxLDIwLDEyLDIweiBNMTIuNSw3SDExdjZsNS4yLDMuMmwwLjgtMS4zbC00LjUtMi43Vjd6XCJcbiAgICAvPlxuICA8L3N2Zz5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0VGltZXBpY2tlclRvZ2dsZUljb25dXCI+PC9uZy1jb250ZW50PlxuPC9idXR0b24+XG4iXX0=
@@ -96,13 +96,14 @@ class MatTimepickerToggle {
96
96
  }
97
97
  }
98
98
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: MatTimepickerToggle, deps: [{ token: 'tabindex', attribute: true }, { token: MatTimepickerIntl }], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: MatTimepickerToggle, selector: "mat-timepicker-toggle", inputs: { timepicker: ["for", "timepicker"], disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex", ariaLabel: ["aria-label", "ariaLabel"] }, host: { listeners: { "click": "open($event)" }, properties: { "attr.tabindex": "null" }, classAttribute: "mat-timepicker-toggle" }, queries: [{ propertyName: "customIcon", first: true, predicate: MatTimepickerToggleIcon, descendants: true }], exportAs: ["matTimepickerToggle"], ngImport: i0, template: "<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field .mat-form-field-prefix .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-timepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field .mat-form-field-prefix .mat-icon-button .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-icon-button .mat-timepicker-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: MatTimepickerToggle, selector: "mat-timepicker-toggle", inputs: { timepicker: ["for", "timepicker"], disabled: "disabled", disableRipple: "disableRipple", tabIndex: "tabIndex", ariaLabel: ["aria-label", "ariaLabel"] }, host: { listeners: { "click": "open($event)" }, properties: { "attr.tabindex": "null", "class.mat-timepicker-toggle-active": "timepicker && timepicker.opened" }, classAttribute: "mat-timepicker-toggle" }, queries: [{ propertyName: "customIcon", first: true, predicate: MatTimepickerToggleIcon, descendants: true }], exportAs: ["matTimepickerToggle"], ngImport: i0, template: "<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field .mat-form-field-prefix .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-timepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field .mat-form-field-prefix .mat-icon-button .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-icon-button .mat-timepicker-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
100
100
  }
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: MatTimepickerToggle, decorators: [{
102
102
  type: Component,
103
103
  args: [{ selector: 'mat-timepicker-toggle', exportAs: 'matTimepickerToggle', host: {
104
104
  class: 'mat-timepicker-toggle',
105
105
  '[attr.tabindex]': 'null',
106
+ '[class.mat-timepicker-toggle-active]': 'timepicker && timepicker.opened',
106
107
  '(click)': 'open($event)',
107
108
  }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field .mat-form-field-prefix .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-timepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field .mat-form-field-prefix .mat-icon-button .mat-timepicker-toggle-default-icon,.mat-form-field .mat-form-field-suffix .mat-icon-button .mat-timepicker-toggle-default-icon{margin:auto}\n"] }]
108
109
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"dhutaryan-ngx-mat-timepicker.mjs","sources":["../../../projects/mat-timepicker/src/lib/timepicker-scroll-strategy.ts","../../../projects/mat-timepicker/src/lib/timepicker-intl.ts","../../../projects/mat-timepicker/src/lib/timepicker-toggle.ts","../../../projects/mat-timepicker/src/lib/timepicker-toggle.html","../../../projects/mat-timepicker/src/lib/timepicker-animations.ts","../../../projects/mat-timepicker/src/lib/minutes-clock-dial.ts","../../../projects/mat-timepicker/src/lib/minutes-clock-dial.html","../../../projects/mat-timepicker/src/lib/hours-clock-dial.ts","../../../projects/mat-timepicker/src/lib/hours-clock-dial.html","../../../projects/mat-timepicker/src/lib/adapter/time-adapter.ts","../../../projects/mat-timepicker/src/lib/adapter/native-date-time-adapter.ts","../../../projects/mat-timepicker/src/lib/adapter/index.ts","../../../projects/mat-timepicker/src/lib/time-face-base.ts","../../../projects/mat-timepicker/src/lib/time-input-base.ts","../../../projects/mat-timepicker/src/lib/clock-dial-adnimation.ts","../../../projects/mat-timepicker/src/lib/timepicker-content-layout.ts","../../../projects/mat-timepicker/src/lib/timepicker-content-layout.html","../../../projects/mat-timepicker/src/lib/time-period.ts","../../../projects/mat-timepicker/src/lib/time-period.html","../../../projects/mat-timepicker/src/lib/clock-dials.ts","../../../projects/mat-timepicker/src/lib/clock-dials.html","../../../projects/mat-timepicker/src/lib/time-inputs.ts","../../../projects/mat-timepicker/src/lib/time-inputs.html","../../../projects/mat-timepicker/src/lib/time-selection-model.ts","../../../projects/mat-timepicker/src/lib/timepicker-content.ts","../../../projects/mat-timepicker/src/lib/timepicker-content.html","../../../projects/mat-timepicker/src/lib/timepicker-actions-default.ts","../../../projects/mat-timepicker/src/lib/timepicker-base.ts","../../../projects/mat-timepicker/src/lib/timepicker.ts","../../../projects/mat-timepicker/src/lib/timepicker-input-base.ts","../../../projects/mat-timepicker/src/lib/timepicker-input.ts","../../../projects/mat-timepicker/src/lib/timepicker-actions.ts","../../../projects/mat-timepicker/src/lib/timepicker.module.ts","../../../projects/mat-timepicker/src/public-api.ts","../../../projects/mat-timepicker/src/dhutaryan-ngx-mat-timepicker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\n\n/** Injection token that determines the scroll handling while the timepicker is open. */\nexport const MAT_TIMEPICKER_SCROLL_STRATEGY = new InjectionToken<\n () => ScrollStrategy\n>('mat-timepicker-scroll-strategy');\n\n/** Timepicker scroll strategy factory. */\nexport function MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY(\n overlay: Overlay\n): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** Timepicker scroll strategy provider. */\nexport const MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_TIMEPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY,\n};\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MatTimepickerIntl {\n /** A label for inputs title. */\n inputsTitle = 'Enter time';\n\n /** A label for dials title. */\n dialsTitle = 'Select time';\n\n /** A label for hour input hint. */\n hourInputHint = 'Hour';\n\n /** A label for minute input hint. */\n minuteInputHint = 'Minute';\n\n /** Label for the button used to open the timepicker popup (used by screen readers). */\n openTimepickerLabel = 'Open timepicker';\n\n /** Label for the button used to close the timepicker popup (used by screen readers). */\n closeTimepickerLabel = 'Close timepicker';\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Directive,\n ViewEncapsulation,\n Input,\n ContentChild,\n Attribute,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { MatTimepicker } from './timepicker';\nimport { MatTimepickerIntl } from './timepicker-intl';\n\n@Directive({ selector: '[matTimepickerToggleIcon]' })\nexport class MatTimepickerToggleIcon {}\n\n@Component({\n selector: 'mat-timepicker-toggle',\n templateUrl: './timepicker-toggle.html',\n styleUrls: ['./timepicker-toggle.scss'],\n exportAs: 'matTimepickerToggle',\n host: {\n class: 'mat-timepicker-toggle',\n '[attr.tabindex]': 'null',\n '(click)': 'open($event)',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatTimepickerToggle<T> {\n /** Timepicker instance. */\n @Input('for') timepicker: MatTimepicker<T>;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.timepicker) {\n return this.timepicker.disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Whether ripples on the toggle should be disabled. */\n @Input() disableRipple: boolean;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Custom icon set by the consumer. */\n @ContentChild(MatTimepickerToggleIcon) customIcon: MatTimepickerToggleIcon;\n\n /** Screen-reader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n constructor(\n @Attribute('tabindex') defaultTabIndex: string,\n public _intl: MatTimepickerIntl\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex =\n parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n /** Opens timepicker. */\n open(event: Event): void {\n if (this.timepicker && !this.disabled) {\n this.timepicker.open();\n event.stopPropagation();\n }\n }\n}\n","<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n keyframes,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by the timepicker. */\nexport const matTimepickerAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n readonly fadeInTimepicker: AnimationTriggerMetadata;\n} = {\n /** Transforms the height of the timepicker's. */\n transformPanel: trigger('transformPanel', [\n transition(\n 'void => enter-dropdown',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(1, 0.8)' }),\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n ])\n )\n ),\n transition(\n 'void => enter-dialog',\n animate(\n '150ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0.7)' }),\n style({ transform: 'none', opacity: 1 }),\n ])\n )\n ),\n transition('* => void', animate('100ms linear', style({ opacity: 0 }))),\n ]),\n\n /** Fades in the content of the timepicker. */\n fadeInTimepicker: trigger('fadeInTimepicker', [\n state('void', style({ opacity: 0 })),\n state('enter', style({ opacity: 1 })),\n ]),\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { debounceTime, fromEvent, merge, take } from 'rxjs';\n\nimport { ClockDialViewCell } from './hours-clock-dial';\nimport { ThemePalette } from '@angular/material/core';\n\nexport const ALL_MINUTES = Array(60)\n .fill(null)\n .map((_, i) => i);\n\nconst CLOCK_RADIUS = 128;\nconst CLOCK_TICK_RADIUS = 16;\nconst CLOCK_CORRECTED_RADIUS = CLOCK_RADIUS - CLOCK_TICK_RADIUS;\nconst CLOCK_OUTER_RADIUS = 100;\n\n@Component({\n selector: 'mat-minutes-clock-dial',\n templateUrl: 'minutes-clock-dial.html',\n styleUrls: ['clock-dial.scss'],\n exportAs: 'matMinutesClockDial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-clock-dial mat-clock-dial-minutes',\n '(mousedown)': '_onUserAction($event)',\n '(touchstart)': '_onUserAction($event)',\n },\n})\nexport class MatMinutesClockDial implements OnInit {\n /** Selected minute. */\n @Input()\n get selectedMinute(): number {\n return this._selectedMinute;\n }\n set selectedMinute(value: number) {\n this._selectedMinute = value;\n }\n private _selectedMinute = 0;\n\n /** Step over minutes. */\n @Input()\n get interval(): number {\n return this._interval;\n }\n set interval(value: number) {\n this._interval = coerceNumberProperty(value) || 1;\n }\n private _interval: number = 1;\n\n @Input()\n get availableMinutes(): number[] {\n return this._availableMinutes;\n }\n set availableMinutes(value: number[]) {\n this._availableMinutes = value;\n this._initMinutes();\n }\n private _availableMinutes: number[] = [];\n\n /** Color palette. */\n @Input() color: ThemePalette;\n\n /** Emits selected minute. */\n @Output() selectedChange = new EventEmitter<number>();\n\n minutes: ClockDialViewCell[] = [];\n\n get disabled(): boolean {\n return !this.availableMinutes.includes(this.selectedMinute);\n }\n\n get isMinutePoint(): boolean {\n return !!this.minutes.find((hour) => hour.value === this.selectedMinute);\n }\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: Document,\n @Inject(Window) private _window: Window\n ) {}\n\n ngOnInit(): void {\n this._initMinutes();\n }\n\n /** Hand styles based on selected minute. */\n _handStyles(): any {\n const deg = Math.round(this._selectedMinute * (360 / 60));\n const height = CLOCK_OUTER_RADIUS;\n const marginTop = CLOCK_RADIUS - CLOCK_OUTER_RADIUS;\n\n return {\n transform: `rotate(${deg}deg)`,\n height: `${height}px`,\n 'margin-top': `${marginTop}px`,\n };\n }\n\n /** Handles mouse and touch events on dial and document. */\n _onUserAction(event: MouseEvent | TouchEvent): void {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n this._setMinute(event);\n\n const eventsSubscription = merge(\n fromEvent<MouseEvent>(this._document, 'mousemove'),\n fromEvent<TouchEvent>(this._document, 'touchmove')\n )\n .pipe(debounceTime(0))\n .subscribe({\n next: (event) => {\n event.preventDefault();\n this._setMinute(event);\n },\n });\n\n merge(\n fromEvent<MouseEvent>(this._document, 'mouseup'),\n fromEvent<TouchEvent>(this._document, 'touchend')\n )\n .pipe(take(1))\n .subscribe({\n next: () => {\n eventsSubscription.unsubscribe();\n },\n });\n }\n\n _isActiveCell(minute: number): boolean {\n return this.selectedMinute === minute;\n }\n\n _trackBy(index: number, cell: ClockDialViewCell): number {\n return cell.value;\n }\n\n private _setMinute(event: MouseEvent | TouchEvent): void {\n const element = this._element.nativeElement;\n const elementRect = element.getBoundingClientRect();\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n const pageX =\n event instanceof MouseEvent ? event.pageX : event.touches[0].pageX;\n const pageY =\n event instanceof MouseEvent ? event.pageY : event.touches[0].pageY;\n const x = width / 2 - (pageX - elementRect.left - this._window.scrollX);\n const y = height / 2 - (pageY - elementRect.top - this._window.scrollY);\n const unit = Math.PI / (30 / this.interval);\n const atan2 = Math.atan2(-x, y);\n const radian = atan2 < 0 ? Math.PI * 2 + atan2 : atan2;\n const initialValue = Math.round(radian / unit) * this.interval;\n const value = initialValue === 60 ? 0 : initialValue;\n\n if (\n this.availableMinutes.includes(value) &&\n this.availableMinutes.includes(value)\n ) {\n this.selectedMinute = value;\n this.selectedChange.emit(this.selectedMinute);\n }\n\n this._cdr.detectChanges();\n }\n\n /** Creates list of minutes. */\n private _initMinutes(): void {\n this.minutes = ALL_MINUTES.filter((minute) => minute % 5 === 0).map(\n (minute) => {\n const radian = (minute / 30) * Math.PI;\n const displayValue = minute === 0 ? '00' : String(minute);\n\n return {\n value: minute,\n displayValue,\n left: CLOCK_CORRECTED_RADIUS + Math.sin(radian) * CLOCK_OUTER_RADIUS,\n top: CLOCK_CORRECTED_RADIUS - Math.cos(radian) * CLOCK_OUTER_RADIUS,\n disabled: !this.availableMinutes.includes(minute),\n };\n }\n );\n }\n}\n","<div\n class=\"mat-clock-dial-hand\"\n [class.mat-clock-dial-hand-pointless]=\"isMinutePoint\"\n [class.mat-clock-dial-hand-disabled]=\"disabled\"\n [ngStyle]=\"_handStyles()\"\n>\n <div class=\"mat-clock-dial-hand-point\" tabindex=\"0\"></div>\n</div>\n<ng-template ngFor let-minute [ngForOf]=\"minutes\" [ngForTrackBy]=\"_trackBy\">\n <button\n class=\"mat-clock-dial-cell\"\n mat-mini-fab\n disableRipple\n [tabIndex]=\"_isActiveCell(minute.value) ? 0 : -1\"\n [style.left.px]=\"minute.left\"\n [style.top.px]=\"minute.top\"\n [class.mat-clock-dial-cell-active]=\"_isActiveCell(minute.value)\"\n [class.mat-clock-dial-cell-disabled]=\"minute.disabled\"\n [color]=\"_isActiveCell(minute.value) ? color : undefined\"\n [attr.aria-disabled]=\"minute.disabled || null\"\n >\n {{ minute.displayValue }}\n </button>\n</ng-template>\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { debounceTime, fromEvent, merge, take } from 'rxjs';\n\nexport interface ClockDialViewCell {\n value: number;\n displayValue: string;\n left: number;\n top: number;\n disabled: boolean;\n}\n\nexport const ALL_HOURS = Array(24)\n .fill(null)\n .map((_, i) => i);\nconst CLOCK_RADIUS = 128;\nconst CLOCK_TICK_RADIUS = 16;\nconst CLOCK_CORRECTED_RADIUS = CLOCK_RADIUS - CLOCK_TICK_RADIUS;\nconst CLOCK_OUTER_RADIUS = 100;\nconst CLOCK_INNER_RADIUS = CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS * 2;\n\n@Component({\n selector: 'mat-hours-clock-dial',\n templateUrl: 'hours-clock-dial.html',\n styleUrls: ['clock-dial.scss'],\n exportAs: 'matHoursClockDial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-clock-dial mat-clock-dial-hours',\n '(mousedown)': '_onUserAction($event)',\n '(touchstart)': '_onUserAction($event)',\n },\n})\nexport class MatHoursClockDial implements OnInit {\n /** Selected hour. */\n @Input()\n get selectedHour(): number {\n return this._selectedHour;\n }\n set selectedHour(value: number) {\n this._selectedHour = value;\n }\n private _selectedHour: number;\n\n /** Whether the clock uses 12 hour format. */\n @Input()\n get isMeridiem(): boolean {\n return this._isMeridiem;\n }\n set isMeridiem(value: boolean) {\n this._isMeridiem = value;\n }\n private _isMeridiem: boolean;\n\n @Input()\n get availableHours(): number[] {\n return this._availableHours;\n }\n set availableHours(value: number[]) {\n this._availableHours = value;\n this._initHours();\n }\n private _availableHours: number[] = [];\n\n /** Color palette. */\n @Input() color: ThemePalette;\n\n /** Emits selected hour. */\n @Output() selectedChange = new EventEmitter<{\n hour: number;\n changeView?: boolean;\n }>();\n\n hours: ClockDialViewCell[] = [];\n\n get disabledHand(): boolean {\n return !this.availableHours.includes(this.selectedHour);\n }\n\n get isHour(): boolean {\n return !!this.hours.find((hour) => hour.value === this.selectedHour);\n }\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: Document,\n @Inject(Window) private _window: Window\n ) {}\n\n ngOnInit(): void {\n this._initHours();\n }\n\n /** Hand styles based on selected hour. */\n _handStyles(): any {\n const deg = Math.round(this.selectedHour * (360 / (24 / 2)));\n const radius = this._getRadius(this.selectedHour);\n const height = radius;\n const marginTop = CLOCK_RADIUS - radius;\n\n return {\n transform: `rotate(${deg}deg)`,\n height: `${height}px`,\n 'margin-top': `${marginTop}px`,\n };\n }\n\n /** Handles mouse and touch events on dial and document. */\n _onUserAction(event: MouseEvent | TouchEvent): void {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n this._setHour(event);\n\n const eventsSubscription = merge(\n fromEvent<MouseEvent>(this._document, 'mousemove'),\n fromEvent<TouchEvent>(this._document, 'touchmove')\n )\n .pipe(debounceTime(0))\n .subscribe({\n next: (event) => {\n event.preventDefault();\n this._setHour(event);\n },\n });\n\n merge(\n fromEvent<MouseEvent>(this._document, 'mouseup'),\n fromEvent<TouchEvent>(this._document, 'touchend')\n )\n .pipe(take(1))\n .subscribe({\n next: () => {\n eventsSubscription.unsubscribe();\n this.selectedChange.emit({\n hour: this.selectedHour,\n changeView: true,\n });\n },\n });\n }\n\n _isActiveCell(hour: number): boolean {\n return this.selectedHour === hour;\n }\n\n _trackBy(index: number, cell: ClockDialViewCell): number {\n return cell.value;\n }\n\n /** Changes selected hour based on coordinates. */\n private _setHour(event: MouseEvent | TouchEvent): void {\n const element = this._element.nativeElement;\n const elementRect = element.getBoundingClientRect();\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n const pageX =\n event instanceof MouseEvent ? event.pageX : event.touches[0].pageX;\n const pageY =\n event instanceof MouseEvent ? event.pageY : event.touches[0].pageY;\n const x = width / 2 - (pageX - elementRect.left - this._window.scrollX);\n const y = height / 2 - (pageY - elementRect.top - this._window.scrollY);\n const unit = Math.PI / 6;\n const atan2 = Math.atan2(-x, y);\n const radian = atan2 < 0 ? Math.PI * 2 + atan2 : atan2;\n const initialValue = Math.round(radian / unit);\n const z = Math.sqrt(x * x + y * y);\n const outer = z > CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS;\n const value = this._getHourValue(initialValue, outer);\n\n if (this.availableHours.includes(value)) {\n this.selectedHour = value;\n this.selectedChange.emit({\n hour: this.selectedHour,\n });\n }\n\n this._cdr.detectChanges();\n }\n\n /** Return value of hour. */\n private _getHourValue(value: number, outer: boolean): number {\n const edgeValue = value === 0 || value === 12;\n\n if (this.isMeridiem) {\n return edgeValue ? 12 : value;\n }\n\n if (outer) {\n return edgeValue ? 0 : value;\n }\n\n return edgeValue ? 12 : value + 12;\n }\n\n /** Creates list of hours. */\n private _initHours(): void {\n const initialHours = this.isMeridiem ? ALL_HOURS.slice(1, 13) : ALL_HOURS;\n\n this.hours = initialHours.map((hour) => {\n const radian = (hour / 6) * Math.PI;\n const radius = this._getRadius(hour);\n\n return {\n value: hour,\n displayValue: hour === 0 ? '00' : String(hour),\n left: CLOCK_CORRECTED_RADIUS + Math.sin(radian) * radius,\n top: CLOCK_CORRECTED_RADIUS - Math.cos(radian) * radius,\n disabled: !this.availableHours.includes(hour),\n };\n });\n }\n\n /** Returns radius based on hour */\n private _getRadius(hour: number): number {\n if (this.isMeridiem) {\n return CLOCK_OUTER_RADIUS;\n }\n\n const outer = hour >= 0 && hour < 12;\n const radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;\n\n return radius;\n }\n}\n","<div\n class=\"mat-clock-dial-hand\"\n [class.mat-clock-dial-hand-pointless]=\"isHour\"\n [class.mat-clock-dial-hand-disabled]=\"disabledHand\"\n [ngStyle]=\"_handStyles()\"\n></div>\n<ng-template ngFor let-hour [ngForOf]=\"hours\" [ngForTrackBy]=\"_trackBy\">\n <button\n class=\"mat-clock-dial-cell\"\n mat-mini-fab\n disableRipple\n [tabIndex]=\"_isActiveCell(hour.value) ? 0 : -1\"\n [style.left.px]=\"hour.left\"\n [style.top.px]=\"hour.top\"\n [class.mat-clock-dial-cell-active]=\"_isActiveCell(hour.value)\"\n [class.mat-clock-dial-cell-disabled]=\"hour.disabled\"\n [color]=\"_isActiveCell(hour.value) ? color : undefined\"\n [attr.aria-disabled]=\"hour.disabled || null\"\n >\n {{ hour.displayValue }}\n </button>\n</ng-template>\n","import { InjectionToken, LOCALE_ID } from '@angular/core';\nimport { MatTimePeriodType } from '../time-period';\n\n/** InjectionToken for timepicker that can be used to override default locale code. */\nexport const MAT_TIME_LOCALE = new InjectionToken<string>('MAT_TIME_LOCALE');\n\n/** Provider for MAT_TIME_LOCALE injection token. */\nexport const MAT_TIME_LOCALE_PROVIDER = {\n provide: MAT_TIME_LOCALE,\n useExisting: LOCALE_ID,\n};\n\nexport abstract class TimeAdapter<T, L = any> {\n /** The locale to use for time. */\n protected locale: L;\n\n /**\n * Gets now's time.\n * @returns Now's time.\n */\n abstract now(): T;\n\n /**\n * Parses a time from a user-provided value.\n * @param value The value to parse.\n * @param parseFormat The expected format of the value being parsed\n * (type is implementation-dependent).\n * @returns The parsed time.\n */\n abstract parse(value: any, parseFormat: any): T | null;\n\n /**\n * Gets the hour component of the given time.\n * @param time The time to extract the hour from.\n * @returns The hour component.\n */\n abstract getHour(time: T): number;\n\n /**\n * Gets the minute component of the given time.\n * @param time The time to extract the minute from.\n * @returns The minute component.\n */\n abstract getMinute(time: T): number;\n\n /**\n * Update the hour component of the given time.\n * @param time The time to update the hour.\n * @param hour The new hour to update given time.\n * @returns The new time with updated hour component.\n */\n abstract updateHour(time: T, hour: number): T;\n\n /**\n * Update the minute component of the given time.\n * @param time The time to update the minute.\n * @param minute The new minute to update given time.\n * @returns The new time with updated minute component.\n */\n abstract updateMinute(time: T, minute: number): T;\n\n /**\n * Gets the period component of the given time.\n * @param time The time to extract the period from.\n * @returns The period component.\n */\n abstract getPeriod(time: T): MatTimePeriodType;\n\n /**\n * Formats a time as a string according to the given format.\n * @param time The value to format.\n * @param displayFormat The format to use to display the time as a string.\n * @returns The formatted time string.\n */\n abstract format(time: T, displayFormat: any): string;\n\n /**\n * Checks whether the given object is considered a time instance by this timeAdapter.\n * @param obj The object to check\n * @returns Whether the object is a time instance.\n */\n abstract isTimeInstance(obj: any): boolean;\n\n /**\n * Checks whether the given time is valid.\n * @param time The time to check.\n * @returns Whether the time is valid.\n */\n abstract isValid(time: T): boolean;\n\n /**\n * Gets time instance that is not valid.\n * @returns An invalid time.\n */\n abstract invalid(): T;\n\n /**\n * Given a potential time object, returns that same time object if it is\n * a valid time, or `null` if it's not a valid time.\n * @param obj The object to check.\n * @returns A time or `null`.\n */\n getValidTimeOrNull(obj: unknown): T | null {\n return this.isTimeInstance(obj) && this.isValid(obj as T)\n ? (obj as T)\n : null;\n }\n\n /**\n * Attempts to deserialize a value to a valid time object. The `<mat-timepicker>` will call this\n * method on all of its `@Input()` properties that accept time. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a time object.\n * @returns The deserialized time object, either a valid time, null if the value can be\n * deserialized into a null time (e.g. the empty string), or an invalid date.\n */\n deserialize(value: any): T | null {\n if (value == null || (this.isTimeInstance(value) && this.isValid(value))) {\n return value;\n }\n return this.invalid();\n }\n\n /**\n * Sets the locale used for all time.\n * @param locale The new locale.\n */\n setLocale(locale: L) {\n this.locale = locale;\n }\n\n /**\n * Compares two time.\n * @param first The first time to compare.\n * @param second The second time to compare.\n * @returns 0 if the time are equal, a number less than 0 if the first time is earlier,\n * a number greater than 0 if the first time is later.\n */\n abstract compareTime(first: T, second: T): number;\n\n /**\n * Checks if two time are equal.\n * @param first The first time to check.\n * @param second The second time to check.\n * @returns Whether the two time are equal.\n * Null time are considered equal to other null time.\n */\n sameTime(first: T | null, second: T | null): boolean {\n if (first && second) {\n let firstValid = this.isValid(first);\n let secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareTime(first, second);\n }\n return firstValid == secondValid;\n }\n return first == second;\n }\n\n /**\n * Clamp the given time between min and max time.\n * @param time The time to clamp.\n * @param min The minimum value to allow. If null or omitted no min is enforced.\n * @param max The maximum value to allow. If null or omitted no max is enforced.\n * @returns `min` if `time` is less than `min`, `max` if time is greater than `max`,\n * otherwise `time`.\n */\n clampTime(time: T, min?: T | null, max?: T | null): T {\n if (min && this.compareTime(time, min) < 0) {\n return min;\n }\n if (max && this.compareTime(time, max) > 0) {\n return max;\n }\n return time;\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\n\nimport { MAT_TIME_LOCALE, TimeAdapter } from './time-adapter';\nimport { MatTimePeriodType } from '../time-period';\n\n/**\n * Matches strings that have the form of a valid RFC 3339 string\n * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date\n * because the regex will match strings an with out of bounds month, date, etc.\n */\nconst ISO_8601_REGEX =\n /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n\n/** Adapts the native JS Date for components that work with time. */\n@Injectable()\nexport class NativeDateTimeAdapter extends TimeAdapter<Date> {\n constructor(@Optional() @Inject(MAT_TIME_LOCALE) matTimeLocale: string) {\n super();\n super.setLocale(matTimeLocale);\n }\n\n now(): Date {\n return new Date();\n }\n\n parse(value: any, parseFormat?: any): Date | null {\n // We have no way using the native JS Date to set the parse format or locale, so we ignore these\n // parameters.\n if (typeof value == 'number') {\n return new Date(value);\n }\n\n const { hour, minute } = this.parseTime(value);\n const date = new Date();\n date.setHours(Number(hour));\n date.setMinutes(Number(minute));\n\n return value ? new Date(date) : null;\n }\n\n parseTime(value: string) {\n const [hour, minute] = value\n .replace(/(\\sam|\\spm|\\sAM|\\sPM|am|pm|AM|PM)/g, '')\n .split(':');\n\n return { hour, minute };\n }\n\n getHour(date: Date): number {\n return date.getHours();\n }\n\n getMinute(date: Date): number {\n return date.getMinutes();\n }\n\n updateHour(date: Date, hour: number): Date {\n const copy = new Date(date.getTime());\n copy.setHours(hour);\n\n return copy;\n }\n\n updateMinute(date: Date, minute: number): Date {\n const copy = new Date(date.getTime());\n copy.setMinutes(minute);\n\n return copy;\n }\n\n getPeriod(date: Date): MatTimePeriodType {\n return date.getHours() < 12 ? 'am' : 'pm';\n }\n\n format(date: Date, displayFormat: Object): string {\n if (!this.isValid(date)) {\n throw Error('NativeDateTimeAdapter: Cannot format invalid date.');\n }\n\n const dtf = new Intl.DateTimeFormat(this.locale, {\n ...displayFormat,\n timeZone: 'utc',\n });\n\n return this._format(dtf, date);\n }\n\n /**\n * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n * invalid date for all other values.\n */\n override deserialize(value: any): Date | null {\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the\n // string is the right format first.\n if (ISO_8601_REGEX.test(value)) {\n const date = new Date(value);\n if (this.isValid(date)) {\n return date;\n }\n }\n }\n return super.deserialize(value);\n }\n\n isTimeInstance(obj: any): boolean {\n return obj instanceof Date;\n }\n\n isValid(date: Date): boolean {\n return !isNaN(date.getTime());\n }\n\n invalid(): Date {\n return new Date(NaN);\n }\n\n compareTime(first: Date, second: Date): number {\n return (\n first.getHours() - second.getHours() ||\n first.getMinutes() - second.getMinutes()\n );\n }\n\n /**\n * When converting Date object to string, javascript built-in functions may return wrong\n * results because it applies its internal DST rules. The DST rules around the world change\n * very frequently, and the current valid rule is not always valid in previous years though.\n * We work around this problem building a new Date object which has its internal UTC\n * representation with the local date and time.\n * @param dtf Intl.DateTimeFormat object, containing the desired string format. It must have\n * timeZone set to 'utc' to work fine.\n * @param date Date from which we want to get the string representation according to dtf\n * @returns A Date object with its UTC representation based on the passed in date info\n */\n private _format(dtf: Intl.DateTimeFormat, date: Date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setUTCFullYear` and `setUTCHours` instead.\n const d = new Date();\n d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n d.setUTCHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n );\n return dtf.format(d);\n }\n}\n","import { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\n\nimport { MAT_TIME_LOCALE_PROVIDER, TimeAdapter } from './time-adapter';\nimport { NativeDateTimeAdapter } from './native-date-time-adapter';\n\nexport * from './time-adapter';\nexport * from './native-date-time-adapter';\n\n@NgModule({\n imports: [PlatformModule],\n providers: [\n { provide: TimeAdapter, useClass: NativeDateTimeAdapter },\n MAT_TIME_LOCALE_PROVIDER,\n ],\n})\nexport class MatNativeDateTimeModule {}\n","import {\n AfterContentInit,\n AfterViewChecked,\n Directive,\n EventEmitter,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\n\nimport { TimeAdapter } from './adapter';\nimport { MatTimePeriodType } from './time-period';\nimport { ALL_MINUTES } from './minutes-clock-dial';\nimport { ALL_HOURS } from './hours-clock-dial';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\n@Directive()\nexport abstract class MatTimeFaceBase<T>\n implements AfterContentInit, AfterViewChecked\n{\n /** The currently selected time. */\n @Input()\n get selected(): T | null {\n return this._selected;\n }\n set selected(value: T | null) {\n this._selected = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (!this._selected) {\n return;\n }\n\n const hour = this._timeAdapter.getHour(this._selected);\n this.selectedHour = hour > 12 && this.isMeridiem ? hour - 12 : hour;\n if (hour === 0 && this.isMeridiem) {\n this.selectedHour = 12;\n }\n this.selectedMinute = this._timeAdapter.getMinute(this._selected);\n this.availableHours = ALL_HOURS;\n\n if (this.isMeridiem) {\n this.period = this._timeAdapter.getPeriod(this._selected);\n }\n\n this.availableMinutes = ALL_MINUTES;\n this._setMinHour();\n this._setMaxHour();\n this._setMinMinute();\n this._setMaxMinute();\n this._moveFocusOnNextTick = true;\n }\n private _selected: T | null;\n\n /** The minimum selectable time. */\n @Input()\n get minTime(): T | null {\n return this._minTime;\n }\n set minTime(value: T | null) {\n this._minTime = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (value) {\n this._setMinHour();\n this._setMinMinute();\n this._setDisabledPeriod();\n }\n }\n private _minTime: T | null;\n\n /** The maximum selectable time. */\n @Input()\n get maxTime(): T | null {\n return this._maxTime;\n }\n set maxTime(value: T | null) {\n this._maxTime = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (value) {\n this._setMaxHour();\n this._setMaxMinute();\n this._setDisabledPeriod();\n }\n }\n private _maxTime: T | null;\n\n /** Step over minutes. */\n @Input()\n get minuteInterval(): number {\n return this._minuteInterval;\n }\n set minuteInterval(value: number) {\n this._minuteInterval = coerceNumberProperty(value) || 1;\n }\n private _minuteInterval: number = 1;\n\n /** Whether the clock uses 12 hour format. */\n @Input() isMeridiem: boolean;\n\n /** Color palette. */\n @Input() color: ThemePalette = 'primary';\n\n /** Emits when any hour, minute or period is selected. */\n @Output() _userSelection = new EventEmitter<T>();\n\n @Output() selectedChange = new EventEmitter<T>();\n\n selectedHour: number = 0;\n selectedMinute: number = 0;\n period: MatTimePeriodType;\n disabledPeriod: MatTimePeriodType | null = null;\n availableMinutes = ALL_MINUTES;\n availableHours = ALL_HOURS;\n\n /**\n * Used for scheduling that focus should be moved to the active cell on the next tick.\n * We need to schedule it, rather than do it immediately, because we have to wait\n * for Angular to re-evaluate the view children.\n */\n private _moveFocusOnNextTick = false;\n\n constructor(@Optional() protected _timeAdapter: TimeAdapter<T>) {}\n\n ngAfterContentInit() {\n if (!this.selected) {\n this.selected = this._timeAdapter.clampTime(\n this._timeAdapter.now(),\n this.minTime,\n this.maxTime\n );\n this._userSelection.emit(this.selected);\n }\n }\n\n ngAfterViewChecked() {\n if (this._moveFocusOnNextTick) {\n this._moveFocusOnNextTick = false;\n this.focusActiveCell();\n }\n }\n\n /**\n * Focuses the active cell after or input the microtask queue is empty.\n *\n * Adding a 0ms setTimeout seems to fix Voiceover losing focus when pressing PageUp/PageDown.\n *\n * Determined a 0ms by gradually increasing duration from 0 and testing two use cases with screen\n * reader enabled:\n *\n * 1. Pressing PageUp/PageDown repeatedly with pausing between each key press.\n * 2. Pressing and holding the PageDown key with repeated keys enabled.\n *\n * Test 1 worked roughly 95-99% of the time with 0ms and got a little bit better as the duration\n * increased. Test 2 got slightly better until the duration was long enough to interfere with\n * repeated keys. If the repeated key speed was faster than the timeout duration, then pressing\n * and holding pagedown caused the entire page to scroll.\n *\n * Since repeated key speed can verify across machines, determined that any duration could\n * potentially interfere with repeated keys. 0ms would be best because it almost entirely\n * eliminates the focus being lost in Voiceover without causing unintended side effects.\n * Adding delay also complicates writing tests.\n */\n abstract focusActiveCell(): void;\n\n /** Handles hour selection. */\n _onHourSelected(hour: number): void {\n this.selectedHour = hour;\n const selected = this._timeAdapter.updateHour(\n this.selected!,\n this._getHourBasedOnPeriod(hour)\n );\n this._timeSelected(selected);\n }\n\n /** Handles minute selection. */\n _onMinuteSelected(minute: number): void {\n this.selectedMinute = minute;\n const selected = this._timeAdapter.updateMinute(this.selected!, minute);\n this._timeSelected(selected);\n }\n\n /** Handles period changing. */\n _onPeriodChanged(period: MatTimePeriodType): void {\n this.period = period;\n const selected = this._timeAdapter.updateHour(\n this.selected!,\n this._getHourBasedOnPeriod(this.selectedHour)\n );\n this._timeSelected(selected);\n }\n\n _getAvailableHours(): number[] {\n if (this.isMeridiem) {\n return this.availableHours\n .filter((h) => {\n if (this.period === 'am') {\n return h < 12;\n }\n\n if (this.period === 'pm') {\n return h >= 12;\n }\n\n return h;\n })\n .map((h) => {\n if (h > 12) {\n return h - 12;\n }\n\n if (h === 0) {\n return 12;\n }\n\n return h;\n });\n }\n\n return this.availableHours;\n }\n\n _onKeydown(event: KeyboardEvent, view: 'hour' | 'minute'): void {\n switch (view) {\n case 'hour':\n this._handleHourKeydown(event);\n break;\n case 'minute':\n this._handleMinuteKeydown(event);\n break;\n }\n }\n\n private _handleHourKeydown(event: KeyboardEvent): void {\n const hours = this._getAvailableHours();\n const selectedHourIndex = hours.findIndex(\n (hour) => hour === this.selectedHour\n );\n\n if (!hours.length) {\n return;\n }\n\n switch (event.keyCode) {\n case UP_ARROW:\n if (selectedHourIndex + 1 >= hours.length || selectedHourIndex < 0) {\n this._onHourSelected(hours[0]);\n } else {\n this._onHourSelected(hours[selectedHourIndex + 1]);\n }\n break;\n case DOWN_ARROW:\n if (selectedHourIndex - 1 < 0 || selectedHourIndex < 0) {\n this._onHourSelected(hours[hours.length - 1]);\n } else {\n this._onHourSelected(hours[selectedHourIndex - 1]);\n }\n break;\n default:\n break;\n }\n }\n\n private _handleMinuteKeydown(event: KeyboardEvent): void {\n const minutes = this.availableMinutes;\n const selectedMinuteIndex = minutes.findIndex(\n (minute) => minute === this.selectedMinute\n );\n\n if (!minutes.length) {\n return;\n }\n\n switch (event.keyCode) {\n case UP_ARROW:\n if (\n selectedMinuteIndex + this.minuteInterval >= minutes.length ||\n selectedMinuteIndex < 0\n ) {\n const difference =\n 60 - this.selectedMinute + Math.min(...this.availableMinutes);\n const count = Math.ceil(difference / this.minuteInterval);\n const differenceForValid = count * this.minuteInterval;\n const nextValidValue = this.selectedMinute + differenceForValid;\n const correctIndex = minutes.findIndex(\n (minute) => minute === nextValidValue - 60 // amount of mins\n );\n this._onMinuteSelected(minutes[correctIndex]);\n } else {\n this._onMinuteSelected(\n minutes[selectedMinuteIndex + this.minuteInterval]\n );\n }\n break;\n case DOWN_ARROW:\n if (\n selectedMinuteIndex - this.minuteInterval < 0 ||\n selectedMinuteIndex < 0\n ) {\n const difference =\n 60 + this.selectedMinute - Math.max(...this.availableMinutes);\n const count = Math.ceil(difference / this.minuteInterval);\n const differenceForValid = count * this.minuteInterval;\n const nextValidValue = this.selectedMinute - differenceForValid;\n const correctIndex = minutes.findIndex(\n (minute) => minute === nextValidValue + 60 // amount of mins\n );\n this._onMinuteSelected(minutes[correctIndex]);\n } else {\n this._onMinuteSelected(\n minutes[selectedMinuteIndex - this.minuteInterval]\n );\n }\n break;\n default:\n break;\n }\n }\n\n /** Gets a correct hours based on meridiem and period. */\n private _getHourBasedOnPeriod(hour: number): number {\n const afterNoon = this.isMeridiem && this.period === 'pm';\n const beforeNoon = this.isMeridiem && this.period === 'am';\n\n if (afterNoon) {\n return hour === 12 ? hour : hour + 12;\n }\n\n if (beforeNoon) {\n return hour === 12 ? 0 : hour;\n }\n\n return hour;\n }\n\n private _timeSelected(value: T): void {\n if (value && !this._timeAdapter.sameTime(value, this.selected)) {\n this.selectedChange.emit(value);\n }\n\n this._userSelection.emit(value);\n }\n\n /** Sets min hour. */\n private _setMinHour(): void {\n if (!this.minTime) {\n return;\n }\n\n const minHour = this._timeAdapter.getHour(this.minTime);\n this.availableHours = this.availableHours.filter((h) => h >= minHour);\n }\n\n /** Sets max hour. */\n private _setMaxHour(): void {\n if (!this.maxTime) {\n return;\n }\n\n const maxHour = this._timeAdapter.getHour(this.maxTime);\n this.availableHours = this.availableHours.filter((h) => h <= maxHour);\n }\n\n /** Sets min minute. */\n private _setMinMinute(): void {\n if (!this.selected || !this.minTime) {\n return;\n }\n\n const selectedHour = this._timeAdapter.getHour(this.selected);\n const minHour = this._timeAdapter.getHour(this.minTime);\n\n const minMinute =\n selectedHour > minHour ? 0 : this._timeAdapter.getMinute(this.minTime);\n\n this.availableMinutes = this.availableMinutes.filter(\n (minute) => minute >= minMinute\n );\n\n if (selectedHour < minHour) {\n this.availableMinutes = [];\n }\n }\n\n /** Sets max minute. */\n private _setMaxMinute(): void {\n if (!this.selected || !this.maxTime) {\n return;\n }\n\n const selectedHour = this._timeAdapter.getHour(this.selected);\n const maxHour = this._timeAdapter.getHour(this.maxTime);\n\n const maxMinute =\n selectedHour < maxHour ? 59 : this._timeAdapter.getMinute(this.maxTime);\n\n this.availableMinutes = this.availableMinutes.filter(\n (minute) => minute <= maxMinute\n );\n\n if (selectedHour > maxHour) {\n this.availableMinutes = [];\n }\n }\n\n /** Sets disabled period. */\n private _setDisabledPeriod(): void {\n if (this.minTime) {\n const minHour = this._timeAdapter.getHour(this.minTime);\n\n if (minHour >= 12) {\n this.disabledPeriod = 'am';\n }\n }\n\n if (this.maxTime) {\n const maxHour = this._timeAdapter.getHour(this.maxTime);\n const maxMinute = this._timeAdapter.getHour(this.maxTime);\n\n if (maxHour < 12 || (maxHour === 12 && maxMinute === 0)) {\n this.disabledPeriod = 'pm';\n }\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Input,\n Output,\n EventEmitter,\n Directive,\n ElementRef,\n ChangeDetectorRef,\n Inject,\n Self,\n} from '@angular/core';\n\nexport function withZeroPrefix(value: number): string {\n return value < 10 ? `0${value}` : `${value}`;\n}\n\nexport function withZeroPrefixMeridiem(\n value: number,\n isMeridiem: boolean\n): string {\n const newValue = isMeridiem && value === 0 ? 12 : value;\n\n return withZeroPrefix(newValue);\n}\n\n@Directive()\nexport abstract class MatTimeInputBase {\n @Input()\n get value(): number {\n return this._value;\n }\n set value(value: number) {\n this._value = value;\n if (!this.hasFocus) {\n this.setInputValue(this._value);\n }\n // we need timeout here to set placeholder first time\n setTimeout(() => {\n this.setInputPlaceholder(this._value);\n }, 0);\n }\n private _value: number;\n\n @Output() timeChanged = new EventEmitter<number>();\n\n get inputElement() {\n return this.element.nativeElement as HTMLInputElement;\n }\n\n get hasFocus() {\n return this.element?.nativeElement === this._document.activeElement;\n }\n\n constructor(\n private element: ElementRef<HTMLInputElement>,\n private _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: Document\n ) {}\n\n focus() {\n this.setInputValue(null);\n }\n\n blur() {\n const isNumber = !isNaN(Number(this.inputElement.value));\n const value = this._formatValue(\n isNumber ? Number(this.inputElement.value || this._value) : this.value\n );\n this.setInputValue(value);\n this.setInputPlaceholder(value);\n this.timeChanged.emit(value);\n }\n\n setInputValue(value: number | null) {\n if (value !== null) {\n this.inputElement.value = this._withZeroPrefix(value);\n } else {\n this.inputElement.value = '';\n }\n\n this._cdr.markForCheck();\n }\n\n setInputPlaceholder(value: number) {\n this.inputElement.placeholder = this._withZeroPrefix(value);\n this._cdr.markForCheck();\n }\n\n abstract _withZeroPrefix(value: number): string;\n\n abstract _formatValue(value: number): number;\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nconst visible = { transform: 'scale(1)', opacity: 1, visibility: 'visible' };\nconst hidden = { transform: 'scale(1.05)', opacity: 0, visibility: 'hidden' };\n\nexport const enterLeaveAnimation = trigger('enterLeaveAnimation', [\n transition(':enter', [\n style(hidden),\n animate('0.1s ease-out', style(visible)),\n ]),\n transition(':leave', [style(visible), animate('0s ease-in', style(hidden))]),\n]);\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { TimepickerOrientation } from './orientation';\n\n@Component({\n selector: 'mat-timepicker-content-layout',\n templateUrl: './timepicker-content-layout.html',\n styleUrls: ['./timepicker-content-layout.scss'],\n exportAs: 'matTimepickerContent',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-content-layout',\n '[class.mat-timepicker-content-layout-horizontal]':\n 'orientation === \"horizontal\"',\n '[class.mat-timepicker-content-layout-vertical]':\n 'orientation === \"vertical\"',\n },\n})\nexport class MatTimepickerContentLayout {\n /** Content title. */\n @Input() title: string;\n\n /** Layout orientation. */\n @Input() orientation: TimepickerOrientation = 'vertical';\n}\n","<h6 class=\"mat-timepicker-content-layout-title\">{{ title }}</h6>\n\n<div class=\"mat-timepicker-content-layout-container\">\n <div class=\"mat-timepicker-content-layout-values\">\n <div class=\"mat-timepicker-content-layout-hours\">\n <ng-content select=\"[hours]\"></ng-content>\n </div>\n <span class=\"mat-timepicker-content-layout-separator\">&#58;</span>\n <div class=\"mat-timepicker-content-layout-minutes\">\n <ng-content select=\"[minutes]\"></ng-content>\n </div>\n\n <ng-content select=\"[mat-time-period]\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport type MatTimePeriodType = 'am' | 'pm';\n\n@Component({\n selector: 'mat-time-period',\n templateUrl: './time-period.html',\n styleUrls: ['./time-period.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-time-period',\n '[class.mat-time-period-vertical]': 'vertical',\n '[class.mat-time-period-horizontal]': '!vertical',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n },\n})\nexport class MatTimePeriod {\n /** Whether the time period is vertically aligned. */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n set vertical(value: BooleanInput) {\n this._vertical = coerceBooleanProperty(value);\n }\n private _vertical: boolean = true;\n\n @Input()\n get period(): MatTimePeriodType {\n return this._period;\n }\n set period(value: MatTimePeriodType) {\n this._period = value || 'am';\n }\n private _period: MatTimePeriodType = 'am';\n\n @Input()\n get disabledPeriod(): MatTimePeriodType | null {\n return this._disabledPeriod;\n }\n set disabledPeriod(value: MatTimePeriodType | null) {\n this._disabledPeriod = value;\n }\n private _disabledPeriod: MatTimePeriodType | null = null;\n\n @Output() periodChanged = new EventEmitter<MatTimePeriodType>();\n\n setPeriod(event: Event, period: MatTimePeriodType): void {\n event.preventDefault();\n this.period = period;\n this.periodChanged.emit(period);\n }\n\n _isPeriodDisabled(period: MatTimePeriodType): boolean {\n if (!this.disabledPeriod) {\n return false;\n }\n\n return this.disabledPeriod === period;\n }\n}\n","<div\n tabindex=\"0\"\n class=\"mat-time-period-item\"\n matRipple\n [class.mat-time-period-item-active]=\"period === 'am'\"\n [class.mat-time-period-item-disabled]=\"_isPeriodDisabled('am')\"\n (click)=\"setPeriod($event,'am')\"\n (keydown.space)=\"setPeriod($event, 'am')\"\n>\n AM\n</div>\n<mat-divider [vertical]=\"!vertical\"></mat-divider>\n<div\n tabindex=\"0\"\n class=\"mat-time-period-item\"\n matRipple\n [class.mat-time-period-item-active]=\"period === 'pm'\"\n [class.mat-time-period-item-disabled]=\"_isPeriodDisabled('pm')\"\n (click)=\"setPeriod($event,'pm')\"\n (keydown.space)=\"setPeriod($event, 'pm')\"\n>\n PM\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n Optional,\n NgZone,\n ElementRef,\n Input,\n} from '@angular/core';\nimport { BehaviorSubject, Subscription, take } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\nimport { MatTimeFaceBase } from './time-face-base';\nimport { withZeroPrefixMeridiem } from './time-input-base';\nimport { MatTimepickerIntl } from './timepicker-intl';\nimport { TimepickerOrientation } from './orientation';\nimport { enterLeaveAnimation } from './clock-dial-adnimation';\n\nexport type MatDialView = 'hours' | 'minutes';\n\n@Component({\n selector: 'mat-clock-dials',\n templateUrl: './clock-dials.html',\n styleUrls: ['./clock-dials.scss'],\n exportAs: 'matClockDials',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'dial',\n class: 'mat-clock-dials',\n },\n animations: [enterLeaveAnimation],\n})\nexport class MatClockDials<T>\n extends MatTimeFaceBase<T>\n implements OnInit, OnDestroy\n{\n /** Layout orientation. */\n @Input() orientation: TimepickerOrientation;\n\n isHoursView = true;\n\n /** Specifies the view of clock dial. */\n private readonly _view = new BehaviorSubject<MatDialView>('hours');\n private _viewSubscription: Subscription | null = Subscription.EMPTY;\n\n constructor(\n public _intl: MatTimepickerIntl,\n @Optional() _timeAdapter: TimeAdapter<T>,\n private _ngZone: NgZone,\n private _elementRef: ElementRef\n ) {\n super(_timeAdapter);\n }\n\n ngOnInit(): void {\n this._viewSubscription = this._view.subscribe(\n (view) => (this.isHoursView = view === 'hours')\n );\n }\n\n ngOnDestroy(): void {\n this._viewSubscription?.unsubscribe();\n this._viewSubscription = null;\n }\n\n /** Changes clock dial view. */\n onViewChange(event: Event, view: MatDialView): void {\n event.preventDefault();\n this._view.next(view);\n }\n\n focusActiveCell(): void {\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n setTimeout(() => {\n const activeCell: HTMLElement | null =\n this._elementRef.nativeElement.querySelector(\n '.mat-clock-dial-cell-active'\n );\n\n if (activeCell) {\n activeCell.focus();\n return;\n }\n\n const activePoint: HTMLElement | null =\n this._elementRef.nativeElement.querySelector(\n '.mat-clock-dial-hand-point'\n );\n\n if (activePoint) {\n // if no active cell we need to focus a small dot\n activePoint.focus();\n }\n }, 50);\n });\n });\n }\n\n _withZeroPrefix(value: number): string {\n if (value === 0) {\n return '00';\n }\n\n return withZeroPrefixMeridiem(value, this.isMeridiem);\n }\n\n /** Handles hour selection. */\n _onHourChanged({\n hour,\n changeView = false,\n }: {\n hour: number;\n changeView?: boolean;\n }): void {\n if (changeView) {\n this._view.next('minutes');\n }\n this._onHourSelected(hour);\n }\n}\n","<mat-timepicker-content-layout\n [title]=\"_intl.dialsTitle\"\n [orientation]=\"orientation\"\n>\n <div\n tabindex=\"0\"\n class=\"mat-clock-dial-value\"\n hours\n [class.mat-clock-dial-value-active]=\"isHoursView\"\n (click)=\"onViewChange($event,'hours')\"\n (keydown.space)=\"onViewChange($event, 'hours')\"\n >\n {{ _withZeroPrefix(selectedHour) }}\n </div>\n <div\n tabindex=\"0\"\n class=\"mat-clock-dial-value\"\n minutes\n [class.mat-clock-dial-value-active]=\"!isHoursView\"\n (click)=\"onViewChange($event,'minutes')\"\n (keydown.space)=\"onViewChange($event,'minutes')\"\n >\n {{ _withZeroPrefix(selectedMinute) }}\n </div>\n\n <ng-template mat-time-period [ngIf]=\"isMeridiem\">\n <mat-time-period\n [period]=\"period\"\n [disabledPeriod]=\"disabledPeriod\"\n [vertical]=\"orientation === 'vertical'\"\n (periodChanged)=\"_onPeriodChanged($event)\"\n ></mat-time-period>\n </ng-template>\n\n <div\n class=\"mat-clock-dial-faces\"\n [class.mat-clock-dial-faces-horizontal]=\"orientation === 'horizontal'\"\n >\n <ng-template [ngIf]=\"isHoursView\">\n <mat-hours-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedHour]=\"selectedHour\"\n [isMeridiem]=\"isMeridiem\"\n [availableHours]=\"_getAvailableHours()\"\n (selectedChange)=\"_onHourChanged($event)\"\n (keydown)=\"_onKeydown($event, 'hour')\"\n ></mat-hours-clock-dial>\n </ng-template>\n <ng-template [ngIf]=\"!isHoursView\">\n <mat-minutes-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedMinute]=\"selectedMinute\"\n [interval]=\"minuteInterval\"\n [availableMinutes]=\"availableMinutes\"\n (selectedChange)=\"_onMinuteSelected($event)\"\n (keydown)=\"_onKeydown($event, 'minute')\"\n ></mat-minutes-clock-dial>\n </ng-template>\n </div>\n</mat-timepicker-content-layout>\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Optional,\n Directive,\n Input,\n ElementRef,\n ChangeDetectorRef,\n Inject,\n NgZone,\n} from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { take } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\nimport { MatTimeFaceBase } from './time-face-base';\nimport { MatTimepickerIntl } from './timepicker-intl';\nimport {\n MatTimeInputBase,\n withZeroPrefix,\n withZeroPrefixMeridiem,\n} from './time-input-base';\n\n@Directive({\n selector: 'input[matHourInput]',\n exportAs: 'matTimeInput',\n host: {\n class: 'mat-time-input',\n '(focus)': 'focus($event)',\n '(blur)': 'blur($event)',\n },\n})\nexport class MatHourInput extends MatTimeInputBase {\n @Input()\n get availableHours(): number[] {\n return this._availableHours;\n }\n set availableHours(value: number[]) {\n this._availableHours = value;\n }\n private _availableHours: number[] = [];\n\n @Input() isMeridiem: boolean;\n\n constructor(\n element: ElementRef<HTMLInputElement>,\n _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) _document: Document\n ) {\n super(element, _cdr, _document);\n }\n\n _withZeroPrefix(value: number): string {\n return withZeroPrefixMeridiem(value, this.isMeridiem);\n }\n\n _formatValue(hour: number): number {\n const getValue = () => {\n if (this.isMeridiem) {\n if (hour === 0 || hour === 24) {\n return 12;\n }\n }\n\n if (hour === 24) {\n return 0;\n }\n\n return this.isMeridiem && hour > 12 ? hour - 12 : hour;\n };\n\n const value = getValue();\n\n if (this.isMeridiem) {\n if (!this.availableHours.length) {\n return this.value;\n }\n\n if (value === 12 && this.availableHours.includes(12)) {\n return 12;\n }\n\n if (value === 12 && !this.availableHours.includes(12)) {\n return Math.min(...this.availableHours);\n }\n\n if (value >= 1 && value < 12) {\n // the last item is max becuase 12 at the beginning is kinda \"min\"\n const maxHour = this.availableHours[this.availableHours.length - 1];\n\n return Math.min(\n Math.max(value, Math.min(...this.availableHours)),\n maxHour\n );\n }\n }\n\n return Math.min(\n Math.max(value, Math.min(...this.availableHours)),\n Math.max(...this.availableHours)\n );\n }\n}\n\n@Directive({\n selector: 'input[matMinuteInput]',\n exportAs: 'matTimeInput',\n host: {\n class: 'mat-time-input',\n '(focus)': 'focus($event)',\n '(blur)': 'blur($event)',\n },\n})\nexport class MatMinuteInput extends MatTimeInputBase {\n /** Step over minutes. */\n @Input()\n get interval(): number {\n return this._interval;\n }\n set interval(value: number) {\n this._interval = coerceNumberProperty(value) || 1;\n }\n private _interval: number = 1;\n\n @Input()\n get availableMinutes(): number[] {\n return this._availableMinutes;\n }\n set availableMinutes(value: number[]) {\n this._availableMinutes = value;\n }\n private _availableMinutes: number[] = [];\n\n constructor(\n element: ElementRef<HTMLInputElement>,\n _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) _document: Document\n ) {\n super(element, _cdr, _document);\n }\n\n _withZeroPrefix(value: number): string {\n return withZeroPrefix(value);\n }\n\n _formatValue(value: number): number {\n if (!this.availableMinutes.length) {\n return this.value;\n }\n\n const roundedValue = Math.round(value / this.interval) * this.interval;\n\n return Math.min(\n Math.max(roundedValue, Math.min(...this.availableMinutes)),\n Math.max(...this.availableMinutes)\n );\n }\n}\n\n@Component({\n selector: 'mat-time-inputs',\n templateUrl: './time-inputs.html',\n styleUrls: ['./time-inputs.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-time-inputs',\n },\n})\nexport class MatTimeInputs<T> extends MatTimeFaceBase<T> {\n constructor(\n public _intl: MatTimepickerIntl,\n @Optional() _timeAdapter: TimeAdapter<T>,\n private _ngZone: NgZone,\n private _elementRef: ElementRef\n ) {\n super(_timeAdapter);\n }\n\n /**\n * Using for skipping that focus shouldn't be moved to the active cell on the next tick.\n * We need to use it to avoid focusing input for input mode.\n */\n private _skipNextTickFocus = false;\n\n focusActiveCell(): void {\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n setTimeout(() => {\n const activeCell: HTMLElement | null =\n this._elementRef.nativeElement.querySelector(\n '.mat-timepicker-content input' // to avoid focus for inline mode\n );\n if (activeCell && !this._skipNextTickFocus) {\n activeCell.focus();\n this._skipNextTickFocus = true;\n }\n });\n });\n });\n }\n}\n","<mat-timepicker-content-layout [title]=\"_intl.inputsTitle\">\n <mat-form-field\n class=\"mat-time-inputs-field\"\n appearance=\"outline\"\n hours\n [color]=\"color\"\n >\n <input\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"2\"\n matInput\n matHourInput\n [isMeridiem]=\"isMeridiem\"\n [value]=\"selectedHour\"\n [availableHours]=\"_getAvailableHours()\"\n (timeChanged)=\"_onHourSelected($event)\"\n (keydown)=\"_onKeydown($event, 'hour')\"\n />\n <mat-hint>{{_intl.hourInputHint}}</mat-hint>\n </mat-form-field>\n <mat-form-field\n class=\"mat-time-inputs-field\"\n appearance=\"outline\"\n minutes\n [color]=\"color\"\n >\n <input\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"2\"\n matInput\n matMinuteInput\n [value]=\"selectedMinute\"\n [interval]=\"minuteInterval\"\n [availableMinutes]=\"availableMinutes\"\n (timeChanged)=\"_onMinuteSelected($event)\"\n (keydown)=\"_onKeydown($event, 'minute')\"\n />\n <mat-hint>{{_intl.minuteInputHint}}</mat-hint>\n </mat-form-field>\n\n <ng-template mat-time-period [ngIf]=\"isMeridiem\">\n <mat-time-period\n [period]=\"period\"\n [disabledPeriod]=\"disabledPeriod\"\n (periodChanged)=\"_onPeriodChanged($event)\"\n ></mat-time-period>\n </ng-template>\n</mat-timepicker-content-layout>\n","import {\n FactoryProvider,\n Injectable,\n OnDestroy,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\n\nexport type ExtractTimeTypeFromSelection<T> = NonNullable<T>;\n\n/**\n * Event emitted by the time selection model when its selection changes.\n * @docs-private\n */\nexport interface TimeSelectionModelChange<S> {\n /** New value for the selection. */\n selection: S;\n\n /** Object that triggered the change. */\n source: unknown;\n\n /** Previous value */\n oldValue?: S;\n}\n\n/**\n * A selection model containing a time selection.\n */\n@Injectable()\nexport abstract class MatTimeSelectionModel<\n S,\n T = ExtractTimeTypeFromSelection<S>\n> implements OnDestroy\n{\n /** The current selection. */\n readonly selection: S;\n\n private readonly _selectionChanged = new Subject<\n TimeSelectionModelChange<S>\n >();\n\n /** Emits when the selection has changed. */\n selectionChanged: Observable<TimeSelectionModelChange<S>> =\n this._selectionChanged;\n\n /**\n * Updates the current selection in the model.\n * @param value New selection that should be assigned.\n * @param source Object that triggered the selection change.\n */\n updateSelection(value: S, source: unknown) {\n const oldValue = (this as { selection: S }).selection;\n (this as { selection: S }).selection = value;\n this._selectionChanged.next({ selection: value, source, oldValue });\n }\n\n protected constructor(protected _adapter: TimeAdapter<T>) {\n // this.selection = selection;\n }\n\n ngOnDestroy(): void {\n this._selectionChanged.complete();\n }\n\n /** Adds a time to the current selection. */\n abstract add(time: T | null): void;\n\n /** Clones the selection model. */\n abstract clone(): MatTimeSelectionModel<S, T>;\n}\n\n/**\n * A selection model that contains a single time.\n */\n@Injectable()\nexport class MatSingleTimeSelectionModel<T> extends MatTimeSelectionModel<\n T | null,\n T\n> {\n constructor(adapter: TimeAdapter<T>) {\n super(adapter);\n }\n\n /**\n * Adds a time to the current selection. In the case of a single time selection, the added time\n * simply overwrites the previous selection\n */\n add(time: T | null) {\n super.updateSelection(time, this);\n }\n\n /** Clones the selection model. */\n clone() {\n const clone = new MatSingleTimeSelectionModel<T>(this._adapter);\n clone.updateSelection(this.selection, this);\n return clone;\n }\n}\n\nexport function MAT_SINGLE_TIME_SELECTION_MODEL_FACTORY(\n parent: MatSingleTimeSelectionModel<unknown>,\n adapter: TimeAdapter<unknown>\n) {\n return parent || new MatSingleTimeSelectionModel(adapter);\n}\n\n/**\n * Used to provide a single selection model to a component.\n */\nexport const MAT_SINGLE_TIME_SELECTION_MODEL_PROVIDER: FactoryProvider = {\n provide: MatTimeSelectionModel,\n deps: [\n [new Optional(), new SkipSelf(), MatSingleTimeSelectionModel],\n TimeAdapter,\n ],\n useFactory: MAT_SINGLE_TIME_SELECTION_MODEL_FACTORY,\n};\n","import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewEncapsulation,\n ElementRef,\n OnInit,\n AfterViewInit,\n ViewChild,\n} from '@angular/core';\nimport { mixinColor } from '@angular/material/core';\nimport { Subject } from 'rxjs';\n\nimport {\n ExtractTimeTypeFromSelection,\n MatTimeSelectionModel,\n} from './time-selection-model';\nimport { matTimepickerAnimations } from './timepicker-animations';\nimport { MatTimepickerBase, TimepickerMode } from './timepicker-base';\nimport { MatTimepickerIntl } from './timepicker-intl';\nimport { MatClockDials } from './clock-dials';\nimport { MatTimeInputs } from './time-inputs';\nimport { TimepickerOrientation } from './orientation';\n\n// Boilerplate for applying mixins to MatTimepickerContent.\nconst _MatTimepickerContentBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n);\n\n@Component({\n selector: 'mat-timepicker-content',\n templateUrl: './timepicker-content.html',\n styleUrls: ['./timepicker-content.scss'],\n exportAs: 'matTimepickerContent',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-content',\n '[@transformPanel]': '_animationState',\n '(@transformPanel.done)': '_animationDone.next()',\n },\n animations: [\n matTimepickerAnimations.transformPanel,\n matTimepickerAnimations.fadeInTimepicker,\n ],\n})\nexport class MatTimepickerContent<S, T = ExtractTimeTypeFromSelection<S>>\n extends _MatTimepickerContentBase\n implements OnInit, AfterViewInit\n{\n /** Reference to the internal clock dials component. */\n @ViewChild(MatClockDials) _dials: MatClockDials<T> | undefined;\n\n /** Reference to the internal time inputs component. */\n @ViewChild(MatTimeInputs) _inputs: MatTimeInputs<T> | undefined;\n\n /** Reference to the timepicker that created the overlay. */\n timepicker: MatTimepickerBase<any, S, T>;\n\n /** Display mode. */\n mode: TimepickerMode;\n\n /** Current state of the animation. */\n _animationState: 'enter-dropdown' | 'enter-dialog' | 'void';\n\n /** Whether the clock uses 12 hour format. */\n isMeridiem: boolean;\n\n /** Whether should toggle face button be shown. */\n showToggleModeButton: boolean;\n\n /** Step for minutes. */\n minuteInterval: number;\n\n /** Orientation for dial mode. */\n orientation: TimepickerOrientation;\n\n /** Portal with projected action buttons. */\n _actionsPortal: TemplatePortal | ComponentPortal<any> | null = null;\n\n /** Id of the label for the `role=\"dialog\"` element. */\n _dialogLabelId: string | null;\n\n /** Text for the close button. */\n _closeButtonText: string;\n\n /** Whether the close button currently has focus. */\n _closeButtonFocused: boolean;\n\n /** Emits when an animation has finished. */\n readonly _animationDone = new Subject<void>();\n\n private _model: MatTimeSelectionModel<S, T>;\n\n constructor(\n elementRef: ElementRef,\n intl: MatTimepickerIntl,\n private _globalModel: MatTimeSelectionModel<S, T>,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef);\n this._closeButtonText = intl.closeTimepickerLabel;\n }\n\n ngOnInit() {\n this._animationState =\n this.timepicker.openAs === 'dialog' ? 'enter-dialog' : 'enter-dropdown';\n }\n\n ngAfterViewInit() {\n (this._dials || this._inputs)?.focusActiveCell();\n }\n\n /** Changes animation state while closing timepicker content. */\n startExitAnimation() {\n this._animationState = 'void';\n this._changeDetectorRef.markForCheck();\n }\n\n onToggleMode(mode: TimepickerMode): void {\n this.mode = mode;\n }\n\n _getSelected() {\n return this._model?.selection as unknown as T | null;\n }\n\n /** Applies the current pending selection to the global model. */\n _applyPendingSelection() {\n if (this._model !== this._globalModel) {\n this._globalModel.updateSelection(this._model.selection, this);\n }\n }\n\n /**\n * Assigns a new portal containing the timepicker actions.\n * @param portal Portal with the actions to be assigned.\n * @param forceRerender Whether a re-render of the portal should be triggered. This isn't\n * necessary if the portal is assigned during initialization, but it may be required if it's\n * added at a later point.\n */\n _assignActions(\n portal: TemplatePortal<any> | ComponentPortal<any> | null,\n forceRerender: boolean\n ) {\n // As we have actions, clone the model so that we have the ability to cancel the selection.\n // Note that we want to assign this as soon as possible,\n // but `_actionsPortal` isn't available in the constructor so we do it in `ngOnInit`.\n this._model = this._globalModel.clone();\n\n this._actionsPortal = portal;\n\n if (forceRerender) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n _handleUserSelection(event: T) {\n const value = event;\n this._model.add(value);\n }\n}\n","<div\n cdkTrapFocus\n role=\"dialog\"\n class=\"mat-timepicker-content-container\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"_dialogLabelId ?? undefined\"\n>\n <ng-container [ngSwitch]=\"mode\">\n <ng-template ngSwitchCase=\"input\">\n <mat-time-inputs\n [id]=\"timepicker.id\"\n [color]=\"color\"\n [isMeridiem]=\"isMeridiem\"\n [selected]=\"_getSelected()\"\n [minTime]=\"timepicker._getMinTime()\"\n [maxTime]=\"timepicker._getMaxTime()\"\n [minuteInterval]=\"minuteInterval\"\n (_userSelection)=\"_handleUserSelection($event)\"\n ></mat-time-inputs>\n\n <div class=\"mat-timepicker-content-actions\">\n <button\n class=\"mat-time-toggle-mode-button\"\n mat-icon-button\n *ngIf=\"showToggleModeButton\"\n (click)=\"onToggleMode('dial')\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n width=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"m15.175 16.625 1.475-1.45-3.6-3.6V7.1h-2.075v5.3ZM12 21.95q-2.075 0-3.887-.787-1.813-.788-3.15-2.125-1.338-1.338-2.125-3.151Q2.05 14.075 2.05 12t.788-3.887q.787-1.813 2.125-3.15Q6.3 3.625 8.113 2.837 9.925 2.05 12 2.05t3.887.787q1.813.788 3.151 2.126 1.337 1.337 2.125 3.15.787 1.812.787 3.887t-.787 3.887q-.788 1.813-2.125 3.151-1.338 1.337-3.151 2.125-1.812.787-3.887.787ZM12 12Zm0 7.8q3.225 0 5.513-2.275Q19.8 15.25 19.8 12q0-3.25-2.287-5.525Q15.225 4.2 12 4.2T6.488 6.475Q4.2 8.75 4.2 12q0 3.25 2.288 5.525Q8.775 19.8 12 19.8Z\"\n />\n </svg>\n </button>\n\n <ng-template [cdkPortalOutlet]=\"_actionsPortal\"></ng-template>\n </div>\n </ng-template>\n <ng-template ngSwitchCase=\"dial\">\n <mat-clock-dials\n [id]=\"timepicker.id\"\n [color]=\"color\"\n [isMeridiem]=\"isMeridiem\"\n [selected]=\"_getSelected()\"\n [minTime]=\"timepicker._getMinTime()\"\n [maxTime]=\"timepicker._getMaxTime()\"\n [minuteInterval]=\"minuteInterval\"\n [orientation]=\"orientation\"\n (_userSelection)=\"_handleUserSelection($event)\"\n ></mat-clock-dials>\n\n <div class=\"mat-timepicker-content-actions\">\n <button\n class=\"mat-time-toggle-mode-button\"\n mat-icon-button\n *ngIf=\"showToggleModeButton\"\n (click)=\"onToggleMode('input')\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n width=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 19q-.825 0-1.412-.587Q2 17.825 2 17V7q0-.825.588-1.412Q3.175 5 4 5h16q.825 0 1.413.588Q22 6.175 22 7v10q0 .825-.587 1.413Q20.825 19 20 19Zm0-2h16V7H4v10Zm4-1h8v-2H8Zm-3-3h2v-2H5Zm3 0h2v-2H8Zm3 0h2v-2h-2Zm3 0h2v-2h-2Zm3 0h2v-2h-2ZM5 10h2V8H5Zm3 0h2V8H8Zm3 0h2V8h-2Zm3 0h2V8h-2Zm3 0h2V8h-2ZM4 17V7v10Z\"\n />\n </svg>\n </button>\n\n <ng-template [cdkPortalOutlet]=\"_actionsPortal\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Invisible close button for screen reader users. -->\n <button\n type=\"button\"\n mat-raised-button\n [color]=\"color || 'primary'\"\n class=\"mat-timepicker-close-button\"\n [class.cdk-visually-hidden]=\"!_closeButtonFocused\"\n (focus)=\"_closeButtonFocused = true\"\n (blur)=\"_closeButtonFocused = false\"\n (click)=\"timepicker.close()\"\n >\n {{ _closeButtonText }}\n </button>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken } from '@angular/core';\n\nexport const MAT_DEFAULT_ACITONS = new InjectionToken<ComponentType<any>>(\n 'MAT_DEFAULT_ACITONS'\n);\n","import {\n Input,\n ComponentRef,\n ViewContainerRef,\n Directive,\n NgZone,\n Inject,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ElementRef,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport {\n BooleanInput,\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n DOWN_ARROW,\n ESCAPE,\n hasModifierKey,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n UP_ARROW,\n} from '@angular/cdk/keycodes';\nimport { filter, first, merge, Observable } from 'rxjs';\n\nimport { MatTimepickerContent } from './timepicker-content';\nimport { MAT_TIMEPICKER_SCROLL_STRATEGY } from './timepicker-scroll-strategy';\nimport {\n ExtractTimeTypeFromSelection,\n MatTimeSelectionModel,\n} from './time-selection-model';\nimport { MAT_DEFAULT_ACITONS } from './timepicker-actions-default';\nimport { TimepickerOrientation } from './orientation';\n\n/** Possible options for the timepicker to open. */\nexport type TimepickerOpenAs = 'dialog' | 'popup';\n\n/** Possible positions for the timepicker dropdown along the X axis. */\nexport type TimepickerDropdownPositionX = 'start' | 'end';\n\n/** Possible positions for the timepicker dropdown along the Y axis. */\nexport type TimepickerDropdownPositionY = 'above' | 'below';\n\n/** Possible options for the timepicker to display. */\nexport type TimepickerMode = 'input' | 'dial';\n\n/** Possible options for the timepicker period format. */\nexport type TimepickerFormat = '12h' | '24h';\n\n/** Form control that can be associated with a timepicker. */\nexport interface MatTimepickerControl<T> {\n disabled: boolean;\n min: T | null;\n max: T | null;\n getThemePalette(): ThemePalette;\n getConnectedOverlayOrigin(): ElementRef;\n getOverlayLabelId(): string | null;\n}\n\n/** A timepicker that can be attached to a {@link MatTimepickerControl}. */\nexport interface MatTimepickerPanel<\n C extends MatTimepickerControl<T>,\n S,\n T = ExtractTimeTypeFromSelection<S>\n> {\n /** Register an input with the timeepicker. */\n registerInput(input: C): MatTimeSelectionModel<S, T>;\n}\n\n/**\n * Represents the default options for the form field that can be configured\n * using the `MAT_TIMEPICKER_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatTimepickerDefaultOptions {\n /** Default color of the timepicker. */\n color?: ThemePalette;\n /** Default timepicker mode. */\n mode: TimepickerMode;\n /** Defines how timepicker will be appeared. */\n openAs: TimepickerOpenAs;\n /** Default timepicker format. */\n format: TimepickerFormat;\n /** Should toggle face button be visible. */\n showToggleModeButton: boolean;\n /** Step for minutes. */\n minuteInterval: number;\n /** Orientation for dial mode. */\n orientation: TimepickerOrientation;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all timepickers within an app.\n */\nexport const MAT_TIMEPICKER_DEFAULT_OPTIONS =\n new InjectionToken<MatTimepickerDefaultOptions>(\n 'MAT_TIMEPICKER_DEFAULT_OPTIONS'\n );\n\n/** Default open as used by the timepicker. */\nconst DEFAULT_OPEN_AS: TimepickerOpenAs = 'popup';\n\n/** Default mode used by the timepicker. */\nconst DEFAULT_MODE: TimepickerMode = 'dial';\n\n/** Default format used by the timepicker. */\nconst DEFAULT_FORMAT: TimepickerFormat = '12h';\n\n/** Used to generate a unique ID for each timepicker instance. */\nlet timepickerUid = 0;\n\n@Directive()\nexport abstract class MatTimepickerBase<\n C extends MatTimepickerControl<T>,\n S,\n T = ExtractTimeTypeFromSelection<S>\n> implements OnChanges\n{\n /** Whether the timepicker pop-up should be disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n }\n }\n private _disabled: boolean;\n\n /** Whether the timepicker is open. */\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n set opened(value: BooleanInput) {\n coerceBooleanProperty(value) ? this.open() : this.close();\n }\n private _opened = false;\n\n /** Whether the timepicker mode which determines what the timepicker will be opened as. */\n @Input()\n get openAs(): TimepickerOpenAs {\n return this._openAs || this._defaults?.openAs || DEFAULT_OPEN_AS;\n }\n set openAs(value: TimepickerOpenAs) {\n this._openAs = value;\n }\n private _openAs: TimepickerOpenAs;\n\n /** Color palette to use on the timepicker's content. */\n @Input()\n get color(): ThemePalette {\n return (\n this._color ||\n this._defaults?.color ||\n (this.timepickerInput\n ? this.timepickerInput.getThemePalette()\n : undefined)\n );\n }\n set color(value: ThemePalette) {\n this._color = value;\n }\n private _color: ThemePalette;\n\n /** Timepicker display mode. */\n @Input()\n get mode(): TimepickerMode {\n return this._mode || this._defaults?.mode || DEFAULT_MODE;\n }\n set mode(value: TimepickerMode) {\n this._mode = value;\n }\n private _mode: TimepickerMode;\n\n /** Timepicker period format. */\n @Input()\n get format(): TimepickerFormat {\n return this._format || this._defaults?.format || DEFAULT_FORMAT;\n }\n set format(value: TimepickerFormat) {\n this._format = value;\n }\n private _format: TimepickerFormat;\n\n /** Show or hide toggle button between dial and input. */\n @Input()\n get showToggleModeButton(): boolean {\n return this._showToggleModeButton;\n }\n set showToggleModeButton(value: boolean) {\n this._showToggleModeButton = value;\n }\n private _showToggleModeButton: boolean = true;\n\n /** Step for minutes. */\n @Input()\n get minuteInterval(): number {\n return this._minuteInterval || this._defaults?.minuteInterval || 1;\n }\n set minuteInterval(value: number) {\n this._minuteInterval = coerceNumberProperty(value);\n }\n private _minuteInterval: number;\n\n /** Orientation for dial mode. */\n @Input()\n get orientation(): TimepickerOrientation {\n return this._orientation || this._defaults?.orientation || 'vertical';\n }\n set orientation(value: TimepickerOrientation) {\n this._orientation = value;\n }\n private _orientation: TimepickerOrientation;\n\n /** Preferred position of the timepicker in the X axis. */\n @Input()\n xPosition: TimepickerDropdownPositionX = 'start';\n\n /** Preferred position of the timepicker in the Y axis. */\n @Input()\n yPosition: TimepickerDropdownPositionY = 'below';\n\n /** Emits when the timepicker has been closed. */\n @Output('closed') readonly closedStream = new EventEmitter<void>();\n\n /** The id for the timepicker. */\n id: string = `mat-timepicker-${timepickerUid++}`;\n\n /** The input element this timepicker is associated with. */\n timepickerInput!: C;\n\n /** Portal with projected action buttons. */\n _actionsPortal: TemplatePortal | null = null;\n\n /** A reference to the overlay into which we've rendered the timepicker. */\n private _overlayRef: OverlayRef | null;\n\n /** Reference to the component instance rendered in the overlay. */\n private _componentRef!: ComponentRef<MatTimepickerContent<S, T>> | null;\n\n /** Unique class that will be added to the backdrop so that the test harnesses can look it up. */\n private _backdropHarnessClass = `${this.id}-backdrop`;\n\n /** Scroll strategy. */\n private _scrollStrategy: () => ScrollStrategy;\n\n /** The minimum selectable time. */\n _getMinTime(): T | null {\n return this.timepickerInput && this.timepickerInput.min;\n }\n\n /** The maximum selectable time. */\n _getMaxTime(): T | null {\n return this.timepickerInput && this.timepickerInput.max;\n }\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _ngZone: NgZone,\n @Inject(MAT_TIMEPICKER_SCROLL_STRATEGY) scrollStrategy: any,\n @Inject(MAT_DEFAULT_ACITONS)\n private _defaultActionsComponent: ComponentType<any>,\n private _model: MatTimeSelectionModel<S, T>,\n @Optional()\n @Inject(MAT_TIMEPICKER_DEFAULT_OPTIONS)\n private _defaults?: MatTimepickerDefaultOptions\n ) {\n this._scrollStrategy = scrollStrategy;\n\n if (_defaults) {\n this.showToggleModeButton =\n _defaults.showToggleModeButton !== undefined\n ? _defaults.showToggleModeButton\n : true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const positionChange = changes['xPosition'] || changes['yPosition'];\n\n if (positionChange && !positionChange.firstChange && this._overlayRef) {\n const positionStrategy = this._overlayRef.getConfig().positionStrategy;\n\n if (positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n this._setConnectedPositions(positionStrategy);\n\n if (this.opened) {\n this._overlayRef.updatePosition();\n }\n }\n }\n }\n\n ngOnDestroy() {\n this._destroyOverlay();\n this.close();\n }\n\n /** Opens the timepicker. */\n open(): void {\n if (this._opened || this.disabled) {\n return;\n }\n\n if (!this.timepickerInput) {\n throw Error(\n 'Attempted to open an MatTimepicker with no associated input.'\n );\n }\n\n this._openOverlay();\n this._opened = true;\n }\n\n /** Closes the timepicker. */\n close(): void {\n if (!this._opened) {\n return;\n }\n\n if (this._componentRef) {\n const instance = this._componentRef.instance;\n instance.startExitAnimation();\n instance._animationDone\n .pipe(first())\n .subscribe(() => this._destroyOverlay());\n }\n\n // The `_opened` could've been reset already if\n // we got two events in quick succession.\n if (this._opened) {\n this._opened = false;\n this.closedStream.emit();\n }\n }\n\n /**\n * Register an input with this timepicker.\n * @param input The timepicker input to register with this timepicker.\n * @returns Selection model that the input should hook itself up to.\n */\n registerInput(input: C): MatTimeSelectionModel<S, T> {\n if (this.timepickerInput) {\n throw Error(\n 'A MatTimepicker can only be associated with a single input.'\n );\n }\n\n this.timepickerInput = input;\n return this._model;\n }\n\n /**\n * Registers a portal containing action buttons with the timepicker.\n * @param portal Portal to be registered.\n */\n registerActions(portal: TemplatePortal): void {\n if (this._actionsPortal) {\n throw Error(\n 'A MatTimepicker can only be associated with a single actions row.'\n );\n }\n this._actionsPortal = portal;\n this._componentRef?.instance._assignActions(portal, true);\n }\n\n /**\n * Removes a portal containing action buttons from the timepicker.\n * @param portal Portal to be removed.\n */\n removeActions(portal: TemplatePortal): void {\n if (portal === this._actionsPortal) {\n this._actionsPortal = null;\n this._componentRef?.instance._assignActions(null, true);\n }\n }\n\n /** Applies the current pending selection on the overlay to the model. */\n _applyPendingSelection() {\n this._componentRef?.instance?._applyPendingSelection();\n }\n\n /** Forwards relevant values from the timepicker to the timepicker content inside the overlay. */\n protected _forwardContentValues(instance: MatTimepickerContent<S, T>): void {\n const defaultPortal = new ComponentPortal(this._defaultActionsComponent);\n\n instance.timepicker = this;\n instance.color = this.color;\n instance.mode = this.mode;\n instance.isMeridiem = this.format === '12h';\n instance.showToggleModeButton = this.showToggleModeButton;\n instance.minuteInterval = this.minuteInterval;\n instance.orientation = this.orientation;\n instance._dialogLabelId = this.timepickerInput.getOverlayLabelId();\n instance._assignActions(this._actionsPortal || defaultPortal, false);\n }\n\n /** Opens the overlay with the timepicker. */\n private _openOverlay(): void {\n this._destroyOverlay();\n\n const isDialog = this.openAs === 'dialog';\n const portal = new ComponentPortal<MatTimepickerContent<S, T>>(\n MatTimepickerContent,\n this._viewContainerRef\n );\n\n const overlayRef = (this._overlayRef = this._overlay.create(\n new OverlayConfig({\n positionStrategy: isDialog\n ? this._getDialogStrategy()\n : this._getDropdownStrategy(),\n hasBackdrop: true,\n backdropClass: [\n isDialog\n ? 'cdk-overlay-dark-backdrop'\n : 'mat-overlay-transparent-backdrop',\n this._backdropHarnessClass,\n ],\n direction: 'ltr',\n scrollStrategy: isDialog\n ? this._overlay.scrollStrategies.block()\n : this._scrollStrategy(),\n panelClass: `mat-timepicker-${this.openAs}`,\n })\n ));\n\n this._getCloseStream(overlayRef).subscribe((event) => {\n if (event) {\n event.preventDefault();\n }\n this.close();\n });\n\n // The `preventDefault` call happens inside the timepicker as well, however focus moves into\n // it inside a timeout which can give browsers a chance to fire off a keyboard event in-between\n // that can scroll the page. Always block default actions of arrow keys for the\n // entire overlay so the page doesn't get scrolled by accident.\n overlayRef.keydownEvents().subscribe((event) => {\n const keyCode = event.keyCode;\n\n if (\n keyCode === UP_ARROW ||\n keyCode === DOWN_ARROW ||\n keyCode === LEFT_ARROW ||\n keyCode === RIGHT_ARROW ||\n keyCode === PAGE_UP ||\n keyCode === PAGE_DOWN\n ) {\n event.preventDefault();\n }\n });\n\n this._componentRef = overlayRef.attach(portal);\n this._forwardContentValues(this._componentRef.instance);\n\n // Update the position once the timepicker has rendered. Only relevant in dropdown mode.\n if (!isDialog) {\n this._ngZone.onStable\n .pipe(first())\n .subscribe(() => overlayRef.updatePosition());\n }\n }\n\n /** Destroys the current overlay. */\n private _destroyOverlay(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = this._componentRef = null;\n }\n }\n\n /** Gets a position strategy that will open the timepicker as a dropdown. */\n private _getDialogStrategy() {\n return this._overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically();\n }\n\n /** Gets a position strategy that will open the timepicker as a dropdown. */\n private _getDropdownStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this.timepickerInput.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mat-timepicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withLockedPosition();\n\n return this._setConnectedPositions(strategy);\n }\n\n /** Sets the positions of the timepicker in dropdown mode based on the current configuration. */\n private _setConnectedPositions(\n strategy: FlexibleConnectedPositionStrategy\n ): FlexibleConnectedPositionStrategy {\n const primaryX = this.xPosition === 'end' ? 'end' : 'start';\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\n const primaryY = this.yPosition === 'above' ? 'bottom' : 'top';\n const secondaryY = primaryY === 'top' ? 'bottom' : 'top';\n\n return strategy.withPositions([\n {\n originX: primaryX,\n originY: secondaryY,\n overlayX: primaryX,\n overlayY: primaryY,\n },\n {\n originX: primaryX,\n originY: primaryY,\n overlayX: primaryX,\n overlayY: secondaryY,\n },\n {\n originX: secondaryX,\n originY: secondaryY,\n overlayX: secondaryX,\n overlayY: primaryY,\n },\n {\n originX: secondaryX,\n originY: primaryY,\n overlayX: secondaryX,\n overlayY: secondaryY,\n },\n ]);\n }\n\n /** Gets an observable that will emit when the overlay is supposed to be closed. */\n private _getCloseStream(\n overlayRef: OverlayRef\n ): Observable<void | KeyboardEvent | MouseEvent> {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(\n filter((event) => {\n // Closing on alt + up is only valid when there's an input associated with the timepicker.\n return (\n (event.keyCode === ESCAPE && !hasModifierKey(event)) ||\n (this.timepickerInput &&\n hasModifierKey(event, 'altKey') &&\n event.keyCode === UP_ARROW)\n );\n })\n )\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MatTimepickerBase, MatTimepickerControl } from './timepicker-base';\nimport { MAT_SINGLE_TIME_SELECTION_MODEL_PROVIDER } from './time-selection-model';\n\n@Component({\n selector: 'mat-timepicker',\n template: '',\n exportAs: 'matTimepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker',\n '[class.mat-primary]': 'color !== \"accent\" && color !== \"warn\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n },\n providers: [\n MAT_SINGLE_TIME_SELECTION_MODEL_PROVIDER,\n { provide: MatTimepickerBase, useExisting: MatTimepicker },\n ],\n})\nexport class MatTimepicker<T> extends MatTimepickerBase<\n MatTimepickerControl<T>,\n T | null,\n T\n> {}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n ValidatorFn,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\nimport {\n ExtractTimeTypeFromSelection,\n MatTimeSelectionModel,\n TimeSelectionModelChange,\n} from './time-selection-model';\n\n/**\n * An event used for timepicker input and change events. We don't always have access to a native\n * input or change event because the event may have been triggered by the user clicking on the\n * clock popup. For consistency, we always use MatTimepickerInputEvent instead.\n */\nexport class MatTimepickerInputEvent<D, S = unknown> {\n /** The new value for the target timepicker input. */\n value: D | null;\n\n constructor(\n /** Reference to the timepicker input component that emitted the event. */\n public target: MatTimepickerInputBase<S, D>,\n /** Reference to the native input element associated with the timepicker input. */\n public targetElement: HTMLElement\n ) {\n this.value = this.target.value;\n }\n}\n\nconst TIME_FORMATS = { hour: '2-digit', minute: '2-digit' };\n\n@Directive()\nexport abstract class MatTimepickerInputBase<\n S,\n T = ExtractTimeTypeFromSelection<S>\n> implements ControlValueAccessor, Validator\n{\n /** The value of the input. */\n @Input()\n get value(): T | null {\n return this._model\n ? this._getValueFromModel(this._model.selection)\n : this._pendingValue;\n }\n set value(value: any) {\n this._assignValueProgrammatically(value);\n }\n protected _model: MatTimeSelectionModel<S, T> | undefined;\n\n /** Whether the timepicker-input is disabled. */\n @Input()\n get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n const element = this._elementRef.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n // this.stateChanges.next(undefined);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n // In Ivy static bindings are invoked earlier, before the element is attached to the DOM.\n // This can cause an error to be thrown in some browsers (IE/Edge) which assert that the\n // element has been inserted.\n if (newValue && this._isInitialized && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n private _disabled: boolean;\n\n /** Emits when a change event is fired on this <input>. */\n @Output() readonly timeChange: EventEmitter<MatTimepickerInputEvent<T, S>> =\n new EventEmitter<MatTimepickerInputEvent<T, S>>();\n\n /** Emits when an input event is fired on this <input>. */\n @Output() readonly timeInput: EventEmitter<MatTimepickerInputEvent<T, S>> =\n new EventEmitter<MatTimepickerInputEvent<T, S>>();\n\n /** Gets the minimum time for the input. Used for validation. */\n abstract _getMinTime(): T | null;\n\n /** Gets the maximum time for the input. Used for validation. */\n abstract _getMaxTime(): T | null;\n\n /** Combined form control validator for this input. */\n protected abstract _validator: ValidatorFn | null;\n\n /** Whether the component has been initialized. */\n private _isInitialized: boolean;\n\n /**\n * Since the value is kept on the model which is assigned in an Input,\n * we might get a value before we have a model. This property keeps track\n * of the value until we have somewhere to assign it.\n */\n private _pendingValue: T | null;\n\n _onTouched = () => {};\n _validatorOnChange = () => {};\n\n private _cvaOnChange: (value: any) => void = () => {};\n private _valueChangesSubscription = Subscription.EMPTY;\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement>,\n @Optional() public _timeAdapter: TimeAdapter<T>\n ) {}\n\n /** Registers a time selection model with the input. */\n _registerModel(model: MatTimeSelectionModel<S, T>): void {\n this._model = model;\n this._valueChangesSubscription.unsubscribe();\n\n if (this._pendingValue) {\n this._assignValue(this._pendingValue);\n }\n\n this._valueChangesSubscription = this._model.selectionChanged.subscribe(\n (event) => {\n if (this._shouldHandleChangeEvent(event)) {\n const value = this._getValueFromModel(event.selection);\n this._lastValueValid = this._isValidValue(value);\n this._cvaOnChange(value);\n this._onTouched();\n this._formatValue(value);\n this.timeInput.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n this.timeChange.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n }\n }\n );\n }\n\n _onInput(value: string) {\n const lastValueWasValid = this._lastValueValid;\n let time = this._timeAdapter.parse(value, TIME_FORMATS);\n this._lastValueValid = this._isValidValue(time);\n time = this._timeAdapter.getValidTimeOrNull(time);\n const hasChanged = !this._timeAdapter.sameTime(time, this.value);\n\n // We need to fire the CVA change event for all\n // nulls, otherwise the validators won't run.\n if (!time || hasChanged) {\n this._cvaOnChange(time);\n } else {\n // Call the CVA change handler for invalid values\n // since this is what marks the control as dirty.\n if (value && !this.value) {\n this._cvaOnChange(time);\n }\n\n if (lastValueWasValid !== this._lastValueValid) {\n this._validatorOnChange();\n }\n }\n\n if (hasChanged) {\n this._assignValue(time);\n this.timeInput.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n }\n }\n\n /** Handles change event on the input. */\n _onChange() {\n this.timeChange.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n }\n\n /** Handles blur event on the input. */\n _onBlur() {\n // Reformat the input only if we have a valid value.\n if (this.value) {\n this._formatValue(this.value);\n }\n\n this._onTouched();\n }\n\n /** Implemented as part of ControlValueAccessor. */\n writeValue(value: T | null): void {\n this.value = value;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn: any): void {\n this._cvaOnChange = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n /** Whether the last value set on the input was valid. */\n protected _lastValueValid = false;\n\n /** Assigns a value to the input's model. */\n protected abstract _assignValueToModel(model: T | null): void;\n\n /** Converts a value from the model into a native value for the input. */\n protected abstract _getValueFromModel(modelValue: S): T | null;\n\n /** Predicate that determines whether the input should handle a particular change event. */\n protected abstract _shouldHandleChangeEvent(\n event: TimeSelectionModelChange<S>\n ): boolean;\n\n /** Programmatically assigns a value to the input. */\n protected _assignValueProgrammatically(value: T | null) {\n value = this._timeAdapter.deserialize(value);\n this._lastValueValid = this._isValidValue(value);\n value = this._timeAdapter.getValidTimeOrNull(value);\n this._assignValue(value);\n this._formatValue(value);\n }\n\n /** Formats a value and sets it on the input element. */\n protected _formatValue(value: T | null) {\n this._elementRef.nativeElement.value =\n value != null ? this._timeAdapter.format(value, TIME_FORMATS) : '';\n }\n\n /** Gets the base validator functions. */\n protected _getValidators(): ValidatorFn[] {\n return [this._parseValidator, this._minValidator, this._maxValidator];\n }\n\n /** Whether a value is considered valid. */\n private _isValidValue(value: T | null): boolean {\n return !value || this._timeAdapter.isValid(value);\n }\n\n /** Assigns a value to the model. */\n private _assignValue(value: T | null) {\n // We may get some incoming values before the model was\n // assigned. Save the value so that we can assign it later.\n if (this._model) {\n this._assignValueToModel(value);\n this._pendingValue = null;\n } else {\n this._pendingValue = value;\n }\n }\n\n /** The form control validator for whether the input parses. */\n private _parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this._lastValueValid\n ? null\n : { matTimepickerParse: { text: this._elementRef.nativeElement.value } };\n };\n\n /** The form control validator for the min time. */\n private _minValidator: ValidatorFn = (\n control: AbstractControl\n ): ValidationErrors | null => {\n const controlValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(control.value)\n );\n const min = this._getMinTime();\n return !min ||\n !controlValue ||\n this._timeAdapter.compareTime(min, controlValue) <= 0\n ? null\n : { matTimepickerMin: { min, actual: controlValue } };\n };\n\n /** The form control validator for the max time. */\n private _maxValidator: ValidatorFn = (\n control: AbstractControl\n ): ValidationErrors | null => {\n const controlValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(control.value)\n );\n const max = this._getMaxTime();\n return !max ||\n !controlValue ||\n this._timeAdapter.compareTime(max, controlValue) >= 0\n ? null\n : { matTimepickerMax: { max, actual: controlValue } };\n };\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n Optional,\n} from '@angular/core';\nimport {\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatFormField, MAT_FORM_FIELD } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\n\nimport { MatTimepicker } from './timepicker';\nimport { TimeAdapter } from './adapter/time-adapter';\nimport { MatTimepickerInputBase } from './timepicker-input-base';\nimport { TimeSelectionModelChange } from './time-selection-model';\nimport { MatTimepickerControl, MatTimepickerPanel } from './timepicker-base';\n\nexport const MAT_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatTimepickerInput),\n multi: true,\n};\n\nexport const MAT_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MatTimepickerInput),\n multi: true,\n};\n\n/** Directive used to connect an input to a MatTimepicker. */\n@Directive({\n selector: 'input[matTimepicker]',\n exportAs: 'matTimepickerInput',\n providers: [\n MAT_TIMEPICKER_VALUE_ACCESSOR,\n MAT_TIMEPICKER_VALIDATORS,\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MatTimepickerInput },\n ],\n host: {\n class: 'mat-timepicker-input',\n '[attr.aria-haspopup]': '_timepicker ? \"dialog\" : null',\n '[attr.aria-owns]': '(_timepicker?.opened && _timepicker.id) || null',\n '[disabled]': 'disabled',\n '(input)': '_onInput($event.target.value)',\n '(change)': '_onChange()',\n '(blur)': '_onBlur()',\n },\n})\nexport class MatTimepickerInput<T>\n extends MatTimepickerInputBase<T | null, T>\n implements MatTimepickerControl<T | null>\n{\n /** The timepicker that this input is associated with. */\n @Input()\n set matTimepicker(\n timepicker: MatTimepickerPanel<MatTimepickerControl<T>, T | null, T>\n ) {\n if (timepicker) {\n this._timepicker = timepicker;\n this._registerModel(timepicker.registerInput(this));\n }\n }\n _timepicker: MatTimepickerPanel<MatTimepickerControl<T>, T | null, T>;\n\n /** The combined form control validator for this input. */\n protected _validator: ValidatorFn | null;\n\n /** The minimum valid date. */\n @Input()\n get min(): T | null {\n return this._min;\n }\n set min(value: T | null) {\n const validValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (!this._timeAdapter.sameTime(validValue, this._min)) {\n this._min = validValue;\n this._validatorOnChange();\n }\n }\n private _min: T | null;\n\n /** The maximum valid date. */\n @Input()\n get max(): T | null {\n return this._max;\n }\n set max(value: T | null) {\n const validValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (!this._timeAdapter.sameTime(validValue, this._max)) {\n this._max = validValue;\n this._validatorOnChange();\n }\n }\n private _max: T | null;\n\n constructor(\n elementRef: ElementRef<HTMLInputElement>,\n @Optional() timeAdapter: TimeAdapter<T>,\n @Optional() @Inject(MAT_FORM_FIELD) private _formField?: MatFormField\n ) {\n super(elementRef, timeAdapter);\n this._validator = Validators.compose(super._getValidators());\n }\n\n /**\n * Gets the element that the timepicker popup should be connected to.\n * @return The element to connect the popup to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._formField\n ? this._formField.getConnectedOverlayOrigin()\n : this._elementRef;\n }\n\n /** Returns the palette used by the input's form field, if any. */\n getThemePalette(): ThemePalette {\n return this._formField ? this._formField.color : undefined;\n }\n\n /** Gets the ID of an element that should be used a description for the timepicker overlay. */\n getOverlayLabelId(): string | null {\n if (this._formField) {\n return this._formField.getLabelId();\n }\n\n return this._elementRef.nativeElement.getAttribute('aria-labelledby');\n }\n\n /** Gets the input's minimum time. */\n _getMinTime() {\n return this._min;\n }\n\n /** Gets the input's maximum time. */\n _getMaxTime() {\n return this._max;\n }\n\n protected _assignValueToModel(value: T | null): void {\n if (this._model) {\n this._model.updateSelection(value, this);\n }\n }\n\n protected _getValueFromModel(modelValue: T | null): T | null {\n return modelValue;\n }\n\n protected _shouldHandleChangeEvent(event: TimeSelectionModelChange<T>) {\n return event.source !== this;\n }\n}\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MatTimepickerBase, MatTimepickerControl } from './timepicker-base';\nimport { mixinColor } from '@angular/material/core';\n\n/** Button that will close the timepicker and assign the current selection to the data model. */\n@Directive({\n selector: '[matTimepickerApply]',\n host: {\n '(click)': '_applySelection()',\n },\n})\nexport class MatTimepickerApply {\n constructor(\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>\n ) {}\n\n _applySelection() {\n this._timepicker._applyPendingSelection();\n this._timepicker.close();\n }\n}\n\n/** Button that will close the timepicker and discard the current selection. */\n@Directive({\n selector: '[matTimepickerCancel]',\n host: {\n '(click)': 'close()',\n },\n})\nexport class MatTimepickerCancel {\n constructor(\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>\n ) {}\n\n close() {\n this._timepicker.close();\n }\n}\n\n/**\n * Container that can be used to project a row of action buttons\n * to the bottom of a timepicker.\n */\n@Component({\n selector: 'mat-timepicker-actions',\n styleUrls: ['timepicker-actions.scss'],\n template: `\n <ng-template>\n <div class=\"mat-timepicker-actions\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-actions-container',\n },\n})\nexport class MatTimepickerActions implements AfterViewInit, OnDestroy {\n @ViewChild(TemplateRef) _template: TemplateRef<unknown>;\n\n private _portal: TemplatePortal;\n\n constructor(\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>,\n private _viewContainerRef: ViewContainerRef\n ) {}\n\n ngAfterViewInit() {\n this._portal = new TemplatePortal(this._template, this._viewContainerRef);\n this._timepicker.registerActions(this._portal);\n }\n\n ngOnDestroy() {\n this._timepicker.removeActions(this._portal);\n\n // Needs to be null checked since we initialize it in `ngAfterViewInit`.\n if (this._portal && this._portal.isAttached) {\n this._portal?.detach();\n }\n }\n}\n\n// Boilerplate for applying mixins to MatTimepickerDefaultActions.\nconst _MatTimepickerDefaultActions = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n);\n\n/**\n * Default action buttons to the bottom of a timepicker.\n */\n@Component({\n selector: 'mat-timepicker-default-actions',\n styleUrls: ['timepicker-actions.scss'],\n template: `\n <div class=\"mat-timepicker-actions\">\n <ng-content></ng-content>\n <button [color]=\"color\" mat-button matTimepickerCancel>Cancel</button>\n <button [color]=\"color\" mat-button matTimepickerApply>OK</button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-actions-container',\n },\n})\nexport class MatTimepickerDefaultActions\n extends _MatTimepickerDefaultActions\n implements OnInit\n{\n constructor(\n elementRef: ElementRef,\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>\n ) {\n super(elementRef);\n }\n\n ngOnInit() {\n this.color = this._timepicker.color;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport {\n MAT_FAB_DEFAULT_OPTIONS,\n MatButtonModule,\n} from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER } from './timepicker-scroll-strategy';\nimport {\n MatTimepickerToggle,\n MatTimepickerToggleIcon,\n} from './timepicker-toggle';\nimport { MatTimepicker } from './timepicker';\nimport { MatTimepickerContent } from './timepicker-content';\nimport { MatTimepickerContentLayout } from './timepicker-content-layout';\nimport { MatTimepickerInput } from './timepicker-input';\nimport { MatHourInput, MatMinuteInput, MatTimeInputs } from './time-inputs';\nimport { MatClockDials } from './clock-dials';\nimport { MatHoursClockDial } from './hours-clock-dial';\nimport { MatMinutesClockDial } from './minutes-clock-dial';\nimport { MatTimePeriod } from './time-period';\nimport {\n MatTimepickerActions,\n MatTimepickerApply,\n MatTimepickerCancel,\n MatTimepickerDefaultActions,\n} from './timepicker-actions';\nimport { MAT_DEFAULT_ACITONS } from './timepicker-actions-default';\nimport { MatTimepickerIntl } from './timepicker-intl';\n\n@NgModule({\n declarations: [\n MatTimepickerToggle,\n MatTimepickerToggleIcon,\n MatTimepicker,\n MatTimepickerContent,\n MatTimepickerContentLayout,\n MatTimepickerInput,\n MatTimeInputs,\n MatHourInput,\n MatMinuteInput,\n MatClockDials,\n MatHoursClockDial,\n MatMinutesClockDial,\n MatTimePeriod,\n MatTimepickerActions,\n MatTimepickerDefaultActions,\n MatTimepickerApply,\n MatTimepickerCancel,\n ],\n imports: [\n CommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatRippleModule,\n MatDividerModule,\n OverlayModule,\n PortalModule,\n A11yModule,\n ],\n exports: [\n CdkScrollableModule,\n MatTimepickerToggle,\n MatTimepickerToggleIcon,\n MatTimepicker,\n MatTimepickerContent,\n MatTimepickerContentLayout,\n MatTimepickerInput,\n MatTimeInputs,\n MatHourInput,\n MatMinuteInput,\n MatClockDials,\n MatHoursClockDial,\n MatMinutesClockDial,\n MatTimepickerActions,\n MatTimepickerDefaultActions,\n MatTimepickerApply,\n MatTimepickerCancel,\n ],\n providers: [\n MatTimepickerIntl,\n MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n { provide: Window, useValue: window },\n { provide: MAT_DEFAULT_ACITONS, useValue: MatTimepickerDefaultActions },\n {\n provide: MAT_FAB_DEFAULT_OPTIONS,\n useValue: { color: 'unthemed' },\n },\n ],\n})\nexport class MatTimepickerModule {}\n","/*\n * Public API Surface of mat-timepicker\n */\n\nexport * from './lib/timepicker.module';\nexport * from './lib/timepicker';\nexport * from './lib/timepicker-base';\nexport * from './lib/timepicker-toggle';\nexport * from './lib/timepicker-content';\nexport * from './lib/timepicker-content-layout';\nexport * from './lib/timepicker-input';\nexport * from './lib/hours-clock-dial';\nexport * from './lib/minutes-clock-dial';\nexport * from './lib/time-inputs';\nexport * from './lib/clock-dials';\nexport * from './lib/time-period';\nexport * from './lib/timepicker-actions';\nexport * from './lib/timepicker-actions-default';\nexport * from './lib/adapter';\nexport * from './lib/timepicker-scroll-strategy';\nexport * from './lib/timepicker-intl';\nexport * from './lib/orientation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MatTimepickerIntl","i2","i3","CLOCK_RADIUS","CLOCK_TICK_RADIUS","CLOCK_CORRECTED_RADIUS","CLOCK_OUTER_RADIUS","i1","i1.TimeAdapter","i2.TimeAdapter","i4.MatTimepickerContentLayout","i5.MatHoursClockDial","i6.MatMinutesClockDial","i7.MatTimePeriod","i6.MatTimepickerContentLayout","i2.MatTimeSelectionModel","i4","i5","i7.MatTimeInputs","i8.MatClockDials","i1.MatTimepickerBase"],"mappings":"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"}
1
+ {"version":3,"file":"dhutaryan-ngx-mat-timepicker.mjs","sources":["../../../projects/mat-timepicker/src/lib/timepicker-scroll-strategy.ts","../../../projects/mat-timepicker/src/lib/timepicker-intl.ts","../../../projects/mat-timepicker/src/lib/timepicker-toggle.ts","../../../projects/mat-timepicker/src/lib/timepicker-toggle.html","../../../projects/mat-timepicker/src/lib/timepicker-animations.ts","../../../projects/mat-timepicker/src/lib/minutes-clock-dial.ts","../../../projects/mat-timepicker/src/lib/minutes-clock-dial.html","../../../projects/mat-timepicker/src/lib/hours-clock-dial.ts","../../../projects/mat-timepicker/src/lib/hours-clock-dial.html","../../../projects/mat-timepicker/src/lib/adapter/time-adapter.ts","../../../projects/mat-timepicker/src/lib/adapter/native-date-time-adapter.ts","../../../projects/mat-timepicker/src/lib/adapter/index.ts","../../../projects/mat-timepicker/src/lib/time-face-base.ts","../../../projects/mat-timepicker/src/lib/time-input-base.ts","../../../projects/mat-timepicker/src/lib/clock-dial-adnimation.ts","../../../projects/mat-timepicker/src/lib/timepicker-content-layout.ts","../../../projects/mat-timepicker/src/lib/timepicker-content-layout.html","../../../projects/mat-timepicker/src/lib/time-period.ts","../../../projects/mat-timepicker/src/lib/time-period.html","../../../projects/mat-timepicker/src/lib/clock-dials.ts","../../../projects/mat-timepicker/src/lib/clock-dials.html","../../../projects/mat-timepicker/src/lib/time-inputs.ts","../../../projects/mat-timepicker/src/lib/time-inputs.html","../../../projects/mat-timepicker/src/lib/time-selection-model.ts","../../../projects/mat-timepicker/src/lib/timepicker-content.ts","../../../projects/mat-timepicker/src/lib/timepicker-content.html","../../../projects/mat-timepicker/src/lib/timepicker-actions-default.ts","../../../projects/mat-timepicker/src/lib/timepicker-base.ts","../../../projects/mat-timepicker/src/lib/timepicker.ts","../../../projects/mat-timepicker/src/lib/timepicker-input-base.ts","../../../projects/mat-timepicker/src/lib/timepicker-input.ts","../../../projects/mat-timepicker/src/lib/timepicker-actions.ts","../../../projects/mat-timepicker/src/lib/timepicker.module.ts","../../../projects/mat-timepicker/src/public-api.ts","../../../projects/mat-timepicker/src/dhutaryan-ngx-mat-timepicker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\n\n/** Injection token that determines the scroll handling while the timepicker is open. */\nexport const MAT_TIMEPICKER_SCROLL_STRATEGY = new InjectionToken<\n () => ScrollStrategy\n>('mat-timepicker-scroll-strategy');\n\n/** Timepicker scroll strategy factory. */\nexport function MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY(\n overlay: Overlay\n): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** Timepicker scroll strategy provider. */\nexport const MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_TIMEPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY,\n};\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MatTimepickerIntl {\n /** A label for inputs title. */\n inputsTitle = 'Enter time';\n\n /** A label for dials title. */\n dialsTitle = 'Select time';\n\n /** A label for hour input hint. */\n hourInputHint = 'Hour';\n\n /** A label for minute input hint. */\n minuteInputHint = 'Minute';\n\n /** Label for the button used to open the timepicker popup (used by screen readers). */\n openTimepickerLabel = 'Open timepicker';\n\n /** Label for the button used to close the timepicker popup (used by screen readers). */\n closeTimepickerLabel = 'Close timepicker';\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Directive,\n ViewEncapsulation,\n Input,\n ContentChild,\n Attribute,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { MatTimepicker } from './timepicker';\nimport { MatTimepickerIntl } from './timepicker-intl';\n\n@Directive({ selector: '[matTimepickerToggleIcon]' })\nexport class MatTimepickerToggleIcon {}\n\n@Component({\n selector: 'mat-timepicker-toggle',\n templateUrl: './timepicker-toggle.html',\n styleUrls: ['./timepicker-toggle.scss'],\n exportAs: 'matTimepickerToggle',\n host: {\n class: 'mat-timepicker-toggle',\n '[attr.tabindex]': 'null',\n '[class.mat-timepicker-toggle-active]': 'timepicker && timepicker.opened',\n '(click)': 'open($event)',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatTimepickerToggle<T> {\n /** Timepicker instance. */\n @Input('for') timepicker: MatTimepicker<T>;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.timepicker) {\n return this.timepicker.disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Whether ripples on the toggle should be disabled. */\n @Input() disableRipple: boolean;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Custom icon set by the consumer. */\n @ContentChild(MatTimepickerToggleIcon) customIcon: MatTimepickerToggleIcon;\n\n /** Screen-reader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n constructor(\n @Attribute('tabindex') defaultTabIndex: string,\n public _intl: MatTimepickerIntl\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex =\n parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n /** Opens timepicker. */\n open(event: Event): void {\n if (this.timepicker && !this.disabled) {\n this.timepicker.open();\n event.stopPropagation();\n }\n }\n}\n","<button\n type=\"button\"\n #button\n mat-icon-button\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openTimepickerLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n focusable=\"false\"\n *ngIf=\"!customIcon\"\n >\n <path\n d=\"M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8 S16.41,20,12,20z M12.5,7H11v6l5.2,3.2l0.8-1.3l-4.5-2.7V7z\"\n />\n </svg>\n\n <ng-content select=\"[matTimepickerToggleIcon]\"></ng-content>\n</button>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n keyframes,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Animations used by the timepicker. */\nexport const matTimepickerAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n readonly fadeInTimepicker: AnimationTriggerMetadata;\n} = {\n /** Transforms the height of the timepicker's. */\n transformPanel: trigger('transformPanel', [\n transition(\n 'void => enter-dropdown',\n animate(\n '120ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(1, 0.8)' }),\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n ])\n )\n ),\n transition(\n 'void => enter-dialog',\n animate(\n '150ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0.7)' }),\n style({ transform: 'none', opacity: 1 }),\n ])\n )\n ),\n transition('* => void', animate('100ms linear', style({ opacity: 0 }))),\n ]),\n\n /** Fades in the content of the timepicker. */\n fadeInTimepicker: trigger('fadeInTimepicker', [\n state('void', style({ opacity: 0 })),\n state('enter', style({ opacity: 1 })),\n ]),\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { debounceTime, fromEvent, merge, take } from 'rxjs';\n\nimport { ClockDialViewCell } from './hours-clock-dial';\nimport { ThemePalette } from '@angular/material/core';\n\nexport const ALL_MINUTES = Array(60)\n .fill(null)\n .map((_, i) => i);\n\nconst CLOCK_RADIUS = 128;\nconst CLOCK_TICK_RADIUS = 16;\nconst CLOCK_CORRECTED_RADIUS = CLOCK_RADIUS - CLOCK_TICK_RADIUS;\nconst CLOCK_OUTER_RADIUS = 100;\n\n@Component({\n selector: 'mat-minutes-clock-dial',\n templateUrl: 'minutes-clock-dial.html',\n styleUrls: ['clock-dial.scss'],\n exportAs: 'matMinutesClockDial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-clock-dial mat-clock-dial-minutes',\n '(mousedown)': '_onUserAction($event)',\n '(touchstart)': '_onUserAction($event)',\n },\n})\nexport class MatMinutesClockDial implements OnInit {\n /** Selected minute. */\n @Input()\n get selectedMinute(): number {\n return this._selectedMinute;\n }\n set selectedMinute(value: number) {\n this._selectedMinute = value;\n }\n private _selectedMinute = 0;\n\n /** Step over minutes. */\n @Input()\n get interval(): number {\n return this._interval;\n }\n set interval(value: number) {\n this._interval = coerceNumberProperty(value) || 1;\n }\n private _interval: number = 1;\n\n @Input()\n get availableMinutes(): number[] {\n return this._availableMinutes;\n }\n set availableMinutes(value: number[]) {\n this._availableMinutes = value;\n this._initMinutes();\n }\n private _availableMinutes: number[] = [];\n\n /** Color palette. */\n @Input() color: ThemePalette;\n\n /** Emits selected minute. */\n @Output() selectedChange = new EventEmitter<number>();\n\n minutes: ClockDialViewCell[] = [];\n\n get disabled(): boolean {\n return !this.availableMinutes.includes(this.selectedMinute);\n }\n\n get isMinutePoint(): boolean {\n return !!this.minutes.find((hour) => hour.value === this.selectedMinute);\n }\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: Document,\n @Inject(Window) private _window: Window\n ) {}\n\n ngOnInit(): void {\n this._initMinutes();\n }\n\n /** Hand styles based on selected minute. */\n _handStyles(): any {\n const deg = Math.round(this._selectedMinute * (360 / 60));\n const height = CLOCK_OUTER_RADIUS;\n const marginTop = CLOCK_RADIUS - CLOCK_OUTER_RADIUS;\n\n return {\n transform: `rotate(${deg}deg)`,\n height: `${height}px`,\n 'margin-top': `${marginTop}px`,\n };\n }\n\n /** Handles mouse and touch events on dial and document. */\n _onUserAction(event: MouseEvent | TouchEvent): void {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n this._setMinute(event);\n\n const eventsSubscription = merge(\n fromEvent<MouseEvent>(this._document, 'mousemove'),\n fromEvent<TouchEvent>(this._document, 'touchmove')\n )\n .pipe(debounceTime(0))\n .subscribe({\n next: (event) => {\n event.preventDefault();\n this._setMinute(event);\n },\n });\n\n merge(\n fromEvent<MouseEvent>(this._document, 'mouseup'),\n fromEvent<TouchEvent>(this._document, 'touchend')\n )\n .pipe(take(1))\n .subscribe({\n next: () => {\n eventsSubscription.unsubscribe();\n },\n });\n }\n\n _isActiveCell(minute: number): boolean {\n return this.selectedMinute === minute;\n }\n\n _trackBy(index: number, cell: ClockDialViewCell): number {\n return cell.value;\n }\n\n private _setMinute(event: MouseEvent | TouchEvent): void {\n const element = this._element.nativeElement;\n const elementRect = element.getBoundingClientRect();\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n const pageX =\n event instanceof MouseEvent ? event.pageX : event.touches[0].pageX;\n const pageY =\n event instanceof MouseEvent ? event.pageY : event.touches[0].pageY;\n const x = width / 2 - (pageX - elementRect.left - this._window.scrollX);\n const y = height / 2 - (pageY - elementRect.top - this._window.scrollY);\n const unit = Math.PI / (30 / this.interval);\n const atan2 = Math.atan2(-x, y);\n const radian = atan2 < 0 ? Math.PI * 2 + atan2 : atan2;\n const initialValue = Math.round(radian / unit) * this.interval;\n const value = initialValue === 60 ? 0 : initialValue;\n\n if (\n this.availableMinutes.includes(value) &&\n this.availableMinutes.includes(value)\n ) {\n this.selectedMinute = value;\n this.selectedChange.emit(this.selectedMinute);\n }\n\n this._cdr.detectChanges();\n }\n\n /** Creates list of minutes. */\n private _initMinutes(): void {\n this.minutes = ALL_MINUTES.filter((minute) => minute % 5 === 0).map(\n (minute) => {\n const radian = (minute / 30) * Math.PI;\n const displayValue = minute === 0 ? '00' : String(minute);\n\n return {\n value: minute,\n displayValue,\n left: CLOCK_CORRECTED_RADIUS + Math.sin(radian) * CLOCK_OUTER_RADIUS,\n top: CLOCK_CORRECTED_RADIUS - Math.cos(radian) * CLOCK_OUTER_RADIUS,\n disabled: !this.availableMinutes.includes(minute),\n };\n }\n );\n }\n}\n","<div\n class=\"mat-clock-dial-hand\"\n [class.mat-clock-dial-hand-pointless]=\"isMinutePoint\"\n [class.mat-clock-dial-hand-disabled]=\"disabled\"\n [ngStyle]=\"_handStyles()\"\n>\n <div class=\"mat-clock-dial-hand-point\" tabindex=\"0\"></div>\n</div>\n<ng-template ngFor let-minute [ngForOf]=\"minutes\" [ngForTrackBy]=\"_trackBy\">\n <button\n class=\"mat-clock-dial-cell\"\n mat-mini-fab\n disableRipple\n [tabIndex]=\"_isActiveCell(minute.value) ? 0 : -1\"\n [style.left.px]=\"minute.left\"\n [style.top.px]=\"minute.top\"\n [class.mat-clock-dial-cell-active]=\"_isActiveCell(minute.value)\"\n [class.mat-clock-dial-cell-disabled]=\"minute.disabled\"\n [color]=\"_isActiveCell(minute.value) ? color : undefined\"\n [attr.aria-disabled]=\"minute.disabled || null\"\n >\n {{ minute.displayValue }}\n </button>\n</ng-template>\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { debounceTime, fromEvent, merge, take } from 'rxjs';\n\nexport interface ClockDialViewCell {\n value: number;\n displayValue: string;\n left: number;\n top: number;\n disabled: boolean;\n}\n\nexport const ALL_HOURS = Array(24)\n .fill(null)\n .map((_, i) => i);\nconst CLOCK_RADIUS = 128;\nconst CLOCK_TICK_RADIUS = 16;\nconst CLOCK_CORRECTED_RADIUS = CLOCK_RADIUS - CLOCK_TICK_RADIUS;\nconst CLOCK_OUTER_RADIUS = 100;\nconst CLOCK_INNER_RADIUS = CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS * 2;\n\n@Component({\n selector: 'mat-hours-clock-dial',\n templateUrl: 'hours-clock-dial.html',\n styleUrls: ['clock-dial.scss'],\n exportAs: 'matHoursClockDial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-clock-dial mat-clock-dial-hours',\n '(mousedown)': '_onUserAction($event)',\n '(touchstart)': '_onUserAction($event)',\n },\n})\nexport class MatHoursClockDial implements OnInit {\n /** Selected hour. */\n @Input()\n get selectedHour(): number {\n return this._selectedHour;\n }\n set selectedHour(value: number) {\n this._selectedHour = value;\n }\n private _selectedHour: number;\n\n /** Whether the clock uses 12 hour format. */\n @Input()\n get isMeridiem(): boolean {\n return this._isMeridiem;\n }\n set isMeridiem(value: boolean) {\n this._isMeridiem = value;\n }\n private _isMeridiem: boolean;\n\n @Input()\n get availableHours(): number[] {\n return this._availableHours;\n }\n set availableHours(value: number[]) {\n this._availableHours = value;\n this._initHours();\n }\n private _availableHours: number[] = [];\n\n /** Color palette. */\n @Input() color: ThemePalette;\n\n /** Emits selected hour. */\n @Output() selectedChange = new EventEmitter<{\n hour: number;\n changeView?: boolean;\n }>();\n\n hours: ClockDialViewCell[] = [];\n\n get disabledHand(): boolean {\n return !this.availableHours.includes(this.selectedHour);\n }\n\n get isHour(): boolean {\n return !!this.hours.find((hour) => hour.value === this.selectedHour);\n }\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: Document,\n @Inject(Window) private _window: Window\n ) {}\n\n ngOnInit(): void {\n this._initHours();\n }\n\n /** Hand styles based on selected hour. */\n _handStyles(): any {\n const deg = Math.round(this.selectedHour * (360 / (24 / 2)));\n const radius = this._getRadius(this.selectedHour);\n const height = radius;\n const marginTop = CLOCK_RADIUS - radius;\n\n return {\n transform: `rotate(${deg}deg)`,\n height: `${height}px`,\n 'margin-top': `${marginTop}px`,\n };\n }\n\n /** Handles mouse and touch events on dial and document. */\n _onUserAction(event: MouseEvent | TouchEvent): void {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n this._setHour(event);\n\n const eventsSubscription = merge(\n fromEvent<MouseEvent>(this._document, 'mousemove'),\n fromEvent<TouchEvent>(this._document, 'touchmove')\n )\n .pipe(debounceTime(0))\n .subscribe({\n next: (event) => {\n event.preventDefault();\n this._setHour(event);\n },\n });\n\n merge(\n fromEvent<MouseEvent>(this._document, 'mouseup'),\n fromEvent<TouchEvent>(this._document, 'touchend')\n )\n .pipe(take(1))\n .subscribe({\n next: () => {\n eventsSubscription.unsubscribe();\n this.selectedChange.emit({\n hour: this.selectedHour,\n changeView: true,\n });\n },\n });\n }\n\n _isActiveCell(hour: number): boolean {\n return this.selectedHour === hour;\n }\n\n _trackBy(index: number, cell: ClockDialViewCell): number {\n return cell.value;\n }\n\n /** Changes selected hour based on coordinates. */\n private _setHour(event: MouseEvent | TouchEvent): void {\n const element = this._element.nativeElement;\n const elementRect = element.getBoundingClientRect();\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n const pageX =\n event instanceof MouseEvent ? event.pageX : event.touches[0].pageX;\n const pageY =\n event instanceof MouseEvent ? event.pageY : event.touches[0].pageY;\n const x = width / 2 - (pageX - elementRect.left - this._window.scrollX);\n const y = height / 2 - (pageY - elementRect.top - this._window.scrollY);\n const unit = Math.PI / 6;\n const atan2 = Math.atan2(-x, y);\n const radian = atan2 < 0 ? Math.PI * 2 + atan2 : atan2;\n const initialValue = Math.round(radian / unit);\n const z = Math.sqrt(x * x + y * y);\n const outer = z > CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS;\n const value = this._getHourValue(initialValue, outer);\n\n if (this.availableHours.includes(value)) {\n this.selectedHour = value;\n this.selectedChange.emit({\n hour: this.selectedHour,\n });\n }\n\n this._cdr.detectChanges();\n }\n\n /** Return value of hour. */\n private _getHourValue(value: number, outer: boolean): number {\n const edgeValue = value === 0 || value === 12;\n\n if (this.isMeridiem) {\n return edgeValue ? 12 : value;\n }\n\n if (outer) {\n return edgeValue ? 0 : value;\n }\n\n return edgeValue ? 12 : value + 12;\n }\n\n /** Creates list of hours. */\n private _initHours(): void {\n const initialHours = this.isMeridiem ? ALL_HOURS.slice(1, 13) : ALL_HOURS;\n\n this.hours = initialHours.map((hour) => {\n const radian = (hour / 6) * Math.PI;\n const radius = this._getRadius(hour);\n\n return {\n value: hour,\n displayValue: hour === 0 ? '00' : String(hour),\n left: CLOCK_CORRECTED_RADIUS + Math.sin(radian) * radius,\n top: CLOCK_CORRECTED_RADIUS - Math.cos(radian) * radius,\n disabled: !this.availableHours.includes(hour),\n };\n });\n }\n\n /** Returns radius based on hour */\n private _getRadius(hour: number): number {\n if (this.isMeridiem) {\n return CLOCK_OUTER_RADIUS;\n }\n\n const outer = hour >= 0 && hour < 12;\n const radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;\n\n return radius;\n }\n}\n","<div\n class=\"mat-clock-dial-hand\"\n [class.mat-clock-dial-hand-pointless]=\"isHour\"\n [class.mat-clock-dial-hand-disabled]=\"disabledHand\"\n [ngStyle]=\"_handStyles()\"\n></div>\n<ng-template ngFor let-hour [ngForOf]=\"hours\" [ngForTrackBy]=\"_trackBy\">\n <button\n class=\"mat-clock-dial-cell\"\n mat-mini-fab\n disableRipple\n [tabIndex]=\"_isActiveCell(hour.value) ? 0 : -1\"\n [style.left.px]=\"hour.left\"\n [style.top.px]=\"hour.top\"\n [class.mat-clock-dial-cell-active]=\"_isActiveCell(hour.value)\"\n [class.mat-clock-dial-cell-disabled]=\"hour.disabled\"\n [color]=\"_isActiveCell(hour.value) ? color : undefined\"\n [attr.aria-disabled]=\"hour.disabled || null\"\n >\n {{ hour.displayValue }}\n </button>\n</ng-template>\n","import { InjectionToken, LOCALE_ID } from '@angular/core';\nimport { MatTimePeriodType } from '../time-period';\n\n/** InjectionToken for timepicker that can be used to override default locale code. */\nexport const MAT_TIME_LOCALE = new InjectionToken<string>('MAT_TIME_LOCALE');\n\n/** Provider for MAT_TIME_LOCALE injection token. */\nexport const MAT_TIME_LOCALE_PROVIDER = {\n provide: MAT_TIME_LOCALE,\n useExisting: LOCALE_ID,\n};\n\nexport abstract class TimeAdapter<T, L = any> {\n /** The locale to use for time. */\n protected locale: L;\n\n /**\n * Gets now's time.\n * @returns Now's time.\n */\n abstract now(): T;\n\n /**\n * Parses a time from a user-provided value.\n * @param value The value to parse.\n * @param parseFormat The expected format of the value being parsed\n * (type is implementation-dependent).\n * @returns The parsed time.\n */\n abstract parse(value: any, parseFormat: any): T | null;\n\n /**\n * Gets the hour component of the given time.\n * @param time The time to extract the hour from.\n * @returns The hour component.\n */\n abstract getHour(time: T): number;\n\n /**\n * Gets the minute component of the given time.\n * @param time The time to extract the minute from.\n * @returns The minute component.\n */\n abstract getMinute(time: T): number;\n\n /**\n * Update the hour component of the given time.\n * @param time The time to update the hour.\n * @param hour The new hour to update given time.\n * @returns The new time with updated hour component.\n */\n abstract updateHour(time: T, hour: number): T;\n\n /**\n * Update the minute component of the given time.\n * @param time The time to update the minute.\n * @param minute The new minute to update given time.\n * @returns The new time with updated minute component.\n */\n abstract updateMinute(time: T, minute: number): T;\n\n /**\n * Gets the period component of the given time.\n * @param time The time to extract the period from.\n * @returns The period component.\n */\n abstract getPeriod(time: T): MatTimePeriodType;\n\n /**\n * Formats a time as a string according to the given format.\n * @param time The value to format.\n * @param displayFormat The format to use to display the time as a string.\n * @returns The formatted time string.\n */\n abstract format(time: T, displayFormat: any): string;\n\n /**\n * Checks whether the given object is considered a time instance by this timeAdapter.\n * @param obj The object to check\n * @returns Whether the object is a time instance.\n */\n abstract isTimeInstance(obj: any): boolean;\n\n /**\n * Checks whether the given time is valid.\n * @param time The time to check.\n * @returns Whether the time is valid.\n */\n abstract isValid(time: T): boolean;\n\n /**\n * Gets time instance that is not valid.\n * @returns An invalid time.\n */\n abstract invalid(): T;\n\n /**\n * Given a potential time object, returns that same time object if it is\n * a valid time, or `null` if it's not a valid time.\n * @param obj The object to check.\n * @returns A time or `null`.\n */\n getValidTimeOrNull(obj: unknown): T | null {\n return this.isTimeInstance(obj) && this.isValid(obj as T)\n ? (obj as T)\n : null;\n }\n\n /**\n * Attempts to deserialize a value to a valid time object. The `<mat-timepicker>` will call this\n * method on all of its `@Input()` properties that accept time. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a time object.\n * @returns The deserialized time object, either a valid time, null if the value can be\n * deserialized into a null time (e.g. the empty string), or an invalid date.\n */\n deserialize(value: any): T | null {\n if (value == null || (this.isTimeInstance(value) && this.isValid(value))) {\n return value;\n }\n return this.invalid();\n }\n\n /**\n * Sets the locale used for all time.\n * @param locale The new locale.\n */\n setLocale(locale: L) {\n this.locale = locale;\n }\n\n /**\n * Compares two time.\n * @param first The first time to compare.\n * @param second The second time to compare.\n * @returns 0 if the time are equal, a number less than 0 if the first time is earlier,\n * a number greater than 0 if the first time is later.\n */\n abstract compareTime(first: T, second: T): number;\n\n /**\n * Checks if two time are equal.\n * @param first The first time to check.\n * @param second The second time to check.\n * @returns Whether the two time are equal.\n * Null time are considered equal to other null time.\n */\n sameTime(first: T | null, second: T | null): boolean {\n if (first && second) {\n let firstValid = this.isValid(first);\n let secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareTime(first, second);\n }\n return firstValid == secondValid;\n }\n return first == second;\n }\n\n /**\n * Clamp the given time between min and max time.\n * @param time The time to clamp.\n * @param min The minimum value to allow. If null or omitted no min is enforced.\n * @param max The maximum value to allow. If null or omitted no max is enforced.\n * @returns `min` if `time` is less than `min`, `max` if time is greater than `max`,\n * otherwise `time`.\n */\n clampTime(time: T, min?: T | null, max?: T | null): T {\n if (min && this.compareTime(time, min) < 0) {\n return min;\n }\n if (max && this.compareTime(time, max) > 0) {\n return max;\n }\n return time;\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\n\nimport { MAT_TIME_LOCALE, TimeAdapter } from './time-adapter';\nimport { MatTimePeriodType } from '../time-period';\n\n/**\n * Matches strings that have the form of a valid RFC 3339 string\n * (https://tools.ietf.org/html/rfc3339). Note that the string may not actually be a valid date\n * because the regex will match strings an with out of bounds month, date, etc.\n */\nconst ISO_8601_REGEX =\n /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n\n/** Adapts the native JS Date for components that work with time. */\n@Injectable()\nexport class NativeDateTimeAdapter extends TimeAdapter<Date> {\n constructor(@Optional() @Inject(MAT_TIME_LOCALE) matTimeLocale: string) {\n super();\n super.setLocale(matTimeLocale);\n }\n\n now(): Date {\n return new Date();\n }\n\n parse(value: any, parseFormat?: any): Date | null {\n // We have no way using the native JS Date to set the parse format or locale, so we ignore these\n // parameters.\n if (typeof value == 'number') {\n return new Date(value);\n }\n\n const { hour, minute } = this.parseTime(value);\n const date = new Date();\n date.setHours(Number(hour));\n date.setMinutes(Number(minute));\n\n return value ? new Date(date) : null;\n }\n\n parseTime(value: string) {\n const [hour, minute] = value\n .replace(/(\\sam|\\spm|\\sAM|\\sPM|am|pm|AM|PM)/g, '')\n .split(':');\n\n return { hour, minute };\n }\n\n getHour(date: Date): number {\n return date.getHours();\n }\n\n getMinute(date: Date): number {\n return date.getMinutes();\n }\n\n updateHour(date: Date, hour: number): Date {\n const copy = new Date(date.getTime());\n copy.setHours(hour);\n\n return copy;\n }\n\n updateMinute(date: Date, minute: number): Date {\n const copy = new Date(date.getTime());\n copy.setMinutes(minute);\n\n return copy;\n }\n\n getPeriod(date: Date): MatTimePeriodType {\n return date.getHours() < 12 ? 'am' : 'pm';\n }\n\n format(date: Date, displayFormat: Object): string {\n if (!this.isValid(date)) {\n throw Error('NativeDateTimeAdapter: Cannot format invalid date.');\n }\n\n const dtf = new Intl.DateTimeFormat(this.locale, {\n ...displayFormat,\n timeZone: 'utc',\n });\n\n return this._format(dtf, date);\n }\n\n /**\n * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an\n * invalid date for all other values.\n */\n override deserialize(value: any): Date | null {\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n // The `Date` constructor accepts formats other than ISO 8601, so we need to make sure the\n // string is the right format first.\n if (ISO_8601_REGEX.test(value)) {\n const date = new Date(value);\n if (this.isValid(date)) {\n return date;\n }\n }\n }\n return super.deserialize(value);\n }\n\n isTimeInstance(obj: any): boolean {\n return obj instanceof Date;\n }\n\n isValid(date: Date): boolean {\n return !isNaN(date.getTime());\n }\n\n invalid(): Date {\n return new Date(NaN);\n }\n\n compareTime(first: Date, second: Date): number {\n return (\n first.getHours() - second.getHours() ||\n first.getMinutes() - second.getMinutes()\n );\n }\n\n /**\n * When converting Date object to string, javascript built-in functions may return wrong\n * results because it applies its internal DST rules. The DST rules around the world change\n * very frequently, and the current valid rule is not always valid in previous years though.\n * We work around this problem building a new Date object which has its internal UTC\n * representation with the local date and time.\n * @param dtf Intl.DateTimeFormat object, containing the desired string format. It must have\n * timeZone set to 'utc' to work fine.\n * @param date Date from which we want to get the string representation according to dtf\n * @returns A Date object with its UTC representation based on the passed in date info\n */\n private _format(dtf: Intl.DateTimeFormat, date: Date) {\n // Passing the year to the constructor causes year numbers <100 to be converted to 19xx.\n // To work around this we use `setUTCFullYear` and `setUTCHours` instead.\n const d = new Date();\n d.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n d.setUTCHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n );\n return dtf.format(d);\n }\n}\n","import { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\n\nimport { MAT_TIME_LOCALE_PROVIDER, TimeAdapter } from './time-adapter';\nimport { NativeDateTimeAdapter } from './native-date-time-adapter';\n\nexport * from './time-adapter';\nexport * from './native-date-time-adapter';\n\n@NgModule({\n imports: [PlatformModule],\n providers: [\n { provide: TimeAdapter, useClass: NativeDateTimeAdapter },\n MAT_TIME_LOCALE_PROVIDER,\n ],\n})\nexport class MatNativeDateTimeModule {}\n","import {\n AfterContentInit,\n AfterViewChecked,\n Directive,\n EventEmitter,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\n\nimport { TimeAdapter } from './adapter';\nimport { MatTimePeriodType } from './time-period';\nimport { ALL_MINUTES } from './minutes-clock-dial';\nimport { ALL_HOURS } from './hours-clock-dial';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\n@Directive()\nexport abstract class MatTimeFaceBase<T>\n implements AfterContentInit, AfterViewChecked\n{\n /** The currently selected time. */\n @Input()\n get selected(): T | null {\n return this._selected;\n }\n set selected(value: T | null) {\n this._selected = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (!this._selected) {\n return;\n }\n\n const hour = this._timeAdapter.getHour(this._selected);\n this.selectedHour = hour > 12 && this.isMeridiem ? hour - 12 : hour;\n if (hour === 0 && this.isMeridiem) {\n this.selectedHour = 12;\n }\n this.selectedMinute = this._timeAdapter.getMinute(this._selected);\n this.availableHours = ALL_HOURS;\n\n if (this.isMeridiem) {\n this.period = this._timeAdapter.getPeriod(this._selected);\n }\n\n this.availableMinutes = ALL_MINUTES;\n this._setMinHour();\n this._setMaxHour();\n this._setMinMinute();\n this._setMaxMinute();\n this._moveFocusOnNextTick = true;\n }\n private _selected: T | null;\n\n /** The minimum selectable time. */\n @Input()\n get minTime(): T | null {\n return this._minTime;\n }\n set minTime(value: T | null) {\n this._minTime = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (value) {\n this._setMinHour();\n this._setMinMinute();\n this._setDisabledPeriod();\n }\n }\n private _minTime: T | null;\n\n /** The maximum selectable time. */\n @Input()\n get maxTime(): T | null {\n return this._maxTime;\n }\n set maxTime(value: T | null) {\n this._maxTime = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (value) {\n this._setMaxHour();\n this._setMaxMinute();\n this._setDisabledPeriod();\n }\n }\n private _maxTime: T | null;\n\n /** Step over minutes. */\n @Input()\n get minuteInterval(): number {\n return this._minuteInterval;\n }\n set minuteInterval(value: number) {\n this._minuteInterval = coerceNumberProperty(value) || 1;\n }\n private _minuteInterval: number = 1;\n\n /** Whether the clock uses 12 hour format. */\n @Input() isMeridiem: boolean;\n\n /** Color palette. */\n @Input() color: ThemePalette = 'primary';\n\n /** Emits when any hour, minute or period is selected. */\n @Output() _userSelection = new EventEmitter<T>();\n\n @Output() selectedChange = new EventEmitter<T>();\n\n selectedHour: number = 0;\n selectedMinute: number = 0;\n period: MatTimePeriodType;\n disabledPeriod: MatTimePeriodType | null = null;\n availableMinutes = ALL_MINUTES;\n availableHours = ALL_HOURS;\n\n /**\n * Used for scheduling that focus should be moved to the active cell on the next tick.\n * We need to schedule it, rather than do it immediately, because we have to wait\n * for Angular to re-evaluate the view children.\n */\n private _moveFocusOnNextTick = false;\n\n constructor(@Optional() protected _timeAdapter: TimeAdapter<T>) {}\n\n ngAfterContentInit() {\n if (!this.selected) {\n this.selected = this._timeAdapter.clampTime(\n this._timeAdapter.now(),\n this.minTime,\n this.maxTime\n );\n this._userSelection.emit(this.selected);\n }\n }\n\n ngAfterViewChecked() {\n if (this._moveFocusOnNextTick) {\n this._moveFocusOnNextTick = false;\n this.focusActiveCell();\n }\n }\n\n /**\n * Focuses the active cell after or input the microtask queue is empty.\n *\n * Adding a 0ms setTimeout seems to fix Voiceover losing focus when pressing PageUp/PageDown.\n *\n * Determined a 0ms by gradually increasing duration from 0 and testing two use cases with screen\n * reader enabled:\n *\n * 1. Pressing PageUp/PageDown repeatedly with pausing between each key press.\n * 2. Pressing and holding the PageDown key with repeated keys enabled.\n *\n * Test 1 worked roughly 95-99% of the time with 0ms and got a little bit better as the duration\n * increased. Test 2 got slightly better until the duration was long enough to interfere with\n * repeated keys. If the repeated key speed was faster than the timeout duration, then pressing\n * and holding pagedown caused the entire page to scroll.\n *\n * Since repeated key speed can verify across machines, determined that any duration could\n * potentially interfere with repeated keys. 0ms would be best because it almost entirely\n * eliminates the focus being lost in Voiceover without causing unintended side effects.\n * Adding delay also complicates writing tests.\n */\n abstract focusActiveCell(): void;\n\n /** Handles hour selection. */\n _onHourSelected(hour: number): void {\n this.selectedHour = hour;\n const selected = this._timeAdapter.updateHour(\n this.selected!,\n this._getHourBasedOnPeriod(hour)\n );\n this._timeSelected(selected);\n }\n\n /** Handles minute selection. */\n _onMinuteSelected(minute: number): void {\n this.selectedMinute = minute;\n const selected = this._timeAdapter.updateMinute(this.selected!, minute);\n this._timeSelected(selected);\n }\n\n /** Handles period changing. */\n _onPeriodChanged(period: MatTimePeriodType): void {\n this.period = period;\n const selected = this._timeAdapter.updateHour(\n this.selected!,\n this._getHourBasedOnPeriod(this.selectedHour)\n );\n this._timeSelected(selected);\n }\n\n _getAvailableHours(): number[] {\n if (this.isMeridiem) {\n return this.availableHours\n .filter((h) => {\n if (this.period === 'am') {\n return h < 12;\n }\n\n if (this.period === 'pm') {\n return h >= 12;\n }\n\n return h;\n })\n .map((h) => {\n if (h > 12) {\n return h - 12;\n }\n\n if (h === 0) {\n return 12;\n }\n\n return h;\n });\n }\n\n return this.availableHours;\n }\n\n _onKeydown(event: KeyboardEvent, view: 'hour' | 'minute'): void {\n switch (view) {\n case 'hour':\n this._handleHourKeydown(event);\n break;\n case 'minute':\n this._handleMinuteKeydown(event);\n break;\n }\n }\n\n private _handleHourKeydown(event: KeyboardEvent): void {\n const hours = this._getAvailableHours();\n const selectedHourIndex = hours.findIndex(\n (hour) => hour === this.selectedHour\n );\n\n if (!hours.length) {\n return;\n }\n\n switch (event.keyCode) {\n case UP_ARROW:\n if (selectedHourIndex + 1 >= hours.length || selectedHourIndex < 0) {\n this._onHourSelected(hours[0]);\n } else {\n this._onHourSelected(hours[selectedHourIndex + 1]);\n }\n break;\n case DOWN_ARROW:\n if (selectedHourIndex - 1 < 0 || selectedHourIndex < 0) {\n this._onHourSelected(hours[hours.length - 1]);\n } else {\n this._onHourSelected(hours[selectedHourIndex - 1]);\n }\n break;\n default:\n break;\n }\n }\n\n private _handleMinuteKeydown(event: KeyboardEvent): void {\n const minutes = this.availableMinutes;\n const selectedMinuteIndex = minutes.findIndex(\n (minute) => minute === this.selectedMinute\n );\n\n if (!minutes.length) {\n return;\n }\n\n switch (event.keyCode) {\n case UP_ARROW:\n if (\n selectedMinuteIndex + this.minuteInterval >= minutes.length ||\n selectedMinuteIndex < 0\n ) {\n const difference =\n 60 - this.selectedMinute + Math.min(...this.availableMinutes);\n const count = Math.ceil(difference / this.minuteInterval);\n const differenceForValid = count * this.minuteInterval;\n const nextValidValue = this.selectedMinute + differenceForValid;\n const correctIndex = minutes.findIndex(\n (minute) => minute === nextValidValue - 60 // amount of mins\n );\n this._onMinuteSelected(minutes[correctIndex]);\n } else {\n this._onMinuteSelected(\n minutes[selectedMinuteIndex + this.minuteInterval]\n );\n }\n break;\n case DOWN_ARROW:\n if (\n selectedMinuteIndex - this.minuteInterval < 0 ||\n selectedMinuteIndex < 0\n ) {\n const difference =\n 60 + this.selectedMinute - Math.max(...this.availableMinutes);\n const count = Math.ceil(difference / this.minuteInterval);\n const differenceForValid = count * this.minuteInterval;\n const nextValidValue = this.selectedMinute - differenceForValid;\n const correctIndex = minutes.findIndex(\n (minute) => minute === nextValidValue + 60 // amount of mins\n );\n this._onMinuteSelected(minutes[correctIndex]);\n } else {\n this._onMinuteSelected(\n minutes[selectedMinuteIndex - this.minuteInterval]\n );\n }\n break;\n default:\n break;\n }\n }\n\n /** Gets a correct hours based on meridiem and period. */\n private _getHourBasedOnPeriod(hour: number): number {\n const afterNoon = this.isMeridiem && this.period === 'pm';\n const beforeNoon = this.isMeridiem && this.period === 'am';\n\n if (afterNoon) {\n return hour === 12 ? hour : hour + 12;\n }\n\n if (beforeNoon) {\n return hour === 12 ? 0 : hour;\n }\n\n return hour;\n }\n\n private _timeSelected(value: T): void {\n if (value && !this._timeAdapter.sameTime(value, this.selected)) {\n this.selectedChange.emit(value);\n }\n\n this._userSelection.emit(value);\n }\n\n /** Sets min hour. */\n private _setMinHour(): void {\n if (!this.minTime) {\n return;\n }\n\n const minHour = this._timeAdapter.getHour(this.minTime);\n this.availableHours = this.availableHours.filter((h) => h >= minHour);\n }\n\n /** Sets max hour. */\n private _setMaxHour(): void {\n if (!this.maxTime) {\n return;\n }\n\n const maxHour = this._timeAdapter.getHour(this.maxTime);\n this.availableHours = this.availableHours.filter((h) => h <= maxHour);\n }\n\n /** Sets min minute. */\n private _setMinMinute(): void {\n if (!this.selected || !this.minTime) {\n return;\n }\n\n const selectedHour = this._timeAdapter.getHour(this.selected);\n const minHour = this._timeAdapter.getHour(this.minTime);\n\n const minMinute =\n selectedHour > minHour ? 0 : this._timeAdapter.getMinute(this.minTime);\n\n this.availableMinutes = this.availableMinutes.filter(\n (minute) => minute >= minMinute\n );\n\n if (selectedHour < minHour) {\n this.availableMinutes = [];\n }\n }\n\n /** Sets max minute. */\n private _setMaxMinute(): void {\n if (!this.selected || !this.maxTime) {\n return;\n }\n\n const selectedHour = this._timeAdapter.getHour(this.selected);\n const maxHour = this._timeAdapter.getHour(this.maxTime);\n\n const maxMinute =\n selectedHour < maxHour ? 59 : this._timeAdapter.getMinute(this.maxTime);\n\n this.availableMinutes = this.availableMinutes.filter(\n (minute) => minute <= maxMinute\n );\n\n if (selectedHour > maxHour) {\n this.availableMinutes = [];\n }\n }\n\n /** Sets disabled period. */\n private _setDisabledPeriod(): void {\n if (this.minTime) {\n const minHour = this._timeAdapter.getHour(this.minTime);\n\n if (minHour >= 12) {\n this.disabledPeriod = 'am';\n }\n }\n\n if (this.maxTime) {\n const maxHour = this._timeAdapter.getHour(this.maxTime);\n const maxMinute = this._timeAdapter.getHour(this.maxTime);\n\n if (maxHour < 12 || (maxHour === 12 && maxMinute === 0)) {\n this.disabledPeriod = 'pm';\n }\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Input,\n Output,\n EventEmitter,\n Directive,\n ElementRef,\n ChangeDetectorRef,\n Inject,\n Self,\n} from '@angular/core';\n\nexport function withZeroPrefix(value: number): string {\n return value < 10 ? `0${value}` : `${value}`;\n}\n\nexport function withZeroPrefixMeridiem(\n value: number,\n isMeridiem: boolean\n): string {\n const newValue = isMeridiem && value === 0 ? 12 : value;\n\n return withZeroPrefix(newValue);\n}\n\n@Directive()\nexport abstract class MatTimeInputBase {\n @Input()\n get value(): number {\n return this._value;\n }\n set value(value: number) {\n this._value = value;\n if (!this.hasFocus) {\n this.setInputValue(this._value);\n }\n // we need timeout here to set placeholder first time\n setTimeout(() => {\n this.setInputPlaceholder(this._value);\n }, 0);\n }\n private _value: number;\n\n @Output() timeChanged = new EventEmitter<number>();\n\n get inputElement() {\n return this.element.nativeElement as HTMLInputElement;\n }\n\n get hasFocus() {\n return this.element?.nativeElement === this._document.activeElement;\n }\n\n constructor(\n private element: ElementRef<HTMLInputElement>,\n private _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: Document\n ) {}\n\n focus() {\n this.setInputValue(null);\n }\n\n blur() {\n const isNumber = !isNaN(Number(this.inputElement.value));\n const value = this._formatValue(\n isNumber ? Number(this.inputElement.value || this._value) : this.value\n );\n this.setInputValue(value);\n this.setInputPlaceholder(value);\n this.timeChanged.emit(value);\n }\n\n setInputValue(value: number | null) {\n if (value !== null) {\n this.inputElement.value = this._withZeroPrefix(value);\n } else {\n this.inputElement.value = '';\n }\n\n this._cdr.markForCheck();\n }\n\n setInputPlaceholder(value: number) {\n this.inputElement.placeholder = this._withZeroPrefix(value);\n this._cdr.markForCheck();\n }\n\n abstract _withZeroPrefix(value: number): string;\n\n abstract _formatValue(value: number): number;\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nconst visible = { transform: 'scale(1)', opacity: 1, visibility: 'visible' };\nconst hidden = { transform: 'scale(1.05)', opacity: 0, visibility: 'hidden' };\n\nexport const enterLeaveAnimation = trigger('enterLeaveAnimation', [\n transition(':enter', [\n style(hidden),\n animate('0.1s ease-out', style(visible)),\n ]),\n transition(':leave', [style(visible), animate('0s ease-in', style(hidden))]),\n]);\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { TimepickerOrientation } from './orientation';\n\n@Component({\n selector: 'mat-timepicker-content-layout',\n templateUrl: './timepicker-content-layout.html',\n styleUrls: ['./timepicker-content-layout.scss'],\n exportAs: 'matTimepickerContent',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-content-layout',\n '[class.mat-timepicker-content-layout-horizontal]':\n 'orientation === \"horizontal\"',\n '[class.mat-timepicker-content-layout-vertical]':\n 'orientation === \"vertical\"',\n },\n})\nexport class MatTimepickerContentLayout {\n /** Content title. */\n @Input() title: string;\n\n /** Layout orientation. */\n @Input() orientation: TimepickerOrientation = 'vertical';\n}\n","<h6 class=\"mat-timepicker-content-layout-title\">{{ title }}</h6>\n\n<div class=\"mat-timepicker-content-layout-container\">\n <div class=\"mat-timepicker-content-layout-values\">\n <div class=\"mat-timepicker-content-layout-hours\">\n <ng-content select=\"[hours]\"></ng-content>\n </div>\n <span class=\"mat-timepicker-content-layout-separator\">&#58;</span>\n <div class=\"mat-timepicker-content-layout-minutes\">\n <ng-content select=\"[minutes]\"></ng-content>\n </div>\n\n <ng-content select=\"[mat-time-period]\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport type MatTimePeriodType = 'am' | 'pm';\n\n@Component({\n selector: 'mat-time-period',\n templateUrl: './time-period.html',\n styleUrls: ['./time-period.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-time-period',\n '[class.mat-time-period-vertical]': 'vertical',\n '[class.mat-time-period-horizontal]': '!vertical',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n },\n})\nexport class MatTimePeriod {\n /** Whether the time period is vertically aligned. */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n set vertical(value: BooleanInput) {\n this._vertical = coerceBooleanProperty(value);\n }\n private _vertical: boolean = true;\n\n @Input()\n get period(): MatTimePeriodType {\n return this._period;\n }\n set period(value: MatTimePeriodType) {\n this._period = value || 'am';\n }\n private _period: MatTimePeriodType = 'am';\n\n @Input()\n get disabledPeriod(): MatTimePeriodType | null {\n return this._disabledPeriod;\n }\n set disabledPeriod(value: MatTimePeriodType | null) {\n this._disabledPeriod = value;\n }\n private _disabledPeriod: MatTimePeriodType | null = null;\n\n @Output() periodChanged = new EventEmitter<MatTimePeriodType>();\n\n setPeriod(event: Event, period: MatTimePeriodType): void {\n event.preventDefault();\n this.period = period;\n this.periodChanged.emit(period);\n }\n\n _isPeriodDisabled(period: MatTimePeriodType): boolean {\n if (!this.disabledPeriod) {\n return false;\n }\n\n return this.disabledPeriod === period;\n }\n}\n","<div\n tabindex=\"0\"\n class=\"mat-time-period-item\"\n matRipple\n [class.mat-time-period-item-active]=\"period === 'am'\"\n [class.mat-time-period-item-disabled]=\"_isPeriodDisabled('am')\"\n (click)=\"setPeriod($event,'am')\"\n (keydown.space)=\"setPeriod($event, 'am')\"\n>\n AM\n</div>\n<mat-divider [vertical]=\"!vertical\"></mat-divider>\n<div\n tabindex=\"0\"\n class=\"mat-time-period-item\"\n matRipple\n [class.mat-time-period-item-active]=\"period === 'pm'\"\n [class.mat-time-period-item-disabled]=\"_isPeriodDisabled('pm')\"\n (click)=\"setPeriod($event,'pm')\"\n (keydown.space)=\"setPeriod($event, 'pm')\"\n>\n PM\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n Optional,\n NgZone,\n ElementRef,\n Input,\n} from '@angular/core';\nimport { BehaviorSubject, Subscription, take } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\nimport { MatTimeFaceBase } from './time-face-base';\nimport { withZeroPrefixMeridiem } from './time-input-base';\nimport { MatTimepickerIntl } from './timepicker-intl';\nimport { TimepickerOrientation } from './orientation';\nimport { enterLeaveAnimation } from './clock-dial-adnimation';\n\nexport type MatDialView = 'hours' | 'minutes';\n\n@Component({\n selector: 'mat-clock-dials',\n templateUrl: './clock-dials.html',\n styleUrls: ['./clock-dials.scss'],\n exportAs: 'matClockDials',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'dial',\n class: 'mat-clock-dials',\n },\n animations: [enterLeaveAnimation],\n})\nexport class MatClockDials<T>\n extends MatTimeFaceBase<T>\n implements OnInit, OnDestroy\n{\n /** Layout orientation. */\n @Input() orientation: TimepickerOrientation;\n\n isHoursView = true;\n\n /** Specifies the view of clock dial. */\n private readonly _view = new BehaviorSubject<MatDialView>('hours');\n private _viewSubscription: Subscription | null = Subscription.EMPTY;\n\n constructor(\n public _intl: MatTimepickerIntl,\n @Optional() _timeAdapter: TimeAdapter<T>,\n private _ngZone: NgZone,\n private _elementRef: ElementRef\n ) {\n super(_timeAdapter);\n }\n\n ngOnInit(): void {\n this._viewSubscription = this._view.subscribe(\n (view) => (this.isHoursView = view === 'hours')\n );\n }\n\n ngOnDestroy(): void {\n this._viewSubscription?.unsubscribe();\n this._viewSubscription = null;\n }\n\n /** Changes clock dial view. */\n onViewChange(event: Event, view: MatDialView): void {\n event.preventDefault();\n this._view.next(view);\n }\n\n focusActiveCell(): void {\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n setTimeout(() => {\n const activeCell: HTMLElement | null =\n this._elementRef.nativeElement.querySelector(\n '.mat-clock-dial-cell-active'\n );\n\n if (activeCell) {\n activeCell.focus();\n return;\n }\n\n const activePoint: HTMLElement | null =\n this._elementRef.nativeElement.querySelector(\n '.mat-clock-dial-hand-point'\n );\n\n if (activePoint) {\n // if no active cell we need to focus a small dot\n activePoint.focus();\n }\n }, 50);\n });\n });\n }\n\n _withZeroPrefix(value: number): string {\n if (value === 0) {\n return '00';\n }\n\n return withZeroPrefixMeridiem(value, this.isMeridiem);\n }\n\n /** Handles hour selection. */\n _onHourChanged({\n hour,\n changeView = false,\n }: {\n hour: number;\n changeView?: boolean;\n }): void {\n if (changeView) {\n this._view.next('minutes');\n }\n this._onHourSelected(hour);\n }\n}\n","<mat-timepicker-content-layout\n [title]=\"_intl.dialsTitle\"\n [orientation]=\"orientation\"\n>\n <div\n tabindex=\"0\"\n class=\"mat-clock-dial-value\"\n hours\n [class.mat-clock-dial-value-active]=\"isHoursView\"\n (click)=\"onViewChange($event,'hours')\"\n (keydown.space)=\"onViewChange($event, 'hours')\"\n >\n {{ _withZeroPrefix(selectedHour) }}\n </div>\n <div\n tabindex=\"0\"\n class=\"mat-clock-dial-value\"\n minutes\n [class.mat-clock-dial-value-active]=\"!isHoursView\"\n (click)=\"onViewChange($event,'minutes')\"\n (keydown.space)=\"onViewChange($event,'minutes')\"\n >\n {{ _withZeroPrefix(selectedMinute) }}\n </div>\n\n <ng-template mat-time-period [ngIf]=\"isMeridiem\">\n <mat-time-period\n [period]=\"period\"\n [disabledPeriod]=\"disabledPeriod\"\n [vertical]=\"orientation === 'vertical'\"\n (periodChanged)=\"_onPeriodChanged($event)\"\n ></mat-time-period>\n </ng-template>\n\n <div\n class=\"mat-clock-dial-faces\"\n [class.mat-clock-dial-faces-horizontal]=\"orientation === 'horizontal'\"\n >\n <ng-template [ngIf]=\"isHoursView\">\n <mat-hours-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedHour]=\"selectedHour\"\n [isMeridiem]=\"isMeridiem\"\n [availableHours]=\"_getAvailableHours()\"\n (selectedChange)=\"_onHourChanged($event)\"\n (keydown)=\"_onKeydown($event, 'hour')\"\n ></mat-hours-clock-dial>\n </ng-template>\n <ng-template [ngIf]=\"!isHoursView\">\n <mat-minutes-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedMinute]=\"selectedMinute\"\n [interval]=\"minuteInterval\"\n [availableMinutes]=\"availableMinutes\"\n (selectedChange)=\"_onMinuteSelected($event)\"\n (keydown)=\"_onKeydown($event, 'minute')\"\n ></mat-minutes-clock-dial>\n </ng-template>\n </div>\n</mat-timepicker-content-layout>\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Optional,\n Directive,\n Input,\n ElementRef,\n ChangeDetectorRef,\n Inject,\n NgZone,\n} from '@angular/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { take } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\nimport { MatTimeFaceBase } from './time-face-base';\nimport { MatTimepickerIntl } from './timepicker-intl';\nimport {\n MatTimeInputBase,\n withZeroPrefix,\n withZeroPrefixMeridiem,\n} from './time-input-base';\n\n@Directive({\n selector: 'input[matHourInput]',\n exportAs: 'matTimeInput',\n host: {\n class: 'mat-time-input',\n '(focus)': 'focus($event)',\n '(blur)': 'blur($event)',\n },\n})\nexport class MatHourInput extends MatTimeInputBase {\n @Input()\n get availableHours(): number[] {\n return this._availableHours;\n }\n set availableHours(value: number[]) {\n this._availableHours = value;\n }\n private _availableHours: number[] = [];\n\n @Input() isMeridiem: boolean;\n\n constructor(\n element: ElementRef<HTMLInputElement>,\n _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) _document: Document\n ) {\n super(element, _cdr, _document);\n }\n\n _withZeroPrefix(value: number): string {\n return withZeroPrefixMeridiem(value, this.isMeridiem);\n }\n\n _formatValue(hour: number): number {\n const getValue = () => {\n if (this.isMeridiem) {\n if (hour === 0 || hour === 24) {\n return 12;\n }\n }\n\n if (hour === 24) {\n return 0;\n }\n\n return this.isMeridiem && hour > 12 ? hour - 12 : hour;\n };\n\n const value = getValue();\n\n if (this.isMeridiem) {\n if (!this.availableHours.length) {\n return this.value;\n }\n\n if (value === 12 && this.availableHours.includes(12)) {\n return 12;\n }\n\n if (value === 12 && !this.availableHours.includes(12)) {\n return Math.min(...this.availableHours);\n }\n\n if (value >= 1 && value < 12) {\n // the last item is max becuase 12 at the beginning is kinda \"min\"\n const maxHour = this.availableHours[this.availableHours.length - 1];\n\n return Math.min(\n Math.max(value, Math.min(...this.availableHours)),\n maxHour\n );\n }\n }\n\n return Math.min(\n Math.max(value, Math.min(...this.availableHours)),\n Math.max(...this.availableHours)\n );\n }\n}\n\n@Directive({\n selector: 'input[matMinuteInput]',\n exportAs: 'matTimeInput',\n host: {\n class: 'mat-time-input',\n '(focus)': 'focus($event)',\n '(blur)': 'blur($event)',\n },\n})\nexport class MatMinuteInput extends MatTimeInputBase {\n /** Step over minutes. */\n @Input()\n get interval(): number {\n return this._interval;\n }\n set interval(value: number) {\n this._interval = coerceNumberProperty(value) || 1;\n }\n private _interval: number = 1;\n\n @Input()\n get availableMinutes(): number[] {\n return this._availableMinutes;\n }\n set availableMinutes(value: number[]) {\n this._availableMinutes = value;\n }\n private _availableMinutes: number[] = [];\n\n constructor(\n element: ElementRef<HTMLInputElement>,\n _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) _document: Document\n ) {\n super(element, _cdr, _document);\n }\n\n _withZeroPrefix(value: number): string {\n return withZeroPrefix(value);\n }\n\n _formatValue(value: number): number {\n if (!this.availableMinutes.length) {\n return this.value;\n }\n\n const roundedValue = Math.round(value / this.interval) * this.interval;\n\n return Math.min(\n Math.max(roundedValue, Math.min(...this.availableMinutes)),\n Math.max(...this.availableMinutes)\n );\n }\n}\n\n@Component({\n selector: 'mat-time-inputs',\n templateUrl: './time-inputs.html',\n styleUrls: ['./time-inputs.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-time-inputs',\n },\n})\nexport class MatTimeInputs<T> extends MatTimeFaceBase<T> {\n constructor(\n public _intl: MatTimepickerIntl,\n @Optional() _timeAdapter: TimeAdapter<T>,\n private _ngZone: NgZone,\n private _elementRef: ElementRef\n ) {\n super(_timeAdapter);\n }\n\n /**\n * Using for skipping that focus shouldn't be moved to the active cell on the next tick.\n * We need to use it to avoid focusing input for input mode.\n */\n private _skipNextTickFocus = false;\n\n focusActiveCell(): void {\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n setTimeout(() => {\n const activeCell: HTMLElement | null =\n this._elementRef.nativeElement.querySelector(\n '.mat-timepicker-content input' // to avoid focus for inline mode\n );\n if (activeCell && !this._skipNextTickFocus) {\n activeCell.focus();\n this._skipNextTickFocus = true;\n }\n });\n });\n });\n }\n}\n","<mat-timepicker-content-layout [title]=\"_intl.inputsTitle\">\n <mat-form-field\n class=\"mat-time-inputs-field\"\n appearance=\"outline\"\n hours\n [color]=\"color\"\n >\n <input\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"2\"\n matInput\n matHourInput\n [isMeridiem]=\"isMeridiem\"\n [value]=\"selectedHour\"\n [availableHours]=\"_getAvailableHours()\"\n (timeChanged)=\"_onHourSelected($event)\"\n (keydown)=\"_onKeydown($event, 'hour')\"\n />\n <mat-hint>{{_intl.hourInputHint}}</mat-hint>\n </mat-form-field>\n <mat-form-field\n class=\"mat-time-inputs-field\"\n appearance=\"outline\"\n minutes\n [color]=\"color\"\n >\n <input\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"2\"\n matInput\n matMinuteInput\n [value]=\"selectedMinute\"\n [interval]=\"minuteInterval\"\n [availableMinutes]=\"availableMinutes\"\n (timeChanged)=\"_onMinuteSelected($event)\"\n (keydown)=\"_onKeydown($event, 'minute')\"\n />\n <mat-hint>{{_intl.minuteInputHint}}</mat-hint>\n </mat-form-field>\n\n <ng-template mat-time-period [ngIf]=\"isMeridiem\">\n <mat-time-period\n [period]=\"period\"\n [disabledPeriod]=\"disabledPeriod\"\n (periodChanged)=\"_onPeriodChanged($event)\"\n ></mat-time-period>\n </ng-template>\n</mat-timepicker-content-layout>\n","import {\n FactoryProvider,\n Injectable,\n OnDestroy,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\n\nexport type ExtractTimeTypeFromSelection<T> = NonNullable<T>;\n\n/**\n * Event emitted by the time selection model when its selection changes.\n * @docs-private\n */\nexport interface TimeSelectionModelChange<S> {\n /** New value for the selection. */\n selection: S;\n\n /** Object that triggered the change. */\n source: unknown;\n\n /** Previous value */\n oldValue?: S;\n}\n\n/**\n * A selection model containing a time selection.\n */\n@Injectable()\nexport abstract class MatTimeSelectionModel<\n S,\n T = ExtractTimeTypeFromSelection<S>\n> implements OnDestroy\n{\n /** The current selection. */\n readonly selection: S;\n\n private readonly _selectionChanged = new Subject<\n TimeSelectionModelChange<S>\n >();\n\n /** Emits when the selection has changed. */\n selectionChanged: Observable<TimeSelectionModelChange<S>> =\n this._selectionChanged;\n\n /**\n * Updates the current selection in the model.\n * @param value New selection that should be assigned.\n * @param source Object that triggered the selection change.\n */\n updateSelection(value: S, source: unknown) {\n const oldValue = (this as { selection: S }).selection;\n (this as { selection: S }).selection = value;\n this._selectionChanged.next({ selection: value, source, oldValue });\n }\n\n protected constructor(protected _adapter: TimeAdapter<T>) {\n // this.selection = selection;\n }\n\n ngOnDestroy(): void {\n this._selectionChanged.complete();\n }\n\n /** Adds a time to the current selection. */\n abstract add(time: T | null): void;\n\n /** Clones the selection model. */\n abstract clone(): MatTimeSelectionModel<S, T>;\n}\n\n/**\n * A selection model that contains a single time.\n */\n@Injectable()\nexport class MatSingleTimeSelectionModel<T> extends MatTimeSelectionModel<\n T | null,\n T\n> {\n constructor(adapter: TimeAdapter<T>) {\n super(adapter);\n }\n\n /**\n * Adds a time to the current selection. In the case of a single time selection, the added time\n * simply overwrites the previous selection\n */\n add(time: T | null) {\n super.updateSelection(time, this);\n }\n\n /** Clones the selection model. */\n clone() {\n const clone = new MatSingleTimeSelectionModel<T>(this._adapter);\n clone.updateSelection(this.selection, this);\n return clone;\n }\n}\n\nexport function MAT_SINGLE_TIME_SELECTION_MODEL_FACTORY(\n parent: MatSingleTimeSelectionModel<unknown>,\n adapter: TimeAdapter<unknown>\n) {\n return parent || new MatSingleTimeSelectionModel(adapter);\n}\n\n/**\n * Used to provide a single selection model to a component.\n */\nexport const MAT_SINGLE_TIME_SELECTION_MODEL_PROVIDER: FactoryProvider = {\n provide: MatTimeSelectionModel,\n deps: [\n [new Optional(), new SkipSelf(), MatSingleTimeSelectionModel],\n TimeAdapter,\n ],\n useFactory: MAT_SINGLE_TIME_SELECTION_MODEL_FACTORY,\n};\n","import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewEncapsulation,\n ElementRef,\n OnInit,\n AfterViewInit,\n ViewChild,\n} from '@angular/core';\nimport { mixinColor } from '@angular/material/core';\nimport { Subject } from 'rxjs';\n\nimport {\n ExtractTimeTypeFromSelection,\n MatTimeSelectionModel,\n} from './time-selection-model';\nimport { matTimepickerAnimations } from './timepicker-animations';\nimport { MatTimepickerBase, TimepickerMode } from './timepicker-base';\nimport { MatTimepickerIntl } from './timepicker-intl';\nimport { MatClockDials } from './clock-dials';\nimport { MatTimeInputs } from './time-inputs';\nimport { TimepickerOrientation } from './orientation';\n\n// Boilerplate for applying mixins to MatTimepickerContent.\nconst _MatTimepickerContentBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n);\n\n@Component({\n selector: 'mat-timepicker-content',\n templateUrl: './timepicker-content.html',\n styleUrls: ['./timepicker-content.scss'],\n exportAs: 'matTimepickerContent',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-content',\n '[@transformPanel]': '_animationState',\n '(@transformPanel.done)': '_animationDone.next()',\n },\n animations: [\n matTimepickerAnimations.transformPanel,\n matTimepickerAnimations.fadeInTimepicker,\n ],\n})\nexport class MatTimepickerContent<S, T = ExtractTimeTypeFromSelection<S>>\n extends _MatTimepickerContentBase\n implements OnInit, AfterViewInit\n{\n /** Reference to the internal clock dials component. */\n @ViewChild(MatClockDials) _dials: MatClockDials<T> | undefined;\n\n /** Reference to the internal time inputs component. */\n @ViewChild(MatTimeInputs) _inputs: MatTimeInputs<T> | undefined;\n\n /** Reference to the timepicker that created the overlay. */\n timepicker: MatTimepickerBase<any, S, T>;\n\n /** Display mode. */\n mode: TimepickerMode;\n\n /** Current state of the animation. */\n _animationState: 'enter-dropdown' | 'enter-dialog' | 'void';\n\n /** Whether the clock uses 12 hour format. */\n isMeridiem: boolean;\n\n /** Whether should toggle face button be shown. */\n showToggleModeButton: boolean;\n\n /** Step for minutes. */\n minuteInterval: number;\n\n /** Orientation for dial mode. */\n orientation: TimepickerOrientation;\n\n /** Portal with projected action buttons. */\n _actionsPortal: TemplatePortal | ComponentPortal<any> | null = null;\n\n /** Id of the label for the `role=\"dialog\"` element. */\n _dialogLabelId: string | null;\n\n /** Text for the close button. */\n _closeButtonText: string;\n\n /** Whether the close button currently has focus. */\n _closeButtonFocused: boolean;\n\n /** Emits when an animation has finished. */\n readonly _animationDone = new Subject<void>();\n\n private _model: MatTimeSelectionModel<S, T>;\n\n constructor(\n elementRef: ElementRef,\n intl: MatTimepickerIntl,\n private _globalModel: MatTimeSelectionModel<S, T>,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef);\n this._closeButtonText = intl.closeTimepickerLabel;\n }\n\n ngOnInit() {\n this._animationState =\n this.timepicker.openAs === 'dialog' ? 'enter-dialog' : 'enter-dropdown';\n }\n\n ngAfterViewInit() {\n (this._dials || this._inputs)?.focusActiveCell();\n }\n\n /** Changes animation state while closing timepicker content. */\n startExitAnimation() {\n this._animationState = 'void';\n this._changeDetectorRef.markForCheck();\n }\n\n onToggleMode(mode: TimepickerMode): void {\n this.mode = mode;\n }\n\n _getSelected() {\n return this._model?.selection as unknown as T | null;\n }\n\n /** Applies the current pending selection to the global model. */\n _applyPendingSelection() {\n if (this._model !== this._globalModel) {\n this._globalModel.updateSelection(this._model.selection, this);\n }\n }\n\n /**\n * Assigns a new portal containing the timepicker actions.\n * @param portal Portal with the actions to be assigned.\n * @param forceRerender Whether a re-render of the portal should be triggered. This isn't\n * necessary if the portal is assigned during initialization, but it may be required if it's\n * added at a later point.\n */\n _assignActions(\n portal: TemplatePortal<any> | ComponentPortal<any> | null,\n forceRerender: boolean\n ) {\n // As we have actions, clone the model so that we have the ability to cancel the selection.\n // Note that we want to assign this as soon as possible,\n // but `_actionsPortal` isn't available in the constructor so we do it in `ngOnInit`.\n this._model = this._globalModel.clone();\n\n this._actionsPortal = portal;\n\n if (forceRerender) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n _handleUserSelection(event: T) {\n const value = event;\n this._model.add(value);\n }\n}\n","<div\n cdkTrapFocus\n role=\"dialog\"\n class=\"mat-timepicker-content-container\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"_dialogLabelId ?? undefined\"\n>\n <ng-container [ngSwitch]=\"mode\">\n <ng-template ngSwitchCase=\"input\">\n <mat-time-inputs\n [id]=\"timepicker.id\"\n [color]=\"color\"\n [isMeridiem]=\"isMeridiem\"\n [selected]=\"_getSelected()\"\n [minTime]=\"timepicker._getMinTime()\"\n [maxTime]=\"timepicker._getMaxTime()\"\n [minuteInterval]=\"minuteInterval\"\n (_userSelection)=\"_handleUserSelection($event)\"\n ></mat-time-inputs>\n\n <div class=\"mat-timepicker-content-actions\">\n <button\n class=\"mat-time-toggle-mode-button\"\n mat-icon-button\n *ngIf=\"showToggleModeButton\"\n (click)=\"onToggleMode('dial')\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n width=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"m15.175 16.625 1.475-1.45-3.6-3.6V7.1h-2.075v5.3ZM12 21.95q-2.075 0-3.887-.787-1.813-.788-3.15-2.125-1.338-1.338-2.125-3.151Q2.05 14.075 2.05 12t.788-3.887q.787-1.813 2.125-3.15Q6.3 3.625 8.113 2.837 9.925 2.05 12 2.05t3.887.787q1.813.788 3.151 2.126 1.337 1.337 2.125 3.15.787 1.812.787 3.887t-.787 3.887q-.788 1.813-2.125 3.151-1.338 1.337-3.151 2.125-1.812.787-3.887.787ZM12 12Zm0 7.8q3.225 0 5.513-2.275Q19.8 15.25 19.8 12q0-3.25-2.287-5.525Q15.225 4.2 12 4.2T6.488 6.475Q4.2 8.75 4.2 12q0 3.25 2.288 5.525Q8.775 19.8 12 19.8Z\"\n />\n </svg>\n </button>\n\n <ng-template [cdkPortalOutlet]=\"_actionsPortal\"></ng-template>\n </div>\n </ng-template>\n <ng-template ngSwitchCase=\"dial\">\n <mat-clock-dials\n [id]=\"timepicker.id\"\n [color]=\"color\"\n [isMeridiem]=\"isMeridiem\"\n [selected]=\"_getSelected()\"\n [minTime]=\"timepicker._getMinTime()\"\n [maxTime]=\"timepicker._getMaxTime()\"\n [minuteInterval]=\"minuteInterval\"\n [orientation]=\"orientation\"\n (_userSelection)=\"_handleUserSelection($event)\"\n ></mat-clock-dials>\n\n <div class=\"mat-timepicker-content-actions\">\n <button\n class=\"mat-time-toggle-mode-button\"\n mat-icon-button\n *ngIf=\"showToggleModeButton\"\n (click)=\"onToggleMode('input')\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n width=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 19q-.825 0-1.412-.587Q2 17.825 2 17V7q0-.825.588-1.412Q3.175 5 4 5h16q.825 0 1.413.588Q22 6.175 22 7v10q0 .825-.587 1.413Q20.825 19 20 19Zm0-2h16V7H4v10Zm4-1h8v-2H8Zm-3-3h2v-2H5Zm3 0h2v-2H8Zm3 0h2v-2h-2Zm3 0h2v-2h-2Zm3 0h2v-2h-2ZM5 10h2V8H5Zm3 0h2V8H8Zm3 0h2V8h-2Zm3 0h2V8h-2Zm3 0h2V8h-2ZM4 17V7v10Z\"\n />\n </svg>\n </button>\n\n <ng-template [cdkPortalOutlet]=\"_actionsPortal\"></ng-template>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Invisible close button for screen reader users. -->\n <button\n type=\"button\"\n mat-raised-button\n [color]=\"color || 'primary'\"\n class=\"mat-timepicker-close-button\"\n [class.cdk-visually-hidden]=\"!_closeButtonFocused\"\n (focus)=\"_closeButtonFocused = true\"\n (blur)=\"_closeButtonFocused = false\"\n (click)=\"timepicker.close()\"\n >\n {{ _closeButtonText }}\n </button>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken } from '@angular/core';\n\nexport const MAT_DEFAULT_ACITONS = new InjectionToken<ComponentType<any>>(\n 'MAT_DEFAULT_ACITONS'\n);\n","import {\n Input,\n ComponentRef,\n ViewContainerRef,\n Directive,\n NgZone,\n Inject,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ElementRef,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport {\n BooleanInput,\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n DOWN_ARROW,\n ESCAPE,\n hasModifierKey,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n UP_ARROW,\n} from '@angular/cdk/keycodes';\nimport { filter, first, merge, Observable } from 'rxjs';\n\nimport { MatTimepickerContent } from './timepicker-content';\nimport { MAT_TIMEPICKER_SCROLL_STRATEGY } from './timepicker-scroll-strategy';\nimport {\n ExtractTimeTypeFromSelection,\n MatTimeSelectionModel,\n} from './time-selection-model';\nimport { MAT_DEFAULT_ACITONS } from './timepicker-actions-default';\nimport { TimepickerOrientation } from './orientation';\n\n/** Possible options for the timepicker to open. */\nexport type TimepickerOpenAs = 'dialog' | 'popup';\n\n/** Possible positions for the timepicker dropdown along the X axis. */\nexport type TimepickerDropdownPositionX = 'start' | 'end';\n\n/** Possible positions for the timepicker dropdown along the Y axis. */\nexport type TimepickerDropdownPositionY = 'above' | 'below';\n\n/** Possible options for the timepicker to display. */\nexport type TimepickerMode = 'input' | 'dial';\n\n/** Possible options for the timepicker period format. */\nexport type TimepickerFormat = '12h' | '24h';\n\n/** Form control that can be associated with a timepicker. */\nexport interface MatTimepickerControl<T> {\n disabled: boolean;\n min: T | null;\n max: T | null;\n getThemePalette(): ThemePalette;\n getConnectedOverlayOrigin(): ElementRef;\n getOverlayLabelId(): string | null;\n}\n\n/** A timepicker that can be attached to a {@link MatTimepickerControl}. */\nexport interface MatTimepickerPanel<\n C extends MatTimepickerControl<T>,\n S,\n T = ExtractTimeTypeFromSelection<S>\n> {\n /** Register an input with the timeepicker. */\n registerInput(input: C): MatTimeSelectionModel<S, T>;\n}\n\n/**\n * Represents the default options for the form field that can be configured\n * using the `MAT_TIMEPICKER_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatTimepickerDefaultOptions {\n /** Default color of the timepicker. */\n color?: ThemePalette;\n /** Default timepicker mode. */\n mode: TimepickerMode;\n /** Defines how timepicker will be appeared. */\n openAs: TimepickerOpenAs;\n /** Default timepicker format. */\n format: TimepickerFormat;\n /** Should toggle face button be visible. */\n showToggleModeButton: boolean;\n /** Step for minutes. */\n minuteInterval: number;\n /** Orientation for dial mode. */\n orientation: TimepickerOrientation;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all timepickers within an app.\n */\nexport const MAT_TIMEPICKER_DEFAULT_OPTIONS =\n new InjectionToken<MatTimepickerDefaultOptions>(\n 'MAT_TIMEPICKER_DEFAULT_OPTIONS'\n );\n\n/** Default open as used by the timepicker. */\nconst DEFAULT_OPEN_AS: TimepickerOpenAs = 'popup';\n\n/** Default mode used by the timepicker. */\nconst DEFAULT_MODE: TimepickerMode = 'dial';\n\n/** Default format used by the timepicker. */\nconst DEFAULT_FORMAT: TimepickerFormat = '12h';\n\n/** Used to generate a unique ID for each timepicker instance. */\nlet timepickerUid = 0;\n\n@Directive()\nexport abstract class MatTimepickerBase<\n C extends MatTimepickerControl<T>,\n S,\n T = ExtractTimeTypeFromSelection<S>\n> implements OnChanges\n{\n /** Whether the timepicker pop-up should be disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n }\n }\n private _disabled: boolean;\n\n /** Whether the timepicker is open. */\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n set opened(value: BooleanInput) {\n coerceBooleanProperty(value) ? this.open() : this.close();\n }\n private _opened = false;\n\n /** Whether the timepicker mode which determines what the timepicker will be opened as. */\n @Input()\n get openAs(): TimepickerOpenAs {\n return this._openAs || this._defaults?.openAs || DEFAULT_OPEN_AS;\n }\n set openAs(value: TimepickerOpenAs) {\n this._openAs = value;\n }\n private _openAs: TimepickerOpenAs;\n\n /** Color palette to use on the timepicker's content. */\n @Input()\n get color(): ThemePalette {\n return (\n this._color ||\n this._defaults?.color ||\n (this.timepickerInput\n ? this.timepickerInput.getThemePalette()\n : undefined)\n );\n }\n set color(value: ThemePalette) {\n this._color = value;\n }\n private _color: ThemePalette;\n\n /** Timepicker display mode. */\n @Input()\n get mode(): TimepickerMode {\n return this._mode || this._defaults?.mode || DEFAULT_MODE;\n }\n set mode(value: TimepickerMode) {\n this._mode = value;\n }\n private _mode: TimepickerMode;\n\n /** Timepicker period format. */\n @Input()\n get format(): TimepickerFormat {\n return this._format || this._defaults?.format || DEFAULT_FORMAT;\n }\n set format(value: TimepickerFormat) {\n this._format = value;\n }\n private _format: TimepickerFormat;\n\n /** Show or hide toggle button between dial and input. */\n @Input()\n get showToggleModeButton(): boolean {\n return this._showToggleModeButton;\n }\n set showToggleModeButton(value: boolean) {\n this._showToggleModeButton = value;\n }\n private _showToggleModeButton: boolean = true;\n\n /** Step for minutes. */\n @Input()\n get minuteInterval(): number {\n return this._minuteInterval || this._defaults?.minuteInterval || 1;\n }\n set minuteInterval(value: number) {\n this._minuteInterval = coerceNumberProperty(value);\n }\n private _minuteInterval: number;\n\n /** Orientation for dial mode. */\n @Input()\n get orientation(): TimepickerOrientation {\n return this._orientation || this._defaults?.orientation || 'vertical';\n }\n set orientation(value: TimepickerOrientation) {\n this._orientation = value;\n }\n private _orientation: TimepickerOrientation;\n\n /** Preferred position of the timepicker in the X axis. */\n @Input()\n xPosition: TimepickerDropdownPositionX = 'start';\n\n /** Preferred position of the timepicker in the Y axis. */\n @Input()\n yPosition: TimepickerDropdownPositionY = 'below';\n\n /** Emits when the timepicker has been closed. */\n @Output('closed') readonly closedStream = new EventEmitter<void>();\n\n /** The id for the timepicker. */\n id: string = `mat-timepicker-${timepickerUid++}`;\n\n /** The input element this timepicker is associated with. */\n timepickerInput!: C;\n\n /** Portal with projected action buttons. */\n _actionsPortal: TemplatePortal | null = null;\n\n /** A reference to the overlay into which we've rendered the timepicker. */\n private _overlayRef: OverlayRef | null;\n\n /** Reference to the component instance rendered in the overlay. */\n private _componentRef!: ComponentRef<MatTimepickerContent<S, T>> | null;\n\n /** Unique class that will be added to the backdrop so that the test harnesses can look it up. */\n private _backdropHarnessClass = `${this.id}-backdrop`;\n\n /** Scroll strategy. */\n private _scrollStrategy: () => ScrollStrategy;\n\n /** The minimum selectable time. */\n _getMinTime(): T | null {\n return this.timepickerInput && this.timepickerInput.min;\n }\n\n /** The maximum selectable time. */\n _getMaxTime(): T | null {\n return this.timepickerInput && this.timepickerInput.max;\n }\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _ngZone: NgZone,\n @Inject(MAT_TIMEPICKER_SCROLL_STRATEGY) scrollStrategy: any,\n @Inject(MAT_DEFAULT_ACITONS)\n private _defaultActionsComponent: ComponentType<any>,\n private _model: MatTimeSelectionModel<S, T>,\n @Optional()\n @Inject(MAT_TIMEPICKER_DEFAULT_OPTIONS)\n private _defaults?: MatTimepickerDefaultOptions\n ) {\n this._scrollStrategy = scrollStrategy;\n\n if (_defaults) {\n this.showToggleModeButton =\n _defaults.showToggleModeButton !== undefined\n ? _defaults.showToggleModeButton\n : true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const positionChange = changes['xPosition'] || changes['yPosition'];\n\n if (positionChange && !positionChange.firstChange && this._overlayRef) {\n const positionStrategy = this._overlayRef.getConfig().positionStrategy;\n\n if (positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n this._setConnectedPositions(positionStrategy);\n\n if (this.opened) {\n this._overlayRef.updatePosition();\n }\n }\n }\n }\n\n ngOnDestroy() {\n this._destroyOverlay();\n this.close();\n }\n\n /** Opens the timepicker. */\n open(): void {\n if (this._opened || this.disabled) {\n return;\n }\n\n if (!this.timepickerInput) {\n throw Error(\n 'Attempted to open an MatTimepicker with no associated input.'\n );\n }\n\n this._openOverlay();\n this._opened = true;\n }\n\n /** Closes the timepicker. */\n close(): void {\n if (!this._opened) {\n return;\n }\n\n if (this._componentRef) {\n const instance = this._componentRef.instance;\n instance.startExitAnimation();\n instance._animationDone\n .pipe(first())\n .subscribe(() => this._destroyOverlay());\n }\n\n // The `_opened` could've been reset already if\n // we got two events in quick succession.\n if (this._opened) {\n this._opened = false;\n this.closedStream.emit();\n }\n }\n\n /**\n * Register an input with this timepicker.\n * @param input The timepicker input to register with this timepicker.\n * @returns Selection model that the input should hook itself up to.\n */\n registerInput(input: C): MatTimeSelectionModel<S, T> {\n if (this.timepickerInput) {\n throw Error(\n 'A MatTimepicker can only be associated with a single input.'\n );\n }\n\n this.timepickerInput = input;\n return this._model;\n }\n\n /**\n * Registers a portal containing action buttons with the timepicker.\n * @param portal Portal to be registered.\n */\n registerActions(portal: TemplatePortal): void {\n if (this._actionsPortal) {\n throw Error(\n 'A MatTimepicker can only be associated with a single actions row.'\n );\n }\n this._actionsPortal = portal;\n this._componentRef?.instance._assignActions(portal, true);\n }\n\n /**\n * Removes a portal containing action buttons from the timepicker.\n * @param portal Portal to be removed.\n */\n removeActions(portal: TemplatePortal): void {\n if (portal === this._actionsPortal) {\n this._actionsPortal = null;\n this._componentRef?.instance._assignActions(null, true);\n }\n }\n\n /** Applies the current pending selection on the overlay to the model. */\n _applyPendingSelection() {\n this._componentRef?.instance?._applyPendingSelection();\n }\n\n /** Forwards relevant values from the timepicker to the timepicker content inside the overlay. */\n protected _forwardContentValues(instance: MatTimepickerContent<S, T>): void {\n const defaultPortal = new ComponentPortal(this._defaultActionsComponent);\n\n instance.timepicker = this;\n instance.color = this.color;\n instance.mode = this.mode;\n instance.isMeridiem = this.format === '12h';\n instance.showToggleModeButton = this.showToggleModeButton;\n instance.minuteInterval = this.minuteInterval;\n instance.orientation = this.orientation;\n instance._dialogLabelId = this.timepickerInput.getOverlayLabelId();\n instance._assignActions(this._actionsPortal || defaultPortal, false);\n }\n\n /** Opens the overlay with the timepicker. */\n private _openOverlay(): void {\n this._destroyOverlay();\n\n const isDialog = this.openAs === 'dialog';\n const portal = new ComponentPortal<MatTimepickerContent<S, T>>(\n MatTimepickerContent,\n this._viewContainerRef\n );\n\n const overlayRef = (this._overlayRef = this._overlay.create(\n new OverlayConfig({\n positionStrategy: isDialog\n ? this._getDialogStrategy()\n : this._getDropdownStrategy(),\n hasBackdrop: true,\n backdropClass: [\n isDialog\n ? 'cdk-overlay-dark-backdrop'\n : 'mat-overlay-transparent-backdrop',\n this._backdropHarnessClass,\n ],\n direction: 'ltr',\n scrollStrategy: isDialog\n ? this._overlay.scrollStrategies.block()\n : this._scrollStrategy(),\n panelClass: `mat-timepicker-${this.openAs}`,\n })\n ));\n\n this._getCloseStream(overlayRef).subscribe((event) => {\n if (event) {\n event.preventDefault();\n }\n this.close();\n });\n\n // The `preventDefault` call happens inside the timepicker as well, however focus moves into\n // it inside a timeout which can give browsers a chance to fire off a keyboard event in-between\n // that can scroll the page. Always block default actions of arrow keys for the\n // entire overlay so the page doesn't get scrolled by accident.\n overlayRef.keydownEvents().subscribe((event) => {\n const keyCode = event.keyCode;\n\n if (\n keyCode === UP_ARROW ||\n keyCode === DOWN_ARROW ||\n keyCode === LEFT_ARROW ||\n keyCode === RIGHT_ARROW ||\n keyCode === PAGE_UP ||\n keyCode === PAGE_DOWN\n ) {\n event.preventDefault();\n }\n });\n\n this._componentRef = overlayRef.attach(portal);\n this._forwardContentValues(this._componentRef.instance);\n\n // Update the position once the timepicker has rendered. Only relevant in dropdown mode.\n if (!isDialog) {\n this._ngZone.onStable\n .pipe(first())\n .subscribe(() => overlayRef.updatePosition());\n }\n }\n\n /** Destroys the current overlay. */\n private _destroyOverlay(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = this._componentRef = null;\n }\n }\n\n /** Gets a position strategy that will open the timepicker as a dropdown. */\n private _getDialogStrategy() {\n return this._overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically();\n }\n\n /** Gets a position strategy that will open the timepicker as a dropdown. */\n private _getDropdownStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this.timepickerInput.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mat-timepicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withLockedPosition();\n\n return this._setConnectedPositions(strategy);\n }\n\n /** Sets the positions of the timepicker in dropdown mode based on the current configuration. */\n private _setConnectedPositions(\n strategy: FlexibleConnectedPositionStrategy\n ): FlexibleConnectedPositionStrategy {\n const primaryX = this.xPosition === 'end' ? 'end' : 'start';\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\n const primaryY = this.yPosition === 'above' ? 'bottom' : 'top';\n const secondaryY = primaryY === 'top' ? 'bottom' : 'top';\n\n return strategy.withPositions([\n {\n originX: primaryX,\n originY: secondaryY,\n overlayX: primaryX,\n overlayY: primaryY,\n },\n {\n originX: primaryX,\n originY: primaryY,\n overlayX: primaryX,\n overlayY: secondaryY,\n },\n {\n originX: secondaryX,\n originY: secondaryY,\n overlayX: secondaryX,\n overlayY: primaryY,\n },\n {\n originX: secondaryX,\n originY: primaryY,\n overlayX: secondaryX,\n overlayY: secondaryY,\n },\n ]);\n }\n\n /** Gets an observable that will emit when the overlay is supposed to be closed. */\n private _getCloseStream(\n overlayRef: OverlayRef\n ): Observable<void | KeyboardEvent | MouseEvent> {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(\n filter((event) => {\n // Closing on alt + up is only valid when there's an input associated with the timepicker.\n return (\n (event.keyCode === ESCAPE && !hasModifierKey(event)) ||\n (this.timepickerInput &&\n hasModifierKey(event, 'altKey') &&\n event.keyCode === UP_ARROW)\n );\n })\n )\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MatTimepickerBase, MatTimepickerControl } from './timepicker-base';\nimport { MAT_SINGLE_TIME_SELECTION_MODEL_PROVIDER } from './time-selection-model';\n\n@Component({\n selector: 'mat-timepicker',\n template: '',\n exportAs: 'matTimepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker',\n '[class.mat-primary]': 'color !== \"accent\" && color !== \"warn\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n },\n providers: [\n MAT_SINGLE_TIME_SELECTION_MODEL_PROVIDER,\n { provide: MatTimepickerBase, useExisting: MatTimepicker },\n ],\n})\nexport class MatTimepicker<T> extends MatTimepickerBase<\n MatTimepickerControl<T>,\n T | null,\n T\n> {}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n ValidatorFn,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { TimeAdapter } from './adapter';\nimport {\n ExtractTimeTypeFromSelection,\n MatTimeSelectionModel,\n TimeSelectionModelChange,\n} from './time-selection-model';\n\n/**\n * An event used for timepicker input and change events. We don't always have access to a native\n * input or change event because the event may have been triggered by the user clicking on the\n * clock popup. For consistency, we always use MatTimepickerInputEvent instead.\n */\nexport class MatTimepickerInputEvent<D, S = unknown> {\n /** The new value for the target timepicker input. */\n value: D | null;\n\n constructor(\n /** Reference to the timepicker input component that emitted the event. */\n public target: MatTimepickerInputBase<S, D>,\n /** Reference to the native input element associated with the timepicker input. */\n public targetElement: HTMLElement\n ) {\n this.value = this.target.value;\n }\n}\n\nconst TIME_FORMATS = { hour: '2-digit', minute: '2-digit' };\n\n@Directive()\nexport abstract class MatTimepickerInputBase<\n S,\n T = ExtractTimeTypeFromSelection<S>\n> implements ControlValueAccessor, Validator\n{\n /** The value of the input. */\n @Input()\n get value(): T | null {\n return this._model\n ? this._getValueFromModel(this._model.selection)\n : this._pendingValue;\n }\n set value(value: any) {\n this._assignValueProgrammatically(value);\n }\n protected _model: MatTimeSelectionModel<S, T> | undefined;\n\n /** Whether the timepicker-input is disabled. */\n @Input()\n get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n const element = this._elementRef.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n // this.stateChanges.next(undefined);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n // In Ivy static bindings are invoked earlier, before the element is attached to the DOM.\n // This can cause an error to be thrown in some browsers (IE/Edge) which assert that the\n // element has been inserted.\n if (newValue && this._isInitialized && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n private _disabled: boolean;\n\n /** Emits when a change event is fired on this <input>. */\n @Output() readonly timeChange: EventEmitter<MatTimepickerInputEvent<T, S>> =\n new EventEmitter<MatTimepickerInputEvent<T, S>>();\n\n /** Emits when an input event is fired on this <input>. */\n @Output() readonly timeInput: EventEmitter<MatTimepickerInputEvent<T, S>> =\n new EventEmitter<MatTimepickerInputEvent<T, S>>();\n\n /** Gets the minimum time for the input. Used for validation. */\n abstract _getMinTime(): T | null;\n\n /** Gets the maximum time for the input. Used for validation. */\n abstract _getMaxTime(): T | null;\n\n /** Combined form control validator for this input. */\n protected abstract _validator: ValidatorFn | null;\n\n /** Whether the component has been initialized. */\n private _isInitialized: boolean;\n\n /**\n * Since the value is kept on the model which is assigned in an Input,\n * we might get a value before we have a model. This property keeps track\n * of the value until we have somewhere to assign it.\n */\n private _pendingValue: T | null;\n\n _onTouched = () => {};\n _validatorOnChange = () => {};\n\n private _cvaOnChange: (value: any) => void = () => {};\n private _valueChangesSubscription = Subscription.EMPTY;\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement>,\n @Optional() public _timeAdapter: TimeAdapter<T>\n ) {}\n\n /** Registers a time selection model with the input. */\n _registerModel(model: MatTimeSelectionModel<S, T>): void {\n this._model = model;\n this._valueChangesSubscription.unsubscribe();\n\n if (this._pendingValue) {\n this._assignValue(this._pendingValue);\n }\n\n this._valueChangesSubscription = this._model.selectionChanged.subscribe(\n (event) => {\n if (this._shouldHandleChangeEvent(event)) {\n const value = this._getValueFromModel(event.selection);\n this._lastValueValid = this._isValidValue(value);\n this._cvaOnChange(value);\n this._onTouched();\n this._formatValue(value);\n this.timeInput.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n this.timeChange.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n }\n }\n );\n }\n\n _onInput(value: string) {\n const lastValueWasValid = this._lastValueValid;\n let time = this._timeAdapter.parse(value, TIME_FORMATS);\n this._lastValueValid = this._isValidValue(time);\n time = this._timeAdapter.getValidTimeOrNull(time);\n const hasChanged = !this._timeAdapter.sameTime(time, this.value);\n\n // We need to fire the CVA change event for all\n // nulls, otherwise the validators won't run.\n if (!time || hasChanged) {\n this._cvaOnChange(time);\n } else {\n // Call the CVA change handler for invalid values\n // since this is what marks the control as dirty.\n if (value && !this.value) {\n this._cvaOnChange(time);\n }\n\n if (lastValueWasValid !== this._lastValueValid) {\n this._validatorOnChange();\n }\n }\n\n if (hasChanged) {\n this._assignValue(time);\n this.timeInput.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n }\n }\n\n /** Handles change event on the input. */\n _onChange() {\n this.timeChange.emit(\n new MatTimepickerInputEvent(this, this._elementRef.nativeElement)\n );\n }\n\n /** Handles blur event on the input. */\n _onBlur() {\n // Reformat the input only if we have a valid value.\n if (this.value) {\n this._formatValue(this.value);\n }\n\n this._onTouched();\n }\n\n /** Implemented as part of ControlValueAccessor. */\n writeValue(value: T | null): void {\n this.value = value;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn: any): void {\n this._cvaOnChange = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorOnChange = fn;\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this._validator ? this._validator(c) : null;\n }\n\n /** Whether the last value set on the input was valid. */\n protected _lastValueValid = false;\n\n /** Assigns a value to the input's model. */\n protected abstract _assignValueToModel(model: T | null): void;\n\n /** Converts a value from the model into a native value for the input. */\n protected abstract _getValueFromModel(modelValue: S): T | null;\n\n /** Predicate that determines whether the input should handle a particular change event. */\n protected abstract _shouldHandleChangeEvent(\n event: TimeSelectionModelChange<S>\n ): boolean;\n\n /** Programmatically assigns a value to the input. */\n protected _assignValueProgrammatically(value: T | null) {\n value = this._timeAdapter.deserialize(value);\n this._lastValueValid = this._isValidValue(value);\n value = this._timeAdapter.getValidTimeOrNull(value);\n this._assignValue(value);\n this._formatValue(value);\n }\n\n /** Formats a value and sets it on the input element. */\n protected _formatValue(value: T | null) {\n this._elementRef.nativeElement.value =\n value != null ? this._timeAdapter.format(value, TIME_FORMATS) : '';\n }\n\n /** Gets the base validator functions. */\n protected _getValidators(): ValidatorFn[] {\n return [this._parseValidator, this._minValidator, this._maxValidator];\n }\n\n /** Whether a value is considered valid. */\n private _isValidValue(value: T | null): boolean {\n return !value || this._timeAdapter.isValid(value);\n }\n\n /** Assigns a value to the model. */\n private _assignValue(value: T | null) {\n // We may get some incoming values before the model was\n // assigned. Save the value so that we can assign it later.\n if (this._model) {\n this._assignValueToModel(value);\n this._pendingValue = null;\n } else {\n this._pendingValue = value;\n }\n }\n\n /** The form control validator for whether the input parses. */\n private _parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this._lastValueValid\n ? null\n : { matTimepickerParse: { text: this._elementRef.nativeElement.value } };\n };\n\n /** The form control validator for the min time. */\n private _minValidator: ValidatorFn = (\n control: AbstractControl\n ): ValidationErrors | null => {\n const controlValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(control.value)\n );\n const min = this._getMinTime();\n return !min ||\n !controlValue ||\n this._timeAdapter.compareTime(min, controlValue) <= 0\n ? null\n : { matTimepickerMin: { min, actual: controlValue } };\n };\n\n /** The form control validator for the max time. */\n private _maxValidator: ValidatorFn = (\n control: AbstractControl\n ): ValidationErrors | null => {\n const controlValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(control.value)\n );\n const max = this._getMaxTime();\n return !max ||\n !controlValue ||\n this._timeAdapter.compareTime(max, controlValue) >= 0\n ? null\n : { matTimepickerMax: { max, actual: controlValue } };\n };\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n Optional,\n} from '@angular/core';\nimport {\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatFormField, MAT_FORM_FIELD } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\n\nimport { MatTimepicker } from './timepicker';\nimport { TimeAdapter } from './adapter/time-adapter';\nimport { MatTimepickerInputBase } from './timepicker-input-base';\nimport { TimeSelectionModelChange } from './time-selection-model';\nimport { MatTimepickerControl, MatTimepickerPanel } from './timepicker-base';\n\nexport const MAT_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatTimepickerInput),\n multi: true,\n};\n\nexport const MAT_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MatTimepickerInput),\n multi: true,\n};\n\n/** Directive used to connect an input to a MatTimepicker. */\n@Directive({\n selector: 'input[matTimepicker]',\n exportAs: 'matTimepickerInput',\n providers: [\n MAT_TIMEPICKER_VALUE_ACCESSOR,\n MAT_TIMEPICKER_VALIDATORS,\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MatTimepickerInput },\n ],\n host: {\n class: 'mat-timepicker-input',\n '[attr.aria-haspopup]': '_timepicker ? \"dialog\" : null',\n '[attr.aria-owns]': '(_timepicker?.opened && _timepicker.id) || null',\n '[disabled]': 'disabled',\n '(input)': '_onInput($event.target.value)',\n '(change)': '_onChange()',\n '(blur)': '_onBlur()',\n },\n})\nexport class MatTimepickerInput<T>\n extends MatTimepickerInputBase<T | null, T>\n implements MatTimepickerControl<T | null>\n{\n /** The timepicker that this input is associated with. */\n @Input()\n set matTimepicker(\n timepicker: MatTimepickerPanel<MatTimepickerControl<T>, T | null, T>\n ) {\n if (timepicker) {\n this._timepicker = timepicker;\n this._registerModel(timepicker.registerInput(this));\n }\n }\n _timepicker: MatTimepickerPanel<MatTimepickerControl<T>, T | null, T>;\n\n /** The combined form control validator for this input. */\n protected _validator: ValidatorFn | null;\n\n /** The minimum valid date. */\n @Input()\n get min(): T | null {\n return this._min;\n }\n set min(value: T | null) {\n const validValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (!this._timeAdapter.sameTime(validValue, this._min)) {\n this._min = validValue;\n this._validatorOnChange();\n }\n }\n private _min: T | null;\n\n /** The maximum valid date. */\n @Input()\n get max(): T | null {\n return this._max;\n }\n set max(value: T | null) {\n const validValue = this._timeAdapter.getValidTimeOrNull(\n this._timeAdapter.deserialize(value)\n );\n\n if (!this._timeAdapter.sameTime(validValue, this._max)) {\n this._max = validValue;\n this._validatorOnChange();\n }\n }\n private _max: T | null;\n\n constructor(\n elementRef: ElementRef<HTMLInputElement>,\n @Optional() timeAdapter: TimeAdapter<T>,\n @Optional() @Inject(MAT_FORM_FIELD) private _formField?: MatFormField\n ) {\n super(elementRef, timeAdapter);\n this._validator = Validators.compose(super._getValidators());\n }\n\n /**\n * Gets the element that the timepicker popup should be connected to.\n * @return The element to connect the popup to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._formField\n ? this._formField.getConnectedOverlayOrigin()\n : this._elementRef;\n }\n\n /** Returns the palette used by the input's form field, if any. */\n getThemePalette(): ThemePalette {\n return this._formField ? this._formField.color : undefined;\n }\n\n /** Gets the ID of an element that should be used a description for the timepicker overlay. */\n getOverlayLabelId(): string | null {\n if (this._formField) {\n return this._formField.getLabelId();\n }\n\n return this._elementRef.nativeElement.getAttribute('aria-labelledby');\n }\n\n /** Gets the input's minimum time. */\n _getMinTime() {\n return this._min;\n }\n\n /** Gets the input's maximum time. */\n _getMaxTime() {\n return this._max;\n }\n\n protected _assignValueToModel(value: T | null): void {\n if (this._model) {\n this._model.updateSelection(value, this);\n }\n }\n\n protected _getValueFromModel(modelValue: T | null): T | null {\n return modelValue;\n }\n\n protected _shouldHandleChangeEvent(event: TimeSelectionModelChange<T>) {\n return event.source !== this;\n }\n}\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { MatTimepickerBase, MatTimepickerControl } from './timepicker-base';\nimport { mixinColor } from '@angular/material/core';\n\n/** Button that will close the timepicker and assign the current selection to the data model. */\n@Directive({\n selector: '[matTimepickerApply]',\n host: {\n '(click)': '_applySelection()',\n },\n})\nexport class MatTimepickerApply {\n constructor(\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>\n ) {}\n\n _applySelection() {\n this._timepicker._applyPendingSelection();\n this._timepicker.close();\n }\n}\n\n/** Button that will close the timepicker and discard the current selection. */\n@Directive({\n selector: '[matTimepickerCancel]',\n host: {\n '(click)': 'close()',\n },\n})\nexport class MatTimepickerCancel {\n constructor(\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>\n ) {}\n\n close() {\n this._timepicker.close();\n }\n}\n\n/**\n * Container that can be used to project a row of action buttons\n * to the bottom of a timepicker.\n */\n@Component({\n selector: 'mat-timepicker-actions',\n styleUrls: ['timepicker-actions.scss'],\n template: `\n <ng-template>\n <div class=\"mat-timepicker-actions\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-actions-container',\n },\n})\nexport class MatTimepickerActions implements AfterViewInit, OnDestroy {\n @ViewChild(TemplateRef) _template: TemplateRef<unknown>;\n\n private _portal: TemplatePortal;\n\n constructor(\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>,\n private _viewContainerRef: ViewContainerRef\n ) {}\n\n ngAfterViewInit() {\n this._portal = new TemplatePortal(this._template, this._viewContainerRef);\n this._timepicker.registerActions(this._portal);\n }\n\n ngOnDestroy() {\n this._timepicker.removeActions(this._portal);\n\n // Needs to be null checked since we initialize it in `ngAfterViewInit`.\n if (this._portal && this._portal.isAttached) {\n this._portal?.detach();\n }\n }\n}\n\n// Boilerplate for applying mixins to MatTimepickerDefaultActions.\nconst _MatTimepickerDefaultActions = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n);\n\n/**\n * Default action buttons to the bottom of a timepicker.\n */\n@Component({\n selector: 'mat-timepicker-default-actions',\n styleUrls: ['timepicker-actions.scss'],\n template: `\n <div class=\"mat-timepicker-actions\">\n <ng-content></ng-content>\n <button [color]=\"color\" mat-button matTimepickerCancel>Cancel</button>\n <button [color]=\"color\" mat-button matTimepickerApply>OK</button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mat-timepicker-actions-container',\n },\n})\nexport class MatTimepickerDefaultActions\n extends _MatTimepickerDefaultActions\n implements OnInit\n{\n constructor(\n elementRef: ElementRef,\n private _timepicker: MatTimepickerBase<MatTimepickerControl<any>, unknown>\n ) {\n super(elementRef);\n }\n\n ngOnInit() {\n this.color = this._timepicker.color;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport {\n MAT_FAB_DEFAULT_OPTIONS,\n MatButtonModule,\n} from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER } from './timepicker-scroll-strategy';\nimport {\n MatTimepickerToggle,\n MatTimepickerToggleIcon,\n} from './timepicker-toggle';\nimport { MatTimepicker } from './timepicker';\nimport { MatTimepickerContent } from './timepicker-content';\nimport { MatTimepickerContentLayout } from './timepicker-content-layout';\nimport { MatTimepickerInput } from './timepicker-input';\nimport { MatHourInput, MatMinuteInput, MatTimeInputs } from './time-inputs';\nimport { MatClockDials } from './clock-dials';\nimport { MatHoursClockDial } from './hours-clock-dial';\nimport { MatMinutesClockDial } from './minutes-clock-dial';\nimport { MatTimePeriod } from './time-period';\nimport {\n MatTimepickerActions,\n MatTimepickerApply,\n MatTimepickerCancel,\n MatTimepickerDefaultActions,\n} from './timepicker-actions';\nimport { MAT_DEFAULT_ACITONS } from './timepicker-actions-default';\nimport { MatTimepickerIntl } from './timepicker-intl';\n\n@NgModule({\n declarations: [\n MatTimepickerToggle,\n MatTimepickerToggleIcon,\n MatTimepicker,\n MatTimepickerContent,\n MatTimepickerContentLayout,\n MatTimepickerInput,\n MatTimeInputs,\n MatHourInput,\n MatMinuteInput,\n MatClockDials,\n MatHoursClockDial,\n MatMinutesClockDial,\n MatTimePeriod,\n MatTimepickerActions,\n MatTimepickerDefaultActions,\n MatTimepickerApply,\n MatTimepickerCancel,\n ],\n imports: [\n CommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatRippleModule,\n MatDividerModule,\n OverlayModule,\n PortalModule,\n A11yModule,\n ],\n exports: [\n CdkScrollableModule,\n MatTimepickerToggle,\n MatTimepickerToggleIcon,\n MatTimepicker,\n MatTimepickerContent,\n MatTimepickerContentLayout,\n MatTimepickerInput,\n MatTimeInputs,\n MatHourInput,\n MatMinuteInput,\n MatClockDials,\n MatHoursClockDial,\n MatMinutesClockDial,\n MatTimepickerActions,\n MatTimepickerDefaultActions,\n MatTimepickerApply,\n MatTimepickerCancel,\n ],\n providers: [\n MatTimepickerIntl,\n MAT_TIMEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n { provide: Window, useValue: window },\n { provide: MAT_DEFAULT_ACITONS, useValue: MatTimepickerDefaultActions },\n {\n provide: MAT_FAB_DEFAULT_OPTIONS,\n useValue: { color: 'unthemed' },\n },\n ],\n})\nexport class MatTimepickerModule {}\n","/*\n * Public API Surface of mat-timepicker\n */\n\nexport * from './lib/timepicker.module';\nexport * from './lib/timepicker';\nexport * from './lib/timepicker-base';\nexport * from './lib/timepicker-toggle';\nexport * from './lib/timepicker-content';\nexport * from './lib/timepicker-content-layout';\nexport * from './lib/timepicker-input';\nexport * from './lib/hours-clock-dial';\nexport * from './lib/minutes-clock-dial';\nexport * from './lib/time-inputs';\nexport * from './lib/clock-dials';\nexport * from './lib/time-period';\nexport * from './lib/timepicker-actions';\nexport * from './lib/timepicker-actions-default';\nexport * from './lib/adapter';\nexport * from './lib/timepicker-scroll-strategy';\nexport * from './lib/timepicker-intl';\nexport * from './lib/orientation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MatTimepickerIntl","i2","i3","CLOCK_RADIUS","CLOCK_TICK_RADIUS","CLOCK_CORRECTED_RADIUS","CLOCK_OUTER_RADIUS","i1","i1.TimeAdapter","i2.TimeAdapter","i4.MatTimepickerContentLayout","i5.MatHoursClockDial","i6.MatMinutesClockDial","i7.MatTimePeriod","i6.MatTimepickerContentLayout","i2.MatTimeSelectionModel","i4","i5","i7.MatTimeInputs","i8.MatClockDials","i1.MatTimepickerBase"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dhutaryan/ngx-mat-timepicker",
3
3
  "description": "Angular imepicker to add time which is based on material design and Angular material.",
4
- "version": "16.0.1",
4
+ "version": "16.0.2",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Dzmitry Hutaryan"