nxt-pick-datetime 17.0.1 → 19.0.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 +53 -53
- package/assets/picker.scss +673 -673
- package/fesm2022/nxt-pick-datetime-moment-adapter.mjs +23 -26
- package/fesm2022/nxt-pick-datetime-moment-adapter.mjs.map +1 -1
- package/fesm2022/nxt-pick-datetime-native-adapter.mjs +22 -24
- package/fesm2022/nxt-pick-datetime-native-adapter.mjs.map +1 -1
- package/fesm2022/nxt-pick-datetime.mjs +77 -75
- package/fesm2022/nxt-pick-datetime.mjs.map +1 -1
- package/lib/class/date-time.class.d.ts +1 -1
- package/moment-adapter/moment-adapter.module.d.ts +2 -0
- package/moment-adapter/public-api.d.ts +1 -1
- package/native-adapter/native-adapter.module.d.ts +2 -0
- package/native-adapter/public-api.d.ts +1 -1
- package/package.json +10 -15
- package/esm2022/lib/class/date-time-adapter.class.mjs +0 -97
- package/esm2022/lib/class/date-time-format.class.mjs +0 -4
- package/esm2022/lib/class/date-time.class.mjs +0 -95
- package/esm2022/lib/class/dialog-config.class.mjs +0 -47
- package/esm2022/lib/class/dialog-ref.class.mjs +0 -119
- package/esm2022/lib/date-time/calendar/calendar.component.mjs +0 -346
- package/esm2022/lib/date-time/calendar-body/calendar-body.component.mjs +0 -151
- package/esm2022/lib/date-time/calendar-month-view/calendar-month-view.component.mjs +0 -429
- package/esm2022/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.mjs +0 -358
- package/esm2022/lib/date-time/calendar-year-view/calendar-year-view.component.mjs +0 -362
- package/esm2022/lib/date-time/date-time-inline/date-time-inline.component.mjs +0 -275
- package/esm2022/lib/date-time/date-time-picker/date-time-picker.component.mjs +0 -541
- package/esm2022/lib/date-time/date-time-picker-container/date-time-picker-container.animations.mjs +0 -19
- package/esm2022/lib/date-time/date-time-picker-container/date-time-picker-container.component.mjs +0 -389
- package/esm2022/lib/date-time/date-time-picker-input.directive.mjs +0 -618
- package/esm2022/lib/date-time/date-time-picker-intl.service.mjs +0 -61
- package/esm2022/lib/date-time/date-time-picker-trigger.directive.mjs +0 -70
- package/esm2022/lib/date-time/date-time.module.mjs +0 -96
- package/esm2022/lib/date-time/number-fixed-len.pipe.mjs +0 -22
- package/esm2022/lib/date-time/timer/timer.component.mjs +0 -299
- package/esm2022/lib/date-time/timer-box/timer-box.component.mjs +0 -95
- package/esm2022/lib/dialog/dialog-container/dialog-container.component.mjs +0 -248
- package/esm2022/lib/dialog/dialog.module.mjs +0 -42
- package/esm2022/lib/dialog/dialog.service.mjs +0 -251
- package/esm2022/lib/utils/object.mjs +0 -24
- package/esm2022/moment-adapter/date-time-adapter.class.mjs +0 -220
- package/esm2022/moment-adapter/date-time-format.class.mjs +0 -13
- package/esm2022/moment-adapter/moment-adapter.module.mjs +0 -37
- package/esm2022/moment-adapter/nxt-pick-datetime-moment-adapter.mjs +0 -5
- package/esm2022/moment-adapter/public-api.mjs +0 -3
- package/esm2022/native-adapter/date-time-adapter.class.mjs +0 -366
- package/esm2022/native-adapter/date-time-format.class.mjs +0 -13
- package/esm2022/native-adapter/native-adapter.module.mjs +0 -37
- package/esm2022/native-adapter/nxt-pick-datetime-native-adapter.mjs +0 -5
- package/esm2022/native-adapter/public-api.mjs +0 -2
- package/esm2022/nxt-pick-datetime.mjs +0 -5
- package/esm2022/public-api.mjs +0 -14
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DateTimeIntl {
|
|
5
|
-
constructor() {
|
|
6
|
-
/**
|
|
7
|
-
* Stream that emits whenever the labels here are changed. Use this to notify
|
|
8
|
-
* components if the labels have changed after initialization.
|
|
9
|
-
*/
|
|
10
|
-
this.changes = new Subject();
|
|
11
|
-
/** A label for the up second button (used by screen readers). */
|
|
12
|
-
this.upSecondLabel = $localize `:@@nxt-pick-datetime.up-second:Add a second`;
|
|
13
|
-
/** A label for the down second button (used by screen readers). */
|
|
14
|
-
this.downSecondLabel = $localize `:@@nxt-pick-datetime.down-second:Minus a second`;
|
|
15
|
-
/** A label for the up minute button (used by screen readers). */
|
|
16
|
-
this.upMinuteLabel = $localize `:@@nxt-pick-datetime.up-minute:Add a minute`;
|
|
17
|
-
/** A label for the down minute button (used by screen readers). */
|
|
18
|
-
this.downMinuteLabel = $localize `:@@nxt-pick-datetime.down-minute:Minus a minute`;
|
|
19
|
-
/** A label for the up hour button (used by screen readers). */
|
|
20
|
-
this.upHourLabel = $localize `:@@nxt-pick-datetime.up-hour:Add a hour`;
|
|
21
|
-
/** A label for the down hour button (used by screen readers). */
|
|
22
|
-
this.downHourLabel = $localize `:@@nxt-pick-datetime.down-hour:Minus a hour`;
|
|
23
|
-
/** A label for the previous month button (used by screen readers) */
|
|
24
|
-
this.prevMonthLabel = $localize `:@@nxt-pick-datetime.prev-month:Previous month`;
|
|
25
|
-
/** A label for the next month button (used by screen readers) */
|
|
26
|
-
this.nextMonthLabel = $localize `:@@nxt-pick-datetime.next-month:Next month`;
|
|
27
|
-
/** A label for the previous year button (used by screen readers) */
|
|
28
|
-
this.prevYearLabel = $localize `:@@nxt-pick-datetime.prev-year:Previous year`;
|
|
29
|
-
/** A label for the next year button (used by screen readers) */
|
|
30
|
-
this.nextYearLabel = $localize `:@@nxt-pick-datetime.next-year:Next year`;
|
|
31
|
-
/** A label for the previous multi-year button (used by screen readers) */
|
|
32
|
-
this.prevMultiYearLabel = $localize `:@@nxt-pick-datetime.prev-multi-year:Previous 21 years`;
|
|
33
|
-
/** A label for the next multi-year button (used by screen readers) */
|
|
34
|
-
this.nextMultiYearLabel = $localize `:@@nxt-pick-datetime.next-multi-year:Next 21 years`;
|
|
35
|
-
/** A label for the 'switch to month view' button (used by screen readers) */
|
|
36
|
-
this.switchToMonthViewLabel = $localize `:@@nxt-pick-datetime.switch-to-month:Change to month view`;
|
|
37
|
-
/** A label for the 'switch to year view' button (used by screen readers) */
|
|
38
|
-
this.switchToMultiYearViewLabel = $localize `:@@nxt-pick-datetime.switch-to-year-month:Choose month and year`;
|
|
39
|
-
/** A label for the cancel button */
|
|
40
|
-
this.cancelBtnLabel = $localize `:@@nxt-pick-datetime.cancel:Cancel`;
|
|
41
|
-
/** A label for the set button */
|
|
42
|
-
this.setBtnLabel = $localize `:@@nxt-pick-datetime.set:Set`;
|
|
43
|
-
/** A label for the range 'from' in picker info */
|
|
44
|
-
this.rangeFromLabel = $localize `:@@nxt-pick-datetime.from:From`;
|
|
45
|
-
/** A label for the range 'to' in picker info */
|
|
46
|
-
this.rangeToLabel = $localize `:@@nxt-pick-datetime.to:To`;
|
|
47
|
-
/** A label for the hour12 button (AM) */
|
|
48
|
-
this.hour12AMLabel = $localize `:@@nxt-pick-datetime.time-am:AM`;
|
|
49
|
-
/** A label for the hour12 button (PM) */
|
|
50
|
-
this.hour12PMLabel = $localize `:@@nxt-pick-datetime.time-pm:PM`;
|
|
51
|
-
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
53
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeIntl, providedIn: 'root' }); }
|
|
54
|
-
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeIntl, decorators: [{
|
|
56
|
-
type: Injectable,
|
|
57
|
-
args: [{
|
|
58
|
-
providedIn: 'root'
|
|
59
|
-
}]
|
|
60
|
-
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci1pbnRsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL2RhdGUtdGltZS1waWNrZXItaW50bC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFROUIsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFLSTs7O1dBR0c7UUFDTSxZQUFPLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUE7UUFFckQsa0VBQWtFO1FBQ2xFLGtCQUFhLEdBQUcsU0FBUyxDQUFBLDZDQUE2QyxDQUFBO1FBRXRFLG9FQUFvRTtRQUNwRSxvQkFBZSxHQUFHLFNBQVMsQ0FBQSxpREFBaUQsQ0FBQTtRQUU1RSxrRUFBa0U7UUFDbEUsa0JBQWEsR0FBRyxTQUFTLENBQUEsNkNBQTZDLENBQUE7UUFFdEUsb0VBQW9FO1FBQ3BFLG9CQUFlLEdBQUcsU0FBUyxDQUFBLGlEQUFpRCxDQUFBO1FBRTVFLGdFQUFnRTtRQUNoRSxnQkFBVyxHQUFHLFNBQVMsQ0FBQSx5Q0FBeUMsQ0FBQTtRQUVoRSxrRUFBa0U7UUFDbEUsa0JBQWEsR0FBRyxTQUFTLENBQUEsNkNBQTZDLENBQUE7UUFFdEUscUVBQXFFO1FBQ3JFLG1CQUFjLEdBQUcsU0FBUyxDQUFBLGdEQUFnRCxDQUFBO1FBRTFFLGlFQUFpRTtRQUNqRSxtQkFBYyxHQUFHLFNBQVMsQ0FBQSw0Q0FBNEMsQ0FBQTtRQUV0RSxvRUFBb0U7UUFDcEUsa0JBQWEsR0FBRyxTQUFTLENBQUEsOENBQThDLENBQUE7UUFFdkUsZ0VBQWdFO1FBQ2hFLGtCQUFhLEdBQUcsU0FBUyxDQUFBLDBDQUEwQyxDQUFBO1FBRW5FLDBFQUEwRTtRQUMxRSx1QkFBa0IsR0FBRyxTQUFTLENBQUEsd0RBQXdELENBQUE7UUFFdEYsc0VBQXNFO1FBQ3RFLHVCQUFrQixHQUFHLFNBQVMsQ0FBQSxvREFBb0QsQ0FBQTtRQUVsRiw2RUFBNkU7UUFDN0UsMkJBQXNCLEdBQUcsU0FBUyxDQUFBLDJEQUEyRCxDQUFBO1FBRTdGLDRFQUE0RTtRQUM1RSwrQkFBMEIsR0FBRyxTQUFTLENBQUEsaUVBQWlFLENBQUE7UUFFdkcsb0NBQW9DO1FBQ3BDLG1CQUFjLEdBQUcsU0FBUyxDQUFBLG9DQUFvQyxDQUFBO1FBRTlELGlDQUFpQztRQUNqQyxnQkFBVyxHQUFHLFNBQVMsQ0FBQSw4QkFBOEIsQ0FBQTtRQUVyRCxrREFBa0Q7UUFDbEQsbUJBQWMsR0FBRyxTQUFTLENBQUEsZ0NBQWdDLENBQUE7UUFFMUQsZ0RBQWdEO1FBQ2hELGlCQUFZLEdBQUcsU0FBUyxDQUFBLDRCQUE0QixDQUFBO1FBRXBELHlDQUF5QztRQUN6QyxrQkFBYSxHQUFHLFNBQVMsQ0FBQSxpQ0FBaUMsQ0FBQTtRQUUxRCx5Q0FBeUM7UUFDekMsa0JBQWEsR0FBRyxTQUFTLENBQUEsaUNBQWlDLENBQUE7S0FDN0Q7OEdBbkVZLFlBQVk7a0hBQVosWUFBWSxjQUZULE1BQU07OzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMb2NhbGl6ZUZuIH0gZnJvbSAnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdCdcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuXG4vKiogQGludGVybmFsICovXG5kZWNsYXJlIGNvbnN0ICRsb2NhbGl6ZTogTG9jYWxpemVGblxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGVUaW1lSW50bCB7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuZXZlciB0aGUgbGFiZWxzIGhlcmUgYXJlIGNoYW5nZWQuIFVzZSB0aGlzIHRvIG5vdGlmeVxuICAgICAqIGNvbXBvbmVudHMgaWYgdGhlIGxhYmVscyBoYXZlIGNoYW5nZWQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgdXAgc2Vjb25kIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICAqL1xuICAgIHVwU2Vjb25kTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUudXAtc2Vjb25kOkFkZCBhIHNlY29uZGBcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgZG93biBzZWNvbmQgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gICovXG4gICAgZG93blNlY29uZExhYmVsID0gJGxvY2FsaXplYDpAQG54dC1waWNrLWRhdGV0aW1lLmRvd24tc2Vjb25kOk1pbnVzIGEgc2Vjb25kYFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSB1cCBtaW51dGUgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gICovXG4gICAgdXBNaW51dGVMYWJlbCA9ICRsb2NhbGl6ZWA6QEBueHQtcGljay1kYXRldGltZS51cC1taW51dGU6QWRkIGEgbWludXRlYFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBkb3duIG1pbnV0ZSBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAgKi9cbiAgICBkb3duTWludXRlTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUuZG93bi1taW51dGU6TWludXMgYSBtaW51dGVgXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIHVwIGhvdXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gICovXG4gICAgdXBIb3VyTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUudXAtaG91cjpBZGQgYSBob3VyYFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBkb3duIGhvdXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gICovXG4gICAgZG93bkhvdXJMYWJlbCA9ICRsb2NhbGl6ZWA6QEBueHQtcGljay1kYXRldGltZS5kb3duLWhvdXI6TWludXMgYSBob3VyYFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBtb250aCBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpICovXG4gICAgcHJldk1vbnRoTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUucHJldi1tb250aDpQcmV2aW91cyBtb250aGBcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgbmV4dCBtb250aCBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpICovXG4gICAgbmV4dE1vbnRoTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUubmV4dC1tb250aDpOZXh0IG1vbnRoYFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyB5ZWFyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykgKi9cbiAgICBwcmV2WWVhckxhYmVsID0gJGxvY2FsaXplYDpAQG54dC1waWNrLWRhdGV0aW1lLnByZXYteWVhcjpQcmV2aW91cyB5ZWFyYFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBuZXh0IHllYXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKSAqL1xuICAgIG5leHRZZWFyTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUubmV4dC15ZWFyOk5leHQgeWVhcmBcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgcHJldmlvdXMgbXVsdGkteWVhciBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpICovXG4gICAgcHJldk11bHRpWWVhckxhYmVsID0gJGxvY2FsaXplYDpAQG54dC1waWNrLWRhdGV0aW1lLnByZXYtbXVsdGkteWVhcjpQcmV2aW91cyAyMSB5ZWFyc2BcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgbmV4dCBtdWx0aS15ZWFyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykgKi9cbiAgICBuZXh0TXVsdGlZZWFyTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUubmV4dC1tdWx0aS15ZWFyOk5leHQgMjEgeWVhcnNgXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlICdzd2l0Y2ggdG8gbW9udGggdmlldycgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKSAqL1xuICAgIHN3aXRjaFRvTW9udGhWaWV3TGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUuc3dpdGNoLXRvLW1vbnRoOkNoYW5nZSB0byBtb250aCB2aWV3YFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSAnc3dpdGNoIHRvIHllYXIgdmlldycgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKSAqL1xuICAgIHN3aXRjaFRvTXVsdGlZZWFyVmlld0xhYmVsID0gJGxvY2FsaXplYDpAQG54dC1waWNrLWRhdGV0aW1lLnN3aXRjaC10by15ZWFyLW1vbnRoOkNob29zZSBtb250aCBhbmQgeWVhcmBcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgY2FuY2VsIGJ1dHRvbiAqL1xuICAgIGNhbmNlbEJ0bkxhYmVsID0gJGxvY2FsaXplYDpAQG54dC1waWNrLWRhdGV0aW1lLmNhbmNlbDpDYW5jZWxgXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIHNldCBidXR0b24gKi9cbiAgICBzZXRCdG5MYWJlbCA9ICRsb2NhbGl6ZWA6QEBueHQtcGljay1kYXRldGltZS5zZXQ6U2V0YFxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSByYW5nZSAnZnJvbScgaW4gcGlja2VyIGluZm8gKi9cbiAgICByYW5nZUZyb21MYWJlbCA9ICRsb2NhbGl6ZWA6QEBueHQtcGljay1kYXRldGltZS5mcm9tOkZyb21gXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIHJhbmdlICd0bycgaW4gcGlja2VyIGluZm8gKi9cbiAgICByYW5nZVRvTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUudG86VG9gXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIGhvdXIxMiBidXR0b24gKEFNKSAqL1xuICAgIGhvdXIxMkFNTGFiZWwgPSAkbG9jYWxpemVgOkBAbnh0LXBpY2stZGF0ZXRpbWUudGltZS1hbTpBTWBcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgaG91cjEyIGJ1dHRvbiAoUE0pICovXG4gICAgaG91cjEyUE1MYWJlbCA9ICRsb2NhbGl6ZWA6QEBueHQtcGljay1kYXRldGltZS50aW1lLXBtOlBNYFxufVxuIl19
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Directive, HostBinding, HostListener, Input } from '@angular/core';
|
|
2
|
-
import { merge, of as observableOf } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DateTimeTriggerDirective {
|
|
5
|
-
get disabled() {
|
|
6
|
-
return this._disabled ?? !!this.dtPicker?.disabled;
|
|
7
|
-
}
|
|
8
|
-
set disabled(value) {
|
|
9
|
-
this._disabled = value;
|
|
10
|
-
}
|
|
11
|
-
/** @internal */
|
|
12
|
-
get triggerDisabledClass() {
|
|
13
|
-
return this.disabled;
|
|
14
|
-
}
|
|
15
|
-
constructor(changeDetector) {
|
|
16
|
-
this.changeDetector = changeDetector;
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
}
|
|
20
|
-
ngOnChanges(changes) {
|
|
21
|
-
if ('datepicker' in changes) {
|
|
22
|
-
this.watchStateChanges();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
ngAfterContentInit() {
|
|
26
|
-
this.watchStateChanges();
|
|
27
|
-
}
|
|
28
|
-
ngOnDestroy() {
|
|
29
|
-
this.stateChanges?.unsubscribe();
|
|
30
|
-
this.stateChanges = undefined;
|
|
31
|
-
}
|
|
32
|
-
handleClickOnHost(event) {
|
|
33
|
-
if (this.dtPicker) {
|
|
34
|
-
this.dtPicker.open();
|
|
35
|
-
event.stopPropagation();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
watchStateChanges() {
|
|
39
|
-
this.stateChanges?.unsubscribe();
|
|
40
|
-
this.stateChanges = undefined;
|
|
41
|
-
const inputDisabled = this.dtPicker && this.dtPicker.dtInput ?
|
|
42
|
-
this.dtPicker.dtInput.disabledChange : observableOf();
|
|
43
|
-
const pickerDisabled = this.dtPicker ?
|
|
44
|
-
this.dtPicker.disabledChange : observableOf();
|
|
45
|
-
this.stateChanges = merge(pickerDisabled, inputDisabled)
|
|
46
|
-
.subscribe(() => {
|
|
47
|
-
this.changeDetector.markForCheck();
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeTriggerDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
51
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: DateTimeTriggerDirective, selector: "[nxtDateTimeTrigger]", inputs: { dtPicker: ["nxtDateTimeTrigger", "dtPicker"], disabled: "disabled" }, host: { listeners: { "click": "handleClickOnHost($event)" }, properties: { "class.nxt-dt-trigger-disabled": "this.triggerDisabledClass" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeTriggerDirective, decorators: [{
|
|
54
|
-
type: Directive,
|
|
55
|
-
args: [{
|
|
56
|
-
selector: '[nxtDateTimeTrigger]'
|
|
57
|
-
}]
|
|
58
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { dtPicker: [{
|
|
59
|
-
type: Input,
|
|
60
|
-
args: ['nxtDateTimeTrigger']
|
|
61
|
-
}], disabled: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], triggerDisabledClass: [{
|
|
64
|
-
type: HostBinding,
|
|
65
|
-
args: ['class.nxt-dt-trigger-disabled']
|
|
66
|
-
}], handleClickOnHost: [{
|
|
67
|
-
type: HostListener,
|
|
68
|
-
args: ['click', ['$event']]
|
|
69
|
-
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BpY2stZGF0ZXRpbWUvc3JjL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLXBpY2tlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUE7QUFDN0osT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLElBQUksWUFBWSxFQUFnQixNQUFNLE1BQU0sQ0FBQTs7QUFNMUUsTUFBTSxPQUFPLHdCQUF3QjtJQU1qQyxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFBO0lBQ3RELENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFDSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3hCLENBQUM7SUFJRCxZQUN1QixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7SUFDcEQsQ0FBQztJQUVMLFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksWUFBWSxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtTQUMzQjtJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUE7SUFDakMsQ0FBQztJQUdELGlCQUFpQixDQUFDLEtBQVk7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUNwQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7U0FDMUI7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUE7UUFFN0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFekQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUVqRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxjQUFxQyxFQUFFLGFBQW9DLENBQUM7YUFDakcsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDdEMsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDOzhHQW5FUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNuQztzRkFJRyxRQUFRO3NCQURQLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUt2QixRQUFRO3NCQURYLEtBQUs7Z0JBV0Ysb0JBQW9CO3NCQUR2QixXQUFXO3VCQUFDLCtCQUErQjtnQkE4QjVDLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgYXMgb2JzZXJ2YWJsZU9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW254dERhdGVUaW1lVHJpZ2dlcl0nXG59KVxuZXhwb3J0IGNsYXNzIERhdGVUaW1lVHJpZ2dlckRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KCdueHREYXRlVGltZVRyaWdnZXInKVxuICAgIGR0UGlja2VyPzogRGF0ZVRpbWVDb21wb25lbnQ8VD5cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkPzogYm9vbGVhblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgPz8gISF0aGlzLmR0UGlja2VyPy5kaXNhYmxlZFxuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlXG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Mubnh0LWR0LXRyaWdnZXItZGlzYWJsZWQnKVxuICAgIGdldCB0cmlnZ2VyRGlzYWJsZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRlQ2hhbmdlcz86IFN1YnNjcmlwdGlvblxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoJ2RhdGVwaWNrZXInIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMud2F0Y2hTdGF0ZUNoYW5nZXMoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLndhdGNoU3RhdGVDaGFuZ2VzKClcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXM/LnVuc3Vic2NyaWJlKClcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlQ2xpY2tPbkhvc3QoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmR0UGlja2VyKSB7XG4gICAgICAgICAgICB0aGlzLmR0UGlja2VyLm9wZW4oKVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgd2F0Y2hTdGF0ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzPy51bnN1YnNjcmliZSgpXG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzID0gdW5kZWZpbmVkXG5cbiAgICAgICAgY29uc3QgaW5wdXREaXNhYmxlZCA9IHRoaXMuZHRQaWNrZXIgJiYgdGhpcy5kdFBpY2tlci5kdElucHV0ID9cbiAgICAgICAgICAgIHRoaXMuZHRQaWNrZXIuZHRJbnB1dC5kaXNhYmxlZENoYW5nZSA6IG9ic2VydmFibGVPZigpXG5cbiAgICAgICAgY29uc3QgcGlja2VyRGlzYWJsZWQgPSB0aGlzLmR0UGlja2VyID9cbiAgICAgICAgICAgIHRoaXMuZHRQaWNrZXIuZGlzYWJsZWRDaGFuZ2UgOiBvYnNlcnZhYmxlT2YoKVxuXG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzID0gbWVyZ2UocGlja2VyRGlzYWJsZWQgYXMgT2JzZXJ2YWJsZTxib29sZWFuPiwgaW5wdXREaXNhYmxlZCBhcyBPYnNlcnZhYmxlPGJvb2xlYW4+KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKVxuICAgICAgICAgICAgfSlcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { A11yModule } from '@angular/cdk/a11y';
|
|
2
|
-
import { OverlayModule } from '@angular/cdk/overlay';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { NgModule } from '@angular/core';
|
|
5
|
-
import { DialogModule } from '../dialog/dialog.module';
|
|
6
|
-
import { CalendarBodyComponent } from './calendar-body/calendar-body.component';
|
|
7
|
-
import { MonthViewComponent } from './calendar-month-view/calendar-month-view.component';
|
|
8
|
-
import { MultiYearViewComponent } from './calendar-multi-year-view/calendar-multi-year-view.component';
|
|
9
|
-
import { YearViewComponent } from './calendar-year-view/calendar-year-view.component';
|
|
10
|
-
import { CalendarComponent } from './calendar/calendar.component';
|
|
11
|
-
import { DateTimeInlineComponent } from './date-time-inline/date-time-inline.component';
|
|
12
|
-
import { DateTimeContainerComponent } from './date-time-picker-container/date-time-picker-container.component';
|
|
13
|
-
import { DateTimeInputDirective } from './date-time-picker-input.directive';
|
|
14
|
-
import { DateTimeIntl } from './date-time-picker-intl.service';
|
|
15
|
-
import { DateTimeTriggerDirective } from './date-time-picker-trigger.directive';
|
|
16
|
-
import { DateTimeComponent, NXT_DTPICKER_SCROLL_STRATEGY_PROVIDER } from './date-time-picker/date-time-picker.component';
|
|
17
|
-
import { NumberFixedLenPipe } from './number-fixed-len.pipe';
|
|
18
|
-
import { TimerBoxComponent } from './timer-box/timer-box.component';
|
|
19
|
-
import { TimerComponent } from './timer/timer.component';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
export class DateTimeModule {
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: DateTimeModule, declarations: [DateTimeTriggerDirective,
|
|
24
|
-
DateTimeInputDirective,
|
|
25
|
-
DateTimeComponent,
|
|
26
|
-
DateTimeContainerComponent,
|
|
27
|
-
MultiYearViewComponent,
|
|
28
|
-
YearViewComponent,
|
|
29
|
-
MonthViewComponent,
|
|
30
|
-
TimerComponent,
|
|
31
|
-
TimerBoxComponent,
|
|
32
|
-
CalendarComponent,
|
|
33
|
-
CalendarBodyComponent,
|
|
34
|
-
NumberFixedLenPipe,
|
|
35
|
-
DateTimeInlineComponent], imports: [CommonModule,
|
|
36
|
-
OverlayModule,
|
|
37
|
-
DialogModule,
|
|
38
|
-
A11yModule], exports: [CalendarComponent,
|
|
39
|
-
TimerComponent,
|
|
40
|
-
DateTimeTriggerDirective,
|
|
41
|
-
DateTimeInputDirective,
|
|
42
|
-
DateTimeComponent,
|
|
43
|
-
DateTimeInlineComponent,
|
|
44
|
-
MultiYearViewComponent,
|
|
45
|
-
YearViewComponent,
|
|
46
|
-
MonthViewComponent] }); }
|
|
47
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeModule, providers: [
|
|
48
|
-
DateTimeIntl,
|
|
49
|
-
NXT_DTPICKER_SCROLL_STRATEGY_PROVIDER
|
|
50
|
-
], imports: [CommonModule,
|
|
51
|
-
OverlayModule,
|
|
52
|
-
DialogModule,
|
|
53
|
-
A11yModule] }); }
|
|
54
|
-
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateTimeModule, decorators: [{
|
|
56
|
-
type: NgModule,
|
|
57
|
-
args: [{
|
|
58
|
-
declarations: [
|
|
59
|
-
DateTimeTriggerDirective,
|
|
60
|
-
DateTimeInputDirective,
|
|
61
|
-
DateTimeComponent,
|
|
62
|
-
DateTimeContainerComponent,
|
|
63
|
-
MultiYearViewComponent,
|
|
64
|
-
YearViewComponent,
|
|
65
|
-
MonthViewComponent,
|
|
66
|
-
TimerComponent,
|
|
67
|
-
TimerBoxComponent,
|
|
68
|
-
CalendarComponent,
|
|
69
|
-
CalendarBodyComponent,
|
|
70
|
-
NumberFixedLenPipe,
|
|
71
|
-
DateTimeInlineComponent
|
|
72
|
-
],
|
|
73
|
-
imports: [
|
|
74
|
-
CommonModule,
|
|
75
|
-
OverlayModule,
|
|
76
|
-
DialogModule,
|
|
77
|
-
A11yModule
|
|
78
|
-
],
|
|
79
|
-
exports: [
|
|
80
|
-
CalendarComponent,
|
|
81
|
-
TimerComponent,
|
|
82
|
-
DateTimeTriggerDirective,
|
|
83
|
-
DateTimeInputDirective,
|
|
84
|
-
DateTimeComponent,
|
|
85
|
-
DateTimeInlineComponent,
|
|
86
|
-
MultiYearViewComponent,
|
|
87
|
-
YearViewComponent,
|
|
88
|
-
MonthViewComponent
|
|
89
|
-
],
|
|
90
|
-
providers: [
|
|
91
|
-
DateTimeIntl,
|
|
92
|
-
NXT_DTPICKER_SCROLL_STRATEGY_PROVIDER
|
|
93
|
-
]
|
|
94
|
-
}]
|
|
95
|
-
}] });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BpY2stZGF0ZXRpbWUvc3JjL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQTtBQUN0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTtBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN2RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQTtBQUM5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFDQUFxQyxFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDeEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBOztBQXdDeEQsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLGlCQXBDbkIsd0JBQXdCO1lBQ3hCLHNCQUFzQjtZQUN0QixpQkFBaUI7WUFDakIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0QixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsdUJBQXVCLGFBR3ZCLFlBQVk7WUFDWixhQUFhO1lBQ2IsWUFBWTtZQUNaLFVBQVUsYUFHVixpQkFBaUI7WUFDakIsY0FBYztZQUNkLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixzQkFBc0I7WUFDdEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjsrR0FPYixjQUFjLGFBTFo7WUFDUCxZQUFZO1lBQ1oscUNBQXFDO1NBQ3hDLFlBbkJHLFlBQVk7WUFDWixhQUFhO1lBQ2IsWUFBWTtZQUNaLFVBQVU7OzJGQWtCTCxjQUFjO2tCQXRDMUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osVUFBVTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLGtCQUFrQjtxQkFDckI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1oscUNBQXFDO3FCQUN4QztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJ1xuaW1wb3J0IHsgQ2FsZW5kYXJCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1ib2R5L2NhbGVuZGFyLWJvZHkuY29tcG9uZW50J1xuaW1wb3J0IHsgTW9udGhWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC12aWV3L2NhbGVuZGFyLW1vbnRoLXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgTXVsdGlZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItbXVsdGkteWVhci12aWV3L2NhbGVuZGFyLW11bHRpLXllYXItdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0ZVRpbWVJbmxpbmVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtdGltZS1pbmxpbmUvZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRlVGltZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS10aW1lLXBpY2tlci1jb250YWluZXIvZGF0ZS10aW1lLXBpY2tlci1jb250YWluZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0ZVRpbWVJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGF0ZS10aW1lLXBpY2tlci1pbnB1dC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRlVGltZUludGwgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXItaW50bC5zZXJ2aWNlJ1xuaW1wb3J0IHsgRGF0ZVRpbWVUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyLXRyaWdnZXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQsIE5YVF9EVFBJQ0tFUl9TQ1JPTExfU1RSQVRFR1lfUFJPVklERVIgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnXG5pbXBvcnQgeyBOdW1iZXJGaXhlZExlblBpcGUgfSBmcm9tICcuL251bWJlci1maXhlZC1sZW4ucGlwZSdcbmltcG9ydCB7IFRpbWVyQm94Q29tcG9uZW50IH0gZnJvbSAnLi90aW1lci1ib3gvdGltZXItYm94LmNvbXBvbmVudCdcbmltcG9ydCB7IFRpbWVyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lci90aW1lci5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERhdGVUaW1lVHJpZ2dlckRpcmVjdGl2ZSxcbiAgICAgICAgRGF0ZVRpbWVJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgRGF0ZVRpbWVDb21wb25lbnQsXG4gICAgICAgIERhdGVUaW1lQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBNdWx0aVllYXJWaWV3Q29tcG9uZW50LFxuICAgICAgICBZZWFyVmlld0NvbXBvbmVudCxcbiAgICAgICAgTW9udGhWaWV3Q29tcG9uZW50LFxuICAgICAgICBUaW1lckNvbXBvbmVudCxcbiAgICAgICAgVGltZXJCb3hDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhckJvZHlDb21wb25lbnQsXG4gICAgICAgIE51bWJlckZpeGVkTGVuUGlwZSxcbiAgICAgICAgRGF0ZVRpbWVJbmxpbmVDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBPdmVybGF5TW9kdWxlLFxuICAgICAgICBEaWFsb2dNb2R1bGUsXG4gICAgICAgIEExMXlNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgICAgIFRpbWVyQ29tcG9uZW50LFxuICAgICAgICBEYXRlVGltZVRyaWdnZXJEaXJlY3RpdmUsXG4gICAgICAgIERhdGVUaW1lSW5wdXREaXJlY3RpdmUsXG4gICAgICAgIERhdGVUaW1lQ29tcG9uZW50LFxuICAgICAgICBEYXRlVGltZUlubGluZUNvbXBvbmVudCxcbiAgICAgICAgTXVsdGlZZWFyVmlld0NvbXBvbmVudCxcbiAgICAgICAgWWVhclZpZXdDb21wb25lbnQsXG4gICAgICAgIE1vbnRoVmlld0NvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIERhdGVUaW1lSW50bCxcbiAgICAgICAgTlhUX0RUUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUlxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/** @internal */
|
|
4
|
-
export class NumberFixedLenPipe {
|
|
5
|
-
transform(num, len) {
|
|
6
|
-
if (num == undefined || !Number.isFinite(num))
|
|
7
|
-
return undefined;
|
|
8
|
-
const number = Math.floor(num);
|
|
9
|
-
if (len == undefined || !Number.isFinite(len))
|
|
10
|
-
return number;
|
|
11
|
-
return number.toFixed(0).padStart(Math.floor(len), '0');
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NumberFixedLenPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
14
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: NumberFixedLenPipe, name: "numberFixedLen" }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NumberFixedLenPipe, decorators: [{
|
|
17
|
-
type: Pipe,
|
|
18
|
-
args: [{
|
|
19
|
-
name: 'numberFixedLen'
|
|
20
|
-
}]
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpeGVkLWxlbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGljay1kYXRldGltZS9zcmMvbGliL2RhdGUtdGltZS9udW1iZXItZml4ZWQtbGVuLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUE7O0FBRW5ELGdCQUFnQjtBQUloQixNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFNBQVMsQ0FBQyxHQUF1QixFQUFFLEdBQXVCO1FBQ3RELElBQUksR0FBRyxJQUFJLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ3pDLE9BQU8sU0FBUyxDQUFBO1FBRXBCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFOUIsSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDekMsT0FBTyxNQUFNLENBQUE7UUFFakIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzNELENBQUM7OEdBWFEsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjtpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuLyoqIEBpbnRlcm5hbCAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdudW1iZXJGaXhlZExlbidcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyRml4ZWRMZW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKG51bTogbnVtYmVyIHwgdW5kZWZpbmVkLCBsZW46IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAobnVtID09IHVuZGVmaW5lZCB8fCAhTnVtYmVyLmlzRmluaXRlKG51bSkpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICAgICAgY29uc3QgbnVtYmVyID0gTWF0aC5mbG9vcihudW0pXG5cbiAgICAgICAgaWYgKGxlbiA9PSB1bmRlZmluZWQgfHwgIU51bWJlci5pc0Zpbml0ZShsZW4pKVxuICAgICAgICAgICAgcmV0dXJuIG51bWJlclxuXG4gICAgICAgIHJldHVybiBudW1iZXIudG9GaXhlZCgwKS5wYWRTdGFydChNYXRoLmZsb29yKGxlbiksICcwJylcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
-
import { take } from 'rxjs/operators';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../date-time-picker-intl.service";
|
|
5
|
-
import * as i2 from "../../class/date-time-adapter.class";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
import * as i4 from "../timer-box/timer-box.component";
|
|
8
|
-
export class TimerComponent {
|
|
9
|
-
get pickerMoment() {
|
|
10
|
-
return this._pickerMoment;
|
|
11
|
-
}
|
|
12
|
-
set pickerMoment(value) {
|
|
13
|
-
value = this.dateTimeAdapter.deserialize(value);
|
|
14
|
-
this._pickerMoment = this.getValidDate(value) || this.dateTimeAdapter.now();
|
|
15
|
-
}
|
|
16
|
-
get min() {
|
|
17
|
-
return this._minDateTime;
|
|
18
|
-
}
|
|
19
|
-
set min(value) {
|
|
20
|
-
value = this.dateTimeAdapter.deserialize(value);
|
|
21
|
-
this._minDateTime = this.getValidDate(value);
|
|
22
|
-
}
|
|
23
|
-
get max() {
|
|
24
|
-
return this._maxDateTime;
|
|
25
|
-
}
|
|
26
|
-
set max(value) {
|
|
27
|
-
value = this.dateTimeAdapter.deserialize(value);
|
|
28
|
-
this._maxDateTime = this.getValidDate(value);
|
|
29
|
-
}
|
|
30
|
-
get hourValue() {
|
|
31
|
-
return this.dateTimeAdapter.getHours(this.pickerMoment);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* The value would be displayed in hourBox.
|
|
35
|
-
* We need this because the value displayed in hourBox it not
|
|
36
|
-
* the same as the hourValue when the timer is in hour12Timer mode.
|
|
37
|
-
*/
|
|
38
|
-
get hourBoxValue() {
|
|
39
|
-
let hours = this.hourValue;
|
|
40
|
-
if (!this.hour12Timer) {
|
|
41
|
-
return hours;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
if (hours === 0) {
|
|
45
|
-
hours = 12;
|
|
46
|
-
this.isPM = false;
|
|
47
|
-
}
|
|
48
|
-
else if (hours > 0 && hours < 12) {
|
|
49
|
-
this.isPM = false;
|
|
50
|
-
}
|
|
51
|
-
else if (hours === 12) {
|
|
52
|
-
this.isPM = true;
|
|
53
|
-
}
|
|
54
|
-
else if (hours > 12 && hours < 24) {
|
|
55
|
-
hours = hours - 12;
|
|
56
|
-
this.isPM = true;
|
|
57
|
-
}
|
|
58
|
-
return hours;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
get minuteValue() {
|
|
62
|
-
return this.dateTimeAdapter.getMinutes(this.pickerMoment);
|
|
63
|
-
}
|
|
64
|
-
get secondValue() {
|
|
65
|
-
return this.dateTimeAdapter.getSeconds(this.pickerMoment);
|
|
66
|
-
}
|
|
67
|
-
get upHourButtonLabel() {
|
|
68
|
-
return this.pickerIntl.upHourLabel;
|
|
69
|
-
}
|
|
70
|
-
get downHourButtonLabel() {
|
|
71
|
-
return this.pickerIntl.downHourLabel;
|
|
72
|
-
}
|
|
73
|
-
get upMinuteButtonLabel() {
|
|
74
|
-
return this.pickerIntl.upMinuteLabel;
|
|
75
|
-
}
|
|
76
|
-
get downMinuteButtonLabel() {
|
|
77
|
-
return this.pickerIntl.downMinuteLabel;
|
|
78
|
-
}
|
|
79
|
-
get upSecondButtonLabel() {
|
|
80
|
-
return this.pickerIntl.upSecondLabel;
|
|
81
|
-
}
|
|
82
|
-
get downSecondButtonLabel() {
|
|
83
|
-
return this.pickerIntl.downSecondLabel;
|
|
84
|
-
}
|
|
85
|
-
get hour12ButtonLabel() {
|
|
86
|
-
return this.isPM
|
|
87
|
-
? this.pickerIntl.hour12PMLabel
|
|
88
|
-
: this.pickerIntl.hour12AMLabel;
|
|
89
|
-
}
|
|
90
|
-
/** @internal */
|
|
91
|
-
get timerClass() {
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
/** @internal */
|
|
95
|
-
get timeTabIndex() {
|
|
96
|
-
return -1;
|
|
97
|
-
}
|
|
98
|
-
constructor(ngZone, elmRef, pickerIntl, cdRef, dateTimeAdapter) {
|
|
99
|
-
this.ngZone = ngZone;
|
|
100
|
-
this.elmRef = elmRef;
|
|
101
|
-
this.pickerIntl = pickerIntl;
|
|
102
|
-
this.cdRef = cdRef;
|
|
103
|
-
this.dateTimeAdapter = dateTimeAdapter;
|
|
104
|
-
this.isPM = false; // a flag indicates the current timer moment is in PM or AM
|
|
105
|
-
/**
|
|
106
|
-
* Whether to show the second's timer
|
|
107
|
-
*/
|
|
108
|
-
this.showSecondsTimer = false;
|
|
109
|
-
/**
|
|
110
|
-
* Whether the timer is in hour12 format
|
|
111
|
-
*/
|
|
112
|
-
this.hour12Timer = false;
|
|
113
|
-
/**
|
|
114
|
-
* Hours to change per step
|
|
115
|
-
*/
|
|
116
|
-
this.stepHour = 1;
|
|
117
|
-
/**
|
|
118
|
-
* Minutes to change per step
|
|
119
|
-
*/
|
|
120
|
-
this.stepMinute = 1;
|
|
121
|
-
/**
|
|
122
|
-
* Seconds to change per step
|
|
123
|
-
*/
|
|
124
|
-
this.stepSecond = 1;
|
|
125
|
-
this.selectedChange = new EventEmitter();
|
|
126
|
-
}
|
|
127
|
-
ngOnInit() { }
|
|
128
|
-
/**
|
|
129
|
-
* Focus to the host element
|
|
130
|
-
*/
|
|
131
|
-
focus() {
|
|
132
|
-
this.ngZone.runOutsideAngular(() => {
|
|
133
|
-
this.ngZone.onStable
|
|
134
|
-
.asObservable()
|
|
135
|
-
.pipe(take(1))
|
|
136
|
-
.subscribe(() => {
|
|
137
|
-
this.elmRef.nativeElement.focus();
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Set the hour value via typing into timer box input
|
|
143
|
-
* We need this to handle the hour value when the timer is in hour12 mode
|
|
144
|
-
*/
|
|
145
|
-
setHourValueViaInput(hours) {
|
|
146
|
-
if (this.hour12Timer && this.isPM && hours >= 1 && hours <= 11) {
|
|
147
|
-
hours = hours + 12;
|
|
148
|
-
}
|
|
149
|
-
else if (this.hour12Timer && !this.isPM && hours === 12) {
|
|
150
|
-
hours = 0;
|
|
151
|
-
}
|
|
152
|
-
this.setHourValue(hours);
|
|
153
|
-
}
|
|
154
|
-
setHourValue(hours) {
|
|
155
|
-
const m = this.dateTimeAdapter.setHours(this.pickerMoment, hours);
|
|
156
|
-
this.selectedChange.emit(m);
|
|
157
|
-
this.cdRef.markForCheck();
|
|
158
|
-
}
|
|
159
|
-
setMinuteValue(minutes) {
|
|
160
|
-
const m = this.dateTimeAdapter.setMinutes(this.pickerMoment, minutes);
|
|
161
|
-
this.selectedChange.emit(m);
|
|
162
|
-
this.cdRef.markForCheck();
|
|
163
|
-
}
|
|
164
|
-
setSecondValue(seconds) {
|
|
165
|
-
const m = this.dateTimeAdapter.setSeconds(this.pickerMoment, seconds);
|
|
166
|
-
this.selectedChange.emit(m);
|
|
167
|
-
this.cdRef.markForCheck();
|
|
168
|
-
}
|
|
169
|
-
setMeridiem(event) {
|
|
170
|
-
this.isPM = !this.isPM;
|
|
171
|
-
let hours = this.hourValue;
|
|
172
|
-
if (this.isPM) {
|
|
173
|
-
hours = hours + 12;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
hours = hours - 12;
|
|
177
|
-
}
|
|
178
|
-
if (hours >= 0 && hours <= 23) {
|
|
179
|
-
this.setHourValue(hours);
|
|
180
|
-
}
|
|
181
|
-
this.cdRef.markForCheck();
|
|
182
|
-
event.preventDefault();
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Check if the up hour button is enabled
|
|
186
|
-
*/
|
|
187
|
-
upHourEnabled() {
|
|
188
|
-
return (!this.max ||
|
|
189
|
-
this.compareHours(this.stepHour, this.max) < 1);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Check if the down hour button is enabled
|
|
193
|
-
*/
|
|
194
|
-
downHourEnabled() {
|
|
195
|
-
return (!this.min ||
|
|
196
|
-
this.compareHours(-this.stepHour, this.min) > -1);
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Check if the up minute button is enabled
|
|
200
|
-
*/
|
|
201
|
-
upMinuteEnabled() {
|
|
202
|
-
return (!this.max ||
|
|
203
|
-
this.compareMinutes(this.stepMinute, this.max) < 1);
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Check if the down minute button is enabled
|
|
207
|
-
*/
|
|
208
|
-
downMinuteEnabled() {
|
|
209
|
-
return (!this.min ||
|
|
210
|
-
this.compareMinutes(-this.stepMinute, this.min) > -1);
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Check if the up second button is enabled
|
|
214
|
-
*/
|
|
215
|
-
upSecondEnabled() {
|
|
216
|
-
return (!this.max ||
|
|
217
|
-
this.compareSeconds(this.stepSecond, this.max) < 1);
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Check if the down second button is enabled
|
|
221
|
-
*/
|
|
222
|
-
downSecondEnabled() {
|
|
223
|
-
return (!this.min ||
|
|
224
|
-
this.compareSeconds(-this.stepSecond, this.min) > -1);
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* PickerMoment's hour value +/- certain amount and compare it to the give date
|
|
228
|
-
* 1 is after the comparedDate
|
|
229
|
-
* -1 is before the comparedDate
|
|
230
|
-
* 0 is equal the comparedDate
|
|
231
|
-
*/
|
|
232
|
-
compareHours(amount, comparedDate) {
|
|
233
|
-
const hours = this.dateTimeAdapter.getHours(this.pickerMoment) + amount;
|
|
234
|
-
const result = this.dateTimeAdapter.setHours(this.pickerMoment, hours);
|
|
235
|
-
return this.dateTimeAdapter.compare(result, comparedDate);
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* PickerMoment's minute value +/- certain amount and compare it to the give date
|
|
239
|
-
* 1 is after the comparedDate
|
|
240
|
-
* -1 is before the comparedDate
|
|
241
|
-
* 0 is equal the comparedDate
|
|
242
|
-
*/
|
|
243
|
-
compareMinutes(amount, comparedDate) {
|
|
244
|
-
const minutes = this.dateTimeAdapter.getMinutes(this.pickerMoment) + amount;
|
|
245
|
-
const result = this.dateTimeAdapter.setMinutes(this.pickerMoment, minutes);
|
|
246
|
-
return this.dateTimeAdapter.compare(result, comparedDate);
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* PickerMoment's second value +/- certain amount and compare it to the give date
|
|
250
|
-
* 1 is after the comparedDate
|
|
251
|
-
* -1 is before the comparedDate
|
|
252
|
-
* 0 is equal the comparedDate
|
|
253
|
-
*/
|
|
254
|
-
compareSeconds(amount, comparedDate) {
|
|
255
|
-
const seconds = this.dateTimeAdapter.getSeconds(this.pickerMoment) + amount;
|
|
256
|
-
const result = this.dateTimeAdapter.setSeconds(this.pickerMoment, seconds);
|
|
257
|
-
return this.dateTimeAdapter.compare(result, comparedDate);
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Get a valid date object
|
|
261
|
-
*/
|
|
262
|
-
getValidDate(obj) {
|
|
263
|
-
return this.dateTimeAdapter.isDateInstance(obj) &&
|
|
264
|
-
this.dateTimeAdapter.isValid(obj)
|
|
265
|
-
? obj
|
|
266
|
-
: undefined;
|
|
267
|
-
}
|
|
268
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TimerComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.DateTimeIntl }, { token: i0.ChangeDetectorRef }, { token: i2.DateTimeAdapter }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
269
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: TimerComponent, selector: "nxt-date-time-timer", inputs: { pickerMoment: "pickerMoment", min: "min", max: "max", showSecondsTimer: "showSecondsTimer", hour12Timer: "hour12Timer", stepHour: "stepHour", stepMinute: "stepMinute", stepSecond: "stepSecond" }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class.nxt-dt-timer": "this.timerClass", "attr.tabindex": "this.timeTabIndex" } }, ngImport: i0, template: "<nxt-date-time-timer-box [upBtnAriaLabel]=\"upHourButtonLabel\"\n [downBtnAriaLabel]=\"downHourButtonLabel\"\n [upBtnDisabled]=\"!upHourEnabled()\"\n [downBtnDisabled]=\"!downHourEnabled()\"\n [boxValue]=\"hourBoxValue\"\n [value]=\"hourValue\"\n [min]=\"0\"\n [max]=\"23\"\n [step]=\"stepHour\"\n inputLabel=\"Hour\"\n (inputChange)=\"setHourValueViaInput($event)\"\n (valueChange)=\"setHourValue($event)\"></nxt-date-time-timer-box>\n<nxt-date-time-timer-box [showDivider]=\"true\"\n [upBtnAriaLabel]=\"upMinuteButtonLabel\"\n [downBtnAriaLabel]=\"downMinuteButtonLabel\"\n [upBtnDisabled]=\"!upMinuteEnabled()\"\n [downBtnDisabled]=\"!downMinuteEnabled()\"\n [value]=\"minuteValue\"\n [min]=\"0\"\n [max]=\"59\"\n [step]=\"stepMinute\"\n inputLabel=\"Minute\"\n (inputChange)=\"setMinuteValue($event)\"\n (valueChange)=\"setMinuteValue($event)\"></nxt-date-time-timer-box>\n<nxt-date-time-timer-box *ngIf=\"showSecondsTimer\"\n [showDivider]=\"true\"\n [upBtnAriaLabel]=\"upSecondButtonLabel\"\n [downBtnAriaLabel]=\"downSecondButtonLabel\"\n [upBtnDisabled]=\"!upSecondEnabled()\"\n [downBtnDisabled]=\"!downSecondEnabled()\"\n [value]=\"secondValue\"\n [min]=\"0\"\n [max]=\"59\"\n [step]=\"stepSecond\"\n inputLabel=\"Second\"\n (inputChange)=\"setSecondValue($event)\"\n (valueChange)=\"setSecondValue($event)\"></nxt-date-time-timer-box>\n\n<div *ngIf=\"hour12Timer\"\n class=\"nxt-dt-timer-hour12\">\n <button class=\"nxt-dt-control-button nxt-dt-timer-hour12-box\"\n type=\"button\"\n tabindex=\"0\"\n (click)=\"setMeridiem($event)\">\n <span class=\"nxt-dt-control-button-content\"\n tabindex=\"-1\">\n {{hour12ButtonLabel}}\n </span>\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TimerBoxComponent, selector: "nxt-date-time-timer-box", inputs: ["showDivider", "upBtnAriaLabel", "upBtnDisabled", "downBtnAriaLabel", "downBtnDisabled", "boxValue", "value", "min", "max", "step", "inputLabel"], outputs: ["valueChange", "inputChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
270
|
-
}
|
|
271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TimerComponent, decorators: [{
|
|
272
|
-
type: Component,
|
|
273
|
-
args: [{ selector: 'nxt-date-time-timer', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nxt-date-time-timer-box [upBtnAriaLabel]=\"upHourButtonLabel\"\n [downBtnAriaLabel]=\"downHourButtonLabel\"\n [upBtnDisabled]=\"!upHourEnabled()\"\n [downBtnDisabled]=\"!downHourEnabled()\"\n [boxValue]=\"hourBoxValue\"\n [value]=\"hourValue\"\n [min]=\"0\"\n [max]=\"23\"\n [step]=\"stepHour\"\n inputLabel=\"Hour\"\n (inputChange)=\"setHourValueViaInput($event)\"\n (valueChange)=\"setHourValue($event)\"></nxt-date-time-timer-box>\n<nxt-date-time-timer-box [showDivider]=\"true\"\n [upBtnAriaLabel]=\"upMinuteButtonLabel\"\n [downBtnAriaLabel]=\"downMinuteButtonLabel\"\n [upBtnDisabled]=\"!upMinuteEnabled()\"\n [downBtnDisabled]=\"!downMinuteEnabled()\"\n [value]=\"minuteValue\"\n [min]=\"0\"\n [max]=\"59\"\n [step]=\"stepMinute\"\n inputLabel=\"Minute\"\n (inputChange)=\"setMinuteValue($event)\"\n (valueChange)=\"setMinuteValue($event)\"></nxt-date-time-timer-box>\n<nxt-date-time-timer-box *ngIf=\"showSecondsTimer\"\n [showDivider]=\"true\"\n [upBtnAriaLabel]=\"upSecondButtonLabel\"\n [downBtnAriaLabel]=\"downSecondButtonLabel\"\n [upBtnDisabled]=\"!upSecondEnabled()\"\n [downBtnDisabled]=\"!downSecondEnabled()\"\n [value]=\"secondValue\"\n [min]=\"0\"\n [max]=\"59\"\n [step]=\"stepSecond\"\n inputLabel=\"Second\"\n (inputChange)=\"setSecondValue($event)\"\n (valueChange)=\"setSecondValue($event)\"></nxt-date-time-timer-box>\n\n<div *ngIf=\"hour12Timer\"\n class=\"nxt-dt-timer-hour12\">\n <button class=\"nxt-dt-control-button nxt-dt-timer-hour12-box\"\n type=\"button\"\n tabindex=\"0\"\n (click)=\"setMeridiem($event)\">\n <span class=\"nxt-dt-control-button-content\"\n tabindex=\"-1\">\n {{hour12ButtonLabel}}\n </span>\n </button>\n</div>\n" }]
|
|
274
|
-
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i1.DateTimeIntl }, { type: i0.ChangeDetectorRef }, { type: i2.DateTimeAdapter }], propDecorators: { pickerMoment: [{
|
|
275
|
-
type: Input
|
|
276
|
-
}], min: [{
|
|
277
|
-
type: Input
|
|
278
|
-
}], max: [{
|
|
279
|
-
type: Input
|
|
280
|
-
}], showSecondsTimer: [{
|
|
281
|
-
type: Input
|
|
282
|
-
}], hour12Timer: [{
|
|
283
|
-
type: Input
|
|
284
|
-
}], stepHour: [{
|
|
285
|
-
type: Input
|
|
286
|
-
}], stepMinute: [{
|
|
287
|
-
type: Input
|
|
288
|
-
}], stepSecond: [{
|
|
289
|
-
type: Input
|
|
290
|
-
}], selectedChange: [{
|
|
291
|
-
type: Output
|
|
292
|
-
}], timerClass: [{
|
|
293
|
-
type: HostBinding,
|
|
294
|
-
args: ['class.nxt-dt-timer']
|
|
295
|
-
}], timeTabIndex: [{
|
|
296
|
-
type: HostBinding,
|
|
297
|
-
args: ['attr.tabindex']
|
|
298
|
-
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGljay1kYXRldGltZS9zcmMvbGliL2RhdGUtdGltZS90aW1lci90aW1lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL3RpbWVyL3RpbWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0osT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7QUFXckMsTUFBTSxPQUFPLGNBQWM7SUFHdkIsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQzdCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFvQjtRQUNqQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDL0UsQ0FBQztJQUlELElBQ0ksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQTtJQUM1QixDQUFDO0lBRUQsSUFBSSxHQUFHLENBQUMsS0FBb0I7UUFDeEIsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBSUQs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dHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgRGF0ZVRpbWVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3MvZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MnXG5pbXBvcnQgeyBEYXRlVGltZUludGwgfSBmcm9tICcuLi9kYXRlLXRpbWUtcGlja2VyLWludGwuc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdueHQtZGF0ZS10aW1lLXRpbWVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGltZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKiBUaGUgY3VycmVudCBwaWNrZXIgbW9tZW50ICovXG4gICAgcHJpdmF0ZSBfcGlja2VyTW9tZW50PzogVFxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHBpY2tlck1vbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BpY2tlck1vbWVudFxuICAgIH1cblxuICAgIHNldCBwaWNrZXJNb21lbnQodmFsdWU6IFQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSlcbiAgICAgICAgdGhpcy5fcGlja2VyTW9tZW50ID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpIHx8IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLm5vdygpXG4gICAgfVxuXG4gICAgLyoqIFRoZSBtaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSB0aW1lICovXG4gICAgcHJpdmF0ZSBfbWluRGF0ZVRpbWU/OiBUXG4gICAgQElucHV0KClcbiAgICBnZXQgbWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluRGF0ZVRpbWVcbiAgICB9XG5cbiAgICBzZXQgbWluKHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpXG4gICAgICAgIHRoaXMuX21pbkRhdGVUaW1lID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpXG4gICAgfVxuXG4gICAgLyoqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZSB0aW1lICovXG4gICAgcHJpdmF0ZSBfbWF4RGF0ZVRpbWU/OiBUXG4gICAgQElucHV0KClcbiAgICBnZXQgbWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZVRpbWVcbiAgICB9XG5cbiAgICBzZXQgbWF4KHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpXG4gICAgICAgIHRoaXMuX21heERhdGVUaW1lID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1BNOiBib29sZWFuID0gZmFsc2UgLy8gYSBmbGFnIGluZGljYXRlcyB0aGUgY3VycmVudCB0aW1lciBtb21lbnQgaXMgaW4gUE0gb3IgQU1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgc2Vjb25kJ3MgdGltZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dTZWNvbmRzVGltZXI6IGJvb2xlYW4gPSBmYWxzZVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdGltZXIgaXMgaW4gaG91cjEyIGZvcm1hdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaG91cjEyVGltZXI6IGJvb2xlYW4gPSBmYWxzZVxuXG4gICAgLyoqXG4gICAgICogSG91cnMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGVwSG91ciA9IDFcblxuICAgIC8qKlxuICAgICAqIE1pbnV0ZXMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGVwTWludXRlID0gMVxuXG4gICAgLyoqXG4gICAgICogU2Vjb25kcyB0byBjaGFuZ2UgcGVyIHN0ZXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0ZXBTZWNvbmQgPSAxXG5cbiAgICBnZXQgaG91clZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRIb3Vycyh0aGlzLnBpY2tlck1vbWVudClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgd291bGQgYmUgZGlzcGxheWVkIGluIGhvdXJCb3guXG4gICAgICogV2UgbmVlZCB0aGlzIGJlY2F1c2UgdGhlIHZhbHVlIGRpc3BsYXllZCBpbiBob3VyQm94IGl0IG5vdFxuICAgICAqIHRoZSBzYW1lIGFzIHRoZSBob3VyVmFsdWUgd2hlbiB0aGUgdGltZXIgaXMgaW4gaG91cjEyVGltZXIgbW9kZS5cbiAgICAgKi9cbiAgICBnZXQgaG91ckJveFZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIGxldCBob3VycyA9IHRoaXMuaG91clZhbHVlXG5cbiAgICAgICAgaWYgKCF0aGlzLmhvdXIxMlRpbWVyKSB7XG4gICAgICAgICAgICByZXR1cm4gaG91cnNcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChob3VycyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGhvdXJzID0gMTJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUE0gPSBmYWxzZVxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA+IDAgJiYgaG91cnMgPCAxMikge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNQTSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzID09PSAxMikge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNQTSA9IHRydWVcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPiAxMiAmJiBob3VycyA8IDI0KSB7XG4gICAgICAgICAgICAgICAgaG91cnMgPSBob3VycyAtIDEyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1BNID0gdHJ1ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gaG91cnNcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBtaW51dGVWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0TWludXRlcyh0aGlzLnBpY2tlck1vbWVudClcbiAgICB9XG5cbiAgICBnZXQgc2Vjb25kVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQpXG4gICAgfVxuXG4gICAgZ2V0IHVwSG91ckJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwudXBIb3VyTGFiZWxcbiAgICB9XG5cbiAgICBnZXQgZG93bkhvdXJCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLmRvd25Ib3VyTGFiZWxcbiAgICB9XG5cbiAgICBnZXQgdXBNaW51dGVCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLnVwTWludXRlTGFiZWxcbiAgICB9XG5cbiAgICBnZXQgZG93bk1pbnV0ZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwuZG93bk1pbnV0ZUxhYmVsXG4gICAgfVxuXG4gICAgZ2V0IHVwU2Vjb25kQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC51cFNlY29uZExhYmVsXG4gICAgfVxuXG4gICAgZ2V0IGRvd25TZWNvbmRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLmRvd25TZWNvbmRMYWJlbFxuICAgIH1cblxuICAgIGdldCBob3VyMTJCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1BNXG4gICAgICAgICAgICA/IHRoaXMucGlja2VySW50bC5ob3VyMTJQTUxhYmVsXG4gICAgICAgICAgICA6IHRoaXMucGlja2VySW50bC5ob3VyMTJBTUxhYmVsXG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KClcblxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm54dC1kdC10aW1lcicpXG4gICAgZ2V0IHRpbWVyQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IHRpbWVUYWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gLTFcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbG1SZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBpY2tlckludGw6IERhdGVUaW1lSW50bCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0ZVRpbWVBZGFwdGVyOiBEYXRlVGltZUFkYXB0ZXI8VD5cbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEZvY3VzIHRvIHRoZSBob3N0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGVcbiAgICAgICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsbVJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgaG91ciB2YWx1ZSB2aWEgdHlwaW5nIGludG8gdGltZXIgYm94IGlucHV0XG4gICAgICogV2UgbmVlZCB0aGlzIHRvIGhhbmRsZSB0aGUgaG91ciB2YWx1ZSB3aGVuIHRoZSB0aW1lciBpcyBpbiBob3VyMTIgbW9kZVxuICAgICAqL1xuICAgIHNldEhvdXJWYWx1ZVZpYUlucHV0KGhvdXJzOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaG91cjEyVGltZXIgJiYgdGhpcy5pc1BNICYmIGhvdXJzID49IDEgJiYgaG91cnMgPD0gMTEpIHtcbiAgICAgICAgICAgIGhvdXJzID0gaG91cnMgKyAxMlxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaG91cjEyVGltZXIgJiYgIXRoaXMuaXNQTSAmJiBob3VycyA9PT0gMTIpIHtcbiAgICAgICAgICAgIGhvdXJzID0gMFxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRIb3VyVmFsdWUoaG91cnMpXG4gICAgfVxuXG4gICAgc2V0SG91clZhbHVlKGhvdXJzOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldEhvdXJzKHRoaXMucGlja2VyTW9tZW50LCBob3VycylcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KG0pXG4gICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG5cbiAgICBzZXRNaW51dGVWYWx1ZShtaW51dGVzOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldE1pbnV0ZXModGhpcy5waWNrZXJNb21lbnQsIG1pbnV0ZXMpXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChtKVxuICAgICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuXG4gICAgc2V0U2Vjb25kVmFsdWUoc2Vjb25kczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG0gPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRTZWNvbmRzKHRoaXMucGlja2VyTW9tZW50LCBzZWNvbmRzKVxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQobSlcbiAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKVxuICAgIH1cblxuICAgIHNldE1lcmlkaWVtKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1BNID0gIXRoaXMuaXNQTVxuXG4gICAgICAgIGxldCBob3VycyA9IHRoaXMuaG91clZhbHVlXG4gICAgICAgIGlmICh0aGlzLmlzUE0pIHtcbiAgICAgICAgICAgIGhvdXJzID0gaG91cnMgKyAxMlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaG91cnMgPSBob3VycyAtIDEyXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG91cnMgPj0gMCAmJiBob3VycyA8PSAyMykge1xuICAgICAgICAgICAgdGhpcy5zZXRIb3VyVmFsdWUoaG91cnMpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgdXAgaG91ciBidXR0b24gaXMgZW5hYmxlZFxuICAgICAqL1xuICAgIHVwSG91ckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5tYXggfHxcbiAgICAgICAgICAgIHRoaXMuY29tcGFyZUhvdXJzKHRoaXMuc3RlcEhvdXIsIHRoaXMubWF4KSA8IDFcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBkb3duIGhvdXIgYnV0dG9uIGlzIGVuYWJsZWRcbiAgICAgKi9cbiAgICBkb3duSG91ckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5taW4gfHxcbiAgICAgICAgICAgIHRoaXMuY29tcGFyZUhvdXJzKC10aGlzLnN0ZXBIb3VyLCB0aGlzLm1pbikgPiAtMVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIHVwIG1pbnV0ZSBidXR0b24gaXMgZW5hYmxlZFxuICAgICAqL1xuICAgIHVwTWludXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLm1heCB8fFxuICAgICAgICAgICAgdGhpcy5jb21wYXJlTWludXRlcyh0aGlzLnN0ZXBNaW51dGUsIHRoaXMubWF4KSA8IDFcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBkb3duIG1pbnV0ZSBidXR0b24gaXMgZW5hYmxlZFxuICAgICAqL1xuICAgIGRvd25NaW51dGVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubWluIHx8XG4gICAgICAgICAgICB0aGlzLmNvbXBhcmVNaW51dGVzKC10aGlzLnN0ZXBNaW51dGUsIHRoaXMubWluKSA+IC0xXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgdXAgc2Vjb25kIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAgICovXG4gICAgdXBTZWNvbmRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubWF4IHx8XG4gICAgICAgICAgICB0aGlzLmNvbXBhcmVTZWNvbmRzKHRoaXMuc3RlcFNlY29uZCwgdGhpcy5tYXgpIDwgMVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRvd24gc2Vjb25kIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAgICovXG4gICAgZG93blNlY29uZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5taW4gfHxcbiAgICAgICAgICAgIHRoaXMuY29tcGFyZVNlY29uZHMoLXRoaXMuc3RlcFNlY29uZCwgdGhpcy5taW4pID4gLTFcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBpY2tlck1vbWVudCdzIGhvdXIgdmFsdWUgKy8tIGNlcnRhaW4gYW1vdW50IGFuZCBjb21wYXJlIGl0IHRvIHRoZSBnaXZlIGRhdGVcbiAgICAgKiAxIGlzIGFmdGVyIHRoZSBjb21wYXJlZERhdGVcbiAgICAgKiAtMSBpcyBiZWZvcmUgdGhlIGNvbXBhcmVkRGF0ZVxuICAgICAqIDAgaXMgZXF1YWwgdGhlIGNvbXBhcmVkRGF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY29tcGFyZUhvdXJzKGFtb3VudDogbnVtYmVyLCBjb21wYXJlZERhdGU6IFQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBob3VycyA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldEhvdXJzKHRoaXMucGlja2VyTW9tZW50KSArIGFtb3VudFxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRIb3Vycyh0aGlzLnBpY2tlck1vbWVudCwgaG91cnMpXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKHJlc3VsdCwgY29tcGFyZWREYXRlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBpY2tlck1vbWVudCdzIG1pbnV0ZSB2YWx1ZSArLy0gY2VydGFpbiBhbW91bnQgYW5kIGNvbXBhcmUgaXQgdG8gdGhlIGdpdmUgZGF0ZVxuICAgICAqIDEgaXMgYWZ0ZXIgdGhlIGNvbXBhcmVkRGF0ZVxuICAgICAqIC0xIGlzIGJlZm9yZSB0aGUgY29tcGFyZWREYXRlXG4gICAgICogMCBpcyBlcXVhbCB0aGUgY29tcGFyZWREYXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb21wYXJlTWludXRlcyhhbW91bnQ6IG51bWJlciwgY29tcGFyZWREYXRlOiBUKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbWludXRlcyA9XG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNaW51dGVzKHRoaXMucGlja2VyTW9tZW50KSArIGFtb3VudFxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRNaW51dGVzKFxuICAgICAgICAgICAgdGhpcy5waWNrZXJNb21lbnQsXG4gICAgICAgICAgICBtaW51dGVzXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUocmVzdWx0LCBjb21wYXJlZERhdGUpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGlja2VyTW9tZW50J3Mgc2Vjb25kIHZhbHVlICsvLSBjZXJ0YWluIGFtb3VudCBhbmQgY29tcGFyZSBpdCB0byB0aGUgZ2l2ZSBkYXRlXG4gICAgICogMSBpcyBhZnRlciB0aGUgY29tcGFyZWREYXRlXG4gICAgICogLTEgaXMgYmVmb3JlIHRoZSBjb21wYXJlZERhdGVcbiAgICAgKiAwIGlzIGVxdWFsIHRoZSBjb21wYXJlZERhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbXBhcmVTZWNvbmRzKGFtb3VudDogbnVtYmVyLCBjb21wYXJlZERhdGU6IFQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBzZWNvbmRzID1cbiAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFNlY29uZHModGhpcy5waWNrZXJNb21lbnQpICsgYW1vdW50XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldFNlY29uZHMoXG4gICAgICAgICAgICB0aGlzLnBpY2tlck1vbWVudCxcbiAgICAgICAgICAgIHNlY29uZHNcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuY29tcGFyZShyZXN1bHQsIGNvbXBhcmVkRGF0ZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSB2YWxpZCBkYXRlIG9iamVjdFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VmFsaWREYXRlKG9iajogYW55KTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5pc0RhdGVJbnN0YW5jZShvYmopICYmXG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKG9iailcbiAgICAgICAgICAgID8gb2JqXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgIH1cbn1cbiIsIjxueHQtZGF0ZS10aW1lLXRpbWVyLWJveCBbdXBCdG5BcmlhTGFiZWxdPVwidXBIb3VyQnV0dG9uTGFiZWxcIlxuICAgIFtkb3duQnRuQXJpYUxhYmVsXT1cImRvd25Ib3VyQnV0dG9uTGFiZWxcIlxuICAgIFt1cEJ0bkRpc2FibGVkXT1cIiF1cEhvdXJFbmFibGVkKClcIlxuICAgIFtkb3duQnRuRGlzYWJsZWRdPVwiIWRvd25Ib3VyRW5hYmxlZCgpXCJcbiAgICBbYm94VmFsdWVdPVwiaG91ckJveFZhbHVlXCJcbiAgICBbdmFsdWVdPVwiaG91clZhbHVlXCJcbiAgICBbbWluXT1cIjBcIlxuICAgIFttYXhdPVwiMjNcIlxuICAgIFtzdGVwXT1cInN0ZXBIb3VyXCJcbiAgICBpbnB1dExhYmVsPVwiSG91clwiXG4gICAgKGlucHV0Q2hhbmdlKT1cInNldEhvdXJWYWx1ZVZpYUlucHV0KCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJzZXRIb3VyVmFsdWUoJGV2ZW50KVwiPjwvbnh0LWRhdGUtdGltZS10aW1lci1ib3g+XG48bnh0LWRhdGUtdGltZS10aW1lci1ib3ggW3Nob3dEaXZpZGVyXT1cInRydWVcIlxuICAgIFt1cEJ0bkFyaWFMYWJlbF09XCJ1cE1pbnV0ZUJ1dHRvbkxhYmVsXCJcbiAgICBbZG93bkJ0bkFyaWFMYWJlbF09XCJkb3duTWludXRlQnV0dG9uTGFiZWxcIlxuICAgIFt1cEJ0bkRpc2FibGVkXT1cIiF1cE1pbnV0ZUVuYWJsZWQoKVwiXG4gICAgW2Rvd25CdG5EaXNhYmxlZF09XCIhZG93bk1pbnV0ZUVuYWJsZWQoKVwiXG4gICAgW3ZhbHVlXT1cIm1pbnV0ZVZhbHVlXCJcbiAgICBbbWluXT1cIjBcIlxuICAgIFttYXhdPVwiNTlcIlxuICAgIFtzdGVwXT1cInN0ZXBNaW51dGVcIlxuICAgIGlucHV0TGFiZWw9XCJNaW51dGVcIlxuICAgIChpbnB1dENoYW5nZSk9XCJzZXRNaW51dGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwic2V0TWludXRlVmFsdWUoJGV2ZW50KVwiPjwvbnh0LWRhdGUtdGltZS10aW1lci1ib3g+XG48bnh0LWRhdGUtdGltZS10aW1lci1ib3ggKm5nSWY9XCJzaG93U2Vjb25kc1RpbWVyXCJcbiAgICBbc2hvd0RpdmlkZXJdPVwidHJ1ZVwiXG4gICAgW3VwQnRuQXJpYUxhYmVsXT1cInVwU2Vjb25kQnV0dG9uTGFiZWxcIlxuICAgIFtkb3duQnRuQXJpYUxhYmVsXT1cImRvd25TZWNvbmRCdXR0b25MYWJlbFwiXG4gICAgW3VwQnRuRGlzYWJsZWRdPVwiIXVwU2Vjb25kRW5hYmxlZCgpXCJcbiAgICBbZG93bkJ0bkRpc2FibGVkXT1cIiFkb3duU2Vjb25kRW5hYmxlZCgpXCJcbiAgICBbdmFsdWVdPVwic2Vjb25kVmFsdWVcIlxuICAgIFttaW5dPVwiMFwiXG4gICAgW21heF09XCI1OVwiXG4gICAgW3N0ZXBdPVwic3RlcFNlY29uZFwiXG4gICAgaW5wdXRMYWJlbD1cIlNlY29uZFwiXG4gICAgKGlucHV0Q2hhbmdlKT1cInNldFNlY29uZFZhbHVlKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJzZXRTZWNvbmRWYWx1ZSgkZXZlbnQpXCI+PC9ueHQtZGF0ZS10aW1lLXRpbWVyLWJveD5cblxuPGRpdiAqbmdJZj1cImhvdXIxMlRpbWVyXCJcbiAgICBjbGFzcz1cIm54dC1kdC10aW1lci1ob3VyMTJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibnh0LWR0LWNvbnRyb2wtYnV0dG9uIG54dC1kdC10aW1lci1ob3VyMTItYm94XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIChjbGljayk9XCJzZXRNZXJpZGllbSgkZXZlbnQpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibnh0LWR0LWNvbnRyb2wtYnV0dG9uLWNvbnRlbnRcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAge3tob3VyMTJCdXR0b25MYWJlbH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|