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.
Files changed (51) hide show
  1. package/README.md +53 -53
  2. package/assets/picker.scss +673 -673
  3. package/fesm2022/nxt-pick-datetime-moment-adapter.mjs +23 -26
  4. package/fesm2022/nxt-pick-datetime-moment-adapter.mjs.map +1 -1
  5. package/fesm2022/nxt-pick-datetime-native-adapter.mjs +22 -24
  6. package/fesm2022/nxt-pick-datetime-native-adapter.mjs.map +1 -1
  7. package/fesm2022/nxt-pick-datetime.mjs +77 -75
  8. package/fesm2022/nxt-pick-datetime.mjs.map +1 -1
  9. package/lib/class/date-time.class.d.ts +1 -1
  10. package/moment-adapter/moment-adapter.module.d.ts +2 -0
  11. package/moment-adapter/public-api.d.ts +1 -1
  12. package/native-adapter/native-adapter.module.d.ts +2 -0
  13. package/native-adapter/public-api.d.ts +1 -1
  14. package/package.json +10 -15
  15. package/esm2022/lib/class/date-time-adapter.class.mjs +0 -97
  16. package/esm2022/lib/class/date-time-format.class.mjs +0 -4
  17. package/esm2022/lib/class/date-time.class.mjs +0 -95
  18. package/esm2022/lib/class/dialog-config.class.mjs +0 -47
  19. package/esm2022/lib/class/dialog-ref.class.mjs +0 -119
  20. package/esm2022/lib/date-time/calendar/calendar.component.mjs +0 -346
  21. package/esm2022/lib/date-time/calendar-body/calendar-body.component.mjs +0 -151
  22. package/esm2022/lib/date-time/calendar-month-view/calendar-month-view.component.mjs +0 -429
  23. package/esm2022/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.mjs +0 -358
  24. package/esm2022/lib/date-time/calendar-year-view/calendar-year-view.component.mjs +0 -362
  25. package/esm2022/lib/date-time/date-time-inline/date-time-inline.component.mjs +0 -275
  26. package/esm2022/lib/date-time/date-time-picker/date-time-picker.component.mjs +0 -541
  27. package/esm2022/lib/date-time/date-time-picker-container/date-time-picker-container.animations.mjs +0 -19
  28. package/esm2022/lib/date-time/date-time-picker-container/date-time-picker-container.component.mjs +0 -389
  29. package/esm2022/lib/date-time/date-time-picker-input.directive.mjs +0 -618
  30. package/esm2022/lib/date-time/date-time-picker-intl.service.mjs +0 -61
  31. package/esm2022/lib/date-time/date-time-picker-trigger.directive.mjs +0 -70
  32. package/esm2022/lib/date-time/date-time.module.mjs +0 -96
  33. package/esm2022/lib/date-time/number-fixed-len.pipe.mjs +0 -22
  34. package/esm2022/lib/date-time/timer/timer.component.mjs +0 -299
  35. package/esm2022/lib/date-time/timer-box/timer-box.component.mjs +0 -95
  36. package/esm2022/lib/dialog/dialog-container/dialog-container.component.mjs +0 -248
  37. package/esm2022/lib/dialog/dialog.module.mjs +0 -42
  38. package/esm2022/lib/dialog/dialog.service.mjs +0 -251
  39. package/esm2022/lib/utils/object.mjs +0 -24
  40. package/esm2022/moment-adapter/date-time-adapter.class.mjs +0 -220
  41. package/esm2022/moment-adapter/date-time-format.class.mjs +0 -13
  42. package/esm2022/moment-adapter/moment-adapter.module.mjs +0 -37
  43. package/esm2022/moment-adapter/nxt-pick-datetime-moment-adapter.mjs +0 -5
  44. package/esm2022/moment-adapter/public-api.mjs +0 -3
  45. package/esm2022/native-adapter/date-time-adapter.class.mjs +0 -366
  46. package/esm2022/native-adapter/date-time-format.class.mjs +0 -13
  47. package/esm2022/native-adapter/native-adapter.module.mjs +0 -37
  48. package/esm2022/native-adapter/nxt-pick-datetime-native-adapter.mjs +0 -5
  49. package/esm2022/native-adapter/public-api.mjs +0 -2
  50. package/esm2022/nxt-pick-datetime.mjs +0 -5
  51. 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