@dhutaryan/ngx-mat-timepicker 18.0.4 → 19.1.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.
- package/README.md +3 -0
- package/_timepicker-theme.scss +0 -6
- package/fesm2022/dhutaryan-ngx-mat-timepicker.mjs +119 -123
- package/fesm2022/dhutaryan-ngx-mat-timepicker.mjs.map +1 -1
- package/lib/hours-clock-dial.d.ts +1 -1
- package/lib/time-face-base.d.ts +1 -1
- package/lib/time-input-base.d.ts +1 -1
- package/lib/timepicker-actions.d.ts +5 -9
- package/lib/timepicker-base.d.ts +1 -1
- package/lib/timepicker-content.d.ts +9 -9
- package/lib/timepicker-input-base.d.ts +1 -1
- package/package.json +5 -6
- package/themes/_utils.scss +39 -0
- package/themes/m2/_tokens.scss +2 -0
- package/themes/m3/_base.scss +0 -8
- package/themes/m3/_color.scss +0 -11
- package/themes/m3/_tokens.scss +1 -1
- package/esm2022/dhutaryan-ngx-mat-timepicker.mjs +0 -5
- package/esm2022/lib/adapter/index.mjs +0 -34
- package/esm2022/lib/adapter/native-date-time-adapter.mjs +0 -137
- package/esm2022/lib/adapter/time-adapter.mjs +0 -90
- package/esm2022/lib/clock-dial-adnimation.mjs +0 -11
- package/esm2022/lib/clock-dials.mjs +0 -95
- package/esm2022/lib/clock-size.mjs +0 -25
- package/esm2022/lib/hours-clock-dial.mjs +0 -192
- package/esm2022/lib/minutes-clock-dial.mjs +0 -165
- package/esm2022/lib/orientation.mjs +0 -2
- package/esm2022/lib/time-face-base.mjs +0 -318
- package/esm2022/lib/time-input-base.mjs +0 -85
- package/esm2022/lib/time-inputs.mjs +0 -179
- package/esm2022/lib/time-period.mjs +0 -67
- package/esm2022/lib/time-selection-model.mjs +0 -76
- package/esm2022/lib/timepicker-actions-default.mjs +0 -3
- package/esm2022/lib/timepicker-actions.mjs +0 -135
- package/esm2022/lib/timepicker-animations.mjs +0 -22
- package/esm2022/lib/timepicker-base.mjs +0 -458
- package/esm2022/lib/timepicker-content-layout.mjs +0 -23
- package/esm2022/lib/timepicker-content.mjs +0 -127
- package/esm2022/lib/timepicker-input-base.mjs +0 -254
- package/esm2022/lib/timepicker-input.mjs +0 -136
- package/esm2022/lib/timepicker-intl.mjs +0 -39
- package/esm2022/lib/timepicker-scroll-strategy.mjs +0 -15
- package/esm2022/lib/timepicker-toggle.mjs +0 -96
- package/esm2022/lib/timepicker.mjs +0 -33
- package/esm2022/lib/timepicker.module.mjs +0 -138
- package/esm2022/public-api.mjs +0 -23
- package/themes/_base.scss +0 -119
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Input, } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { BehaviorSubject, Subscription, take } from 'rxjs';
|
|
4
|
-
import { MatTimeFaceBase } from './time-face-base';
|
|
5
|
-
import { withZeroPrefixMeridiem } from './time-input-base';
|
|
6
|
-
import { enterLeaveAnimation } from './clock-dial-adnimation';
|
|
7
|
-
import { MatTimepickerContentLayout } from './timepicker-content-layout';
|
|
8
|
-
import { MatHoursClockDial } from './hours-clock-dial';
|
|
9
|
-
import { MatMinutesClockDial } from './minutes-clock-dial';
|
|
10
|
-
import { MatTimePeriod } from './time-period';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "./timepicker-intl";
|
|
13
|
-
import * as i2 from "./adapter";
|
|
14
|
-
import * as i3 from "@angular/common";
|
|
15
|
-
export class MatClockDials extends MatTimeFaceBase {
|
|
16
|
-
constructor(_intl, _timeAdapter, _ngZone, _elementRef, _cdr) {
|
|
17
|
-
super(_timeAdapter);
|
|
18
|
-
this._intl = _intl;
|
|
19
|
-
this._ngZone = _ngZone;
|
|
20
|
-
this._elementRef = _elementRef;
|
|
21
|
-
this._cdr = _cdr;
|
|
22
|
-
this.isHoursView = true;
|
|
23
|
-
/** Specifies the view of clock dial. */
|
|
24
|
-
this._view = new BehaviorSubject('hours');
|
|
25
|
-
this._viewSubscription = Subscription.EMPTY;
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this._viewSubscription = this._view.subscribe((view) => (this.isHoursView = view === 'hours'));
|
|
29
|
-
}
|
|
30
|
-
ngOnDestroy() {
|
|
31
|
-
this._viewSubscription?.unsubscribe();
|
|
32
|
-
this._viewSubscription = null;
|
|
33
|
-
}
|
|
34
|
-
/** Changes clock dial view. */
|
|
35
|
-
onViewChange(event, view) {
|
|
36
|
-
event.preventDefault();
|
|
37
|
-
this._view.next(view);
|
|
38
|
-
}
|
|
39
|
-
focusActiveCell() {
|
|
40
|
-
this._ngZone.runOutsideAngular(() => {
|
|
41
|
-
this._ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
42
|
-
const activeCell = this._elementRef.nativeElement.querySelector('.mat-timepicker-content .mat-clock-dial-cell-active');
|
|
43
|
-
if (activeCell) {
|
|
44
|
-
activeCell.focus();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const activePoint = this._elementRef.nativeElement.querySelector('.mat-timepicker-content .mat-clock-dial-hand-point');
|
|
48
|
-
if (activePoint) {
|
|
49
|
-
// if no active cell we need to focus a small dot
|
|
50
|
-
activePoint.focus();
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
_withZeroPrefix(value) {
|
|
56
|
-
if (value === 0) {
|
|
57
|
-
return '00';
|
|
58
|
-
}
|
|
59
|
-
return withZeroPrefixMeridiem(value, this.isMeridiem);
|
|
60
|
-
}
|
|
61
|
-
_onMinuteSelected(minute) {
|
|
62
|
-
super._onMinuteSelected(minute);
|
|
63
|
-
this._cdr.detectChanges();
|
|
64
|
-
}
|
|
65
|
-
/** Handles hour selection. */
|
|
66
|
-
_onHourChanged({ hour, changeView = false, }) {
|
|
67
|
-
if (changeView) {
|
|
68
|
-
this._view.next('minutes');
|
|
69
|
-
}
|
|
70
|
-
this._onHourSelected(hour);
|
|
71
|
-
this._cdr.detectChanges();
|
|
72
|
-
}
|
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatClockDials, deps: [{ token: i1.MatTimepickerIntl }, { token: i2.TimeAdapter, optional: true }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: MatClockDials, isStandalone: true, selector: "mat-clock-dials", inputs: { orientation: "orientation", touchUi: "touchUi" }, host: { attributes: { "role": "dial" }, classAttribute: "mat-clock-dials" }, exportAs: ["matClockDials"], usesInheritance: true, ngImport: i0, template: "<mat-timepicker-content-layout [title]=\"_intl.dialsTitle\" [orientation]=\"orientation\">\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 @if (isHoursView) {\n <mat-hours-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedHour]=\"selectedHour\"\n [isMeridiem]=\"isMeridiem\"\n [availableHours]=\"_getAvailableHours()\"\n [touchUi]=\"touchUi\"\n (selectedChange)=\"_onHourChanged($event)\"\n (keydown)=\"_onKeydown($event, 'hour')\"\n ></mat-hours-clock-dial>\n }\n\n @if (!isHoursView) {\n <mat-minutes-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedMinute]=\"selectedMinute\"\n [interval]=\"minuteInterval\"\n [availableMinutes]=\"availableMinutes\"\n [touchUi]=\"touchUi\"\n (selectedChange)=\"_onMinuteSelected($event)\"\n (keydown)=\"_onKeydown($event, 'minute')\"\n ></mat-minutes-clock-dial>\n }\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.5rem;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}.mat-clock-dial-cell.mat-clock-dial-cell-disabled:hover{cursor:default}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatTimepickerContentLayout, selector: "mat-timepicker-content-layout", inputs: ["title", "orientation"], exportAs: ["matTimepickerContent"] }, { kind: "component", type: MatHoursClockDial, selector: "mat-hours-clock-dial", inputs: ["selectedHour", "isMeridiem", "availableHours", "color", "touchUi"], outputs: ["selectedChange"], exportAs: ["matHoursClockDial"] }, { kind: "component", type: MatMinutesClockDial, selector: "mat-minutes-clock-dial", inputs: ["selectedMinute", "interval", "availableMinutes", "color", "touchUi"], outputs: ["selectedChange"], exportAs: ["matMinutesClockDial"] }, { kind: "component", type: MatTimePeriod, selector: "mat-time-period", inputs: ["vertical", "period", "disabledPeriod"], outputs: ["periodChanged"] }], animations: [enterLeaveAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
75
|
-
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatClockDials, decorators: [{
|
|
77
|
-
type: Component,
|
|
78
|
-
args: [{ selector: 'mat-clock-dials', standalone: true, imports: [
|
|
79
|
-
CommonModule,
|
|
80
|
-
MatTimepickerContentLayout,
|
|
81
|
-
MatHoursClockDial,
|
|
82
|
-
MatMinutesClockDial,
|
|
83
|
-
MatTimePeriod,
|
|
84
|
-
], exportAs: 'matClockDials', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
85
|
-
role: 'dial',
|
|
86
|
-
class: 'mat-clock-dials',
|
|
87
|
-
}, animations: [enterLeaveAnimation], template: "<mat-timepicker-content-layout [title]=\"_intl.dialsTitle\" [orientation]=\"orientation\">\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 @if (isHoursView) {\n <mat-hours-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedHour]=\"selectedHour\"\n [isMeridiem]=\"isMeridiem\"\n [availableHours]=\"_getAvailableHours()\"\n [touchUi]=\"touchUi\"\n (selectedChange)=\"_onHourChanged($event)\"\n (keydown)=\"_onKeydown($event, 'hour')\"\n ></mat-hours-clock-dial>\n }\n\n @if (!isHoursView) {\n <mat-minutes-clock-dial\n [@enterLeaveAnimation]\n [color]=\"color\"\n [selectedMinute]=\"selectedMinute\"\n [interval]=\"minuteInterval\"\n [availableMinutes]=\"availableMinutes\"\n [touchUi]=\"touchUi\"\n (selectedChange)=\"_onMinuteSelected($event)\"\n (keydown)=\"_onKeydown($event, 'minute')\"\n ></mat-minutes-clock-dial>\n }\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.5rem;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}.mat-clock-dial-cell.mat-clock-dial-cell-disabled:hover{cursor:default}\n"] }]
|
|
88
|
-
}], ctorParameters: () => [{ type: i1.MatTimepickerIntl }, { type: i2.TimeAdapter, decorators: [{
|
|
89
|
-
type: Optional
|
|
90
|
-
}] }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { orientation: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], touchUi: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2stZGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGltZXBpY2tlci9zcmMvbGliL2Nsb2NrLWRpYWxzLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRpbWVwaWNrZXIvc3JjL2xpYi9jbG9jay1kaWFscy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUdqQixRQUFRLEVBR1IsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBeUI5QyxNQUFNLE9BQU8sYUFDWCxTQUFRLGVBQWtCO0lBZTFCLFlBQ1MsS0FBd0IsRUFDbkIsWUFBNEIsRUFDaEMsT0FBZSxFQUNmLFdBQXVCLEVBQ3ZCLElBQXVCO1FBRS9CLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQU5iLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBRXZCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixn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Q1A7d0JBQ1AsWUFBWTt3QkFDWiwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNkLFlBR1MsZUFBZSxtQkFDUix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLElBQUksRUFBRSxNQUFNO3dCQUNaLEtBQUssRUFBRSxpQkFBaUI7cUJBQ3pCLGNBQ1csQ0FBQyxtQkFBbUIsQ0FBQzs7MEJBb0I5QixRQUFRO3VIQWJGLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgTmdab25lLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFRpbWVBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVyJztcbmltcG9ydCB7IE1hdFRpbWVGYWNlQmFzZSB9IGZyb20gJy4vdGltZS1mYWNlLWJhc2UnO1xuaW1wb3J0IHsgd2l0aFplcm9QcmVmaXhNZXJpZGllbSB9IGZyb20gJy4vdGltZS1pbnB1dC1iYXNlJztcbmltcG9ydCB7IE1hdFRpbWVwaWNrZXJJbnRsIH0gZnJvbSAnLi90aW1lcGlja2VyLWludGwnO1xuaW1wb3J0IHsgVGltZXBpY2tlck9yaWVudGF0aW9uIH0gZnJvbSAnLi9vcmllbnRhdGlvbic7XG5pbXBvcnQgeyBlbnRlckxlYXZlQW5pbWF0aW9uIH0gZnJvbSAnLi9jbG9jay1kaWFsLWFkbmltYXRpb24nO1xuaW1wb3J0IHsgTWF0VGltZXBpY2tlckNvbnRlbnRMYXlvdXQgfSBmcm9tICcuL3RpbWVwaWNrZXItY29udGVudC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0SG91cnNDbG9ja0RpYWwgfSBmcm9tICcuL2hvdXJzLWNsb2NrLWRpYWwnO1xuaW1wb3J0IHsgTWF0TWludXRlc0Nsb2NrRGlhbCB9IGZyb20gJy4vbWludXRlcy1jbG9jay1kaWFsJztcbmltcG9ydCB7IE1hdFRpbWVQZXJpb2QgfSBmcm9tICcuL3RpbWUtcGVyaW9kJztcblxuZXhwb3J0IHR5cGUgTWF0RGlhbFZpZXcgPSAnaG91cnMnIHwgJ21pbnV0ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtY2xvY2stZGlhbHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFRpbWVwaWNrZXJDb250ZW50TGF5b3V0LFxuICAgIE1hdEhvdXJzQ2xvY2tEaWFsLFxuICAgIE1hdE1pbnV0ZXNDbG9ja0RpYWwsXG4gICAgTWF0VGltZVBlcmlvZCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nsb2NrLWRpYWxzLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jbG9jay1kaWFscy5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnbWF0Q2xvY2tEaWFscycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ2RpYWwnLFxuICAgIGNsYXNzOiAnbWF0LWNsb2NrLWRpYWxzJyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW2VudGVyTGVhdmVBbmltYXRpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRDbG9ja0RpYWxzPFQ+XG4gIGV4dGVuZHMgTWF0VGltZUZhY2VCYXNlPFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqIExheW91dCBvcmllbnRhdGlvbi4gKi9cbiAgQElucHV0KCkgb3JpZW50YXRpb246IFRpbWVwaWNrZXJPcmllbnRhdGlvbjtcblxuICAvKiogV2hldGhlciB0aGUgdGltZXBpY2tlciBVSSBpcyBpbiB0b3VjaCBtb2RlLiAqL1xuICBASW5wdXQoKSB0b3VjaFVpOiBib29sZWFuO1xuXG4gIGlzSG91cnNWaWV3ID0gdHJ1ZTtcblxuICAvKiogU3BlY2lmaWVzIHRoZSB2aWV3IG9mIGNsb2NrIGRpYWwuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hdERpYWxWaWV3PignaG91cnMnKTtcbiAgcHJpdmF0ZSBfdmlld1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX2ludGw6IE1hdFRpbWVwaWNrZXJJbnRsLFxuICAgIEBPcHRpb25hbCgpIF90aW1lQWRhcHRlcjogVGltZUFkYXB0ZXI8VD4sXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihfdGltZUFkYXB0ZXIpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld1N1YnNjcmlwdGlvbiA9IHRoaXMuX3ZpZXcuc3Vic2NyaWJlKFxuICAgICAgKHZpZXcpID0+ICh0aGlzLmlzSG91cnNWaWV3ID0gdmlldyA9PT0gJ2hvdXJzJyksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fdmlld1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICAvKiogQ2hhbmdlcyBjbG9jayBkaWFsIHZpZXcuICovXG4gIG9uVmlld0NoYW5nZShldmVudDogRXZlbnQsIHZpZXc6IE1hdERpYWxWaWV3KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLl92aWV3Lm5leHQodmlldyk7XG4gIH1cblxuICBmb2N1c0FjdGl2ZUNlbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUNlbGw6IEhUTUxFbGVtZW50IHwgbnVsbCA9XG4gICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAnLm1hdC10aW1lcGlja2VyLWNvbnRlbnQgLm1hdC1jbG9jay1kaWFsLWNlbGwtYWN0aXZlJywgLy8gdG8gYXZvaWQgZm9jdXMgZm9yIGlubGluZSBtb2RlXG4gICAgICAgICAgKTtcblxuICAgICAgICBpZiAoYWN0aXZlQ2VsbCkge1xuICAgICAgICAgIGFjdGl2ZUNlbGwuZm9jdXMoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY3RpdmVQb2ludDogSFRNTEVsZW1lbnQgfCBudWxsID1cbiAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcubWF0LXRpbWVwaWNrZXItY29udGVudCAubWF0LWNsb2NrLWRpYWwtaGFuZC1wb2ludCcsIC8vIHRvIGF2b2lkIGZvY3VzIGZvciBpbmxpbmUgbW9kZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVBvaW50KSB7XG4gICAgICAgICAgLy8gaWYgbm8gYWN0aXZlIGNlbGwgd2UgbmVlZCB0byBmb2N1cyBhIHNtYWxsIGRvdFxuICAgICAgICAgIGFjdGl2ZVBvaW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgX3dpdGhaZXJvUHJlZml4KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gMCkge1xuICAgICAgcmV0dXJuICcwMCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdpdGhaZXJvUHJlZml4TWVyaWRpZW0odmFsdWUsIHRoaXMuaXNNZXJpZGllbSk7XG4gIH1cblxuICBvdmVycmlkZSBfb25NaW51dGVTZWxlY3RlZChtaW51dGU6IG51bWJlcik6IHZvaWQge1xuICAgIHN1cGVyLl9vbk1pbnV0ZVNlbGVjdGVkKG1pbnV0ZSk7XG4gICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGVzIGhvdXIgc2VsZWN0aW9uLiAqL1xuICBfb25Ib3VyQ2hhbmdlZCh7XG4gICAgaG91cixcbiAgICBjaGFuZ2VWaWV3ID0gZmFsc2UsXG4gIH06IHtcbiAgICBob3VyOiBudW1iZXI7XG4gICAgY2hhbmdlVmlldz86IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlVmlldykge1xuICAgICAgdGhpcy5fdmlldy5uZXh0KCdtaW51dGVzJyk7XG4gICAgfVxuICAgIHRoaXMuX29uSG91clNlbGVjdGVkKGhvdXIpO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxtYXQtdGltZXBpY2tlci1jb250ZW50LWxheW91dCBbdGl0bGVdPVwiX2ludGwuZGlhbHNUaXRsZVwiIFtvcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblwiPlxuICA8ZGl2XG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICBjbGFzcz1cIm1hdC1jbG9jay1kaWFsLXZhbHVlXCJcbiAgICBob3Vyc1xuICAgIFtjbGFzcy5tYXQtY2xvY2stZGlhbC12YWx1ZS1hY3RpdmVdPVwiaXNIb3Vyc1ZpZXdcIlxuICAgIChjbGljayk9XCJvblZpZXdDaGFuZ2UoJGV2ZW50LCAnaG91cnMnKVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwib25WaWV3Q2hhbmdlKCRldmVudCwgJ2hvdXJzJylcIlxuICA+XG4gICAge3sgX3dpdGhaZXJvUHJlZml4KHNlbGVjdGVkSG91cikgfX1cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIGNsYXNzPVwibWF0LWNsb2NrLWRpYWwtdmFsdWVcIlxuICAgIG1pbnV0ZXNcbiAgICBbY2xhc3MubWF0LWNsb2NrLWRpYWwtdmFsdWUtYWN0aXZlXT1cIiFpc0hvdXJzVmlld1wiXG4gICAgKGNsaWNrKT1cIm9uVmlld0NoYW5nZSgkZXZlbnQsICdtaW51dGVzJylcIlxuICAgIChrZXlkb3duLnNwYWNlKT1cIm9uVmlld0NoYW5nZSgkZXZlbnQsICdtaW51dGVzJylcIlxuICA+XG4gICAge3sgX3dpdGhaZXJvUHJlZml4KHNlbGVjdGVkTWludXRlKSB9fVxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgbWF0LXRpbWUtcGVyaW9kIFtuZ0lmXT1cImlzTWVyaWRpZW1cIj5cbiAgICA8bWF0LXRpbWUtcGVyaW9kXG4gICAgICBbcGVyaW9kXT1cInBlcmlvZFwiXG4gICAgICBbZGlzYWJsZWRQZXJpb2RdPVwiZGlzYWJsZWRQZXJpb2RcIlxuICAgICAgW3ZlcnRpY2FsXT1cIm9yaWVudGF0aW9uID09PSAndmVydGljYWwnXCJcbiAgICAgIChwZXJpb2RDaGFuZ2VkKT1cIl9vblBlcmlvZENoYW5nZWQoJGV2ZW50KVwiXG4gICAgPjwvbWF0LXRpbWUtcGVyaW9kPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cIm1hdC1jbG9jay1kaWFsLWZhY2VzXCJcbiAgICBbY2xhc3MubWF0LWNsb2NrLWRpYWwtZmFjZXMtaG9yaXpvbnRhbF09XCJvcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXCJcbiAgPlxuICAgIEBpZiAoaXNIb3Vyc1ZpZXcpIHtcbiAgICAgIDxtYXQtaG91cnMtY2xvY2stZGlhbFxuICAgICAgICBbQGVudGVyTGVhdmVBbmltYXRpb25dXG4gICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIFtzZWxlY3RlZEhvdXJdPVwic2VsZWN0ZWRIb3VyXCJcbiAgICAgICAgW2lzTWVyaWRpZW1dPVwiaXNNZXJpZGllbVwiXG4gICAgICAgIFthdmFpbGFibGVIb3Vyc109XCJfZ2V0QXZhaWxhYmxlSG91cnMoKVwiXG4gICAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIlxuICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiX29uSG91ckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50LCAnaG91cicpXCJcbiAgICAgID48L21hdC1ob3Vycy1jbG9jay1kaWFsPlxuICAgIH1cblxuICAgIEBpZiAoIWlzSG91cnNWaWV3KSB7XG4gICAgICA8bWF0LW1pbnV0ZXMtY2xvY2stZGlhbFxuICAgICAgICBbQGVudGVyTGVhdmVBbmltYXRpb25dXG4gICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIFtzZWxlY3RlZE1pbnV0ZV09XCJzZWxlY3RlZE1pbnV0ZVwiXG4gICAgICAgIFtpbnRlcnZhbF09XCJtaW51dGVJbnRlcnZhbFwiXG4gICAgICAgIFthdmFpbGFibGVNaW51dGVzXT1cImF2YWlsYWJsZU1pbnV0ZXNcIlxuICAgICAgICBbdG91Y2hVaV09XCJ0b3VjaFVpXCJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIl9vbk1pbnV0ZVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bik9XCJfb25LZXlkb3duKCRldmVudCwgJ21pbnV0ZScpXCJcbiAgICAgID48L21hdC1taW51dGVzLWNsb2NrLWRpYWw+XG4gICAgfVxuICA8L2Rpdj5cbjwvbWF0LXRpbWVwaWNrZXItY29udGVudC1sYXlvdXQ+XG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
const TOUCH_UI_MULTIPLIER = 1.25;
|
|
2
|
-
const TOUCH_UI_TICK_MULTIPLIER = 1.5;
|
|
3
|
-
const CLOCK_RADIUS = 128;
|
|
4
|
-
const CLOCK_TICK_RADIUS = 16;
|
|
5
|
-
const CLOCK_OUTER_RADIUS = 100;
|
|
6
|
-
export function getClockRadius(touchUi) {
|
|
7
|
-
return touchUi ? CLOCK_RADIUS * TOUCH_UI_MULTIPLIER : CLOCK_RADIUS;
|
|
8
|
-
}
|
|
9
|
-
export function getClockTickRadius(touchUi) {
|
|
10
|
-
return touchUi
|
|
11
|
-
? CLOCK_TICK_RADIUS * TOUCH_UI_TICK_MULTIPLIER
|
|
12
|
-
: CLOCK_TICK_RADIUS;
|
|
13
|
-
}
|
|
14
|
-
export function getClockCorrectedRadius(touchUi) {
|
|
15
|
-
return getClockRadius(touchUi) - getClockTickRadius(touchUi);
|
|
16
|
-
}
|
|
17
|
-
export function getClockOuterRadius(touchUi) {
|
|
18
|
-
return touchUi
|
|
19
|
-
? CLOCK_OUTER_RADIUS * TOUCH_UI_MULTIPLIER
|
|
20
|
-
: CLOCK_OUTER_RADIUS;
|
|
21
|
-
}
|
|
22
|
-
export function getClockInnerRadius(touchUi) {
|
|
23
|
-
return getClockOuterRadius(touchUi) - getClockTickRadius(touchUi) * 2;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2stc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdC10aW1lcGlja2VyL3NyYy9saWIvY2xvY2stc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUNqQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFFL0IsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFpQjtJQUM5QyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDckUsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFpQjtJQUNsRCxPQUFPLE9BQU87UUFDWixDQUFDLENBQUMsaUJBQWlCLEdBQUcsd0JBQXdCO1FBQzlDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE9BQWlCO0lBQ3ZELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBaUI7SUFDbkQsT0FBTyxPQUFPO1FBQ1osQ0FBQyxDQUFDLGtCQUFrQixHQUFHLG1CQUFtQjtRQUMxQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFpQjtJQUNuRCxPQUFPLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVE9VQ0hfVUlfTVVMVElQTElFUiA9IDEuMjU7XG5jb25zdCBUT1VDSF9VSV9USUNLX01VTFRJUExJRVIgPSAxLjU7XG5jb25zdCBDTE9DS19SQURJVVMgPSAxMjg7XG5jb25zdCBDTE9DS19USUNLX1JBRElVUyA9IDE2O1xuY29uc3QgQ0xPQ0tfT1VURVJfUkFESVVTID0gMTAwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xvY2tSYWRpdXModG91Y2hVaT86IGJvb2xlYW4pOiBudW1iZXIge1xuICByZXR1cm4gdG91Y2hVaSA/IENMT0NLX1JBRElVUyAqIFRPVUNIX1VJX01VTFRJUExJRVIgOiBDTE9DS19SQURJVVM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbG9ja1RpY2tSYWRpdXModG91Y2hVaT86IGJvb2xlYW4pOiBudW1iZXIge1xuICByZXR1cm4gdG91Y2hVaVxuICAgID8gQ0xPQ0tfVElDS19SQURJVVMgKiBUT1VDSF9VSV9USUNLX01VTFRJUExJRVJcbiAgICA6IENMT0NLX1RJQ0tfUkFESVVTO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xvY2tDb3JyZWN0ZWRSYWRpdXModG91Y2hVaT86IGJvb2xlYW4pOiBudW1iZXIge1xuICByZXR1cm4gZ2V0Q2xvY2tSYWRpdXModG91Y2hVaSkgLSBnZXRDbG9ja1RpY2tSYWRpdXModG91Y2hVaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbG9ja091dGVyUmFkaXVzKHRvdWNoVWk/OiBib29sZWFuKTogbnVtYmVyIHtcbiAgcmV0dXJuIHRvdWNoVWlcbiAgICA/IENMT0NLX09VVEVSX1JBRElVUyAqIFRPVUNIX1VJX01VTFRJUExJRVJcbiAgICA6IENMT0NLX09VVEVSX1JBRElVUztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsb2NrSW5uZXJSYWRpdXModG91Y2hVaT86IGJvb2xlYW4pOiBudW1iZXIge1xuICByZXR1cm4gZ2V0Q2xvY2tPdXRlclJhZGl1cyh0b3VjaFVpKSAtIGdldENsb2NrVGlja1JhZGl1cyh0b3VjaFVpKSAqIDI7XG59XG4iXX0=
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
3
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
-
import { debounceTime, fromEvent, merge, take } from 'rxjs';
|
|
5
|
-
import { getClockCorrectedRadius, getClockInnerRadius, getClockOuterRadius, getClockRadius, getClockTickRadius, } from './clock-size';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@angular/material/button";
|
|
9
|
-
export const ALL_HOURS = Array(24)
|
|
10
|
-
.fill(null)
|
|
11
|
-
.map((_, i) => i);
|
|
12
|
-
export class MatHoursClockDial {
|
|
13
|
-
/** Selected hour. */
|
|
14
|
-
get selectedHour() {
|
|
15
|
-
return this._selectedHour;
|
|
16
|
-
}
|
|
17
|
-
set selectedHour(value) {
|
|
18
|
-
this._selectedHour = value;
|
|
19
|
-
}
|
|
20
|
-
/** Whether the clock uses 12 hour format. */
|
|
21
|
-
get isMeridiem() {
|
|
22
|
-
return this._isMeridiem;
|
|
23
|
-
}
|
|
24
|
-
set isMeridiem(value) {
|
|
25
|
-
this._isMeridiem = value;
|
|
26
|
-
}
|
|
27
|
-
get availableHours() {
|
|
28
|
-
return this._availableHours;
|
|
29
|
-
}
|
|
30
|
-
set availableHours(value) {
|
|
31
|
-
this._availableHours = value;
|
|
32
|
-
this._initHours();
|
|
33
|
-
}
|
|
34
|
-
/** Whether the timepicker UI is in touch mode. */
|
|
35
|
-
get touchUi() {
|
|
36
|
-
return this._touchUi;
|
|
37
|
-
}
|
|
38
|
-
set touchUi(value) {
|
|
39
|
-
this._touchUi = value;
|
|
40
|
-
this._initHours();
|
|
41
|
-
}
|
|
42
|
-
get disabledHand() {
|
|
43
|
-
return !this.availableHours.includes(this.selectedHour);
|
|
44
|
-
}
|
|
45
|
-
get isHour() {
|
|
46
|
-
return !!this.hours.find((hour) => hour.value === this.selectedHour);
|
|
47
|
-
}
|
|
48
|
-
constructor(_element, _cdr, _document) {
|
|
49
|
-
this._element = _element;
|
|
50
|
-
this._cdr = _cdr;
|
|
51
|
-
this._document = _document;
|
|
52
|
-
this._availableHours = [];
|
|
53
|
-
/** Emits selected hour. */
|
|
54
|
-
this.selectedChange = new EventEmitter();
|
|
55
|
-
this.hours = [];
|
|
56
|
-
}
|
|
57
|
-
ngOnInit() {
|
|
58
|
-
this._initHours();
|
|
59
|
-
}
|
|
60
|
-
/** Hand styles based on selected hour. */
|
|
61
|
-
_handStyles() {
|
|
62
|
-
const deg = Math.round(this.selectedHour * (360 / (24 / 2)));
|
|
63
|
-
const radius = this._getRadius(this.selectedHour);
|
|
64
|
-
const height = radius;
|
|
65
|
-
const marginTop = getClockRadius(this.touchUi) - radius;
|
|
66
|
-
return {
|
|
67
|
-
transform: `rotate(${deg}deg)`,
|
|
68
|
-
height: `${height}px`,
|
|
69
|
-
'margin-top': `${marginTop}px`,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/** Handles mouse and touch events on dial and document. */
|
|
73
|
-
_onUserAction(event) {
|
|
74
|
-
if (event.cancelable) {
|
|
75
|
-
event.preventDefault();
|
|
76
|
-
}
|
|
77
|
-
this._setHour(event);
|
|
78
|
-
const eventsSubscription = merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove'))
|
|
79
|
-
.pipe(debounceTime(0))
|
|
80
|
-
.subscribe({
|
|
81
|
-
next: (event) => {
|
|
82
|
-
event.preventDefault();
|
|
83
|
-
this._setHour(event);
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend'))
|
|
87
|
-
.pipe(take(1))
|
|
88
|
-
.subscribe({
|
|
89
|
-
next: () => {
|
|
90
|
-
eventsSubscription.unsubscribe();
|
|
91
|
-
this.selectedChange.emit({
|
|
92
|
-
hour: this.selectedHour,
|
|
93
|
-
changeView: true,
|
|
94
|
-
});
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
_isActiveCell(hour) {
|
|
99
|
-
return this.selectedHour === hour;
|
|
100
|
-
}
|
|
101
|
-
/** Changes selected hour based on coordinates. */
|
|
102
|
-
_setHour(event) {
|
|
103
|
-
const element = this._element.nativeElement;
|
|
104
|
-
const window = this._getWindow();
|
|
105
|
-
const elementRect = element.getBoundingClientRect();
|
|
106
|
-
const width = element.offsetWidth;
|
|
107
|
-
const height = element.offsetHeight;
|
|
108
|
-
const pageX = event instanceof MouseEvent ? event.pageX : event.touches[0].pageX;
|
|
109
|
-
const pageY = event instanceof MouseEvent ? event.pageY : event.touches[0].pageY;
|
|
110
|
-
const x = width / 2 - (pageX - elementRect.left - window.scrollX);
|
|
111
|
-
const y = height / 2 - (pageY - elementRect.top - window.scrollY);
|
|
112
|
-
const unit = Math.PI / 6;
|
|
113
|
-
const atan2 = Math.atan2(-x, y);
|
|
114
|
-
const radian = atan2 < 0 ? Math.PI * 2 + atan2 : atan2;
|
|
115
|
-
const initialValue = Math.round(radian / unit);
|
|
116
|
-
const z = Math.sqrt(x * x + y * y);
|
|
117
|
-
const outer = z > getClockOuterRadius(this.touchUi) - getClockTickRadius(this.touchUi);
|
|
118
|
-
const value = this._getHourValue(initialValue, outer);
|
|
119
|
-
if (this.availableHours.includes(value)) {
|
|
120
|
-
this.selectedHour = value;
|
|
121
|
-
this.selectedChange.emit({
|
|
122
|
-
hour: this.selectedHour,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
this._cdr.detectChanges();
|
|
126
|
-
}
|
|
127
|
-
/** Return value of hour. */
|
|
128
|
-
_getHourValue(value, outer) {
|
|
129
|
-
const edgeValue = value === 0 || value === 12;
|
|
130
|
-
if (this.isMeridiem) {
|
|
131
|
-
return edgeValue ? 12 : value;
|
|
132
|
-
}
|
|
133
|
-
if (outer) {
|
|
134
|
-
return edgeValue ? 0 : value;
|
|
135
|
-
}
|
|
136
|
-
return edgeValue ? 12 : value + 12;
|
|
137
|
-
}
|
|
138
|
-
/** Creates list of hours. */
|
|
139
|
-
_initHours() {
|
|
140
|
-
const initialHours = this.isMeridiem ? ALL_HOURS.slice(1, 13) : ALL_HOURS;
|
|
141
|
-
this.hours = initialHours.map((hour) => {
|
|
142
|
-
const radian = (hour / 6) * Math.PI;
|
|
143
|
-
const radius = this._getRadius(hour);
|
|
144
|
-
return {
|
|
145
|
-
value: hour,
|
|
146
|
-
displayValue: hour === 0 ? '00' : String(hour),
|
|
147
|
-
left: getClockCorrectedRadius(this.touchUi) + Math.sin(radian) * radius,
|
|
148
|
-
top: getClockCorrectedRadius(this.touchUi) - Math.cos(radian) * radius,
|
|
149
|
-
disabled: !this.availableHours.includes(hour),
|
|
150
|
-
};
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
/** Returns radius based on hour */
|
|
154
|
-
_getRadius(hour) {
|
|
155
|
-
if (this.isMeridiem) {
|
|
156
|
-
return getClockOuterRadius(this.touchUi);
|
|
157
|
-
}
|
|
158
|
-
const outer = hour >= 0 && hour < 12;
|
|
159
|
-
const radius = outer ? getClockOuterRadius(this.touchUi) : getClockInnerRadius(this.touchUi);
|
|
160
|
-
return radius;
|
|
161
|
-
}
|
|
162
|
-
/** Use defaultView of injected document if available or fallback to global window reference */
|
|
163
|
-
_getWindow() {
|
|
164
|
-
return this._document.defaultView || window;
|
|
165
|
-
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatHoursClockDial, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: MatHoursClockDial, isStandalone: true, selector: "mat-hours-clock-dial", inputs: { selectedHour: "selectedHour", isMeridiem: "isMeridiem", availableHours: "availableHours", color: "color", touchUi: "touchUi" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "mousedown": "_onUserAction($event)", "touchstart": "_onUserAction($event)" }, classAttribute: "mat-clock-dial mat-clock-dial-hours" }, exportAs: ["matHoursClockDial"], ngImport: i0, template: "<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@for (hour of hours; track hour.value) {\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}\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-mini-fab].mat-clock-dial-cell{position:absolute;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;box-shadow:none}[mat-mini-fab].mat-clock-dial-cell:disabled{pointer-events:none}[mat-mini-fab].mat-clock-dial-cell:focus,[mat-mini-fab].mat-clock-dial-cell:hover,[mat-mini-fab].mat-clock-dial-cell:active,[mat-mini-fab].mat-clock-dial-cell:focus:active{box-shadow:none}.mat-timepicker-content-touch .mat-clock-dial{width:20rem;height:20rem}.mat-timepicker-content-touch [mat-mini-fab].mat-clock-dial-cell{width:3rem;height:3rem;font-size:1.125rem}.mat-clock-dial-hand{position:absolute;inset:0;width:1px;margin:0 auto;transform-origin:bottom}.mat-clock-dial-hand:before{position:absolute;top:-.25rem;left:-.25rem;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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
168
|
-
}
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatHoursClockDial, decorators: [{
|
|
170
|
-
type: Component,
|
|
171
|
-
args: [{ selector: 'mat-hours-clock-dial', standalone: true, imports: [CommonModule, MatButtonModule], exportAs: 'matHoursClockDial', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
172
|
-
class: 'mat-clock-dial mat-clock-dial-hours',
|
|
173
|
-
'(mousedown)': '_onUserAction($event)',
|
|
174
|
-
'(touchstart)': '_onUserAction($event)',
|
|
175
|
-
}, template: "<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@for (hour of hours; track hour.value) {\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}\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-mini-fab].mat-clock-dial-cell{position:absolute;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;box-shadow:none}[mat-mini-fab].mat-clock-dial-cell:disabled{pointer-events:none}[mat-mini-fab].mat-clock-dial-cell:focus,[mat-mini-fab].mat-clock-dial-cell:hover,[mat-mini-fab].mat-clock-dial-cell:active,[mat-mini-fab].mat-clock-dial-cell:focus:active{box-shadow:none}.mat-timepicker-content-touch .mat-clock-dial{width:20rem;height:20rem}.mat-timepicker-content-touch [mat-mini-fab].mat-clock-dial-cell{width:3rem;height:3rem;font-size:1.125rem}.mat-clock-dial-hand{position:absolute;inset:0;width:1px;margin:0 auto;transform-origin:bottom}.mat-clock-dial-hand:before{position:absolute;top:-.25rem;left:-.25rem;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"] }]
|
|
176
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: Document, decorators: [{
|
|
177
|
-
type: Inject,
|
|
178
|
-
args: [DOCUMENT]
|
|
179
|
-
}] }], propDecorators: { selectedHour: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], isMeridiem: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], availableHours: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], color: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], touchUi: [{
|
|
188
|
-
type: Input
|
|
189
|
-
}], selectedChange: [{
|
|
190
|
-
type: Output
|
|
191
|
-
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91cnMtY2xvY2stZGlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdC10aW1lcGlja2VyL3NyYy9saWIvaG91cnMtY2xvY2stZGlhbC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdC10aW1lcGlja2VyL3NyYy9saWIvaG91cnMtY2xvY2stZGlhbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGtCQUFrQixHQUNuQixNQUFNLGNBQWMsQ0FBQzs7OztBQVV0QixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztLQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDO0tBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFpQnBCLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIscUJBQXFCO0lBQ3JCLElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixD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LENBQUM7OEdBMU1VLGlCQUFpQiw2RUFnRWxCLFFBQVE7a0dBaEVQLGlCQUFpQix1Y0NwRDlCLDZ0QkFzQkEsMnNDRGtCWSxZQUFZLG1IQUFFLGVBQWU7OzJGQVk1QixpQkFBaUI7a0JBZjdCLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsWUFHOUIsbUJBQW1CLG1CQUNaLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHFDQUFxQzt3QkFDNUMsYUFBYSxFQUFFLHVCQUF1Qjt3QkFDdEMsY0FBYyxFQUFFLHVCQUF1QjtxQkFDeEM7OzBCQWtFRSxNQUFNOzJCQUFDLFFBQVE7eUNBN0RkLFlBQVk7c0JBRGYsS0FBSztnQkFXRixVQUFVO3NCQURiLEtBQUs7Z0JBVUYsY0FBYztzQkFEakIsS0FBSztnQkFXRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQVdJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgbWVyZ2UsIHRha2UgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgZ2V0Q2xvY2tDb3JyZWN0ZWRSYWRpdXMsXG4gIGdldENsb2NrSW5uZXJSYWRpdXMsXG4gIGdldENsb2NrT3V0ZXJSYWRpdXMsXG4gIGdldENsb2NrUmFkaXVzLFxuICBnZXRDbG9ja1RpY2tSYWRpdXMsXG59IGZyb20gJy4vY2xvY2stc2l6ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvY2tEaWFsVmlld0NlbGwge1xuICB2YWx1ZTogbnVtYmVyO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZztcbiAgbGVmdDogbnVtYmVyO1xuICB0b3A6IG51bWJlcjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBBTExfSE9VUlMgPSBBcnJheSgyNClcbiAgLmZpbGwobnVsbClcbiAgLm1hcCgoXywgaSkgPT4gaSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1ob3Vycy1jbG9jay1kaWFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICdob3Vycy1jbG9jay1kaWFsLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2xvY2stZGlhbC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnbWF0SG91cnNDbG9ja0RpYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbWF0LWNsb2NrLWRpYWwgbWF0LWNsb2NrLWRpYWwtaG91cnMnLFxuICAgICcobW91c2Vkb3duKSc6ICdfb25Vc2VyQWN0aW9uKCRldmVudCknLFxuICAgICcodG91Y2hzdGFydCknOiAnX29uVXNlckFjdGlvbigkZXZlbnQpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0SG91cnNDbG9ja0RpYWwgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogU2VsZWN0ZWQgaG91ci4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkSG91cigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEhvdXI7XG4gIH1cbiAgc2V0IHNlbGVjdGVkSG91cih2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRIb3VyID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRIb3VyOiBudW1iZXI7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNsb2NrIHVzZXMgMTIgaG91ciBmb3JtYXQuICovXG4gIEBJbnB1dCgpXG4gIGdldCBpc01lcmlkaWVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc01lcmlkaWVtO1xuICB9XG4gIHNldCBpc01lcmlkaWVtKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNNZXJpZGllbSA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2lzTWVyaWRpZW06IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgZ2V0IGF2YWlsYWJsZUhvdXJzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fYXZhaWxhYmxlSG91cnM7XG4gIH1cbiAgc2V0IGF2YWlsYWJsZUhvdXJzKHZhbHVlOiBudW1iZXJbXSkge1xuICAgIHRoaXMuX2F2YWlsYWJsZUhvdXJzID0gdmFsdWU7XG4gICAgdGhpcy5faW5pdEhvdXJzKCk7XG4gIH1cbiAgcHJpdmF0ZSBfYXZhaWxhYmxlSG91cnM6IG51bWJlcltdID0gW107XG5cbiAgLyoqIENvbG9yIHBhbGV0dGUuICovXG4gIEBJbnB1dCgpIGNvbG9yOiBUaGVtZVBhbGV0dGU7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRpbWVwaWNrZXIgVUkgaXMgaW4gdG91Y2ggbW9kZS4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHRvdWNoVWkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdWNoVWk7XG4gIH1cbiAgc2V0IHRvdWNoVWkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl90b3VjaFVpID0gdmFsdWU7XG4gICAgdGhpcy5faW5pdEhvdXJzKCk7XG4gIH1cbiAgcHJpdmF0ZSBfdG91Y2hVaTogYm9vbGVhbjtcblxuICAvKiogRW1pdHMgc2VsZWN0ZWQgaG91ci4gKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgaG91cjogbnVtYmVyO1xuICAgIGNoYW5nZVZpZXc/OiBib29sZWFuO1xuICB9PigpO1xuXG4gIGhvdXJzOiBDbG9ja0RpYWxWaWV3Q2VsbFtdID0gW107XG5cbiAgZ2V0IGRpc2FibGVkSGFuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuYXZhaWxhYmxlSG91cnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZEhvdXIpO1xuICB9XG5cbiAgZ2V0IGlzSG91cigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmhvdXJzLmZpbmQoKGhvdXIpID0+IGhvdXIudmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRIb3VyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5faW5pdEhvdXJzKCk7XG4gIH1cblxuICAvKiogSGFuZCBzdHlsZXMgYmFzZWQgb24gc2VsZWN0ZWQgaG91ci4gKi9cbiAgX2hhbmRTdHlsZXMoKTogYW55IHtcbiAgICBjb25zdCBkZWcgPSBNYXRoLnJvdW5kKHRoaXMuc2VsZWN0ZWRIb3VyICogKDM2MCAvICgyNCAvIDIpKSk7XG4gICAgY29uc3QgcmFkaXVzID0gdGhpcy5fZ2V0UmFkaXVzKHRoaXMuc2VsZWN0ZWRIb3VyKTtcbiAgICBjb25zdCBoZWlnaHQgPSByYWRpdXM7XG4gICAgY29uc3QgbWFyZ2luVG9wID0gZ2V0Q2xvY2tSYWRpdXModGhpcy50b3VjaFVpKSAtIHJhZGl1cztcblxuICAgIHJldHVybiB7XG4gICAgICB0cmFuc2Zvcm06IGByb3RhdGUoJHtkZWd9ZGVnKWAsXG4gICAgICBoZWlnaHQ6IGAke2hlaWdodH1weGAsXG4gICAgICAnbWFyZ2luLXRvcCc6IGAke21hcmdpblRvcH1weGAsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBIYW5kbGVzIG1vdXNlIGFuZCB0b3VjaCBldmVudHMgb24gZGlhbCBhbmQgZG9jdW1lbnQuICovXG4gIF9vblVzZXJBY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0SG91cihldmVudCk7XG5cbiAgICBjb25zdCBldmVudHNTdWJzY3JpcHRpb24gPSBtZXJnZShcbiAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9kb2N1bWVudCwgJ21vdXNlbW92ZScpLFxuICAgICAgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAndG91Y2htb3ZlJyksXG4gICAgKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDApKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChldmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5fc2V0SG91cihldmVudCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgIG1lcmdlKFxuICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAnbW91c2V1cCcpLFxuICAgICAgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAndG91Y2hlbmQnKSxcbiAgICApXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICBldmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgaG91cjogdGhpcy5zZWxlY3RlZEhvdXIsXG4gICAgICAgICAgICBjaGFuZ2VWaWV3OiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBfaXNBY3RpdmVDZWxsKGhvdXI6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSG91ciA9PT0gaG91cjtcbiAgfVxuXG4gIC8qKiBDaGFuZ2VzIHNlbGVjdGVkIGhvdXIgYmFzZWQgb24gY29vcmRpbmF0ZXMuICovXG4gIHByaXZhdGUgX3NldEhvdXIoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB3aW5kb3cgPSB0aGlzLl9nZXRXaW5kb3coKTtcbiAgICBjb25zdCBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IHBhZ2VYID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQucGFnZVggOiBldmVudC50b3VjaGVzWzBdLnBhZ2VYO1xuICAgIGNvbnN0IHBhZ2VZID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQucGFnZVkgOiBldmVudC50b3VjaGVzWzBdLnBhZ2VZO1xuICAgIGNvbnN0IHggPSB3aWR0aCAvIDIgLSAocGFnZVggLSBlbGVtZW50UmVjdC5sZWZ0IC0gd2luZG93LnNjcm9sbFgpO1xuICAgIGNvbnN0IHkgPSBoZWlnaHQgLyAyIC0gKHBhZ2VZIC0gZWxlbWVudFJlY3QudG9wIC0gd2luZG93LnNjcm9sbFkpO1xuICAgIGNvbnN0IHVuaXQgPSBNYXRoLlBJIC8gNjtcbiAgICBjb25zdCBhdGFuMiA9IE1hdGguYXRhbjIoLXgsIHkpO1xuICAgIGNvbnN0IHJhZGlhbiA9IGF0YW4yIDwgMCA/IE1hdGguUEkgKiAyICsgYXRhbjIgOiBhdGFuMjtcbiAgICBjb25zdCBpbml0aWFsVmFsdWUgPSBNYXRoLnJvdW5kKHJhZGlhbiAvIHVuaXQpO1xuICAgIGNvbnN0IHogPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSk7XG4gICAgY29uc3Qgb3V0ZXIgPSB6ID4gZ2V0Q2xvY2tPdXRlclJhZGl1cyh0aGlzLnRvdWNoVWkpIC0gZ2V0Q2xvY2tUaWNrUmFkaXVzKHRoaXMudG91Y2hVaSk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9nZXRIb3VyVmFsdWUoaW5pdGlhbFZhbHVlLCBvdXRlcik7XG5cbiAgICBpZiAodGhpcy5hdmFpbGFibGVIb3Vycy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gdmFsdWU7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoe1xuICAgICAgICBob3VyOiB0aGlzLnNlbGVjdGVkSG91cixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKiogUmV0dXJuIHZhbHVlIG9mIGhvdXIuICovXG4gIHByaXZhdGUgX2dldEhvdXJWYWx1ZSh2YWx1ZTogbnVtYmVyLCBvdXRlcjogYm9vbGVhbik6IG51bWJlciB7XG4gICAgY29uc3QgZWRnZVZhbHVlID0gdmFsdWUgPT09IDAgfHwgdmFsdWUgPT09IDEyO1xuXG4gICAgaWYgKHRoaXMuaXNNZXJpZGllbSkge1xuICAgICAgcmV0dXJuIGVkZ2VWYWx1ZSA/IDEyIDogdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKG91dGVyKSB7XG4gICAgICByZXR1cm4gZWRnZVZhbHVlID8gMCA6IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBlZGdlVmFsdWUgPyAxMiA6IHZhbHVlICsgMTI7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBsaXN0IG9mIGhvdXJzLiAqL1xuICBwcml2YXRlIF9pbml0SG91cnMoKTogdm9pZCB7XG4gICAgY29uc3QgaW5pdGlhbEhvdXJzID0gdGhpcy5pc01lcmlkaWVtID8gQUxMX0hPVVJTLnNsaWNlKDEsIDEzKSA6IEFMTF9IT1VSUztcblxuICAgIHRoaXMuaG91cnMgPSBpbml0aWFsSG91cnMubWFwKChob3VyKSA9PiB7XG4gICAgICBjb25zdCByYWRpYW4gPSAoaG91ciAvIDYpICogTWF0aC5QSTtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuX2dldFJhZGl1cyhob3VyKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGhvdXIsXG4gICAgICAgIGRpc3BsYXlWYWx1ZTogaG91ciA9PT0gMCA/ICcwMCcgOiBTdHJpbmcoaG91ciksXG4gICAgICAgIGxlZnQ6IGdldENsb2NrQ29ycmVjdGVkUmFkaXVzKHRoaXMudG91Y2hVaSkgKyBNYXRoLnNpbihyYWRpYW4pICogcmFkaXVzLFxuICAgICAgICB0b3A6IGdldENsb2NrQ29ycmVjdGVkUmFkaXVzKHRoaXMudG91Y2hVaSkgLSBNYXRoLmNvcyhyYWRpYW4pICogcmFkaXVzLFxuICAgICAgICBkaXNhYmxlZDogIXRoaXMuYXZhaWxhYmxlSG91cnMuaW5jbHVkZXMoaG91ciksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFJldHVybnMgcmFkaXVzIGJhc2VkIG9uIGhvdXIgKi9cbiAgcHJpdmF0ZSBfZ2V0UmFkaXVzKGhvdXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuaXNNZXJpZGllbSkge1xuICAgICAgcmV0dXJuIGdldENsb2NrT3V0ZXJSYWRpdXModGhpcy50b3VjaFVpKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRlciA9IGhvdXIgPj0gMCAmJiBob3VyIDwgMTI7XG4gICAgY29uc3QgcmFkaXVzID0gb3V0ZXIgPyBnZXRDbG9ja091dGVyUmFkaXVzKHRoaXMudG91Y2hVaSkgOiBnZXRDbG9ja0lubmVyUmFkaXVzKHRoaXMudG91Y2hVaSk7XG5cbiAgICByZXR1cm4gcmFkaXVzO1xuICB9XG5cbiAgLyoqIFVzZSBkZWZhdWx0VmlldyBvZiBpbmplY3RlZCBkb2N1bWVudCBpZiBhdmFpbGFibGUgb3IgZmFsbGJhY2sgdG8gZ2xvYmFsIHdpbmRvdyByZWZlcmVuY2UgKi9cbiAgcHJpdmF0ZSBfZ2V0V2luZG93KCk6IFdpbmRvdyB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm1hdC1jbG9jay1kaWFsLWhhbmRcIlxuICBbY2xhc3MubWF0LWNsb2NrLWRpYWwtaGFuZC1wb2ludGxlc3NdPVwiaXNIb3VyXCJcbiAgW2NsYXNzLm1hdC1jbG9jay1kaWFsLWhhbmQtZGlzYWJsZWRdPVwiZGlzYWJsZWRIYW5kXCJcbiAgW25nU3R5bGVdPVwiX2hhbmRTdHlsZXMoKVwiXG4+PC9kaXY+XG5AZm9yIChob3VyIG9mIGhvdXJzOyB0cmFjayBob3VyLnZhbHVlKSB7XG4gIDxidXR0b25cbiAgICBjbGFzcz1cIm1hdC1jbG9jay1kaWFsLWNlbGxcIlxuICAgIG1hdC1taW5pLWZhYlxuICAgIGRpc2FibGVSaXBwbGVcbiAgICBbdGFiSW5kZXhdPVwiX2lzQWN0aXZlQ2VsbChob3VyLnZhbHVlKSA/IDAgOiAtMVwiXG4gICAgW3N0eWxlLmxlZnQucHhdPVwiaG91ci5sZWZ0XCJcbiAgICBbc3R5bGUudG9wLnB4XT1cImhvdXIudG9wXCJcbiAgICBbY2xhc3MubWF0LWNsb2NrLWRpYWwtY2VsbC1hY3RpdmVdPVwiX2lzQWN0aXZlQ2VsbChob3VyLnZhbHVlKVwiXG4gICAgW2NsYXNzLm1hdC1jbG9jay1kaWFsLWNlbGwtZGlzYWJsZWRdPVwiaG91ci5kaXNhYmxlZFwiXG4gICAgW2NvbG9yXT1cIl9pc0FjdGl2ZUNlbGwoaG91ci52YWx1ZSkgPyBjb2xvciA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJob3VyLmRpc2FibGVkIHx8IG51bGxcIlxuICA+XG4gICAge3sgaG91ci5kaXNwbGF5VmFsdWUgfX1cbiAgPC9idXR0b24+XG59XG4iXX0=
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
3
|
-
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { debounceTime, fromEvent, merge, take } from 'rxjs';
|
|
6
|
-
import { getClockCorrectedRadius, getClockOuterRadius, getClockRadius } from './clock-size';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
import * as i2 from "@angular/material/button";
|
|
10
|
-
export const ALL_MINUTES = Array(60)
|
|
11
|
-
.fill(null)
|
|
12
|
-
.map((_, i) => i);
|
|
13
|
-
export class MatMinutesClockDial {
|
|
14
|
-
/** Selected minute. */
|
|
15
|
-
get selectedMinute() {
|
|
16
|
-
return this._selectedMinute;
|
|
17
|
-
}
|
|
18
|
-
set selectedMinute(value) {
|
|
19
|
-
this._selectedMinute = value;
|
|
20
|
-
}
|
|
21
|
-
/** Step over minutes. */
|
|
22
|
-
get interval() {
|
|
23
|
-
return this._interval;
|
|
24
|
-
}
|
|
25
|
-
set interval(value) {
|
|
26
|
-
this._interval = coerceNumberProperty(value) || 1;
|
|
27
|
-
}
|
|
28
|
-
get availableMinutes() {
|
|
29
|
-
return this._availableMinutes;
|
|
30
|
-
}
|
|
31
|
-
set availableMinutes(value) {
|
|
32
|
-
this._availableMinutes = value;
|
|
33
|
-
this._initMinutes();
|
|
34
|
-
}
|
|
35
|
-
/** Whether the timepicker UI is in touch mode. */
|
|
36
|
-
get touchUi() {
|
|
37
|
-
return this._touchUi;
|
|
38
|
-
}
|
|
39
|
-
set touchUi(value) {
|
|
40
|
-
this._touchUi = value;
|
|
41
|
-
}
|
|
42
|
-
get disabled() {
|
|
43
|
-
return !this.availableMinutes.includes(this.selectedMinute);
|
|
44
|
-
}
|
|
45
|
-
get isMinutePoint() {
|
|
46
|
-
return !!this.minutes.find((hour) => hour.value === this.selectedMinute);
|
|
47
|
-
}
|
|
48
|
-
constructor(_element, _cdr, _document) {
|
|
49
|
-
this._element = _element;
|
|
50
|
-
this._cdr = _cdr;
|
|
51
|
-
this._document = _document;
|
|
52
|
-
this._selectedMinute = 0;
|
|
53
|
-
this._interval = 1;
|
|
54
|
-
this._availableMinutes = [];
|
|
55
|
-
/** Emits selected minute. */
|
|
56
|
-
this.selectedChange = new EventEmitter();
|
|
57
|
-
this.minutes = [];
|
|
58
|
-
}
|
|
59
|
-
ngOnInit() {
|
|
60
|
-
this._initMinutes();
|
|
61
|
-
}
|
|
62
|
-
/** Hand styles based on selected minute. */
|
|
63
|
-
_handStyles() {
|
|
64
|
-
const deg = Math.round(this._selectedMinute * (360 / 60));
|
|
65
|
-
const height = getClockOuterRadius(this.touchUi);
|
|
66
|
-
const marginTop = getClockRadius(this.touchUi) - getClockOuterRadius(this.touchUi);
|
|
67
|
-
return {
|
|
68
|
-
transform: `rotate(${deg}deg)`,
|
|
69
|
-
height: `${height}px`,
|
|
70
|
-
'margin-top': `${marginTop}px`,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
/** Handles mouse and touch events on dial and document. */
|
|
74
|
-
_onUserAction(event) {
|
|
75
|
-
if (event.cancelable) {
|
|
76
|
-
event.preventDefault();
|
|
77
|
-
}
|
|
78
|
-
this._setMinute(event);
|
|
79
|
-
const eventsSubscription = merge(fromEvent(this._document, 'mousemove'), fromEvent(this._document, 'touchmove'))
|
|
80
|
-
.pipe(debounceTime(0))
|
|
81
|
-
.subscribe({
|
|
82
|
-
next: (event) => {
|
|
83
|
-
event.preventDefault();
|
|
84
|
-
this._setMinute(event);
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
merge(fromEvent(this._document, 'mouseup'), fromEvent(this._document, 'touchend'))
|
|
88
|
-
.pipe(take(1))
|
|
89
|
-
.subscribe({
|
|
90
|
-
next: () => {
|
|
91
|
-
eventsSubscription.unsubscribe();
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
_isActiveCell(minute) {
|
|
96
|
-
return this.selectedMinute === minute;
|
|
97
|
-
}
|
|
98
|
-
_setMinute(event) {
|
|
99
|
-
const element = this._element.nativeElement;
|
|
100
|
-
const window = this._getWindow();
|
|
101
|
-
const elementRect = element.getBoundingClientRect();
|
|
102
|
-
const width = element.offsetWidth;
|
|
103
|
-
const height = element.offsetHeight;
|
|
104
|
-
const pageX = event instanceof MouseEvent ? event.pageX : event.touches[0].pageX;
|
|
105
|
-
const pageY = event instanceof MouseEvent ? event.pageY : event.touches[0].pageY;
|
|
106
|
-
const x = width / 2 - (pageX - elementRect.left - window.scrollX);
|
|
107
|
-
const y = height / 2 - (pageY - elementRect.top - window.scrollY);
|
|
108
|
-
const unit = Math.PI / (30 / this.interval);
|
|
109
|
-
const atan2 = Math.atan2(-x, y);
|
|
110
|
-
const radian = atan2 < 0 ? Math.PI * 2 + atan2 : atan2;
|
|
111
|
-
const initialValue = Math.round(radian / unit) * this.interval;
|
|
112
|
-
const value = initialValue === 60 ? 0 : initialValue;
|
|
113
|
-
if (this.availableMinutes.includes(value) && this.availableMinutes.includes(value)) {
|
|
114
|
-
this.selectedMinute = value;
|
|
115
|
-
this.selectedChange.emit(this.selectedMinute);
|
|
116
|
-
}
|
|
117
|
-
this._cdr.detectChanges();
|
|
118
|
-
}
|
|
119
|
-
/** Creates list of minutes. */
|
|
120
|
-
_initMinutes() {
|
|
121
|
-
this.minutes = ALL_MINUTES.filter((minute) => minute % 5 === 0).map((minute) => {
|
|
122
|
-
const radian = (minute / 30) * Math.PI;
|
|
123
|
-
const displayValue = minute === 0 ? '00' : String(minute);
|
|
124
|
-
return {
|
|
125
|
-
value: minute,
|
|
126
|
-
displayValue,
|
|
127
|
-
left: getClockCorrectedRadius(this.touchUi) +
|
|
128
|
-
Math.sin(radian) * getClockOuterRadius(this.touchUi),
|
|
129
|
-
top: getClockCorrectedRadius(this.touchUi) -
|
|
130
|
-
Math.cos(radian) * getClockOuterRadius(this.touchUi),
|
|
131
|
-
disabled: !this.availableMinutes.includes(minute),
|
|
132
|
-
};
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/** Use defaultView of injected document if available or fallback to global window reference */
|
|
136
|
-
_getWindow() {
|
|
137
|
-
return this._document.defaultView || window;
|
|
138
|
-
}
|
|
139
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatMinutesClockDial, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: MatMinutesClockDial, isStandalone: true, selector: "mat-minutes-clock-dial", inputs: { selectedMinute: "selectedMinute", interval: "interval", availableMinutes: "availableMinutes", color: "color", touchUi: "touchUi" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "mousedown": "_onUserAction($event)", "touchstart": "_onUserAction($event)" }, classAttribute: "mat-clock-dial mat-clock-dial-minutes" }, exportAs: ["matMinutesClockDial"], ngImport: i0, 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>\n <div class=\"mat-clock-dial-hand-point\" tabindex=\"0\"></div>\n</div>\n@for (minute of minutes; track minute.value) {\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}\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-mini-fab].mat-clock-dial-cell{position:absolute;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;box-shadow:none}[mat-mini-fab].mat-clock-dial-cell:disabled{pointer-events:none}[mat-mini-fab].mat-clock-dial-cell:focus,[mat-mini-fab].mat-clock-dial-cell:hover,[mat-mini-fab].mat-clock-dial-cell:active,[mat-mini-fab].mat-clock-dial-cell:focus:active{box-shadow:none}.mat-timepicker-content-touch .mat-clock-dial{width:20rem;height:20rem}.mat-timepicker-content-touch [mat-mini-fab].mat-clock-dial-cell{width:3rem;height:3rem;font-size:1.125rem}.mat-clock-dial-hand{position:absolute;inset:0;width:1px;margin:0 auto;transform-origin:bottom}.mat-clock-dial-hand:before{position:absolute;top:-.25rem;left:-.25rem;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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
141
|
-
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MatMinutesClockDial, decorators: [{
|
|
143
|
-
type: Component,
|
|
144
|
-
args: [{ selector: 'mat-minutes-clock-dial', standalone: true, imports: [CommonModule, MatButtonModule], exportAs: 'matMinutesClockDial', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
145
|
-
class: 'mat-clock-dial mat-clock-dial-minutes',
|
|
146
|
-
'(mousedown)': '_onUserAction($event)',
|
|
147
|
-
'(touchstart)': '_onUserAction($event)',
|
|
148
|
-
}, 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>\n <div class=\"mat-clock-dial-hand-point\" tabindex=\"0\"></div>\n</div>\n@for (minute of minutes; track minute.value) {\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}\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-mini-fab].mat-clock-dial-cell{position:absolute;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;box-shadow:none}[mat-mini-fab].mat-clock-dial-cell:disabled{pointer-events:none}[mat-mini-fab].mat-clock-dial-cell:focus,[mat-mini-fab].mat-clock-dial-cell:hover,[mat-mini-fab].mat-clock-dial-cell:active,[mat-mini-fab].mat-clock-dial-cell:focus:active{box-shadow:none}.mat-timepicker-content-touch .mat-clock-dial{width:20rem;height:20rem}.mat-timepicker-content-touch [mat-mini-fab].mat-clock-dial-cell{width:3rem;height:3rem;font-size:1.125rem}.mat-clock-dial-hand{position:absolute;inset:0;width:1px;margin:0 auto;transform-origin:bottom}.mat-clock-dial-hand:before{position:absolute;top:-.25rem;left:-.25rem;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"] }]
|
|
149
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: Document, decorators: [{
|
|
150
|
-
type: Inject,
|
|
151
|
-
args: [DOCUMENT]
|
|
152
|
-
}] }], propDecorators: { selectedMinute: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], interval: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], availableMinutes: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}], color: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], touchUi: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}], selectedChange: [{
|
|
163
|
-
type: Output
|
|
164
|
-
}] } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludXRlcy1jbG9jay1kaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0LXRpbWVwaWNrZXIvc3JjL2xpYi9taW51dGVzLWNsb2NrLWRpYWwudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGltZXBpY2tlci9zcmMvbGliL21pbnV0ZXMtY2xvY2stZGlhbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBRTVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO0tBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUM7S0FDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQWlCcEIsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qix1QkFBdUI7SUFDdkIsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsZUFB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RHBCLFFBQVE7a0dBNURQLG1CQUFtQixpZEN4Q2hDLDB6QkF3QkEsMnNDRElZLFlBQVksbUhBQUUsZUFBZTs7MkZBWTVCLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxZQUc5QixxQkFBcUIsbUJBQ2QsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsdUNBQXVDO3dCQUM5QyxhQUFhLEVBQUUsdUJBQXVCO3dCQUN0QyxjQUFjLEVBQUUsdUJBQXVCO3FCQUN4Qzs7MEJBOERFLE1BQU07MkJBQUMsUUFBUTt5Q0F6RGQsY0FBYztzQkFEakIsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVdHLEtBQUs7c0JBQWIsS0FBSztnQkFJRixPQUFPO3NCQURWLEtBQUs7Z0JBVUksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBtZXJnZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbG9ja0RpYWxWaWV3Q2VsbCB9IGZyb20gJy4vaG91cnMtY2xvY2stZGlhbCc7XG5pbXBvcnQgeyBnZXRDbG9ja0NvcnJlY3RlZFJhZGl1cywgZ2V0Q2xvY2tPdXRlclJhZGl1cywgZ2V0Q2xvY2tSYWRpdXMgfSBmcm9tICcuL2Nsb2NrLXNpemUnO1xuXG5leHBvcnQgY29uc3QgQUxMX01JTlVURVMgPSBBcnJheSg2MClcbiAgLmZpbGwobnVsbClcbiAgLm1hcCgoXywgaSkgPT4gaSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1taW51dGVzLWNsb2NrLWRpYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJ21pbnV0ZXMtY2xvY2stZGlhbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2Nsb2NrLWRpYWwuc2NzcyddLFxuICBleHBvcnRBczogJ21hdE1pbnV0ZXNDbG9ja0RpYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbWF0LWNsb2NrLWRpYWwgbWF0LWNsb2NrLWRpYWwtbWludXRlcycsXG4gICAgJyhtb3VzZWRvd24pJzogJ19vblVzZXJBY3Rpb24oJGV2ZW50KScsXG4gICAgJyh0b3VjaHN0YXJ0KSc6ICdfb25Vc2VyQWN0aW9uKCRldmVudCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBNYXRNaW51dGVzQ2xvY2tEaWFsIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIFNlbGVjdGVkIG1pbnV0ZS4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkTWludXRlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkTWludXRlO1xuICB9XG4gIHNldCBzZWxlY3RlZE1pbnV0ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRNaW51dGUgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9zZWxlY3RlZE1pbnV0ZSA9IDA7XG5cbiAgLyoqIFN0ZXAgb3ZlciBtaW51dGVzLiAqL1xuICBASW5wdXQoKVxuICBnZXQgaW50ZXJ2YWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJ2YWw7XG4gIH1cbiAgc2V0IGludGVydmFsKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9pbnRlcnZhbCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKSB8fCAxO1xuICB9XG4gIHByaXZhdGUgX2ludGVydmFsOiBudW1iZXIgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBhdmFpbGFibGVNaW51dGVzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fYXZhaWxhYmxlTWludXRlcztcbiAgfVxuICBzZXQgYXZhaWxhYmxlTWludXRlcyh2YWx1ZTogbnVtYmVyW10pIHtcbiAgICB0aGlzLl9hdmFpbGFibGVNaW51dGVzID0gdmFsdWU7XG4gICAgdGhpcy5faW5pdE1pbnV0ZXMoKTtcbiAgfVxuICBwcml2YXRlIF9hdmFpbGFibGVNaW51dGVzOiBudW1iZXJbXSA9IFtdO1xuXG4gIC8qKiBDb2xvciBwYWxldHRlLiAqL1xuICBASW5wdXQoKSBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSB0aW1lcGlja2VyIFVJIGlzIGluIHRvdWNoIG1vZGUuICovXG4gIEBJbnB1dCgpXG4gIGdldCB0b3VjaFVpKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl90b3VjaFVpO1xuICB9XG4gIHNldCB0b3VjaFVpKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdG91Y2hVaSA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3RvdWNoVWk6IGJvb2xlYW47XG5cbiAgLyoqIEVtaXRzIHNlbGVjdGVkIG1pbnV0ZS4gKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgbWludXRlczogQ2xvY2tEaWFsVmlld0NlbGxbXSA9IFtdO1xuXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuYXZhaWxhYmxlTWludXRlcy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkTWludXRlKTtcbiAgfVxuXG4gIGdldCBpc01pbnV0ZVBvaW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubWludXRlcy5maW5kKChob3VyKSA9PiBob3VyLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkTWludXRlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5faW5pdE1pbnV0ZXMoKTtcbiAgfVxuXG4gIC8qKiBIYW5kIHN0eWxlcyBiYXNlZCBvbiBzZWxlY3RlZCBtaW51dGUuICovXG4gIF9oYW5kU3R5bGVzKCk6IGFueSB7XG4gICAgY29uc3QgZGVnID0gTWF0aC5yb3VuZCh0aGlzLl9zZWxlY3RlZE1pbnV0ZSAqICgzNjAgLyA2MCkpO1xuICAgIGNvbnN0IGhlaWdodCA9IGdldENsb2NrT3V0ZXJSYWRpdXModGhpcy50b3VjaFVpKTtcbiAgICBjb25zdCBtYXJnaW5Ub3AgPSBnZXRDbG9ja1JhZGl1cyh0aGlzLnRvdWNoVWkpIC0gZ2V0Q2xvY2tPdXRlclJhZGl1cyh0aGlzLnRvdWNoVWkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRyYW5zZm9ybTogYHJvdGF0ZSgke2RlZ31kZWcpYCxcbiAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YCxcbiAgICAgICdtYXJnaW4tdG9wJzogYCR7bWFyZ2luVG9wfXB4YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEhhbmRsZXMgbW91c2UgYW5kIHRvdWNoIGV2ZW50cyBvbiBkaWFsIGFuZCBkb2N1bWVudC4gKi9cbiAgX29uVXNlckFjdGlvbihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRNaW51dGUoZXZlbnQpO1xuXG4gICAgY29uc3QgZXZlbnRzU3Vic2NyaXB0aW9uID0gbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fZG9jdW1lbnQsICdtb3VzZW1vdmUnKSxcbiAgICAgIGZyb21FdmVudDxUb3VjaEV2ZW50Pih0aGlzLl9kb2N1bWVudCwgJ3RvdWNobW92ZScpLFxuICAgIClcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgwKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuX3NldE1pbnV0ZShldmVudCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgIG1lcmdlKFxuICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAnbW91c2V1cCcpLFxuICAgICAgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAndG91Y2hlbmQnKSxcbiAgICApXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICBldmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgX2lzQWN0aXZlQ2VsbChtaW51dGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTWludXRlID09PSBtaW51dGU7XG4gIH1cblxuICBwcml2YXRlIF9zZXRNaW51dGUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB3aW5kb3cgPSB0aGlzLl9nZXRXaW5kb3coKTtcbiAgICBjb25zdCBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IHBhZ2VYID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQucGFnZVggOiBldmVudC50b3VjaGVzWzBdLnBhZ2VYO1xuICAgIGNvbnN0IHBhZ2VZID0gZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQucGFnZVkgOiBldmVudC50b3VjaGVzWzBdLnBhZ2VZO1xuICAgIGNvbnN0IHggPSB3aWR0aCAvIDIgLSAocGFnZVggLSBlbGVtZW50UmVjdC5sZWZ0IC0gd2luZG93LnNjcm9sbFgpO1xuICAgIGNvbnN0IHkgPSBoZWlnaHQgLyAyIC0gKHBhZ2VZIC0gZWxlbWVudFJlY3QudG9wIC0gd2luZG93LnNjcm9sbFkpO1xuICAgIGNvbnN0IHVuaXQgPSBNYXRoLlBJIC8gKDMwIC8gdGhpcy5pbnRlcnZhbCk7XG4gICAgY29uc3QgYXRhbjIgPSBNYXRoLmF0YW4yKC14LCB5KTtcbiAgICBjb25zdCByYWRpYW4gPSBhdGFuMiA8IDAgPyBNYXRoLlBJICogMiArIGF0YW4yIDogYXRhbjI7XG4gICAgY29uc3QgaW5pdGlhbFZhbHVlID0gTWF0aC5yb3VuZChyYWRpYW4gLyB1bml0KSAqIHRoaXMuaW50ZXJ2YWw7XG4gICAgY29uc3QgdmFsdWUgPSBpbml0aWFsVmFsdWUgPT09IDYwID8gMCA6IGluaXRpYWxWYWx1ZTtcblxuICAgIGlmICh0aGlzLmF2YWlsYWJsZU1pbnV0ZXMuaW5jbHVkZXModmFsdWUpICYmIHRoaXMuYXZhaWxhYmxlTWludXRlcy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkTWludXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgbGlzdCBvZiBtaW51dGVzLiAqL1xuICBwcml2YXRlIF9pbml0TWludXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLm1pbnV0ZXMgPSBBTExfTUlOVVRFUy5maWx0ZXIoKG1pbnV0ZSkgPT4gbWludXRlICUgNSA9PT0gMCkubWFwKChtaW51dGUpID0+IHtcbiAgICAgIGNvbnN0IHJhZGlhbiA9IChtaW51dGUgLyAzMCkgKiBNYXRoLlBJO1xuICAgICAgY29uc3QgZGlzcGxheVZhbHVlID0gbWludXRlID09PSAwID8gJzAwJyA6IFN0cmluZyhtaW51dGUpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogbWludXRlLFxuICAgICAgICBkaXNwbGF5VmFsdWUsXG4gICAgICAgIGxlZnQ6XG4gICAgICAgICAgZ2V0Q2xvY2tDb3JyZWN0ZWRSYWRpdXModGhpcy50b3VjaFVpKSArXG4gICAgICAgICAgTWF0aC5zaW4ocmFkaWFuKSAqIGdldENsb2NrT3V0ZXJSYWRpdXModGhpcy50b3VjaFVpKSxcbiAgICAgICAgdG9wOlxuICAgICAgICAgIGdldENsb2NrQ29ycmVjdGVkUmFkaXVzKHRoaXMudG91Y2hVaSkgLVxuICAgICAgICAgIE1hdGguY29zKHJhZGlhbikgKiBnZXRDbG9ja091dGVyUmFkaXVzKHRoaXMudG91Y2hVaSksXG4gICAgICAgIGRpc2FibGVkOiAhdGhpcy5hdmFpbGFibGVNaW51dGVzLmluY2x1ZGVzKG1pbnV0ZSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFVzZSBkZWZhdWx0VmlldyBvZiBpbmplY3RlZCBkb2N1bWVudCBpZiBhdmFpbGFibGUgb3IgZmFsbGJhY2sgdG8gZ2xvYmFsIHdpbmRvdyByZWZlcmVuY2UgKi9cbiAgcHJpdmF0ZSBfZ2V0V2luZG93KCk6IFdpbmRvdyB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm1hdC1jbG9jay1kaWFsLWhhbmRcIlxuICBbY2xhc3MubWF0LWNsb2NrLWRpYWwtaGFuZC1wb2ludGxlc3NdPVwiaXNNaW51dGVQb2ludFwiXG4gIFtjbGFzcy5tYXQtY2xvY2stZGlhbC1oYW5kLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW25nU3R5bGVdPVwiX2hhbmRTdHlsZXMoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJtYXQtY2xvY2stZGlhbC1oYW5kLXBvaW50XCIgdGFiaW5kZXg9XCIwXCI+PC9kaXY+XG48L2Rpdj5cbkBmb3IgKG1pbnV0ZSBvZiBtaW51dGVzOyB0cmFjayBtaW51dGUudmFsdWUpIHtcbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwibWF0LWNsb2NrLWRpYWwtY2VsbFwiXG4gICAgbWF0LW1pbmktZmFiXG4gICAgZGlzYWJsZVJpcHBsZVxuICAgIFt0YWJJbmRleF09XCJfaXNBY3RpdmVDZWxsKG1pbnV0ZS52YWx1ZSkgPyAwIDogLTFcIlxuICAgIFtzdHlsZS5sZWZ0LnB4XT1cIm1pbnV0ZS5sZWZ0XCJcbiAgICBbc3R5bGUudG9wLnB4XT1cIm1pbnV0ZS50b3BcIlxuICAgIFtjbGFzcy5tYXQtY2xvY2stZGlhbC1jZWxsLWFjdGl2ZV09XCJfaXNBY3RpdmVDZWxsKG1pbnV0ZS52YWx1ZSlcIlxuICAgIFtjbGFzcy5tYXQtY2xvY2stZGlhbC1jZWxsLWRpc2FibGVkXT1cIm1pbnV0ZS5kaXNhYmxlZFwiXG4gICAgW2NvbG9yXT1cIl9pc0FjdGl2ZUNlbGwobWludXRlLnZhbHVlKSA/IGNvbG9yIDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm1pbnV0ZS5kaXNhYmxlZCB8fCBudWxsXCJcbiAgPlxuICAgIHt7IG1pbnV0ZS5kaXNwbGF5VmFsdWUgfX1cbiAgPC9idXR0b24+XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXQtdGltZXBpY2tlci9zcmMvbGliL29yaWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUG9zc2libGUgb3B0aW9ucyBmb3IgdGhlIHRpbWVwaWNrZXIgb3JpZW50YXRpb24gKGRpYWwgbW9kZSBvbmx5KS4gKi9cbmV4cG9ydCB0eXBlIFRpbWVwaWNrZXJPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG4iXX0=
|