@dhutaryan/ngx-mat-timepicker 12.1.0 → 12.2.0

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.
@@ -736,6 +736,7 @@
736
736
  var MatTimeFaceBase = /** @class */ (function () {
737
737
  function MatTimeFaceBase(_timeAdapter) {
738
738
  this._timeAdapter = _timeAdapter;
739
+ this._minuteInterval = 1;
739
740
  /** Color palette. */
740
741
  this.color = 'primary';
741
742
  /** Emits when any hour, minute or period is selected. */
@@ -808,6 +809,17 @@
808
809
  enumerable: false,
809
810
  configurable: true
810
811
  });
812
+ Object.defineProperty(MatTimeFaceBase.prototype, "minuteInterval", {
813
+ /** Step over minutes. */
814
+ get: function () {
815
+ return this._minuteInterval;
816
+ },
817
+ set: function (value) {
818
+ this._minuteInterval = coercion.coerceNumberProperty(value) || 1;
819
+ },
820
+ enumerable: false,
821
+ configurable: true
822
+ });
811
823
  MatTimeFaceBase.prototype.ngAfterContentInit = function () {
812
824
  if (!this.selected) {
813
825
  this.selected = this._timeAdapter.clampTime(this._timeAdapter.now(), this.minTime, this.maxTime);
@@ -954,7 +966,7 @@
954
966
  return MatTimeFaceBase;
955
967
  }());
956
968
  MatTimeFaceBase.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimeFaceBase, deps: [{ token: TimeAdapter, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
957
- MatTimeFaceBase.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: MatTimeFaceBase, inputs: { selected: "selected", minTime: "minTime", maxTime: "maxTime", isMeridiem: "isMeridiem", color: "color" }, outputs: { _userSelection: "_userSelection", selectedChange: "selectedChange" }, ngImport: i0__namespace });
969
+ MatTimeFaceBase.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: MatTimeFaceBase, inputs: { selected: "selected", minTime: "minTime", maxTime: "maxTime", minuteInterval: "minuteInterval", isMeridiem: "isMeridiem", color: "color" }, outputs: { _userSelection: "_userSelection", selectedChange: "selectedChange" }, ngImport: i0__namespace });
958
970
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimeFaceBase, decorators: [{
959
971
  type: i0.Directive
960
972
  }], ctorParameters: function () {
@@ -967,6 +979,8 @@
967
979
  type: i0.Input
968
980
  }], maxTime: [{
969
981
  type: i0.Input
982
+ }], minuteInterval: [{
983
+ type: i0.Input
970
984
  }], isMeridiem: [{
971
985
  type: i0.Input
972
986
  }], color: [{
@@ -1085,11 +1099,13 @@
1085
1099
 
1086
1100
  var MatTimepickerContentLayout = /** @class */ (function () {
1087
1101
  function MatTimepickerContentLayout() {
1102
+ /** Layout orientation. */
1103
+ this.orientation = 'vertical';
1088
1104
  }
1089
1105
  return MatTimepickerContentLayout;
1090
1106
  }());
1091
1107
  MatTimepickerContentLayout.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimepickerContentLayout, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1092
- MatTimepickerContentLayout.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimepickerContentLayout, selector: "mat-timepicker-content-layout", inputs: { title: "title" }, host: { classAttribute: "mat-timepicker-content-layout" }, exportAs: ["matTimepickerContent"], ngImport: i0__namespace, template: "<h6 class=\"mat-timepicker-content-layout-title\">{{ title }}</h6>\n\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", styles: ["h6.mat-timepicker-content-layout-title{margin-top:.3125rem;margin-bottom:1.1875rem;text-transform:uppercase;letter-spacing:.05rem}.mat-timepicker-content-layout-values{display:flex;justify-content:center}.mat-timepicker-content-layout-hours,.mat-timepicker-content-layout-minutes{width:6rem}.mat-timepicker-content-layout-separator{display:flex;justify-content:center;align-self:center;width:1.5rem;height:1.75rem;font-weight:500}.mat-time-period{margin-left:.75rem}\n"], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1108
+ MatTimepickerContentLayout.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimepickerContentLayout, selector: "mat-timepicker-content-layout", inputs: { title: "title", orientation: "orientation" }, host: { properties: { "class.mat-timepicker-content-layout-horizontal": "orientation === \"horizontal\"", "class.mat-timepicker-content-layout-vertical": "orientation === \"vertical\"" }, classAttribute: "mat-timepicker-content-layout" }, exportAs: ["matTimepickerContent"], ngImport: i0__namespace, template: "<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", styles: ["h6.mat-timepicker-content-layout-title{margin-top:.3125rem;margin-bottom:1.1875rem;text-transform:uppercase;letter-spacing:.05rem}.mat-timepicker-content-layout-values{display:flex;justify-content:center}.mat-time-period{margin-left:.75rem}.mat-timepicker-content-layout-horizontal h6.mat-timepicker-content-layout-title{margin-bottom:0}.mat-timepicker-content-layout-horizontal .mat-timepicker-content-layout-container{display:flex;grid-gap:4rem;gap:4rem;align-items:center}.mat-timepicker-content-layout-horizontal .mat-timepicker-content-layout-values{flex-wrap:wrap}.mat-timepicker-content-layout-horizontal .mat-time-period{margin-top:.75rem;margin-left:0}.mat-timepicker-content-layout-hours,.mat-timepicker-content-layout-minutes{width:6rem}.mat-timepicker-content-layout-separator{display:flex;justify-content:center;align-self:center;width:1.5rem;height:1.75rem;font-weight:500}\n"], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1093
1109
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimepickerContentLayout, decorators: [{
1094
1110
  type: i0.Component,
1095
1111
  args: [{
@@ -1101,10 +1117,14 @@
1101
1117
  encapsulation: i0.ViewEncapsulation.None,
1102
1118
  host: {
1103
1119
  class: 'mat-timepicker-content-layout',
1120
+ '[class.mat-timepicker-content-layout-horizontal]': 'orientation === "horizontal"',
1121
+ '[class.mat-timepicker-content-layout-vertical]': 'orientation === "vertical"',
1104
1122
  },
1105
1123
  }]
1106
1124
  }], propDecorators: { title: [{
1107
1125
  type: i0.Input
1126
+ }], orientation: [{
1127
+ type: i0.Input
1108
1128
  }] } });
1109
1129
 
1110
1130
  var MatTimePeriod = /** @class */ (function () {
@@ -1158,7 +1178,7 @@
1158
1178
  return MatTimePeriod;
1159
1179
  }());
1160
1180
  MatTimePeriod.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimePeriod, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1161
- MatTimePeriod.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimePeriod, selector: "mat-time-period", inputs: { vertical: "vertical", period: "period", disabledPeriod: "disabledPeriod" }, outputs: { periodChanged: "periodChanged" }, host: { properties: { "class.mat-time-period-vertical": "vertical", "class.mat-time-period-horizontal": "!vertical", "attr.aria-orientation": "vertical ? \"vertical\" : \"horizontal\"" }, classAttribute: "mat-time-period" }, ngImport: i0__namespace, template: "<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('am')\"\n (keyup.enter)=\"setPeriod('am')\"\n>\n AM\n</div>\n<mat-divider></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('pm')\"\n (keyup.enter)=\"setPeriod('pm')\"\n>\n PM\n</div>\n", styles: [".mat-time-period{display:flex;text-align:center;border-width:1px;border-style:solid;border-radius:.25rem;box-sizing:border-box}.mat-time-period-vertical{flex-direction:column;width:3.25rem;height:4.375rem}.mat-time-period-horizontal{flex-direction:row;width:100%}.mat-time-period-item{display:flex;flex-direction:column;justify-content:center;flex-grow:1;height:100%;font-weight:500;cursor:pointer}.mat-time-period-item-disabled{pointer-events:none}\n"], components: [{ type: i1__namespace$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i2__namespace.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleRadius", "matRippleDisabled", "matRippleTrigger", "matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleAnimation"], exportAs: ["matRipple"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1181
+ MatTimePeriod.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimePeriod, selector: "mat-time-period", inputs: { vertical: "vertical", period: "period", disabledPeriod: "disabledPeriod" }, outputs: { periodChanged: "periodChanged" }, host: { properties: { "class.mat-time-period-vertical": "vertical", "class.mat-time-period-horizontal": "!vertical", "attr.aria-orientation": "vertical ? \"vertical\" : \"horizontal\"" }, classAttribute: "mat-time-period" }, ngImport: i0__namespace, template: "<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('am')\"\n (keyup.enter)=\"setPeriod('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('pm')\"\n (keyup.enter)=\"setPeriod('pm')\"\n>\n PM\n</div>\n", styles: [".mat-time-period{display:flex;text-align:center;border-width:1px;border-style:solid;border-radius:.25rem;box-sizing:border-box}.mat-time-period-vertical{flex-direction:column;width:3.25rem;height:4.375rem}.mat-time-period-horizontal{flex-direction:row;max-width:13.5rem;width:100%;height:2.5rem}.mat-time-period-item{display:flex;flex-direction:column;justify-content:center;flex-grow:1;height:100%;font-weight:500;cursor:pointer}.mat-time-period-item-disabled{pointer-events:none}\n"], components: [{ type: i1__namespace$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i2__namespace.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleRadius", "matRippleDisabled", "matRippleTrigger", "matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleAnimation"], exportAs: ["matRipple"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1162
1182
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimePeriod, decorators: [{
1163
1183
  type: i0.Component,
1164
1184
  args: [{
@@ -1451,6 +1471,7 @@
1451
1471
  this._document = _document;
1452
1472
  this._window = _window;
1453
1473
  this._selectedMinute = 0;
1474
+ this._interval = 1;
1454
1475
  /** Emits selected minute. */
1455
1476
  this.selectedChange = new i0.EventEmitter();
1456
1477
  this.minutes = [];
@@ -1488,6 +1509,17 @@
1488
1509
  enumerable: false,
1489
1510
  configurable: true
1490
1511
  });
1512
+ Object.defineProperty(MatMinutesClockDial.prototype, "interval", {
1513
+ /** Step over minutes. */
1514
+ get: function () {
1515
+ return this._interval;
1516
+ },
1517
+ set: function (value) {
1518
+ this._interval = coercion.coerceNumberProperty(value) || 1;
1519
+ },
1520
+ enumerable: false,
1521
+ configurable: true
1522
+ });
1491
1523
  Object.defineProperty(MatMinutesClockDial.prototype, "disabled", {
1492
1524
  get: function () {
1493
1525
  return (this.selectedMinute < this.minMinute ||
@@ -1548,10 +1580,10 @@
1548
1580
  var pageY = event instanceof MouseEvent ? event.pageY : event.touches[0].pageY;
1549
1581
  var x = width / 2 - (pageX - elementRect.left - this._window.scrollX);
1550
1582
  var y = height / 2 - (pageY - elementRect.top - this._window.scrollY);
1551
- var unit = Math.PI / 30;
1583
+ var unit = Math.PI / (30 / this.interval);
1552
1584
  var atan2 = Math.atan2(-x, y);
1553
1585
  var radian = atan2 < 0 ? Math.PI * 2 + atan2 : atan2;
1554
- var initialValue = Math.round(radian / unit);
1586
+ var initialValue = Math.round(radian / unit) * this.interval;
1555
1587
  var value = initialValue === 60 ? 0 : initialValue;
1556
1588
  if ((value >= this.minMinute || isNaN(Number(this.minMinute))) &&
1557
1589
  (value <= this.maxMinute || isNaN(Number(this.maxMinute)))) {
@@ -1579,7 +1611,7 @@
1579
1611
  return MatMinutesClockDial;
1580
1612
  }());
1581
1613
  MatMinutesClockDial.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatMinutesClockDial, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i7.DOCUMENT }, { token: Window }], target: i0__namespace.ɵɵFactoryTarget.Component });
1582
- MatMinutesClockDial.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatMinutesClockDial, selector: "mat-minutes-clock-dial", inputs: { selectedMinute: "selectedMinute", minMinute: "minMinute", maxMinute: "maxMinute", color: "color" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "mousedown": "_onMouseDown($event)" }, classAttribute: "mat-clock-dial mat-clock-dial-minutes" }, exportAs: ["matMinutesClockDial"], ngImport: i0__namespace, template: "<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></div>\n<ng-template ngFor let-minute [ngForOf]=\"minutes\">\n <button\n class=\"mat-clock-dial-cell mat-elevation-z0\"\n mat-mini-fab\n disableRipple\n [style.left.px]=\"minute.left\"\n [style.top.px]=\"minute.top\"\n [class.mat-clock-dial-cell-active]=\"selectedMinute === minute.value\"\n [color]=\"selectedMinute === minute.value ? color : undefined\"\n [disabled]=\"minute.disabled\"\n >\n {{ minute.displayValue }}\n </button>\n</ng-template>\n", styles: [".mat-clock-dial{position:relative;display:block;width:16rem;height:16rem;margin:0 auto;border-radius:50%}.mat-clock-dial:before{position:absolute;top:50%;left:50%;width:.4375rem;height:.4375rem;border-radius:50%;transform:translate(-50%,-50%);content:\"\"}.mat-clock-dial [mat-mini-fab]{box-shadow:none}.mat-clock-dial-cell{position:absolute;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%}.mat-clock-dial-cell:disabled{pointer-events:none}.mat-clock-dial-hand{position:absolute;top:0;right:0;bottom:0;left:0;width:1px;margin:0 auto;transform-origin:bottom}.mat-clock-dial-hand:before{position:absolute;top:calc(.5rem / -2);left:calc(.5rem / -2);width:calc(.5rem + 1px);height:calc(.5rem + 1px);border-radius:50%;content:\"\"}.mat-clock-dial-hand.mat-clock-dial-hand-pointless:before{content:none}\n"], components: [{ type: i1__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i7__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1614
+ MatMinutesClockDial.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatMinutesClockDial, selector: "mat-minutes-clock-dial", inputs: { selectedMinute: "selectedMinute", minMinute: "minMinute", maxMinute: "maxMinute", interval: "interval", color: "color" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "mousedown": "_onMouseDown($event)" }, classAttribute: "mat-clock-dial mat-clock-dial-minutes" }, exportAs: ["matMinutesClockDial"], ngImport: i0__namespace, template: "<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></div>\n<ng-template ngFor let-minute [ngForOf]=\"minutes\">\n <button\n class=\"mat-clock-dial-cell mat-elevation-z0\"\n mat-mini-fab\n disableRipple\n [style.left.px]=\"minute.left\"\n [style.top.px]=\"minute.top\"\n [class.mat-clock-dial-cell-active]=\"selectedMinute === minute.value\"\n [color]=\"selectedMinute === minute.value ? color : undefined\"\n [disabled]=\"minute.disabled\"\n >\n {{ minute.displayValue }}\n </button>\n</ng-template>\n", styles: [".mat-clock-dial{position:relative;display:block;width:16rem;height:16rem;margin:0 auto;border-radius:50%}.mat-clock-dial:before{position:absolute;top:50%;left:50%;width:.4375rem;height:.4375rem;border-radius:50%;transform:translate(-50%,-50%);content:\"\"}.mat-clock-dial [mat-mini-fab]{box-shadow:none}.mat-clock-dial-cell{position:absolute;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%}.mat-clock-dial-cell:disabled{pointer-events:none}.mat-clock-dial-hand{position:absolute;top:0;right:0;bottom:0;left:0;width:1px;margin:0 auto;transform-origin:bottom}.mat-clock-dial-hand:before{position:absolute;top:calc(.5rem / -2);left:calc(.5rem / -2);width:calc(.5rem + 1px);height:calc(.5rem + 1px);border-radius:50%;content:\"\"}.mat-clock-dial-hand.mat-clock-dial-hand-pointless:before{content:none}\n"], components: [{ type: i1__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i7__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1583
1615
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatMinutesClockDial, decorators: [{
1584
1616
  type: i0.Component,
1585
1617
  args: [{
@@ -1608,6 +1640,8 @@
1608
1640
  type: i0.Input
1609
1641
  }], maxMinute: [{
1610
1642
  type: i0.Input
1643
+ }], interval: [{
1644
+ type: i0.Input
1611
1645
  }], color: [{
1612
1646
  type: i0.Input
1613
1647
  }], selectedChange: [{
@@ -1667,7 +1701,7 @@
1667
1701
  return MatClockDials;
1668
1702
  }(MatTimeFaceBase));
1669
1703
  MatClockDials.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatClockDials, deps: [{ token: MatTimepickerIntl }, { token: TimeAdapter, optional: true }, { token: i0__namespace.NgZone }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1670
- MatClockDials.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatClockDials, selector: "mat-clock-dials", host: { attributes: { "role": "dial" }, classAttribute: "mat-clock-dials" }, exportAs: ["matClockDials"], usesInheritance: true, ngImport: i0__namespace, template: "<mat-timepicker-content-layout [title]=\"_intl.dialsTitle\">\n <div\n tabindex=\"0\"\n class=\"mat-clock-dial-value\"\n hours\n [class.mat-clock-dial-value-active]=\"isHoursView\"\n (click)=\"onViewChange('hours')\"\n (keyup.enter)=\"onViewChange('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('minutes')\"\n (keyup.enter)=\"onViewChange('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 (periodChanged)=\"_onPeriodChanged($event)\"\n ></mat-time-period>\n </ng-template>\n\n <div class=\"mat-clock-dial-faces\">\n <ng-template [ngIf]=\"isHoursView\">\n <mat-hours-clock-dial\n [color]=\"color\"\n [selectedHour]=\"selectedHour\"\n [isMeridiem]=\"isMeridiem\"\n [minHour]=\"minHour\"\n [maxHour]=\"maxHour\"\n [include12Hour]=\"include12Hour\"\n [exclude12Hour]=\"exclude12Hour\"\n (selectedChange)=\"_onHourChanged($event)\"\n ></mat-hours-clock-dial>\n </ng-template>\n <ng-template [ngIf]=\"!isHoursView\">\n <mat-minutes-clock-dial\n [color]=\"color\"\n [selectedMinute]=\"selectedMinute\"\n [minMinute]=\"minMinute\"\n [maxMinute]=\"maxMinute\"\n (selectedChange)=\"_onMinuteSelected($event)\"\n ></mat-minutes-clock-dial>\n </ng-template>\n </div>\n</mat-timepicker-content-layout>\n", styles: [".mat-clock-dial-values{display:flex;width:100%}.mat-clock-dial-value{display:flex;align-items:center;justify-content:center;height:4.375rem;border-radius:.25rem;cursor:pointer}.mat-clock-dial-faces{margin-top:2.25rem}\n"], components: [{ type: MatTimepickerContentLayout, selector: "mat-timepicker-content-layout", inputs: ["title"], exportAs: ["matTimepickerContent"] }, { type: MatTimePeriod, selector: "mat-time-period", inputs: ["vertical", "period", "disabledPeriod"], outputs: ["periodChanged"] }, { type: MatHoursClockDial, selector: "mat-hours-clock-dial", inputs: ["selectedHour", "isMeridiem", "minHour", "maxHour", "include12Hour", "exclude12Hour", "color"], outputs: ["selectedChange"], exportAs: ["matHoursClockDial"] }, { type: MatMinutesClockDial, selector: "mat-minutes-clock-dial", inputs: ["selectedMinute", "minMinute", "maxMinute", "color"], outputs: ["selectedChange"], exportAs: ["matMinutesClockDial"] }], directives: [{ type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1704
+ MatClockDials.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatClockDials, selector: "mat-clock-dials", inputs: { orientation: "orientation" }, host: { attributes: { "role": "dial" }, classAttribute: "mat-clock-dials" }, exportAs: ["matClockDials"], usesInheritance: true, ngImport: i0__namespace, template: "<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('hours')\"\n (keyup.enter)=\"onViewChange('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('minutes')\"\n (keyup.enter)=\"onViewChange('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 [color]=\"color\"\n [selectedHour]=\"selectedHour\"\n [isMeridiem]=\"isMeridiem\"\n [minHour]=\"minHour\"\n [maxHour]=\"maxHour\"\n [include12Hour]=\"include12Hour\"\n [exclude12Hour]=\"exclude12Hour\"\n (selectedChange)=\"_onHourChanged($event)\"\n ></mat-hours-clock-dial>\n </ng-template>\n <ng-template [ngIf]=\"!isHoursView\">\n <mat-minutes-clock-dial\n [color]=\"color\"\n [selectedMinute]=\"selectedMinute\"\n [minMinute]=\"minMinute\"\n [maxMinute]=\"maxMinute\"\n [interval]=\"minuteInterval\"\n (selectedChange)=\"_onMinuteSelected($event)\"\n ></mat-minutes-clock-dial>\n </ng-template>\n </div>\n</mat-timepicker-content-layout>\n", styles: [".mat-clock-dial-values{display:flex;width:100%}.mat-clock-dial-value{display:flex;align-items:center;justify-content:center;height:4.375rem;border-radius:.25rem;cursor:pointer}.mat-clock-dial-faces{margin-top:2.25rem}.mat-clock-dial-faces.mat-clock-dial-faces-horizontal{margin-top:0}\n"], components: [{ type: MatTimepickerContentLayout, selector: "mat-timepicker-content-layout", inputs: ["title", "orientation"], exportAs: ["matTimepickerContent"] }, { type: MatTimePeriod, selector: "mat-time-period", inputs: ["vertical", "period", "disabledPeriod"], outputs: ["periodChanged"] }, { type: MatHoursClockDial, selector: "mat-hours-clock-dial", inputs: ["selectedHour", "isMeridiem", "minHour", "maxHour", "include12Hour", "exclude12Hour", "color"], outputs: ["selectedChange"], exportAs: ["matHoursClockDial"] }, { type: MatMinutesClockDial, selector: "mat-minutes-clock-dial", inputs: ["selectedMinute", "minMinute", "maxMinute", "interval", "color"], outputs: ["selectedChange"], exportAs: ["matMinutesClockDial"] }], directives: [{ type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1671
1705
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatClockDials, decorators: [{
1672
1706
  type: i0.Component,
1673
1707
  args: [{
@@ -1686,7 +1720,9 @@
1686
1720
  return [{ type: MatTimepickerIntl }, { type: TimeAdapter, decorators: [{
1687
1721
  type: i0.Optional
1688
1722
  }] }, { type: i0__namespace.NgZone }, { type: i0__namespace.ElementRef }];
1689
- } });
1723
+ }, propDecorators: { orientation: [{
1724
+ type: i0.Input
1725
+ }] } });
1690
1726
 
1691
1727
  var MatHourInput = /** @class */ (function (_super) {
1692
1728
  __extends(MatHourInput, _super);
@@ -1756,8 +1792,21 @@
1756
1792
  var MatMinuteInput = /** @class */ (function (_super) {
1757
1793
  __extends(MatMinuteInput, _super);
1758
1794
  function MatMinuteInput(element, _cdr, _document) {
1759
- return _super.call(this, element, _cdr, _document) || this;
1795
+ var _this = _super.call(this, element, _cdr, _document) || this;
1796
+ _this._interval = 1;
1797
+ return _this;
1760
1798
  }
1799
+ Object.defineProperty(MatMinuteInput.prototype, "interval", {
1800
+ /** Step over minutes. */
1801
+ get: function () {
1802
+ return this._interval;
1803
+ },
1804
+ set: function (value) {
1805
+ this._interval = coercion.coerceNumberProperty(value) || 1;
1806
+ },
1807
+ enumerable: false,
1808
+ configurable: true
1809
+ });
1761
1810
  MatMinuteInput.prototype._withZeroPrefix = function (value) {
1762
1811
  return withZeroPrefix(value);
1763
1812
  };
@@ -1765,12 +1814,13 @@
1765
1814
  if (this.min > 59 || this.max < 0) {
1766
1815
  return this.value;
1767
1816
  }
1768
- return Math.min(Math.max(value, this.min), this.max);
1817
+ var roundedValue = Math.round(value / this.interval) * this.interval;
1818
+ return Math.min(Math.max(roundedValue, this.min), this.max);
1769
1819
  };
1770
1820
  return MatMinuteInput;
1771
1821
  }(MatTimeInputBase));
1772
1822
  MatMinuteInput.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatMinuteInput, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i7.DOCUMENT }], target: i0__namespace.ɵɵFactoryTarget.Directive });
1773
- MatMinuteInput.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: MatMinuteInput, selector: "input[matMinuteInput]", host: { listeners: { "focus": "focus($event)", "blur": "blur($event)" }, classAttribute: "mat-time-input" }, exportAs: ["matTimeInput"], usesInheritance: true, ngImport: i0__namespace });
1823
+ MatMinuteInput.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: MatMinuteInput, selector: "input[matMinuteInput]", inputs: { interval: "interval" }, host: { listeners: { "focus": "focus($event)", "blur": "blur($event)" }, classAttribute: "mat-time-input" }, exportAs: ["matTimeInput"], usesInheritance: true, ngImport: i0__namespace });
1774
1824
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatMinuteInput, decorators: [{
1775
1825
  type: i0.Directive,
1776
1826
  args: [{
@@ -1787,7 +1837,9 @@
1787
1837
  type: i0.Inject,
1788
1838
  args: [i7.DOCUMENT]
1789
1839
  }] }];
1790
- } });
1840
+ }, propDecorators: { interval: [{
1841
+ type: i0.Input
1842
+ }] } });
1791
1843
  var MatTimeInputs = /** @class */ (function (_super) {
1792
1844
  __extends(MatTimeInputs, _super);
1793
1845
  function MatTimeInputs(_intl, _timeAdapter, _ngZone, _elementRef) {
@@ -1826,7 +1878,7 @@
1826
1878
  return MatTimeInputs;
1827
1879
  }(MatTimeFaceBase));
1828
1880
  MatTimeInputs.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimeInputs, deps: [{ token: MatTimepickerIntl }, { token: TimeAdapter, optional: true }, { token: i0__namespace.NgZone }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1829
- MatTimeInputs.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimeInputs, selector: "mat-time-inputs", host: { classAttribute: "mat-time-inputs" }, usesInheritance: true, ngImport: i0__namespace, template: "<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 [min]=\"_getMinHour()\"\n [max]=\"_getMaxHour()\"\n [include12Hour]=\"include12Hour\"\n [exclude12Hour]=\"exclude12Hour\"\n (timeChanged)=\"_onHourSelected($event)\"\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 [min]=\"minMinute || 0\"\n [max]=\"maxMinute || 59\"\n (timeChanged)=\"_onMinuteSelected($event)\"\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", styles: [".mat-time-inputs{display:block}.mat-time-inputs .mat-timepicker-content-layout-separator{margin-top:-1.25rem}.mat-time-inputs-field{display:block}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-flex{margin:0}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-outline{top:0}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-wrapper{top:0;margin:0;padding-bottom:1.25rem}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-infix{padding:1rem 0}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{margin-top:.59375rem;padding-left:0;line-height:1;letter-spacing:.05rem}.mat-time-inputs-field .mat-form-field-infix{border-top:none;text-align:center}.mat-time-inputs-field input.mat-input-element{margin-top:0;line-height:normal}\n"], components: [{ type: MatTimepickerContentLayout, selector: "mat-timepicker-content-layout", inputs: ["title"], exportAs: ["matTimepickerContent"] }, { type: i4__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: MatTimePeriod, selector: "mat-time-period", inputs: ["vertical", "period", "disabledPeriod"], outputs: ["periodChanged"] }], directives: [{ type: i6__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: MatHourInput, selector: "input[matHourInput]", inputs: ["isMeridiem", "include12Hour", "exclude12Hour"], exportAs: ["matTimeInput"] }, { type: i4__namespace.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: MatMinuteInput, selector: "input[matMinuteInput]", exportAs: ["matTimeInput"] }, { type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1881
+ MatTimeInputs.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimeInputs, selector: "mat-time-inputs", host: { classAttribute: "mat-time-inputs" }, usesInheritance: true, ngImport: i0__namespace, template: "<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 [min]=\"_getMinHour()\"\n [max]=\"_getMaxHour()\"\n [include12Hour]=\"include12Hour\"\n [exclude12Hour]=\"exclude12Hour\"\n (timeChanged)=\"_onHourSelected($event)\"\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 [min]=\"minMinute || 0\"\n [max]=\"maxMinute || 59\"\n [interval]=\"minuteInterval\"\n (timeChanged)=\"_onMinuteSelected($event)\"\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", styles: [".mat-time-inputs{display:block}.mat-time-inputs .mat-timepicker-content-layout-separator{margin-top:-1.25rem}.mat-time-inputs-field{display:block}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-flex{margin:0}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-outline{top:0}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-wrapper{top:0;margin:0;padding-bottom:1.25rem}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-infix{padding:1rem 0}.mat-time-inputs-field.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{margin-top:.59375rem;padding-left:0;line-height:1;letter-spacing:.05rem}.mat-time-inputs-field .mat-form-field-infix{border-top:none;text-align:center}.mat-time-inputs-field input.mat-input-element{margin-top:0;line-height:normal}\n"], components: [{ type: MatTimepickerContentLayout, selector: "mat-timepicker-content-layout", inputs: ["title", "orientation"], exportAs: ["matTimepickerContent"] }, { type: i4__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: MatTimePeriod, selector: "mat-time-period", inputs: ["vertical", "period", "disabledPeriod"], outputs: ["periodChanged"] }], directives: [{ type: i6__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: MatHourInput, selector: "input[matHourInput]", inputs: ["isMeridiem", "include12Hour", "exclude12Hour"], exportAs: ["matTimeInput"] }, { type: i4__namespace.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: MatMinuteInput, selector: "input[matMinuteInput]", inputs: ["interval"], exportAs: ["matTimeInput"] }, { type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
1830
1882
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimeInputs, decorators: [{
1831
1883
  type: i0.Component,
1832
1884
  args: [{
@@ -1989,7 +2041,7 @@
1989
2041
  return MatTimepickerContent;
1990
2042
  }(_MatTimepickerContentBase));
1991
2043
  MatTimepickerContent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimepickerContent, deps: [{ token: i0__namespace.ElementRef }, { token: MatTimepickerIntl }, { token: MatTimeSelectionModel }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1992
- MatTimepickerContent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimepickerContent, selector: "mat-timepicker-content", host: { listeners: { "@transformPanel.done": "_animationDone.next()" }, properties: { "@transformPanel": "_animationState" }, classAttribute: "mat-timepicker-content" }, viewQueries: [{ propertyName: "_dials", first: true, predicate: MatClockDials, descendants: true }, { propertyName: "_inputs", first: true, predicate: MatTimeInputs, descendants: true }], exportAs: ["matTimepickerContent"], usesInheritance: true, ngImport: i0__namespace, template: "<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 (_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 (_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", styles: [".mat-timepicker-content{display:block;border-radius:4px}.mat-timepicker-content-container{position:relative;display:flex;flex-direction:column;padding:.5rem 1.5rem}.mat-timepicker-content-actions{display:flex;justify-content:space-between;margin-right:-1rem;margin-top:1.5rem}.mat-time-toggle-mode-button{width:3.25rem;height:3.25rem;margin-left:-.75rem;margin-bottom:-.25rem;line-height:3.25rem}.mat-timepicker-close-button{position:absolute;top:100%;left:0;margin-top:.5rem}.ng-animating .mat-timepicker-close-button{display:none}\n"], components: [{ type: MatTimeInputs, selector: "mat-time-inputs" }, { type: i1__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: MatClockDials, selector: "mat-clock-dials", exportAs: ["matClockDials"] }], directives: [{ type: i6__namespace$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [
2044
+ MatTimepickerContent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatTimepickerContent, selector: "mat-timepicker-content", host: { listeners: { "@transformPanel.done": "_animationDone.next()" }, properties: { "@transformPanel": "_animationState" }, classAttribute: "mat-timepicker-content" }, viewQueries: [{ propertyName: "_dials", first: true, predicate: MatClockDials, descendants: true }, { propertyName: "_inputs", first: true, predicate: MatTimeInputs, descendants: true }], exportAs: ["matTimepickerContent"], usesInheritance: true, ngImport: i0__namespace, template: "<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", styles: [".mat-timepicker-content{display:block;border-radius:4px}.mat-timepicker-content-container{position:relative;display:flex;flex-direction:column;padding:.5rem 1.5rem}.mat-timepicker-content-actions{display:flex;justify-content:space-between;margin-right:-1rem;margin-top:1.5rem}.mat-time-toggle-mode-button{width:3.25rem;height:3.25rem;margin-left:-.75rem;margin-bottom:-.25rem;line-height:3.25rem}.mat-timepicker-close-button{position:absolute;top:100%;left:0;margin-top:.5rem}.ng-animating .mat-timepicker-close-button{display:none}\n"], components: [{ type: MatTimeInputs, selector: "mat-time-inputs" }, { type: i1__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: MatClockDials, selector: "mat-clock-dials", inputs: ["orientation"], exportAs: ["matClockDials"] }], directives: [{ type: i6__namespace$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i7__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [
1993
2045
  matTimepickerAnimations.transformPanel,
1994
2046
  matTimepickerAnimations.fadeInTimepicker,
1995
2047
  ], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
@@ -2059,7 +2111,10 @@
2059
2111
  this._backdropHarnessClass = this.id + "-backdrop";
2060
2112
  this._scrollStrategy = scrollStrategy;
2061
2113
  if (_defaults) {
2062
- this.showToggleModeButton = _defaults.showToggleModeButton;
2114
+ this.showToggleModeButton =
2115
+ _defaults.showToggleModeButton !== undefined
2116
+ ? _defaults.showToggleModeButton
2117
+ : true;
2063
2118
  }
2064
2119
  }
2065
2120
  Object.defineProperty(MatTimepickerBase.prototype, "disabled", {
@@ -2150,6 +2205,30 @@
2150
2205
  enumerable: false,
2151
2206
  configurable: true
2152
2207
  });
2208
+ Object.defineProperty(MatTimepickerBase.prototype, "minuteInterval", {
2209
+ /** Step for minutes. */
2210
+ get: function () {
2211
+ var _a;
2212
+ return this._minuteInterval || ((_a = this._defaults) === null || _a === void 0 ? void 0 : _a.minuteInterval) || 1;
2213
+ },
2214
+ set: function (value) {
2215
+ this._minuteInterval = coercion.coerceNumberProperty(value);
2216
+ },
2217
+ enumerable: false,
2218
+ configurable: true
2219
+ });
2220
+ Object.defineProperty(MatTimepickerBase.prototype, "orientation", {
2221
+ /** Orientation for dial mode. */
2222
+ get: function () {
2223
+ var _a;
2224
+ return this._orientation || ((_a = this._defaults) === null || _a === void 0 ? void 0 : _a.orientation) || 'vertical';
2225
+ },
2226
+ set: function (value) {
2227
+ this._orientation = value;
2228
+ },
2229
+ enumerable: false,
2230
+ configurable: true
2231
+ });
2153
2232
  /** The minimum selectable time. */
2154
2233
  MatTimepickerBase.prototype._getMinTime = function () {
2155
2234
  return this.timepickerInput && this.timepickerInput.min;
@@ -2253,6 +2332,8 @@
2253
2332
  instance.mode = this.mode;
2254
2333
  instance.isMeridiem = this.format === '12h';
2255
2334
  instance.showToggleModeButton = this.showToggleModeButton;
2335
+ instance.minuteInterval = this.minuteInterval;
2336
+ instance.orientation = this.orientation;
2256
2337
  instance._dialogLabelId = this.timepickerInput.getOverlayLabelId();
2257
2338
  instance._assignActions(this._actionsPortal || defaultPortal, false);
2258
2339
  };
@@ -2382,7 +2463,7 @@
2382
2463
  return MatTimepickerBase;
2383
2464
  }());
2384
2465
  MatTimepickerBase.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimepickerBase, deps: [{ token: i0__namespace.ViewContainerRef }, { token: i1__namespace$2.Overlay }, { token: i0__namespace.NgZone }, { token: MAT_TIMEPICKER_SCROLL_STRATEGY }, { token: MAT_DEFAULT_ACITONS }, { token: MatTimeSelectionModel }, { token: MAT_TIMEPICKER_DEFAULT_OPTIONS, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
2385
- MatTimepickerBase.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: MatTimepickerBase, inputs: { disabled: "disabled", opened: "opened", openAs: "openAs", color: "color", mode: "mode", format: "format", showToggleModeButton: "showToggleModeButton", xPosition: "xPosition", yPosition: "yPosition" }, outputs: { closedStream: "closed" }, usesOnChanges: true, ngImport: i0__namespace });
2466
+ MatTimepickerBase.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: MatTimepickerBase, inputs: { disabled: "disabled", opened: "opened", openAs: "openAs", color: "color", mode: "mode", format: "format", showToggleModeButton: "showToggleModeButton", minuteInterval: "minuteInterval", orientation: "orientation", xPosition: "xPosition", yPosition: "yPosition" }, outputs: { closedStream: "closed" }, usesOnChanges: true, ngImport: i0__namespace });
2386
2467
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatTimepickerBase, decorators: [{
2387
2468
  type: i0.Directive
2388
2469
  }], ctorParameters: function () {
@@ -2412,6 +2493,10 @@
2412
2493
  type: i0.Input
2413
2494
  }], showToggleModeButton: [{
2414
2495
  type: i0.Input
2496
+ }], minuteInterval: [{
2497
+ type: i0.Input
2498
+ }], orientation: [{
2499
+ type: i0.Input
2415
2500
  }], xPosition: [{
2416
2501
  type: i0.Input
2417
2502
  }], yPosition: [{