nxt-pick-datetime 11.0.0 → 13.0.1
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 +221 -221
- package/assets/picker.scss +668 -668
- package/esm2020/lib/class/date-time-adapter.class.mjs +112 -0
- package/esm2020/lib/class/date-time-format.class.mjs +4 -0
- package/esm2020/lib/class/date-time.class.mjs +161 -0
- package/esm2020/lib/class/dialog-config.class.mjs +56 -0
- package/esm2020/lib/class/dialog-ref.class.mjs +121 -0
- package/esm2020/lib/date-time/calendar/calendar.component.mjs +345 -0
- package/esm2020/lib/date-time/calendar-body/calendar-body.component.mjs +145 -0
- package/esm2020/lib/date-time/calendar-month-view/calendar-month-view.component.mjs +438 -0
- package/esm2020/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.mjs +359 -0
- package/esm2020/lib/date-time/calendar-year-view/calendar-year-view.component.mjs +369 -0
- package/esm2020/lib/date-time/date-time-inline/date-time-inline.component.mjs +264 -0
- package/esm2020/lib/date-time/date-time-picker/date-time-picker.component.mjs +529 -0
- package/esm2020/lib/date-time/date-time-picker-container/date-time-picker-container.animations.mjs +18 -0
- package/esm2020/lib/date-time/date-time-picker-container/date-time-picker-container.component.mjs +390 -0
- package/esm2020/lib/date-time/date-time-picker-input.directive.mjs +624 -0
- package/esm2020/lib/date-time/date-time-picker-intl.service.mjs +61 -0
- package/esm2020/lib/date-time/date-time-picker-trigger.directive.mjs +68 -0
- package/esm2020/lib/date-time/date-time.module.mjs +88 -0
- package/esm2020/lib/date-time/number-fixed-len.pipe.mjs +25 -0
- package/esm2020/lib/date-time/timer/timer.component.mjs +292 -0
- package/esm2020/lib/date-time/timer-box/timer-box.component.mjs +88 -0
- package/esm2020/lib/dialog/dialog-container/dialog-container.component.mjs +243 -0
- package/esm2020/lib/dialog/dialog.module.mjs +34 -0
- package/esm2020/lib/dialog/dialog.service.mjs +240 -0
- package/esm2020/lib/utils/object.mjs +23 -0
- package/esm2020/moment-adapter/date-time-adapter.class.mjs +215 -0
- package/{esm2015/moment-adapter/date-time-format.class.js → esm2020/moment-adapter/date-time-format.class.mjs} +1 -1
- package/esm2020/moment-adapter/moment-adapter.module.mjs +41 -0
- package/esm2020/moment-adapter/nxt-pick-datetime-moment-adapter.mjs +5 -0
- package/{esm2015/moment-adapter/public-api.js → esm2020/moment-adapter/public-api.mjs} +1 -1
- package/esm2020/native-adapter/date-time-adapter.class.mjs +344 -0
- package/{esm2015/native-adapter/date-time-format.class.js → esm2020/native-adapter/date-time-format.class.mjs} +1 -1
- package/esm2020/native-adapter/native-adapter.module.mjs +35 -0
- package/esm2020/native-adapter/nxt-pick-datetime-native-adapter.mjs +5 -0
- package/{esm2015/native-adapter/public-api.js → esm2020/native-adapter/public-api.mjs} +1 -1
- package/esm2020/nxt-pick-datetime.mjs +5 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
- package/fesm2015/nxt-pick-datetime-moment-adapter.mjs +269 -0
- package/fesm2015/nxt-pick-datetime-moment-adapter.mjs.map +1 -0
- package/fesm2015/{nxt-pick-datetime-native-adapter.js → nxt-pick-datetime-native-adapter.mjs} +41 -27
- package/fesm2015/nxt-pick-datetime-native-adapter.mjs.map +1 -0
- package/fesm2015/nxt-pick-datetime.mjs +4974 -0
- package/fesm2015/nxt-pick-datetime.mjs.map +1 -0
- package/{fesm2015/nxt-pick-datetime-moment-adapter.js → fesm2020/nxt-pick-datetime-moment-adapter.mjs} +48 -27
- package/fesm2020/nxt-pick-datetime-moment-adapter.mjs.map +1 -0
- package/fesm2020/nxt-pick-datetime-native-adapter.mjs +390 -0
- package/fesm2020/nxt-pick-datetime-native-adapter.mjs.map +1 -0
- package/{fesm2015/nxt-pick-datetime.js → fesm2020/nxt-pick-datetime.mjs} +2207 -1967
- package/fesm2020/nxt-pick-datetime.mjs.map +1 -0
- package/lib/class/date-time.class.d.ts +3 -0
- package/lib/class/dialog-ref.class.d.ts +2 -0
- package/lib/date-time/calendar/calendar.component.d.ts +3 -0
- package/lib/date-time/calendar-body/calendar-body.component.d.ts +3 -0
- package/lib/date-time/calendar-month-view/calendar-month-view.component.d.ts +3 -0
- package/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.d.ts +3 -0
- package/lib/date-time/calendar-year-view/calendar-year-view.component.d.ts +3 -0
- package/lib/date-time/date-time-inline/date-time-inline.component.d.ts +3 -0
- package/lib/date-time/date-time-picker/date-time-picker.component.d.ts +3 -0
- package/lib/date-time/date-time-picker-container/date-time-picker-container.component.d.ts +3 -0
- package/lib/date-time/date-time-picker-input.directive.d.ts +3 -0
- package/lib/date-time/date-time-picker-intl.service.d.ts +3 -0
- package/lib/date-time/date-time-picker-trigger.directive.d.ts +3 -0
- package/lib/date-time/date-time.module.d.ts +21 -0
- package/lib/date-time/number-fixed-len.pipe.d.ts +3 -0
- package/lib/date-time/timer/timer.component.d.ts +3 -0
- package/lib/date-time/timer-box/timer-box.component.d.ts +3 -0
- package/lib/dialog/dialog-container/dialog-container.component.d.ts +5 -2
- package/lib/dialog/dialog.module.d.ts +9 -0
- package/lib/dialog/dialog.service.d.ts +6 -2
- package/moment-adapter/date-time-adapter.class.d.ts +3 -0
- package/moment-adapter/moment-adapter.module.d.ts +7 -0
- package/moment-adapter/nxt-pick-datetime-moment-adapter.d.ts +1 -3
- package/moment-adapter/package.json +6 -7
- package/native-adapter/date-time-adapter.class.d.ts +3 -0
- package/native-adapter/native-adapter.module.d.ts +8 -0
- package/native-adapter/nxt-pick-datetime-native-adapter.d.ts +1 -3
- package/native-adapter/package.json +6 -7
- package/nxt-pick-datetime.d.ts +1 -14
- package/package.json +44 -13
- package/bundles/nxt-pick-datetime-moment-adapter.umd.js +0 -579
- package/bundles/nxt-pick-datetime-moment-adapter.umd.js.map +0 -1
- package/bundles/nxt-pick-datetime-moment-adapter.umd.min.js +0 -16
- package/bundles/nxt-pick-datetime-moment-adapter.umd.min.js.map +0 -1
- package/bundles/nxt-pick-datetime-native-adapter.umd.js +0 -706
- package/bundles/nxt-pick-datetime-native-adapter.umd.js.map +0 -1
- package/bundles/nxt-pick-datetime-native-adapter.umd.min.js +0 -16
- package/bundles/nxt-pick-datetime-native-adapter.umd.min.js.map +0 -1
- package/bundles/nxt-pick-datetime.umd.js +0 -5809
- package/bundles/nxt-pick-datetime.umd.js.map +0 -1
- package/bundles/nxt-pick-datetime.umd.min.js +0 -17
- package/bundles/nxt-pick-datetime.umd.min.js.map +0 -1
- package/esm2015/lib/class/date-time-adapter.class.js +0 -112
- package/esm2015/lib/class/date-time-format.class.js +0 -4
- package/esm2015/lib/class/date-time.class.js +0 -151
- package/esm2015/lib/class/dialog-config.class.js +0 -56
- package/esm2015/lib/class/dialog-ref.class.js +0 -113
- package/esm2015/lib/date-time/calendar/calendar.component.js +0 -331
- package/esm2015/lib/date-time/calendar-body/calendar-body.component.js +0 -144
- package/esm2015/lib/date-time/calendar-month-view/calendar-month-view.component.js +0 -425
- package/esm2015/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.js +0 -347
- package/esm2015/lib/date-time/calendar-year-view/calendar-year-view.component.js +0 -356
- package/esm2015/lib/date-time/date-time-inline/date-time-inline.component.js +0 -246
- package/esm2015/lib/date-time/date-time-picker/date-time-picker.component.js +0 -511
- package/esm2015/lib/date-time/date-time-picker-container/date-time-picker-container.animations.js +0 -18
- package/esm2015/lib/date-time/date-time-picker-container/date-time-picker-container.component.js +0 -373
- package/esm2015/lib/date-time/date-time-picker-input.directive.js +0 -592
- package/esm2015/lib/date-time/date-time-picker-intl.service.js +0 -59
- package/esm2015/lib/date-time/date-time-picker-trigger.directive.js +0 -63
- package/esm2015/lib/date-time/date-time.module.js +0 -60
- package/esm2015/lib/date-time/number-fixed-len.pipe.js +0 -21
- package/esm2015/lib/date-time/timer/timer.component.js +0 -287
- package/esm2015/lib/date-time/timer-box/timer-box.component.js +0 -77
- package/esm2015/lib/dialog/dialog-container/dialog-container.component.js +0 -202
- package/esm2015/lib/dialog/dialog.module.js +0 -26
- package/esm2015/lib/dialog/dialog.service.js +0 -225
- package/esm2015/lib/utils/object.js +0 -23
- package/esm2015/moment-adapter/date-time-adapter.class.js +0 -206
- package/esm2015/moment-adapter/moment-adapter.module.js +0 -28
- package/esm2015/moment-adapter/nxt-pick-datetime-moment-adapter.js +0 -8
- package/esm2015/native-adapter/date-time-adapter.class.js +0 -342
- package/esm2015/native-adapter/native-adapter.module.js +0 -26
- package/esm2015/native-adapter/nxt-pick-datetime-native-adapter.js +0 -8
- package/esm2015/nxt-pick-datetime.js +0 -19
- package/fesm2015/nxt-pick-datetime-moment-adapter.js.map +0 -1
- package/fesm2015/nxt-pick-datetime-native-adapter.js.map +0 -1
- package/fesm2015/nxt-pick-datetime.js.map +0 -1
- package/moment-adapter/nxt-pick-datetime-moment-adapter.metadata.json +0 -1
- package/native-adapter/nxt-pick-datetime-native-adapter.metadata.json +0 -1
- package/nxt-pick-datetime.metadata.json +0 -1
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class OwlDateTimeIntl {
|
|
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 = 'Add a second';
|
|
13
|
-
/** A label for the down second button (used by screen readers). */
|
|
14
|
-
this.downSecondLabel = 'Minus a second';
|
|
15
|
-
/** A label for the up minute button (used by screen readers). */
|
|
16
|
-
this.upMinuteLabel = 'Add a minute';
|
|
17
|
-
/** A label for the down minute button (used by screen readers). */
|
|
18
|
-
this.downMinuteLabel = 'Minus a minute';
|
|
19
|
-
/** A label for the up hour button (used by screen readers). */
|
|
20
|
-
this.upHourLabel = 'Add a hour';
|
|
21
|
-
/** A label for the down hour button (used by screen readers). */
|
|
22
|
-
this.downHourLabel = 'Minus a hour';
|
|
23
|
-
/** A label for the previous month button (used by screen readers). */
|
|
24
|
-
this.prevMonthLabel = 'Previous month';
|
|
25
|
-
/** A label for the next month button (used by screen readers). */
|
|
26
|
-
this.nextMonthLabel = 'Next month';
|
|
27
|
-
/** A label for the previous year button (used by screen readers). */
|
|
28
|
-
this.prevYearLabel = 'Previous year';
|
|
29
|
-
/** A label for the next year button (used by screen readers). */
|
|
30
|
-
this.nextYearLabel = 'Next year';
|
|
31
|
-
/** A label for the previous multi-year button (used by screen readers). */
|
|
32
|
-
this.prevMultiYearLabel = 'Previous 21 years';
|
|
33
|
-
/** A label for the next multi-year button (used by screen readers). */
|
|
34
|
-
this.nextMultiYearLabel = 'Next 21 years';
|
|
35
|
-
/** A label for the 'switch to month view' button (used by screen readers). */
|
|
36
|
-
this.switchToMonthViewLabel = 'Change to month view';
|
|
37
|
-
/** A label for the 'switch to year view' button (used by screen readers). */
|
|
38
|
-
this.switchToMultiYearViewLabel = 'Choose month and year';
|
|
39
|
-
/** A label for the cancel button */
|
|
40
|
-
this.cancelBtnLabel = 'Cancel';
|
|
41
|
-
/** A label for the set button */
|
|
42
|
-
this.setBtnLabel = 'Set';
|
|
43
|
-
/** A label for the range 'from' in picker info */
|
|
44
|
-
this.rangeFromLabel = 'From';
|
|
45
|
-
/** A label for the range 'to' in picker info */
|
|
46
|
-
this.rangeToLabel = 'To';
|
|
47
|
-
/** A label for the hour12 button (AM) */
|
|
48
|
-
this.hour12AMLabel = 'AM';
|
|
49
|
-
/** A label for the hour12 button (PM) */
|
|
50
|
-
this.hour12PMLabel = 'PM';
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
OwlDateTimeIntl.ɵprov = i0.ɵɵdefineInjectable({ factory: function OwlDateTimeIntl_Factory() { return new OwlDateTimeIntl(); }, token: OwlDateTimeIntl, providedIn: "root" });
|
|
54
|
-
OwlDateTimeIntl.decorators = [
|
|
55
|
-
{ type: Injectable, args: [{
|
|
56
|
-
providedIn: 'root'
|
|
57
|
-
},] }
|
|
58
|
-
];
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci1pbnRsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvbnh0LXBpY2stZGF0ZXRpbWUvc3JjLyIsInNvdXJjZXMiOlsibGliL2RhdGUtdGltZS9kYXRlLXRpbWUtcGlja2VyLWludGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7O0FBSzlCLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBS0k7OztXQUdHO1FBQ00sWUFBTyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFBO1FBRXJELGtFQUFrRTtRQUNsRSxrQkFBYSxHQUFHLGNBQWMsQ0FBQTtRQUU5QixvRUFBb0U7UUFDcEUsb0JBQWUsR0FBRyxnQkFBZ0IsQ0FBQTtRQUVsQyxrRUFBa0U7UUFDbEUsa0JBQWEsR0FBRyxjQUFjLENBQUE7UUFFOUIsb0VBQW9FO1FBQ3BFLG9CQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFFbEMsZ0VBQWdFO1FBQ2hFLGdCQUFXLEdBQUcsWUFBWSxDQUFBO1FBRTFCLGtFQUFrRTtRQUNsRSxrQkFBYSxHQUFHLGNBQWMsQ0FBQTtRQUU5QixzRUFBc0U7UUFDdEUsbUJBQWMsR0FBRyxnQkFBZ0IsQ0FBQTtRQUVqQyxrRUFBa0U7UUFDbEUsbUJBQWMsR0FBRyxZQUFZLENBQUE7UUFFN0IscUVBQXFFO1FBQ3JFLGtCQUFhLEdBQUcsZUFBZSxDQUFBO1FBRS9CLGlFQUFpRTtRQUNqRSxrQkFBYSxHQUFHLFdBQVcsQ0FBQTtRQUUzQiwyRUFBMkU7UUFDM0UsdUJBQWtCLEdBQVcsbUJBQW1CLENBQUE7UUFFaEQsdUVBQXVFO1FBQ3ZFLHVCQUFrQixHQUFXLGVBQWUsQ0FBQTtRQUU1Qyw4RUFBOEU7UUFDOUUsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUE7UUFFL0MsNkVBQTZFO1FBQzdFLCtCQUEwQixHQUFXLHVCQUF1QixDQUFBO1FBRTVELG9DQUFvQztRQUNwQyxtQkFBYyxHQUFHLFFBQVEsQ0FBQTtRQUV6QixpQ0FBaUM7UUFDakMsZ0JBQVcsR0FBRyxLQUFLLENBQUE7UUFFbkIsa0RBQWtEO1FBQ2xELG1CQUFjLEdBQUcsTUFBTSxDQUFBO1FBRXZCLGdEQUFnRDtRQUNoRCxpQkFBWSxHQUFHLElBQUksQ0FBQTtRQUVuQix5Q0FBeUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLENBQUE7UUFFcEIseUNBQXlDO1FBQ3pDLGtCQUFhLEdBQUcsSUFBSSxDQUFBO0tBQ3ZCOzs7O1lBdEVBLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT3dsRGF0ZVRpbWVJbnRsIHtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW5ldmVyIHRoZSBsYWJlbHMgaGVyZSBhcmUgY2hhbmdlZC4gVXNlIHRoaXMgdG8gbm90aWZ5XG4gICAgICogY29tcG9uZW50cyBpZiB0aGUgbGFiZWxzIGhhdmUgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBjaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSB1cCBzZWNvbmQgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gICovXG4gICAgdXBTZWNvbmRMYWJlbCA9ICdBZGQgYSBzZWNvbmQnXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIGRvd24gc2Vjb25kIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICAqL1xuICAgIGRvd25TZWNvbmRMYWJlbCA9ICdNaW51cyBhIHNlY29uZCdcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgdXAgbWludXRlIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICAqL1xuICAgIHVwTWludXRlTGFiZWwgPSAnQWRkIGEgbWludXRlJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBkb3duIG1pbnV0ZSBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAgKi9cbiAgICBkb3duTWludXRlTGFiZWwgPSAnTWludXMgYSBtaW51dGUnXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIHVwIGhvdXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gICovXG4gICAgdXBIb3VyTGFiZWwgPSAnQWRkIGEgaG91cidcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgZG93biBob3VyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICAqL1xuICAgIGRvd25Ib3VyTGFiZWwgPSAnTWludXMgYSBob3VyJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBtb250aCBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIHByZXZNb250aExhYmVsID0gJ1ByZXZpb3VzIG1vbnRoJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBuZXh0IG1vbnRoIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gICAgbmV4dE1vbnRoTGFiZWwgPSAnTmV4dCBtb250aCdcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgcHJldmlvdXMgeWVhciBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIHByZXZZZWFyTGFiZWwgPSAnUHJldmlvdXMgeWVhcidcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgbmV4dCB5ZWFyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gICAgbmV4dFllYXJMYWJlbCA9ICdOZXh0IHllYXInXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlIHByZXZpb3VzIG11bHRpLXllYXIgYnV0dG9uICh1c2VkIGJ5IHNjcmVlbiByZWFkZXJzKS4gKi9cbiAgICBwcmV2TXVsdGlZZWFyTGFiZWw6IHN0cmluZyA9ICdQcmV2aW91cyAyMSB5ZWFycydcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgbmV4dCBtdWx0aS15ZWFyIGJ1dHRvbiAodXNlZCBieSBzY3JlZW4gcmVhZGVycykuICovXG4gICAgbmV4dE11bHRpWWVhckxhYmVsOiBzdHJpbmcgPSAnTmV4dCAyMSB5ZWFycydcblxuICAgIC8qKiBBIGxhYmVsIGZvciB0aGUgJ3N3aXRjaCB0byBtb250aCB2aWV3JyBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIHN3aXRjaFRvTW9udGhWaWV3TGFiZWwgPSAnQ2hhbmdlIHRvIG1vbnRoIHZpZXcnXG5cbiAgICAvKiogQSBsYWJlbCBmb3IgdGhlICdzd2l0Y2ggdG8geWVhciB2aWV3JyBidXR0b24gKHVzZWQgYnkgc2NyZWVuIHJlYWRlcnMpLiAqL1xuICAgIHN3aXRjaFRvTXVsdGlZZWFyVmlld0xhYmVsOiBzdHJpbmcgPSAnQ2hvb3NlIG1vbnRoIGFuZCB5ZWFyJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBjYW5jZWwgYnV0dG9uICovXG4gICAgY2FuY2VsQnRuTGFiZWwgPSAnQ2FuY2VsJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBzZXQgYnV0dG9uICovXG4gICAgc2V0QnRuTGFiZWwgPSAnU2V0J1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSByYW5nZSAnZnJvbScgaW4gcGlja2VyIGluZm8gKi9cbiAgICByYW5nZUZyb21MYWJlbCA9ICdGcm9tJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSByYW5nZSAndG8nIGluIHBpY2tlciBpbmZvICovXG4gICAgcmFuZ2VUb0xhYmVsID0gJ1RvJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBob3VyMTIgYnV0dG9uIChBTSkgKi9cbiAgICBob3VyMTJBTUxhYmVsID0gJ0FNJ1xuXG4gICAgLyoqIEEgbGFiZWwgZm9yIHRoZSBob3VyMTIgYnV0dG9uIChQTSkgKi9cbiAgICBob3VyMTJQTUxhYmVsID0gJ1BNJ1xufVxuIl19
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, HostBinding, HostListener, Input } from '@angular/core';
|
|
2
|
-
import { merge, of as observableOf, Subscription } from 'rxjs';
|
|
3
|
-
import { OwlDateTimeComponent } from './date-time-picker/date-time-picker.component';
|
|
4
|
-
export class OwlDateTimeTriggerDirective {
|
|
5
|
-
constructor(changeDetector) {
|
|
6
|
-
this.changeDetector = changeDetector;
|
|
7
|
-
this.stateChanges = Subscription.EMPTY;
|
|
8
|
-
}
|
|
9
|
-
get disabled() {
|
|
10
|
-
return this._disabled === undefined ? this.dtPicker.disabled : !!this._disabled;
|
|
11
|
-
}
|
|
12
|
-
set disabled(value) {
|
|
13
|
-
this._disabled = value;
|
|
14
|
-
}
|
|
15
|
-
get owlDTTriggerDisabledClass() {
|
|
16
|
-
return this.disabled;
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
}
|
|
20
|
-
ngOnChanges(changes) {
|
|
21
|
-
if (changes.datepicker) {
|
|
22
|
-
this.watchStateChanges();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
ngAfterContentInit() {
|
|
26
|
-
this.watchStateChanges();
|
|
27
|
-
}
|
|
28
|
-
ngOnDestroy() {
|
|
29
|
-
this.stateChanges.unsubscribe();
|
|
30
|
-
}
|
|
31
|
-
handleClickOnHost(event) {
|
|
32
|
-
if (this.dtPicker) {
|
|
33
|
-
this.dtPicker.open();
|
|
34
|
-
event.stopPropagation();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
watchStateChanges() {
|
|
38
|
-
this.stateChanges.unsubscribe();
|
|
39
|
-
const inputDisabled = this.dtPicker && this.dtPicker.dtInput ?
|
|
40
|
-
this.dtPicker.dtInput.disabledChange : observableOf();
|
|
41
|
-
const pickerDisabled = this.dtPicker ?
|
|
42
|
-
this.dtPicker.disabledChange : observableOf();
|
|
43
|
-
this.stateChanges = merge(pickerDisabled, inputDisabled)
|
|
44
|
-
.subscribe(() => {
|
|
45
|
-
this.changeDetector.markForCheck();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
OwlDateTimeTriggerDirective.decorators = [
|
|
50
|
-
{ type: Directive, args: [{
|
|
51
|
-
selector: '[owlDateTimeTrigger]'
|
|
52
|
-
},] }
|
|
53
|
-
];
|
|
54
|
-
OwlDateTimeTriggerDirective.ctorParameters = () => [
|
|
55
|
-
{ type: ChangeDetectorRef }
|
|
56
|
-
];
|
|
57
|
-
OwlDateTimeTriggerDirective.propDecorators = {
|
|
58
|
-
dtPicker: [{ type: Input, args: ['owlDateTimeTrigger',] }],
|
|
59
|
-
disabled: [{ type: Input }],
|
|
60
|
-
owlDTTriggerDisabledClass: [{ type: HostBinding, args: ['class.owl-dt-trigger-disabled',] }],
|
|
61
|
-
handleClickOnHost: [{ type: HostListener, args: ['click', ['$event'],] }]
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9ueHQtcGljay1kYXRldGltZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGF0ZS10aW1lL2RhdGUtdGltZS1waWNrZXItdHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFBO0FBQzdKLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFLcEYsTUFBTSxPQUFPLDJCQUEyQjtJQXFCcEMsWUFBc0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBRi9DLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQTtJQUd6QyxDQUFDO0lBakJELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUMxQixDQUFDO0lBRUQsSUFDSSx5QkFBeUI7UUFDekIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3hCLENBQUM7SUFPTSxRQUFRO0lBQ2YsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7U0FDM0I7SUFDTCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBR00saUJBQWlCLENBQUMsS0FBWTtRQUNqQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ3BCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtTQUMxQjtJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUUvQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUV6RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBRWpELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUM7YUFDbkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDdEMsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDOzs7WUFqRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxzQkFBc0I7YUFDbkM7OztZQU4wQixpQkFBaUI7Ozt1QkFTdkMsS0FBSyxTQUFDLG9CQUFvQjt1QkFHMUIsS0FBSzt3Q0FTTCxXQUFXLFNBQUMsK0JBQStCO2dDQTJCM0MsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1lcmdlLCBvZiBhcyBvYnNlcnZhYmxlT2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBPd2xEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudCdcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbb3dsRGF0ZVRpbWVUcmlnZ2VyXSdcbn0pXG5leHBvcnQgY2xhc3MgT3dsRGF0ZVRpbWVUcmlnZ2VyRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoJ293bERhdGVUaW1lVHJpZ2dlcicpIGR0UGlja2VyOiBPd2xEYXRlVGltZUNvbXBvbmVudDxUPlxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkID09PSB1bmRlZmluZWQgPyB0aGlzLmR0UGlja2VyLmRpc2FibGVkIDogISF0aGlzLl9kaXNhYmxlZFxuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlXG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vd2wtZHQtdHJpZ2dlci1kaXNhYmxlZCcpXG4gICAgZ2V0IG93bERUVHJpZ2dlckRpc2FibGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0ZUNoYW5nZXMgPSBTdWJzY3JpcHRpb24uRU1QVFlcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuZGF0ZXBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy53YXRjaFN0YXRlQ2hhbmdlcygpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLndhdGNoU3RhdGVDaGFuZ2VzKClcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLnVuc3Vic2NyaWJlKClcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGhhbmRsZUNsaWNrT25Ib3N0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kdFBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy5kdFBpY2tlci5vcGVuKClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoU3RhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy51bnN1YnNjcmliZSgpXG5cbiAgICAgICAgY29uc3QgaW5wdXREaXNhYmxlZCA9IHRoaXMuZHRQaWNrZXIgJiYgdGhpcy5kdFBpY2tlci5kdElucHV0ID9cbiAgICAgICAgICAgIHRoaXMuZHRQaWNrZXIuZHRJbnB1dC5kaXNhYmxlZENoYW5nZSA6IG9ic2VydmFibGVPZigpXG5cbiAgICAgICAgY29uc3QgcGlja2VyRGlzYWJsZWQgPSB0aGlzLmR0UGlja2VyID9cbiAgICAgICAgICAgIHRoaXMuZHRQaWNrZXIuZGlzYWJsZWRDaGFuZ2UgOiBvYnNlcnZhYmxlT2YoKVxuXG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzID0gbWVyZ2UocGlja2VyRGlzYWJsZWQsIGlucHV0RGlzYWJsZWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpXG4gICAgICAgICAgICB9KVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,60 +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 { OwlDialogModule } from '../dialog/dialog.module';
|
|
6
|
-
import { OwlCalendarBodyComponent } from './calendar-body/calendar-body.component';
|
|
7
|
-
import { OwlMonthViewComponent } from './calendar-month-view/calendar-month-view.component';
|
|
8
|
-
import { OwlMultiYearViewComponent } from './calendar-multi-year-view/calendar-multi-year-view.component';
|
|
9
|
-
import { OwlYearViewComponent } from './calendar-year-view/calendar-year-view.component';
|
|
10
|
-
import { OwlCalendarComponent } from './calendar/calendar.component';
|
|
11
|
-
import { OwlDateTimeInlineComponent } from './date-time-inline/date-time-inline.component';
|
|
12
|
-
import { OwlDateTimeContainerComponent } from './date-time-picker-container/date-time-picker-container.component';
|
|
13
|
-
import { OwlDateTimeInputDirective } from './date-time-picker-input.directive';
|
|
14
|
-
import { OwlDateTimeIntl } from './date-time-picker-intl.service';
|
|
15
|
-
import { OwlDateTimeTriggerDirective } from './date-time-picker-trigger.directive';
|
|
16
|
-
import { OwlDateTimeComponent, OWL_DTPICKER_SCROLL_STRATEGY_PROVIDER } from './date-time-picker/date-time-picker.component';
|
|
17
|
-
import { NumberFixedLenPipe } from './number-fixed-len.pipe';
|
|
18
|
-
import { OwlTimerBoxComponent } from './timer-box/timer-box.component';
|
|
19
|
-
import { OwlTimerComponent } from './timer/timer.component';
|
|
20
|
-
export class OwlDateTimeModule {
|
|
21
|
-
}
|
|
22
|
-
OwlDateTimeModule.decorators = [
|
|
23
|
-
{ type: NgModule, args: [{
|
|
24
|
-
imports: [CommonModule, OverlayModule, OwlDialogModule, A11yModule],
|
|
25
|
-
exports: [
|
|
26
|
-
OwlCalendarComponent,
|
|
27
|
-
OwlTimerComponent,
|
|
28
|
-
OwlDateTimeTriggerDirective,
|
|
29
|
-
OwlDateTimeInputDirective,
|
|
30
|
-
OwlDateTimeComponent,
|
|
31
|
-
OwlDateTimeInlineComponent,
|
|
32
|
-
OwlMultiYearViewComponent,
|
|
33
|
-
OwlYearViewComponent,
|
|
34
|
-
OwlMonthViewComponent
|
|
35
|
-
],
|
|
36
|
-
declarations: [
|
|
37
|
-
OwlDateTimeTriggerDirective,
|
|
38
|
-
OwlDateTimeInputDirective,
|
|
39
|
-
OwlDateTimeComponent,
|
|
40
|
-
OwlDateTimeContainerComponent,
|
|
41
|
-
OwlMultiYearViewComponent,
|
|
42
|
-
OwlYearViewComponent,
|
|
43
|
-
OwlMonthViewComponent,
|
|
44
|
-
OwlTimerComponent,
|
|
45
|
-
OwlTimerBoxComponent,
|
|
46
|
-
OwlCalendarComponent,
|
|
47
|
-
OwlCalendarBodyComponent,
|
|
48
|
-
NumberFixedLenPipe,
|
|
49
|
-
OwlDateTimeInlineComponent
|
|
50
|
-
],
|
|
51
|
-
providers: [
|
|
52
|
-
OwlDateTimeIntl,
|
|
53
|
-
OWL_DTPICKER_SCROLL_STRATEGY_PROVIDER
|
|
54
|
-
],
|
|
55
|
-
entryComponents: [
|
|
56
|
-
OwlDateTimeContainerComponent
|
|
57
|
-
]
|
|
58
|
-
},] }
|
|
59
|
-
];
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9ueHQtcGljay1kYXRldGltZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGF0ZS10aW1lL2RhdGUtdGltZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUE7QUFDM0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDMUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUVBQW1FLENBQUE7QUFDakgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQzNILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBcUMzRCxNQUFNLE9BQU8saUJBQWlCOzs7WUFwQzdCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUM7Z0JBQ25FLE9BQU8sRUFBRTtvQkFDTCxvQkFBb0I7b0JBQ3BCLGlCQUFpQjtvQkFDakIsMkJBQTJCO29CQUMzQix5QkFBeUI7b0JBQ3pCLG9CQUFvQjtvQkFDcEIsMEJBQTBCO29CQUMxQix5QkFBeUI7b0JBQ3pCLG9CQUFvQjtvQkFDcEIscUJBQXFCO2lCQUN4QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1YsMkJBQTJCO29CQUMzQix5QkFBeUI7b0JBQ3pCLG9CQUFvQjtvQkFDcEIsNkJBQTZCO29CQUM3Qix5QkFBeUI7b0JBQ3pCLG9CQUFvQjtvQkFDcEIscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUNwQix3QkFBd0I7b0JBQ3hCLGtCQUFrQjtvQkFDbEIsMEJBQTBCO2lCQUM3QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsZUFBZTtvQkFDZixxQ0FBcUM7aUJBQ3hDO2dCQUNELGVBQWUsRUFBRTtvQkFDYiw2QkFBNkI7aUJBQ2hDO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXHJcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE93bERpYWxvZ01vZHVsZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJ1xyXG5pbXBvcnQgeyBPd2xDYWxlbmRhckJvZHlDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLWJvZHkvY2FsZW5kYXItYm9keS5jb21wb25lbnQnXHJcbmltcG9ydCB7IE93bE1vbnRoVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItbW9udGgtdmlldy9jYWxlbmRhci1tb250aC12aWV3LmNvbXBvbmVudCdcclxuaW1wb3J0IHsgT3dsTXVsdGlZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItbXVsdGkteWVhci12aWV3L2NhbGVuZGFyLW11bHRpLXllYXItdmlldy5jb21wb25lbnQnXHJcbmltcG9ydCB7IE93bFllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci15ZWFyLXZpZXcvY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudCdcclxuaW1wb3J0IHsgT3dsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgT3dsRGF0ZVRpbWVJbmxpbmVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtdGltZS1pbmxpbmUvZGF0ZS10aW1lLWlubGluZS5jb21wb25lbnQnXHJcbmltcG9ydCB7IE93bERhdGVUaW1lQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyLWNvbnRhaW5lci9kYXRlLXRpbWUtcGlja2VyLWNvbnRhaW5lci5jb21wb25lbnQnXHJcbmltcG9ydCB7IE93bERhdGVUaW1lSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXItaW5wdXQuZGlyZWN0aXZlJ1xyXG5pbXBvcnQgeyBPd2xEYXRlVGltZUludGwgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXItaW50bC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBPd2xEYXRlVGltZVRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RhdGUtdGltZS1waWNrZXItdHJpZ2dlci5kaXJlY3RpdmUnXHJcbmltcG9ydCB7IE93bERhdGVUaW1lQ29tcG9uZW50LCBPV0xfRFRQSUNLRVJfU0NST0xMX1NUUkFURUdZX1BST1ZJREVSIH0gZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBOdW1iZXJGaXhlZExlblBpcGUgfSBmcm9tICcuL251bWJlci1maXhlZC1sZW4ucGlwZSdcclxuaW1wb3J0IHsgT3dsVGltZXJCb3hDb21wb25lbnQgfSBmcm9tICcuL3RpbWVyLWJveC90aW1lci1ib3guY29tcG9uZW50J1xyXG5pbXBvcnQgeyBPd2xUaW1lckNvbXBvbmVudCB9IGZyb20gJy4vdGltZXIvdGltZXIuY29tcG9uZW50J1xyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZSwgT3dsRGlhbG9nTW9kdWxlLCBBMTF5TW9kdWxlXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBPd2xDYWxlbmRhckNvbXBvbmVudCxcclxuICAgICAgICBPd2xUaW1lckNvbXBvbmVudCxcclxuICAgICAgICBPd2xEYXRlVGltZVRyaWdnZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgT3dsRGF0ZVRpbWVJbnB1dERpcmVjdGl2ZSxcclxuICAgICAgICBPd2xEYXRlVGltZUNvbXBvbmVudCxcclxuICAgICAgICBPd2xEYXRlVGltZUlubGluZUNvbXBvbmVudCxcclxuICAgICAgICBPd2xNdWx0aVllYXJWaWV3Q29tcG9uZW50LFxyXG4gICAgICAgIE93bFllYXJWaWV3Q29tcG9uZW50LFxyXG4gICAgICAgIE93bE1vbnRoVmlld0NvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIE93bERhdGVUaW1lVHJpZ2dlckRpcmVjdGl2ZSxcclxuICAgICAgICBPd2xEYXRlVGltZUlucHV0RGlyZWN0aXZlLFxyXG4gICAgICAgIE93bERhdGVUaW1lQ29tcG9uZW50LFxyXG4gICAgICAgIE93bERhdGVUaW1lQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgICAgIE93bE11bHRpWWVhclZpZXdDb21wb25lbnQsXHJcbiAgICAgICAgT3dsWWVhclZpZXdDb21wb25lbnQsXHJcbiAgICAgICAgT3dsTW9udGhWaWV3Q29tcG9uZW50LFxyXG4gICAgICAgIE93bFRpbWVyQ29tcG9uZW50LFxyXG4gICAgICAgIE93bFRpbWVyQm94Q29tcG9uZW50LFxyXG4gICAgICAgIE93bENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgICAgIE93bENhbGVuZGFyQm9keUNvbXBvbmVudCxcclxuICAgICAgICBOdW1iZXJGaXhlZExlblBpcGUsXHJcbiAgICAgICAgT3dsRGF0ZVRpbWVJbmxpbmVDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBPd2xEYXRlVGltZUludGwsXHJcbiAgICAgICAgT1dMX0RUUElDS0VSX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUlxyXG4gICAgXSxcclxuICAgIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgICAgIE93bERhdGVUaW1lQ29udGFpbmVyQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPd2xEYXRlVGltZU1vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
export class NumberFixedLenPipe {
|
|
3
|
-
transform(num, len) {
|
|
4
|
-
const number = Math.floor(num);
|
|
5
|
-
const length = Math.floor(len);
|
|
6
|
-
if (num === null || isNaN(number) || isNaN(length)) {
|
|
7
|
-
return num;
|
|
8
|
-
}
|
|
9
|
-
let numString = number.toString();
|
|
10
|
-
while (numString.length < length) {
|
|
11
|
-
numString = '0' + numString;
|
|
12
|
-
}
|
|
13
|
-
return numString;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
NumberFixedLenPipe.decorators = [
|
|
17
|
-
{ type: Pipe, args: [{
|
|
18
|
-
name: 'numberFixedLen'
|
|
19
|
-
},] }
|
|
20
|
-
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpeGVkLWxlbi5waXBlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL254dC1waWNrLWRhdGV0aW1lL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kYXRlLXRpbWUvbnVtYmVyLWZpeGVkLWxlbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBS25ELE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsU0FBUyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUU5QixJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoRCxPQUFPLEdBQUcsQ0FBQTtTQUNiO1FBRUQsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBRWpDLE9BQU8sU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUU7WUFDOUIsU0FBUyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUE7U0FDOUI7UUFFRCxPQUFPLFNBQVMsQ0FBQTtJQUNwQixDQUFDOzs7WUFuQkosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxnQkFBZ0I7YUFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdudW1iZXJGaXhlZExlbidcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyRml4ZWRMZW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKG51bTogbnVtYmVyLCBsZW46IG51bWJlcik6IGFueSB7XG4gICAgICAgIGNvbnN0IG51bWJlciA9IE1hdGguZmxvb3IobnVtKVxuICAgICAgICBjb25zdCBsZW5ndGggPSBNYXRoLmZsb29yKGxlbilcblxuICAgICAgICBpZiAobnVtID09PSBudWxsIHx8IGlzTmFOKG51bWJlcikgfHwgaXNOYU4obGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG51bVN0cmluZyA9IG51bWJlci50b1N0cmluZygpXG5cbiAgICAgICAgd2hpbGUgKG51bVN0cmluZy5sZW5ndGggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIG51bVN0cmluZyA9ICcwJyArIG51bVN0cmluZ1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bVN0cmluZ1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, NgZone, Optional, Output } from '@angular/core';
|
|
2
|
-
import { take } from 'rxjs/operators';
|
|
3
|
-
import { DateTimeAdapter } from '../../class/date-time-adapter.class';
|
|
4
|
-
import { OwlDateTimeIntl } from '../date-time-picker-intl.service';
|
|
5
|
-
export class OwlTimerComponent {
|
|
6
|
-
constructor(ngZone, elmRef, pickerIntl, cdRef, dateTimeAdapter) {
|
|
7
|
-
this.ngZone = ngZone;
|
|
8
|
-
this.elmRef = elmRef;
|
|
9
|
-
this.pickerIntl = pickerIntl;
|
|
10
|
-
this.cdRef = cdRef;
|
|
11
|
-
this.dateTimeAdapter = dateTimeAdapter;
|
|
12
|
-
this.isPM = false; // a flag indicates the current timer moment is in PM or AM
|
|
13
|
-
/**
|
|
14
|
-
* Hours to change per step
|
|
15
|
-
*/
|
|
16
|
-
this.stepHour = 1;
|
|
17
|
-
/**
|
|
18
|
-
* Minutes to change per step
|
|
19
|
-
*/
|
|
20
|
-
this.stepMinute = 1;
|
|
21
|
-
/**
|
|
22
|
-
* Seconds to change per step
|
|
23
|
-
*/
|
|
24
|
-
this.stepSecond = 1;
|
|
25
|
-
this.selectedChange = new EventEmitter();
|
|
26
|
-
}
|
|
27
|
-
get pickerMoment() {
|
|
28
|
-
return this._pickerMoment;
|
|
29
|
-
}
|
|
30
|
-
set pickerMoment(value) {
|
|
31
|
-
value = this.dateTimeAdapter.deserialize(value);
|
|
32
|
-
this._pickerMoment =
|
|
33
|
-
this.getValidDate(value) || this.dateTimeAdapter.now();
|
|
34
|
-
}
|
|
35
|
-
get minDateTime() {
|
|
36
|
-
return this._minDateTime;
|
|
37
|
-
}
|
|
38
|
-
set minDateTime(value) {
|
|
39
|
-
value = this.dateTimeAdapter.deserialize(value);
|
|
40
|
-
this._minDateTime = this.getValidDate(value);
|
|
41
|
-
}
|
|
42
|
-
get maxDateTime() {
|
|
43
|
-
return this._maxDateTime;
|
|
44
|
-
}
|
|
45
|
-
set maxDateTime(value) {
|
|
46
|
-
value = this.dateTimeAdapter.deserialize(value);
|
|
47
|
-
this._maxDateTime = this.getValidDate(value);
|
|
48
|
-
}
|
|
49
|
-
get hourValue() {
|
|
50
|
-
return this.dateTimeAdapter.getHours(this.pickerMoment);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* The value would be displayed in hourBox.
|
|
54
|
-
* We need this because the value displayed in hourBox it not
|
|
55
|
-
* the same as the hourValue when the timer is in hour12Timer mode.
|
|
56
|
-
* */
|
|
57
|
-
get hourBoxValue() {
|
|
58
|
-
let hours = this.hourValue;
|
|
59
|
-
if (!this.hour12Timer) {
|
|
60
|
-
return hours;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
if (hours === 0) {
|
|
64
|
-
hours = 12;
|
|
65
|
-
this.isPM = false;
|
|
66
|
-
}
|
|
67
|
-
else if (hours > 0 && hours < 12) {
|
|
68
|
-
this.isPM = false;
|
|
69
|
-
}
|
|
70
|
-
else if (hours === 12) {
|
|
71
|
-
this.isPM = true;
|
|
72
|
-
}
|
|
73
|
-
else if (hours > 12 && hours < 24) {
|
|
74
|
-
hours = hours - 12;
|
|
75
|
-
this.isPM = true;
|
|
76
|
-
}
|
|
77
|
-
return hours;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
get minuteValue() {
|
|
81
|
-
return this.dateTimeAdapter.getMinutes(this.pickerMoment);
|
|
82
|
-
}
|
|
83
|
-
get secondValue() {
|
|
84
|
-
return this.dateTimeAdapter.getSeconds(this.pickerMoment);
|
|
85
|
-
}
|
|
86
|
-
get upHourButtonLabel() {
|
|
87
|
-
return this.pickerIntl.upHourLabel;
|
|
88
|
-
}
|
|
89
|
-
get downHourButtonLabel() {
|
|
90
|
-
return this.pickerIntl.downHourLabel;
|
|
91
|
-
}
|
|
92
|
-
get upMinuteButtonLabel() {
|
|
93
|
-
return this.pickerIntl.upMinuteLabel;
|
|
94
|
-
}
|
|
95
|
-
get downMinuteButtonLabel() {
|
|
96
|
-
return this.pickerIntl.downMinuteLabel;
|
|
97
|
-
}
|
|
98
|
-
get upSecondButtonLabel() {
|
|
99
|
-
return this.pickerIntl.upSecondLabel;
|
|
100
|
-
}
|
|
101
|
-
get downSecondButtonLabel() {
|
|
102
|
-
return this.pickerIntl.downSecondLabel;
|
|
103
|
-
}
|
|
104
|
-
get hour12ButtonLabel() {
|
|
105
|
-
return this.isPM
|
|
106
|
-
? this.pickerIntl.hour12PMLabel
|
|
107
|
-
: this.pickerIntl.hour12AMLabel;
|
|
108
|
-
}
|
|
109
|
-
get owlDTTimerClass() {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
get owlDTTimeTabIndex() {
|
|
113
|
-
return -1;
|
|
114
|
-
}
|
|
115
|
-
ngOnInit() { }
|
|
116
|
-
/**
|
|
117
|
-
* Focus to the host element
|
|
118
|
-
* */
|
|
119
|
-
focus() {
|
|
120
|
-
this.ngZone.runOutsideAngular(() => {
|
|
121
|
-
this.ngZone.onStable
|
|
122
|
-
.asObservable()
|
|
123
|
-
.pipe(take(1))
|
|
124
|
-
.subscribe(() => {
|
|
125
|
-
this.elmRef.nativeElement.focus();
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Set the hour value via typing into timer box input
|
|
131
|
-
* We need this to handle the hour value when the timer is in hour12 mode
|
|
132
|
-
* */
|
|
133
|
-
setHourValueViaInput(hours) {
|
|
134
|
-
if (this.hour12Timer && this.isPM && hours >= 1 && hours <= 11) {
|
|
135
|
-
hours = hours + 12;
|
|
136
|
-
}
|
|
137
|
-
else if (this.hour12Timer && !this.isPM && hours === 12) {
|
|
138
|
-
hours = 0;
|
|
139
|
-
}
|
|
140
|
-
this.setHourValue(hours);
|
|
141
|
-
}
|
|
142
|
-
setHourValue(hours) {
|
|
143
|
-
const m = this.dateTimeAdapter.setHours(this.pickerMoment, hours);
|
|
144
|
-
this.selectedChange.emit(m);
|
|
145
|
-
this.cdRef.markForCheck();
|
|
146
|
-
}
|
|
147
|
-
setMinuteValue(minutes) {
|
|
148
|
-
const m = this.dateTimeAdapter.setMinutes(this.pickerMoment, minutes);
|
|
149
|
-
this.selectedChange.emit(m);
|
|
150
|
-
this.cdRef.markForCheck();
|
|
151
|
-
}
|
|
152
|
-
setSecondValue(seconds) {
|
|
153
|
-
const m = this.dateTimeAdapter.setSeconds(this.pickerMoment, seconds);
|
|
154
|
-
this.selectedChange.emit(m);
|
|
155
|
-
this.cdRef.markForCheck();
|
|
156
|
-
}
|
|
157
|
-
setMeridiem(event) {
|
|
158
|
-
this.isPM = !this.isPM;
|
|
159
|
-
let hours = this.hourValue;
|
|
160
|
-
if (this.isPM) {
|
|
161
|
-
hours = hours + 12;
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
hours = hours - 12;
|
|
165
|
-
}
|
|
166
|
-
if (hours >= 0 && hours <= 23) {
|
|
167
|
-
this.setHourValue(hours);
|
|
168
|
-
}
|
|
169
|
-
this.cdRef.markForCheck();
|
|
170
|
-
event.preventDefault();
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Check if the up hour button is enabled
|
|
174
|
-
*/
|
|
175
|
-
upHourEnabled() {
|
|
176
|
-
return (!this.maxDateTime ||
|
|
177
|
-
this.compareHours(this.stepHour, this.maxDateTime) < 1);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Check if the down hour button is enabled
|
|
181
|
-
*/
|
|
182
|
-
downHourEnabled() {
|
|
183
|
-
return (!this.minDateTime ||
|
|
184
|
-
this.compareHours(-this.stepHour, this.minDateTime) > -1);
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Check if the up minute button is enabled
|
|
188
|
-
*/
|
|
189
|
-
upMinuteEnabled() {
|
|
190
|
-
return (!this.maxDateTime ||
|
|
191
|
-
this.compareMinutes(this.stepMinute, this.maxDateTime) < 1);
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Check if the down minute button is enabled
|
|
195
|
-
*/
|
|
196
|
-
downMinuteEnabled() {
|
|
197
|
-
return (!this.minDateTime ||
|
|
198
|
-
this.compareMinutes(-this.stepMinute, this.minDateTime) > -1);
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Check if the up second button is enabled
|
|
202
|
-
*/
|
|
203
|
-
upSecondEnabled() {
|
|
204
|
-
return (!this.maxDateTime ||
|
|
205
|
-
this.compareSeconds(this.stepSecond, this.maxDateTime) < 1);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Check if the down second button is enabled
|
|
209
|
-
*/
|
|
210
|
-
downSecondEnabled() {
|
|
211
|
-
return (!this.minDateTime ||
|
|
212
|
-
this.compareSeconds(-this.stepSecond, this.minDateTime) > -1);
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* PickerMoment's hour value +/- certain amount and compare it to the give date
|
|
216
|
-
* 1 is after the comparedDate
|
|
217
|
-
* -1 is before the comparedDate
|
|
218
|
-
* 0 is equal the comparedDate
|
|
219
|
-
* */
|
|
220
|
-
compareHours(amount, comparedDate) {
|
|
221
|
-
const hours = this.dateTimeAdapter.getHours(this.pickerMoment) + amount;
|
|
222
|
-
const result = this.dateTimeAdapter.setHours(this.pickerMoment, hours);
|
|
223
|
-
return this.dateTimeAdapter.compare(result, comparedDate);
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* PickerMoment's minute value +/- certain amount and compare it to the give date
|
|
227
|
-
* 1 is after the comparedDate
|
|
228
|
-
* -1 is before the comparedDate
|
|
229
|
-
* 0 is equal the comparedDate
|
|
230
|
-
* */
|
|
231
|
-
compareMinutes(amount, comparedDate) {
|
|
232
|
-
const minutes = this.dateTimeAdapter.getMinutes(this.pickerMoment) + amount;
|
|
233
|
-
const result = this.dateTimeAdapter.setMinutes(this.pickerMoment, minutes);
|
|
234
|
-
return this.dateTimeAdapter.compare(result, comparedDate);
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* PickerMoment's second value +/- certain amount and compare it to the give date
|
|
238
|
-
* 1 is after the comparedDate
|
|
239
|
-
* -1 is before the comparedDate
|
|
240
|
-
* 0 is equal the comparedDate
|
|
241
|
-
* */
|
|
242
|
-
compareSeconds(amount, comparedDate) {
|
|
243
|
-
const seconds = this.dateTimeAdapter.getSeconds(this.pickerMoment) + amount;
|
|
244
|
-
const result = this.dateTimeAdapter.setSeconds(this.pickerMoment, seconds);
|
|
245
|
-
return this.dateTimeAdapter.compare(result, comparedDate);
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Get a valid date object
|
|
249
|
-
*/
|
|
250
|
-
getValidDate(obj) {
|
|
251
|
-
return this.dateTimeAdapter.isDateInstance(obj) &&
|
|
252
|
-
this.dateTimeAdapter.isValid(obj)
|
|
253
|
-
? obj
|
|
254
|
-
: null;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
OwlTimerComponent.decorators = [
|
|
258
|
-
{ type: Component, args: [{
|
|
259
|
-
exportAs: 'owlDateTimeTimer',
|
|
260
|
-
selector: 'owl-date-time-timer',
|
|
261
|
-
template: "<owl-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)\"></owl-date-time-timer-box>\n<owl-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)\"></owl-date-time-timer-box>\n<owl-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)\"></owl-date-time-timer-box>\n\n<div *ngIf=\"hour12Timer\"\n class=\"owl-dt-timer-hour12\">\n <button class=\"owl-dt-control-button owl-dt-timer-hour12-box\"\n type=\"button\"\n tabindex=\"0\"\n (click)=\"setMeridiem($event)\">\n <span class=\"owl-dt-control-button-content\"\n tabindex=\"-1\">\n {{hour12ButtonLabel}}\n </span>\n </button>\n</div>\n",
|
|
262
|
-
preserveWhitespaces: false,
|
|
263
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
264
|
-
styles: [""]
|
|
265
|
-
},] }
|
|
266
|
-
];
|
|
267
|
-
OwlTimerComponent.ctorParameters = () => [
|
|
268
|
-
{ type: NgZone },
|
|
269
|
-
{ type: ElementRef },
|
|
270
|
-
{ type: OwlDateTimeIntl },
|
|
271
|
-
{ type: ChangeDetectorRef },
|
|
272
|
-
{ type: DateTimeAdapter, decorators: [{ type: Optional }] }
|
|
273
|
-
];
|
|
274
|
-
OwlTimerComponent.propDecorators = {
|
|
275
|
-
pickerMoment: [{ type: Input }],
|
|
276
|
-
minDateTime: [{ type: Input }],
|
|
277
|
-
maxDateTime: [{ type: Input }],
|
|
278
|
-
showSecondsTimer: [{ type: Input }],
|
|
279
|
-
hour12Timer: [{ type: Input }],
|
|
280
|
-
stepHour: [{ type: Input }],
|
|
281
|
-
stepMinute: [{ type: Input }],
|
|
282
|
-
stepSecond: [{ type: Input }],
|
|
283
|
-
selectedChange: [{ type: Output }],
|
|
284
|
-
owlDTTimerClass: [{ type: HostBinding, args: ['class.owl-dt-timer',] }],
|
|
285
|
-
owlDTTimeTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }]
|
|
286
|
-
};
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL254dC1waWNrLWRhdGV0aW1lL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kYXRlLXRpbWUvdGltZXIvdGltZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3JLLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBVWxFLE1BQU0sT0FBTyxpQkFBaUI7SUF3SjFCLFlBQ1ksTUFBYyxFQUNkLE1BQWtCLEVBQ2xCLFVBQTJCLEVBQzNCLEtBQXdCLEVBQ1osZUFBbUM7UUFKL0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDWixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUF2SG5ELFNBQUksR0FBWSxLQUFLLENBQUEsQ0FBQywyREFBMkQ7UUFjekY7O1dBRUc7UUFFSCxhQUFRLEdBQUcsQ0FBQyxDQUFBO1FBRVo7O1dBRUc7UUFFSCxlQUFVLEdBQUcsQ0FBQyxDQUFBO1FBRWQ7O1dBRUc7UUFFSCxlQUFVLEdBQUcsQ0FBQyxDQUFBO1FBd0VkLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQTtJQWtCbEMsQ0FBQztJQTNKTCxJQUNJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUE7SUFD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SSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQTtRQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FDMUMsSUFBSSxDQUFDLFlBQVksRUFDakIsT0FBTyxDQUNWLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZLENBQUMsR0FBUTtRQUN6QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztZQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDakMsQ0FBQyxDQUFDLEdBQUc7WUFDTCxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ2QsQ0FBQzs7O1lBMVZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixtMERBQXFDO2dCQUVyQyxtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQVo2RyxNQUFNO1lBQXBELFVBQVU7WUFHakUsZUFBZTtZQUhVLGlCQUFpQjtZQUUxQyxlQUFlLHVCQXdLZixRQUFROzs7MkJBMUpaLEtBQUs7MEJBYUwsS0FBSzswQkFZTCxLQUFLOytCQWVMLEtBQUs7MEJBTUwsS0FBSzt1QkFNTCxLQUFLO3lCQU1MLEtBQUs7eUJBTUwsS0FBSzs2QkF3RUwsTUFBTTs4QkFHTixXQUFXLFNBQUMsb0JBQW9CO2dDQUtoQyxXQUFXLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgTmdab25lLCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgRGF0ZVRpbWVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3MvZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MnXG5pbXBvcnQgeyBPd2xEYXRlVGltZUludGwgfSBmcm9tICcuLi9kYXRlLXRpbWUtcGlja2VyLWludGwuc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gICAgZXhwb3J0QXM6ICdvd2xEYXRlVGltZVRpbWVyJyxcbiAgICBzZWxlY3RvcjogJ293bC1kYXRlLXRpbWUtdGltZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aW1lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGltZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBPd2xUaW1lckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIFRoZSBjdXJyZW50IHBpY2tlciBtb21lbnQgKi9cbiAgICBwcml2YXRlIF9waWNrZXJNb21lbnQ6IFRcbiAgICBASW5wdXQoKVxuICAgIGdldCBwaWNrZXJNb21lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9waWNrZXJNb21lbnRcbiAgICB9XG5cbiAgICBzZXQgcGlja2VyTW9tZW50KHZhbHVlOiBUKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpXG4gICAgICAgIHRoaXMuX3BpY2tlck1vbWVudCA9XG4gICAgICAgICAgICB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSkgfHwgdGhpcy5kYXRlVGltZUFkYXB0ZXIubm93KClcbiAgICB9XG5cbiAgICAvKiogVGhlIG1pbmltdW0gc2VsZWN0YWJsZSBkYXRlIHRpbWUuICovXG4gICAgcHJpdmF0ZSBfbWluRGF0ZVRpbWU6IFQgfCBudWxsXG4gICAgQElucHV0KClcbiAgICBnZXQgbWluRGF0ZVRpbWUoKTogVCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluRGF0ZVRpbWVcbiAgICB9XG5cbiAgICBzZXQgbWluRGF0ZVRpbWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpXG4gICAgICAgIHRoaXMuX21pbkRhdGVUaW1lID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpXG4gICAgfVxuXG4gICAgLyoqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZSB0aW1lLiAqL1xuICAgIHByaXZhdGUgX21heERhdGVUaW1lOiBUIHwgbnVsbFxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG1heERhdGVUaW1lKCk6IFQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heERhdGVUaW1lXG4gICAgfVxuXG4gICAgc2V0IG1heERhdGVUaW1lKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKVxuICAgICAgICB0aGlzLl9tYXhEYXRlVGltZSA9IHRoaXMuZ2V0VmFsaWREYXRlKHZhbHVlKVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNQTTogYm9vbGVhbiA9IGZhbHNlIC8vIGEgZmxhZyBpbmRpY2F0ZXMgdGhlIGN1cnJlbnQgdGltZXIgbW9tZW50IGlzIGluIFBNIG9yIEFNXG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIHNlY29uZCdzIHRpbWVyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93U2Vjb25kc1RpbWVyOiBib29sZWFuXG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0aW1lciBpcyBpbiBob3VyMTIgZm9ybWF0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBob3VyMTJUaW1lcjogYm9vbGVhblxuXG4gICAgLyoqXG4gICAgICogSG91cnMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGVwSG91ciA9IDFcblxuICAgIC8qKlxuICAgICAqIE1pbnV0ZXMgdG8gY2hhbmdlIHBlciBzdGVwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGVwTWludXRlID0gMVxuXG4gICAgLyoqXG4gICAgICogU2Vjb25kcyB0byBjaGFuZ2UgcGVyIHN0ZXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0ZXBTZWNvbmQgPSAxXG5cbiAgICBnZXQgaG91clZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRIb3Vycyh0aGlzLnBpY2tlck1vbWVudClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgd291bGQgYmUgZGlzcGxheWVkIGluIGhvdXJCb3guXG4gICAgICogV2UgbmVlZCB0aGlzIGJlY2F1c2UgdGhlIHZhbHVlIGRpc3BsYXllZCBpbiBob3VyQm94IGl0IG5vdFxuICAgICAqIHRoZSBzYW1lIGFzIHRoZSBob3VyVmFsdWUgd2hlbiB0aGUgdGltZXIgaXMgaW4gaG91cjEyVGltZXIgbW9kZS5cbiAgICAgKiAqL1xuICAgIGdldCBob3VyQm94VmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGhvdXJzID0gdGhpcy5ob3VyVmFsdWVcblxuICAgICAgICBpZiAoIXRoaXMuaG91cjEyVGltZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBob3Vyc1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGhvdXJzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaG91cnMgPSAxMlxuICAgICAgICAgICAgICAgIHRoaXMuaXNQTSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzID4gMCAmJiBob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1BNID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1BNID0gdHJ1ZVxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA+IDEyICYmIGhvdXJzIDwgMjQpIHtcbiAgICAgICAgICAgICAgICBob3VycyA9IGhvdXJzIC0gMTJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUE0gPSB0cnVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBob3Vyc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IG1pbnV0ZVZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNaW51dGVzKHRoaXMucGlja2VyTW9tZW50KVxuICAgIH1cblxuICAgIGdldCBzZWNvbmRWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0U2Vjb25kcyh0aGlzLnBpY2tlck1vbWVudClcbiAgICB9XG5cbiAgICBnZXQgdXBIb3VyQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC51cEhvdXJMYWJlbFxuICAgIH1cblxuICAgIGdldCBkb3duSG91ckJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwuZG93bkhvdXJMYWJlbFxuICAgIH1cblxuICAgIGdldCB1cE1pbnV0ZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwudXBNaW51dGVMYWJlbFxuICAgIH1cblxuICAgIGdldCBkb3duTWludXRlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5kb3duTWludXRlTGFiZWxcbiAgICB9XG5cbiAgICBnZXQgdXBTZWNvbmRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJJbnRsLnVwU2Vjb25kTGFiZWxcbiAgICB9XG5cbiAgICBnZXQgZG93blNlY29uZEJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwuZG93blNlY29uZExhYmVsXG4gICAgfVxuXG4gICAgZ2V0IGhvdXIxMkJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUE1cbiAgICAgICAgICAgID8gdGhpcy5waWNrZXJJbnRsLmhvdXIxMlBNTGFiZWxcbiAgICAgICAgICAgIDogdGhpcy5waWNrZXJJbnRsLmhvdXIxMkFNTGFiZWxcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vd2wtZHQtdGltZXInKVxuICAgIGdldCBvd2xEVFRpbWVyQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBnZXQgb3dsRFRUaW1lVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIC0xXG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZWxtUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHBpY2tlckludGw6IE93bERhdGVUaW1lSW50bCxcbiAgICAgICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGF0ZVRpbWVBZGFwdGVyOiBEYXRlVGltZUFkYXB0ZXI8VD5cbiAgICApIHsgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBGb2N1cyB0byB0aGUgaG9zdCBlbGVtZW50XG4gICAgICogKi9cbiAgICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbG1SZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGhvdXIgdmFsdWUgdmlhIHR5cGluZyBpbnRvIHRpbWVyIGJveCBpbnB1dFxuICAgICAqIFdlIG5lZWQgdGhpcyB0byBoYW5kbGUgdGhlIGhvdXIgdmFsdWUgd2hlbiB0aGUgdGltZXIgaXMgaW4gaG91cjEyIG1vZGVcbiAgICAgKiAqL1xuICAgIHB1YmxpYyBzZXRIb3VyVmFsdWVWaWFJbnB1dChob3VyczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvdXIxMlRpbWVyICYmIHRoaXMuaXNQTSAmJiBob3VycyA+PSAxICYmIGhvdXJzIDw9IDExKSB7XG4gICAgICAgICAgICBob3VycyA9IGhvdXJzICsgMTJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhvdXIxMlRpbWVyICYmICF0aGlzLmlzUE0gJiYgaG91cnMgPT09IDEyKSB7XG4gICAgICAgICAgICBob3VycyA9IDBcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0SG91clZhbHVlKGhvdXJzKVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIb3VyVmFsdWUoaG91cnM6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBtID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0SG91cnModGhpcy5waWNrZXJNb21lbnQsIGhvdXJzKVxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQobSlcbiAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRNaW51dGVWYWx1ZShtaW51dGVzOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLnNldE1pbnV0ZXModGhpcy5waWNrZXJNb21lbnQsIG1pbnV0ZXMpXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChtKVxuICAgICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlY29uZFZhbHVlKHNlY29uZHM6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBtID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0U2Vjb25kcyh0aGlzLnBpY2tlck1vbWVudCwgc2Vjb25kcylcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KG0pXG4gICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TWVyaWRpZW0oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUE0gPSAhdGhpcy5pc1BNXG5cbiAgICAgICAgbGV0IGhvdXJzID0gdGhpcy5ob3VyVmFsdWVcbiAgICAgICAgaWYgKHRoaXMuaXNQTSkge1xuICAgICAgICAgICAgaG91cnMgPSBob3VycyArIDEyXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob3VycyA9IGhvdXJzIC0gMTJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChob3VycyA+PSAwICYmIGhvdXJzIDw9IDIzKSB7XG4gICAgICAgICAgICB0aGlzLnNldEhvdXJWYWx1ZShob3VycylcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKClcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSB1cCBob3VyIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAgICovXG4gICAgcHVibGljIHVwSG91ckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5tYXhEYXRlVGltZSB8fFxuICAgICAgICAgICAgdGhpcy5jb21wYXJlSG91cnModGhpcy5zdGVwSG91ciwgdGhpcy5tYXhEYXRlVGltZSkgPCAxXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZG93biBob3VyIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAgICovXG4gICAgcHVibGljIGRvd25Ib3VyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLm1pbkRhdGVUaW1lIHx8XG4gICAgICAgICAgICB0aGlzLmNvbXBhcmVIb3VycygtdGhpcy5zdGVwSG91ciwgdGhpcy5taW5EYXRlVGltZSkgPiAtMVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIHVwIG1pbnV0ZSBidXR0b24gaXMgZW5hYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyB1cE1pbnV0ZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5tYXhEYXRlVGltZSB8fFxuICAgICAgICAgICAgdGhpcy5jb21wYXJlTWludXRlcyh0aGlzLnN0ZXBNaW51dGUsIHRoaXMubWF4RGF0ZVRpbWUpIDwgMVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRvd24gbWludXRlIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAgICovXG4gICAgcHVibGljIGRvd25NaW51dGVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubWluRGF0ZVRpbWUgfHxcbiAgICAgICAgICAgIHRoaXMuY29tcGFyZU1pbnV0ZXMoLXRoaXMuc3RlcE1pbnV0ZSwgdGhpcy5taW5EYXRlVGltZSkgPiAtMVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIHVwIHNlY29uZCBidXR0b24gaXMgZW5hYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyB1cFNlY29uZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5tYXhEYXRlVGltZSB8fFxuICAgICAgICAgICAgdGhpcy5jb21wYXJlU2Vjb25kcyh0aGlzLnN0ZXBTZWNvbmQsIHRoaXMubWF4RGF0ZVRpbWUpIDwgMVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRvd24gc2Vjb25kIGJ1dHRvbiBpcyBlbmFibGVkXG4gICAgICovXG4gICAgcHVibGljIGRvd25TZWNvbmRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubWluRGF0ZVRpbWUgfHxcbiAgICAgICAgICAgIHRoaXMuY29tcGFyZVNlY29uZHMoLXRoaXMuc3RlcFNlY29uZCwgdGhpcy5taW5EYXRlVGltZSkgPiAtMVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGlja2VyTW9tZW50J3MgaG91ciB2YWx1ZSArLy0gY2VydGFpbiBhbW91bnQgYW5kIGNvbXBhcmUgaXQgdG8gdGhlIGdpdmUgZGF0ZVxuICAgICAqIDEgaXMgYWZ0ZXIgdGhlIGNvbXBhcmVkRGF0ZVxuICAgICAqIC0xIGlzIGJlZm9yZSB0aGUgY29tcGFyZWREYXRlXG4gICAgICogMCBpcyBlcXVhbCB0aGUgY29tcGFyZWREYXRlXG4gICAgICogKi9cbiAgICBwcml2YXRlIGNvbXBhcmVIb3VycyhhbW91bnQ6IG51bWJlciwgY29tcGFyZWREYXRlOiBUKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaG91cnMgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRIb3Vycyh0aGlzLnBpY2tlck1vbWVudCkgKyBhbW91bnRcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0SG91cnModGhpcy5waWNrZXJNb21lbnQsIGhvdXJzKVxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuY29tcGFyZShyZXN1bHQsIGNvbXBhcmVkRGF0ZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQaWNrZXJNb21lbnQncyBtaW51dGUgdmFsdWUgKy8tIGNlcnRhaW4gYW1vdW50IGFuZCBjb21wYXJlIGl0IHRvIHRoZSBnaXZlIGRhdGVcbiAgICAgKiAxIGlzIGFmdGVyIHRoZSBjb21wYXJlZERhdGVcbiAgICAgKiAtMSBpcyBiZWZvcmUgdGhlIGNvbXBhcmVkRGF0ZVxuICAgICAqIDAgaXMgZXF1YWwgdGhlIGNvbXBhcmVkRGF0ZVxuICAgICAqICovXG4gICAgcHJpdmF0ZSBjb21wYXJlTWludXRlcyhhbW91bnQ6IG51bWJlciwgY29tcGFyZWREYXRlOiBUKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbWludXRlcyA9XG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNaW51dGVzKHRoaXMucGlja2VyTW9tZW50KSArIGFtb3VudFxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5zZXRNaW51dGVzKFxuICAgICAgICAgICAgdGhpcy5waWNrZXJNb21lbnQsXG4gICAgICAgICAgICBtaW51dGVzXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUocmVzdWx0LCBjb21wYXJlZERhdGUpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGlja2VyTW9tZW50J3Mgc2Vjb25kIHZhbHVlICsvLSBjZXJ0YWluIGFtb3VudCBhbmQgY29tcGFyZSBpdCB0byB0aGUgZ2l2ZSBkYXRlXG4gICAgICogMSBpcyBhZnRlciB0aGUgY29tcGFyZWREYXRlXG4gICAgICogLTEgaXMgYmVmb3JlIHRoZSBjb21wYXJlZERhdGVcbiAgICAgKiAwIGlzIGVxdWFsIHRoZSBjb21wYXJlZERhdGVcbiAgICAgKiAqL1xuICAgIHByaXZhdGUgY29tcGFyZVNlY29uZHMoYW1vdW50OiBudW1iZXIsIGNvbXBhcmVkRGF0ZTogVCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPVxuICAgICAgICAgICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0U2Vjb25kcyh0aGlzLnBpY2tlck1vbWVudCkgKyBhbW91bnRcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuc2V0U2Vjb25kcyhcbiAgICAgICAgICAgIHRoaXMucGlja2VyTW9tZW50LFxuICAgICAgICAgICAgc2Vjb25kc1xuICAgICAgICApXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKHJlc3VsdCwgY29tcGFyZWREYXRlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIHZhbGlkIGRhdGUgb2JqZWN0XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRWYWxpZERhdGUob2JqOiBhbnkpOiBUIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVUaW1lQWRhcHRlci5pc0RhdGVJbnN0YW5jZShvYmopICYmXG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKG9iailcbiAgICAgICAgICAgID8gb2JqXG4gICAgICAgICAgICA6IG51bGxcbiAgICB9XG59XG4iXX0=
|