@apipass/inputs 1.0.91 → 1.0.92
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/assets/css/inputs.scss +99 -3
- package/esm2022/input-date-time-interval/builder/default-intervals.builder.mjs +92 -0
- package/esm2022/input-date-time-interval/builder/time-interval-value.builder.mjs +123 -0
- package/esm2022/input-date-time-interval/builder/time-intervals.builder.mjs +19 -0
- package/esm2022/input-date-time-interval/default-interval/current-month-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-five-minutes-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-hour-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-minute-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-month-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/default-interval/last-one-week-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/default-interval/last-quarter-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/default-interval/last-ten-minutes-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-thirty-minutes-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-three-hours-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-two-hours-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/last-year-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/default-interval/this-quarter-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/default-interval/this-week-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/default-interval/this-year-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/default-interval/time-interval.mjs +2 -0
- package/esm2022/input-date-time-interval/default-interval/today-interval.mjs +12 -0
- package/esm2022/input-date-time-interval/default-interval/yesterday-interval.mjs +15 -0
- package/esm2022/input-date-time-interval/input-date-time-interval.component.mjs +317 -0
- package/esm2022/input-date-time-interval/model/date-time-internal.model.mjs +56 -0
- package/esm2022/input-date-time-interval/public-api.mjs +28 -0
- package/esm2022/inputs.module.mjs +50 -10
- package/esm2022/public-api.mjs +13 -12
- package/fesm2022/apipass-inputs.mjs +823 -13
- package/fesm2022/apipass-inputs.mjs.map +1 -1
- package/input-date-time-interval/builder/default-intervals.builder.d.ts +21 -0
- package/input-date-time-interval/builder/time-interval-value.builder.d.ts +31 -0
- package/input-date-time-interval/builder/time-intervals.builder.d.ts +9 -0
- package/input-date-time-interval/default-interval/current-month-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-five-minutes-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-hour-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-minute-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-month-interval.d.ts +8 -0
- package/input-date-time-interval/default-interval/last-one-week-interval.d.ts +8 -0
- package/input-date-time-interval/default-interval/last-quarter-interval.d.ts +8 -0
- package/input-date-time-interval/default-interval/last-ten-minutes-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-thirty-minutes-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-three-hours-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-two-hours-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/last-year-interval.d.ts +8 -0
- package/input-date-time-interval/default-interval/this-quarter-interval.d.ts +8 -0
- package/input-date-time-interval/default-interval/this-week-interval.d.ts +8 -0
- package/input-date-time-interval/default-interval/this-year-interval.d.ts +8 -0
- package/input-date-time-interval/default-interval/time-interval.d.ts +6 -0
- package/input-date-time-interval/default-interval/today-interval.d.ts +7 -0
- package/input-date-time-interval/default-interval/yesterday-interval.d.ts +8 -0
- package/input-date-time-interval/input-date-time-interval.component.d.ts +68 -0
- package/input-date-time-interval/model/date-time-internal.model.d.ts +19 -0
- package/input-date-time-interval/public-api.d.ts +23 -0
- package/inputs.module.d.ts +21 -15
- package/package.json +6 -3
- package/public-api.d.ts +12 -11
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
export class ThisWeekInterval {
|
|
3
|
+
id = 'ThisWeekInterval';
|
|
4
|
+
label;
|
|
5
|
+
constructor(label) {
|
|
6
|
+
this.label = label;
|
|
7
|
+
}
|
|
8
|
+
getStartDate() {
|
|
9
|
+
return moment().startOf('week').toDate();
|
|
10
|
+
}
|
|
11
|
+
getEndDate() {
|
|
12
|
+
return moment().toDate();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhpcy13ZWVrLWludGVydmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9pbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwvZGVmYXVsdC1pbnRlcnZhbC90aGlzLXdlZWstaW50ZXJ2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsRUFBRSxHQUFXLGtCQUFrQixDQUFBO0lBQy9CLEtBQUssQ0FBUTtJQUViLFlBQVksS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW1lSW50ZXJ2YWwgfSBmcm9tICcuL3RpbWUtaW50ZXJ2YWwnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgY2xhc3MgVGhpc1dlZWtJbnRlcnZhbCBpbXBsZW1lbnRzIFRpbWVJbnRlcnZhbCB7XG5cbiAgaWQ6IHN0cmluZyA9ICdUaGlzV2Vla0ludGVydmFsJ1xuICBsYWJlbDogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IobGFiZWw6IHN0cmluZykge1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbFxuICB9XG5cbiAgZ2V0U3RhcnREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBtb21lbnQoKS5zdGFydE9mKCd3ZWVrJykudG9EYXRlKCk7XG4gIH1cblxuICBnZXRFbmREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBtb21lbnQoKS50b0RhdGUoKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
export class ThisYearInterval {
|
|
3
|
+
id = 'ThisYearInterval';
|
|
4
|
+
label;
|
|
5
|
+
constructor(label) {
|
|
6
|
+
this.label = label;
|
|
7
|
+
}
|
|
8
|
+
getStartDate() {
|
|
9
|
+
return moment().startOf('year').toDate();
|
|
10
|
+
}
|
|
11
|
+
getEndDate() {
|
|
12
|
+
return moment().toDate();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhpcy15ZWFyLWludGVydmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9pbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwvZGVmYXVsdC1pbnRlcnZhbC90aGlzLXllYXItaW50ZXJ2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsRUFBRSxHQUFXLGtCQUFrQixDQUFBO0lBQy9CLEtBQUssQ0FBUTtJQUViLFlBQVksS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW1lSW50ZXJ2YWwgfSBmcm9tICcuL3RpbWUtaW50ZXJ2YWwnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgY2xhc3MgVGhpc1llYXJJbnRlcnZhbCBpbXBsZW1lbnRzIFRpbWVJbnRlcnZhbCB7XG5cbiAgaWQ6IHN0cmluZyA9ICdUaGlzWWVhckludGVydmFsJ1xuICBsYWJlbDogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IobGFiZWw6IHN0cmluZykge1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbFxuICB9XG5cbiAgZ2V0U3RhcnREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykudG9EYXRlKCk7XG4gIH1cblxuICBnZXRFbmREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBtb21lbnQoKS50b0RhdGUoKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1pbnRlcnZhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXQtZGF0ZS10aW1lLWludGVydmFsL2RlZmF1bHQtaW50ZXJ2YWwvdGltZS1pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUaW1lSW50ZXJ2YWwge1xuICBpZDogc3RyaW5nXG4gIGxhYmVsOiBzdHJpbmdcblxuICBnZXRTdGFydERhdGU/KCk6IERhdGVcbiAgZ2V0RW5kRGF0ZT8oKTogRGF0ZVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
export class TodayInterval {
|
|
3
|
+
id = 'TodayInterval';
|
|
4
|
+
label;
|
|
5
|
+
constructor(label) {
|
|
6
|
+
this.label = label;
|
|
7
|
+
}
|
|
8
|
+
getStartDate() {
|
|
9
|
+
return moment().startOf('day').toDate();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9kYXktaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC9kZWZhdWx0LWludGVydmFsL3RvZGF5LWludGVydmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLE9BQU8sYUFBYTtJQUV4QixFQUFFLEdBQVcsZUFBZSxDQUFBO0lBQzVCLEtBQUssQ0FBUTtJQUViLFlBQVksS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRpbWVJbnRlcnZhbCB9IGZyb20gJy4vdGltZS1pbnRlcnZhbCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBUb2RheUludGVydmFsIGltcGxlbWVudHMgVGltZUludGVydmFsIHtcblxuICBpZDogc3RyaW5nID0gJ1RvZGF5SW50ZXJ2YWwnXG4gIGxhYmVsOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihsYWJlbDogc3RyaW5nKSB7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsXG4gIH1cblxuICBnZXRTdGFydERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG1vbWVudCgpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
export class YesterdayInterval {
|
|
3
|
+
id = 'YesterdayInterval';
|
|
4
|
+
label;
|
|
5
|
+
constructor(label) {
|
|
6
|
+
this.label = label;
|
|
7
|
+
}
|
|
8
|
+
getStartDate() {
|
|
9
|
+
return moment().subtract(1, 'day').startOf('day').toDate();
|
|
10
|
+
}
|
|
11
|
+
getEndDate() {
|
|
12
|
+
return moment().subtract(1, 'day').endOf('day').toDate();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVzdGVyZGF5LWludGVydmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9pbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwvZGVmYXVsdC1pbnRlcnZhbC95ZXN0ZXJkYXktaW50ZXJ2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsRUFBRSxHQUFXLG1CQUFtQixDQUFBO0lBQ2hDLEtBQUssQ0FBUTtJQUViLFlBQVksS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRpbWVJbnRlcnZhbCB9IGZyb20gJy4vdGltZS1pbnRlcnZhbCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBZZXN0ZXJkYXlJbnRlcnZhbCBpbXBsZW1lbnRzIFRpbWVJbnRlcnZhbCB7XG5cbiAgaWQ6IHN0cmluZyA9ICdZZXN0ZXJkYXlJbnRlcnZhbCdcbiAgbGFiZWw6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKGxhYmVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWxcbiAgfVxuXG4gIGdldFN0YXJ0RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheScpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuICB9XG5cbiAgZ2V0RW5kRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheScpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { Component, EventEmitter, forwardRef, HostListener, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { TimeIntervalValue } from './model/date-time-internal.model';
|
|
4
|
+
import { DateRange } from '@angular/material/datepicker';
|
|
5
|
+
import { ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
6
|
+
import moment from 'moment-timezone';
|
|
7
|
+
import { NgScrollbar } from 'ngx-scrollbar';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
import * as i3 from "@angular/forms";
|
|
12
|
+
import * as i4 from "@angular/material/form-field";
|
|
13
|
+
import * as i5 from "@angular/material/input";
|
|
14
|
+
import * as i6 from "@angular/material/icon";
|
|
15
|
+
import * as i7 from "@angular/material/datepicker";
|
|
16
|
+
import * as i8 from "ngx-scrollbar";
|
|
17
|
+
import * as i9 from "ngx-mask";
|
|
18
|
+
class InputDateTimeIntervalComponent {
|
|
19
|
+
sso;
|
|
20
|
+
_value;
|
|
21
|
+
_selectedDateRange;
|
|
22
|
+
scrollStrategy;
|
|
23
|
+
timezone = 'America/Sao_Paulo';
|
|
24
|
+
dateMask = '00/00/0000';
|
|
25
|
+
timeMask = '00:00:00';
|
|
26
|
+
dateFormat = 'DD/MM/YYYY HH:mm:ss';
|
|
27
|
+
label;
|
|
28
|
+
periodLabel = 'Selected Relative Interval';
|
|
29
|
+
relativeLabel = 'Relative Time';
|
|
30
|
+
absoluteLabel = 'Absolute Time';
|
|
31
|
+
startDateLabel = 'Start Date';
|
|
32
|
+
startDate;
|
|
33
|
+
startTimeLabel = 'Start Time';
|
|
34
|
+
startTime;
|
|
35
|
+
endTimeLabel = 'End Time';
|
|
36
|
+
endTime;
|
|
37
|
+
endDateLabel = 'End Date';
|
|
38
|
+
endDate;
|
|
39
|
+
calendarMaxDate;
|
|
40
|
+
calendarMinDate;
|
|
41
|
+
cancelLabel = 'Cancel';
|
|
42
|
+
applyLabel = 'Apply';
|
|
43
|
+
hideTime = false;
|
|
44
|
+
get value() {
|
|
45
|
+
if (!this._value) {
|
|
46
|
+
this._value = new TimeIntervalValue(this.timezone);
|
|
47
|
+
}
|
|
48
|
+
return this._value;
|
|
49
|
+
}
|
|
50
|
+
set value(value) {
|
|
51
|
+
this._value = value;
|
|
52
|
+
this.refreshValues();
|
|
53
|
+
}
|
|
54
|
+
refreshValues() {
|
|
55
|
+
if (this._value.interval) {
|
|
56
|
+
this.selectedInterval = this._value.interval;
|
|
57
|
+
this.resetDates();
|
|
58
|
+
}
|
|
59
|
+
else if (this._value?.absoluteStartDate || this._value?.absoluteEndDate) {
|
|
60
|
+
const startDate = this._value?.absoluteStartDate || this.startDate;
|
|
61
|
+
this.selectedStartDate = this.dateToString(startDate);
|
|
62
|
+
const endDate = this._value?.absoluteEndDate || this.endDate;
|
|
63
|
+
this.selectedEndDate = this.dateToString(endDate);
|
|
64
|
+
this._selectedDateRange = this.getDateRange(this.stringToDate(this.selectedStartDate), this.stringToDate(this.selectedEndDate));
|
|
65
|
+
if (this._value?.absoluteStartDate) {
|
|
66
|
+
this.selectedStartTime = this._value.absoluteStartDate.toTimeString().split(' ')[0];
|
|
67
|
+
}
|
|
68
|
+
if (this.value?.absoluteEndDate) {
|
|
69
|
+
this.selectedEndTime = this.value?.absoluteEndDate.toTimeString().split(' ')[0];
|
|
70
|
+
}
|
|
71
|
+
this.selectedStartTime = this.selectedStartTime || this.startTime;
|
|
72
|
+
this.selectedEndTime = this.selectedEndTime || this.endTime;
|
|
73
|
+
this.selectedInterval = undefined;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
intervals;
|
|
77
|
+
valueChange = new EventEmitter();
|
|
78
|
+
selectedInterval;
|
|
79
|
+
selectedStartTime;
|
|
80
|
+
selectedEndTime;
|
|
81
|
+
selectedStartDate;
|
|
82
|
+
selectedEndDate;
|
|
83
|
+
dropdownOpen;
|
|
84
|
+
scrollbarRef;
|
|
85
|
+
onKeydownHandler() {
|
|
86
|
+
this.dropdownOpen = false;
|
|
87
|
+
}
|
|
88
|
+
constructor(sso) {
|
|
89
|
+
this.sso = sso;
|
|
90
|
+
this.scrollStrategy = this.sso.block();
|
|
91
|
+
this.resetDates();
|
|
92
|
+
}
|
|
93
|
+
openDropDown(event) {
|
|
94
|
+
this.dropdownOpen = true;
|
|
95
|
+
setTimeout(() => {
|
|
96
|
+
if (this._value.interval) {
|
|
97
|
+
const selectedInterval = this._value.interval;
|
|
98
|
+
this.scrollbarRef.scrollToElement(`#apipass-datetime-interval-${selectedInterval.id}`, { duration: 800 }).then();
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
event.stopPropagation();
|
|
102
|
+
}
|
|
103
|
+
closeDropdown(event) {
|
|
104
|
+
this.cancel();
|
|
105
|
+
this.dropdownOpen = false;
|
|
106
|
+
event.stopPropagation();
|
|
107
|
+
}
|
|
108
|
+
isSelected(interval) {
|
|
109
|
+
return interval?.id === this.selectedInterval?.id;
|
|
110
|
+
}
|
|
111
|
+
selectInterval(interval) {
|
|
112
|
+
this.selectedInterval = interval;
|
|
113
|
+
this.resetDates();
|
|
114
|
+
}
|
|
115
|
+
resetDates() {
|
|
116
|
+
this._selectedDateRange = this.getDateRange(this.startDate, this.endDate);
|
|
117
|
+
this.selectedStartTime = this.startTime;
|
|
118
|
+
this.selectedEndTime = this.endTime;
|
|
119
|
+
this.selectedStartDate = this.dateToString(this.startDate);
|
|
120
|
+
this.selectedEndDate = this.dateToString(this.endDate);
|
|
121
|
+
}
|
|
122
|
+
onDateRangeChange(date) {
|
|
123
|
+
if (this._selectedDateRange?.start && date > this._selectedDateRange.start && !this._selectedDateRange.end) {
|
|
124
|
+
this._selectedDateRange = this.getDateRange(this._selectedDateRange.start, date);
|
|
125
|
+
this.selectedEndDate = this.dateToString(date);
|
|
126
|
+
this.selectedInterval = undefined;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
this._selectedDateRange = this.getDateRange(date, undefined);
|
|
130
|
+
this.selectedStartDate = this.dateToString(date);
|
|
131
|
+
this.selectedInterval = undefined;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
dateToString(date) {
|
|
135
|
+
return date ? moment(date).format(this.dateFormat) : undefined;
|
|
136
|
+
}
|
|
137
|
+
stringToDate(date) {
|
|
138
|
+
return date ? moment(date, this.dateFormat).toDate() : undefined;
|
|
139
|
+
}
|
|
140
|
+
getDateRange(startDate, endDate) {
|
|
141
|
+
try {
|
|
142
|
+
return new DateRange(startDate ? moment(startDate).toDate() : undefined, endDate ? moment(endDate).toDate() : undefined);
|
|
143
|
+
}
|
|
144
|
+
catch (e) {
|
|
145
|
+
return new DateRange(null, null);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
startDateChanged() {
|
|
149
|
+
this._selectedDateRange = this.getDateRange(this.stringToDate(this.selectedStartDate), this.stringToDate(this.selectedEndDate));
|
|
150
|
+
this.selectedInterval = undefined;
|
|
151
|
+
}
|
|
152
|
+
endDateChanged() {
|
|
153
|
+
const startDate = this.stringToDate(this.selectedStartDate);
|
|
154
|
+
const endDate = this.stringToDate(this.selectedEndDate);
|
|
155
|
+
if (endDate < startDate) {
|
|
156
|
+
this.selectedEndDate = undefined;
|
|
157
|
+
}
|
|
158
|
+
this._selectedDateRange = this.getDateRange(startDate, endDate);
|
|
159
|
+
this.selectedInterval = undefined;
|
|
160
|
+
}
|
|
161
|
+
cancel() {
|
|
162
|
+
this.refreshValues();
|
|
163
|
+
this.dropdownOpen = false;
|
|
164
|
+
}
|
|
165
|
+
apply() {
|
|
166
|
+
if (this.selectedInterval) {
|
|
167
|
+
this._value.interval = this.selectedInterval;
|
|
168
|
+
this._value.absoluteStartDate = undefined;
|
|
169
|
+
this._value.absoluteEndDate = undefined;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
if (this.selectedStartDate) {
|
|
173
|
+
const startDate = this.stringToDate(this.selectedStartDate);
|
|
174
|
+
this.applyTimeOnDate(startDate, this.selectedStartTime);
|
|
175
|
+
this.selectedStartTime = this.selectedStartTime ?? '00:00:00';
|
|
176
|
+
this._value.absoluteStartDate = moment(startDate).toDate();
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
this._value.absoluteStartDate = undefined;
|
|
180
|
+
}
|
|
181
|
+
if (this.selectedEndDate) {
|
|
182
|
+
const endDate = this.stringToDate(this.selectedEndDate);
|
|
183
|
+
this.applyTimeOnDate(endDate, this.selectedEndTime);
|
|
184
|
+
this.selectedEndTime = this.selectedEndTime ?? '00:00:00';
|
|
185
|
+
this._value.absoluteEndDate = moment(endDate).toDate();
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
this._value.absoluteEndDate = undefined;
|
|
189
|
+
}
|
|
190
|
+
this._value.interval = undefined;
|
|
191
|
+
}
|
|
192
|
+
this.valueChange.emit(this._value);
|
|
193
|
+
this.dropdownOpen = false;
|
|
194
|
+
}
|
|
195
|
+
applyTimeOnDate(date, time) {
|
|
196
|
+
if (time) {
|
|
197
|
+
date.setHours(this.getHoursFromTime(time));
|
|
198
|
+
date.setMinutes(this.getMinutesFromTime(time));
|
|
199
|
+
date.setSeconds(this.getSecondsFromTime(time));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
getHoursFromTime(time) {
|
|
203
|
+
try {
|
|
204
|
+
return parseFloat(time.split(':')[0]) || 0;
|
|
205
|
+
}
|
|
206
|
+
catch (e) {
|
|
207
|
+
return 0;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
getMinutesFromTime(time) {
|
|
211
|
+
try {
|
|
212
|
+
return parseFloat(time.split(':')[1]) || 0;
|
|
213
|
+
}
|
|
214
|
+
catch (e) {
|
|
215
|
+
return 0;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
getSecondsFromTime(time) {
|
|
219
|
+
try {
|
|
220
|
+
return parseFloat(time.split(':')[2]) || 0;
|
|
221
|
+
}
|
|
222
|
+
catch (e) {
|
|
223
|
+
return 0;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
getInputText() {
|
|
227
|
+
if (this._value?.interval) {
|
|
228
|
+
return this.periodLabel;
|
|
229
|
+
}
|
|
230
|
+
const emptyDate = this.hideTime ? '__________' : '__________ ________';
|
|
231
|
+
let formatedText = '';
|
|
232
|
+
if (this._value.absoluteStartDate) {
|
|
233
|
+
formatedText += this.dateToString(this._value.absoluteStartDate);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
formatedText += emptyDate;
|
|
237
|
+
}
|
|
238
|
+
formatedText += ' - ';
|
|
239
|
+
if (this._value.absoluteEndDate) {
|
|
240
|
+
formatedText += this.dateToString(this._value.absoluteEndDate);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
formatedText += emptyDate;
|
|
244
|
+
}
|
|
245
|
+
return formatedText;
|
|
246
|
+
}
|
|
247
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputDateTimeIntervalComponent, deps: [{ token: i1.ScrollStrategyOptions }], target: i0.ɵɵFactoryTarget.Component });
|
|
248
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputDateTimeIntervalComponent, selector: "input-date-time-interval", inputs: { timezone: "timezone", dateMask: "dateMask", timeMask: "timeMask", dateFormat: "dateFormat", label: "label", periodLabel: "periodLabel", relativeLabel: "relativeLabel", absoluteLabel: "absoluteLabel", startDateLabel: "startDateLabel", startDate: "startDate", startTimeLabel: "startTimeLabel", startTime: "startTime", endTimeLabel: "endTimeLabel", endTime: "endTime", endDateLabel: "endDateLabel", endDate: "endDate", calendarMaxDate: "calendarMaxDate", calendarMinDate: "calendarMinDate", cancelLabel: "cancelLabel", applyLabel: "applyLabel", hideTime: "hideTime", value: "value", intervals: "intervals" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)" } }, providers: [{
|
|
249
|
+
provide: NG_VALUE_ACCESSOR,
|
|
250
|
+
useExisting: forwardRef(() => InputDateTimeIntervalComponent),
|
|
251
|
+
multi: true
|
|
252
|
+
}], viewQueries: [{ propertyName: "scrollbarRef", first: true, predicate: ["intervalsBar"], descendants: true }], ngImport: i0, template: "<div class=\"input-date-time-interval\">\n <mat-form-field cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"clickable\"\n (click)=\"dropdownOpen ? closeDropdown($event) : openDropDown($event)\">\n <mat-label class=\"mdc-floating-label--float-above\" [innerHTML]=\"label\"></mat-label>\n <span class=\"interval-input\">\n <div matPrefix class=\"period-badget text-primary\" *ngIf=\"value?.interval\">\n <mat-icon>date_range</mat-icon>\n <span class=\"period-text\" [innerHTML]=\"value?.interval?.label\"></span>\n </div>\n <input style=\"display: flex\" class=\"clickable\" matInput [value]=\"getInputText()\" [readonly]=\"true\">\n </span>\n <mat-icon class=\"clickable text-tertiary\" matIconSuffix>{{dropdownOpen ? 'expand_less' : 'expand_more'}}</mat-icon>\n </mat-form-field>\n</div>\n\n<ng-template cdkConnectedOverlay\n [cdkConnectedOverlayPanelClass]=\"'input-date-time-interval-overlay-panel'\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (backdropClick)=\"closeDropdown($event)\"\n (overlayOutsideClick)=\"closeDropdown($event)\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"dropdownOpen\">\n <div class=\"input-date-time-interval-dropdown mdc-menu-surface\">\n <div class=\"input-options-container\">\n <div class=\"intervals-container\" *ngIf=\"this.intervals\">\n <div class=\"container-text\" *ngIf=\"relativeLabel\">\n <span class=\"relative-text\" [innerHTML]=\"relativeLabel\"></span>\n </div>\n <ng-scrollbar #intervalsBar class=\"date-time-interval-scrollbar\" [visibility]=\"'always'\">\n <div class=\"interval\"\n [id]=\"'apipass-datetime-interval-' + interval.id\"\n (click)=\"selectInterval(interval)\"\n [ngClass]=\"{'interval-selected': isSelected(interval)}\"\n *ngFor=\"let interval of this.intervals\">\n <div class=\"interval-label\">\n <span [innerHTML]=\"interval.label\"></span>\n </div>\n <div class=\"interval-icon\" *ngIf=\"isSelected(interval)\">\n <mat-icon class=\"mat-icon-slim text-secondary\">check</mat-icon>\n </div>\n </div>\n </ng-scrollbar>\n </div>\n\n <div class=\"calendar-container\" [ngClass]=\"{'only-calendar': !this.intervals}\">\n <div class=\"container-text\" *ngIf=\"absoluteLabel\">\n <span class=\"absolute-text\" [innerHTML]=\"absoluteLabel\"></span>\n </div>\n <div class=\"picker\">\n <div class=\"picker-fields\" [ngClass]=\"{'picker-only-date': hideTime}\">\n <div class=\"picker-group\">\n <mat-form-field class=\"apipass-input-text-slim\">\n <mat-label [innerHTML]=\"startDateLabel\"></mat-label>\n <input matInput [(ngModel)]=\"selectedStartDate\"\n [mask]=\"dateMask\" [dropSpecialCharacters]=\"false\" (blur)=\"startDateChanged()\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>date_range</mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"apipass-input-text-slim\" *ngIf=\"!hideTime\">\n <mat-label [innerHTML]=\"startTimeLabel\"></mat-label>\n <input matInput [mask]=\"timeMask\" [dropSpecialCharacters]=\"false\" [(ngModel)]=\"selectedStartTime\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>schedule</mat-icon>\n </mat-form-field>\n </div>\n <div class=\"picker-group\">\n <mat-form-field class=\"apipass-input-text-slim\">\n <mat-label [innerHTML]=\"endDateLabel\"></mat-label>\n <input matInput [(ngModel)]=\"selectedEndDate\"\n [mask]=\"dateMask\" [dropSpecialCharacters]=\"false\" (blur)=\"endDateChanged()\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>date_range</mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"apipass-input-text-slim\" *ngIf=\"!hideTime\">\n <mat-label [innerHTML]=\"endTimeLabel\"></mat-label>\n <input matInput [mask]=\"timeMask\" [dropSpecialCharacters]=\"false\" [(ngModel)]=\"selectedEndTime\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>schedule</mat-icon>\n </mat-form-field>\n </div>\n </div>\n <mat-calendar\n [selected]=\"_selectedDateRange\"\n [maxDate]=\"calendarMaxDate\"\n [minDate]=\"calendarMinDate\"\n (selectedChange)=\"onDateRangeChange($event)\"></mat-calendar>\n </div>\n </div>\n </div>\n <div class=\"input-date-time-actions\">\n <button class=\"action-button dropdown-cancel-button\" *ngIf=\"cancelLabel\" (click)=\"cancel()\">\n <span class=\"dropdown-cancel-button-text\" [innerHTML]=\"cancelLabel\"></span>\n </button>\n <button class=\"action-button dropdown-apply-button\" *ngIf=\"applyLabel\" (click)=\"apply()\">\n <span class=\"dropdown-cancel-button-text\" [innerHTML]=\"applyLabel\"></span>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".input-date-time-interval mat-form-field{width:100%}.input-date-time-interval mat-form-field .interval-input{display:flex;flex-wrap:nowrap}.input-date-time-interval mat-form-field .interval-input .period-badget{display:flex;justify-content:space-around;align-items:center;gap:5px;padding:1px 10px;margin-left:15px;margin-right:5px;background:#EEE;border-radius:4px;border:1px solid #CCC}.input-date-time-interval mat-form-field .interval-input .period-badget .period-text{white-space:nowrap}.input-date-time-interval mat-form-field .date-value-input{display:flex;justify-content:flex-start;align-items:center;gap:5px}.input-date-time-interval-overlay-panel{margin-bottom:5px}.input-date-time-interval-dropdown{box-sizing:border-box;background:#FFF;border:1px solid #CCC;border-radius:5px;width:450px}@media (max-width: 500px){.input-date-time-interval-dropdown{width:90vw}}.input-date-time-interval-dropdown .input-options-container{display:flex;justify-content:space-between;align-items:flex-start}.input-date-time-interval-dropdown .input-options-container .container-text{font-weight:600;margin-bottom:5px}@media (max-width: 500px){.input-date-time-interval-dropdown .input-options-container{flex-direction:column}}.input-date-time-interval-dropdown .input-options-container .intervals-container{padding:10px;width:35%;overflow-x:hidden;overflow-y:auto;border-right:1px solid #CCC}@media (max-width: 500px){.input-date-time-interval-dropdown .input-options-container .intervals-container{width:100%;border-right:none}}.input-date-time-interval-dropdown .input-options-container .intervals-container ng-scrollbar{max-height:380px;min-height:380px}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval{display:flex;justify-content:space-between;align-items:center;gap:5px;background:#FFF;padding:6px 10px;border-radius:5px;cursor:pointer;font-weight:600;color:var(--color-primary)}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval .interval-label{width:100%;height:20px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:13px}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval .interval-icon{width:20px;height:20px}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval .interval-icon mat-icon{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-size:18px;font-weight:700}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval:hover{background:#CCC}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval.interval-selected{background:var(--color-primary);color:#fff}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval.interval-selected .interval-label{width:calc(100% - 25px)}.input-date-time-interval-dropdown .input-options-container .calendar-container{padding:10px 10px 0;width:65%}.input-date-time-interval-dropdown .input-options-container .calendar-container.only-calendar{width:100%}@media (max-width: 500px){.input-date-time-interval-dropdown .input-options-container .calendar-container{width:100%}}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields{display:flex;justify-content:space-between;flex-direction:column;gap:5px;margin-bottom:5px}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields .picker-group{display:flex;justify-content:space-between;align-items:center;flex-direction:row;gap:5px}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields.picker-only-date{flex-direction:row}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields.picker-only-date .picker-group{width:calc(50% - 5px)}.input-date-time-interval-dropdown .input-date-time-actions{box-sizing:border-box;width:100%;border-top:1px solid #CCC;padding:10px 15px;display:flex;gap:10px;justify-content:center;align-items:center}.input-date-time-interval-dropdown .input-date-time-actions .action-button{display:flex;min-width:105px;padding:5px 15px;gap:5px;overflow:hidden;text-overflow:ellipsis;justify-content:center;align-items:center;font-weight:700;border-radius:10px;cursor:pointer}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-cancel-button{color:var(--color-primary);border:1px solid var(--color-primary);background:#FFF}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-cancel-button:hover{background:var(--color-primary);color:#fff}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-apply-button{color:var(--color-primary);border:1px solid var(--color-secondary);background:var(--color-secondary)}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-apply-button:hover{background:var(--color-secondary-hover)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i7.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i8.NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "directive", type: i9.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
253
|
+
}
|
|
254
|
+
export { InputDateTimeIntervalComponent };
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputDateTimeIntervalComponent, decorators: [{
|
|
256
|
+
type: Component,
|
|
257
|
+
args: [{ selector: 'input-date-time-interval', providers: [{
|
|
258
|
+
provide: NG_VALUE_ACCESSOR,
|
|
259
|
+
useExisting: forwardRef(() => InputDateTimeIntervalComponent),
|
|
260
|
+
multi: true
|
|
261
|
+
}], encapsulation: ViewEncapsulation.None, template: "<div class=\"input-date-time-interval\">\n <mat-form-field cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"clickable\"\n (click)=\"dropdownOpen ? closeDropdown($event) : openDropDown($event)\">\n <mat-label class=\"mdc-floating-label--float-above\" [innerHTML]=\"label\"></mat-label>\n <span class=\"interval-input\">\n <div matPrefix class=\"period-badget text-primary\" *ngIf=\"value?.interval\">\n <mat-icon>date_range</mat-icon>\n <span class=\"period-text\" [innerHTML]=\"value?.interval?.label\"></span>\n </div>\n <input style=\"display: flex\" class=\"clickable\" matInput [value]=\"getInputText()\" [readonly]=\"true\">\n </span>\n <mat-icon class=\"clickable text-tertiary\" matIconSuffix>{{dropdownOpen ? 'expand_less' : 'expand_more'}}</mat-icon>\n </mat-form-field>\n</div>\n\n<ng-template cdkConnectedOverlay\n [cdkConnectedOverlayPanelClass]=\"'input-date-time-interval-overlay-panel'\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (backdropClick)=\"closeDropdown($event)\"\n (overlayOutsideClick)=\"closeDropdown($event)\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"dropdownOpen\">\n <div class=\"input-date-time-interval-dropdown mdc-menu-surface\">\n <div class=\"input-options-container\">\n <div class=\"intervals-container\" *ngIf=\"this.intervals\">\n <div class=\"container-text\" *ngIf=\"relativeLabel\">\n <span class=\"relative-text\" [innerHTML]=\"relativeLabel\"></span>\n </div>\n <ng-scrollbar #intervalsBar class=\"date-time-interval-scrollbar\" [visibility]=\"'always'\">\n <div class=\"interval\"\n [id]=\"'apipass-datetime-interval-' + interval.id\"\n (click)=\"selectInterval(interval)\"\n [ngClass]=\"{'interval-selected': isSelected(interval)}\"\n *ngFor=\"let interval of this.intervals\">\n <div class=\"interval-label\">\n <span [innerHTML]=\"interval.label\"></span>\n </div>\n <div class=\"interval-icon\" *ngIf=\"isSelected(interval)\">\n <mat-icon class=\"mat-icon-slim text-secondary\">check</mat-icon>\n </div>\n </div>\n </ng-scrollbar>\n </div>\n\n <div class=\"calendar-container\" [ngClass]=\"{'only-calendar': !this.intervals}\">\n <div class=\"container-text\" *ngIf=\"absoluteLabel\">\n <span class=\"absolute-text\" [innerHTML]=\"absoluteLabel\"></span>\n </div>\n <div class=\"picker\">\n <div class=\"picker-fields\" [ngClass]=\"{'picker-only-date': hideTime}\">\n <div class=\"picker-group\">\n <mat-form-field class=\"apipass-input-text-slim\">\n <mat-label [innerHTML]=\"startDateLabel\"></mat-label>\n <input matInput [(ngModel)]=\"selectedStartDate\"\n [mask]=\"dateMask\" [dropSpecialCharacters]=\"false\" (blur)=\"startDateChanged()\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>date_range</mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"apipass-input-text-slim\" *ngIf=\"!hideTime\">\n <mat-label [innerHTML]=\"startTimeLabel\"></mat-label>\n <input matInput [mask]=\"timeMask\" [dropSpecialCharacters]=\"false\" [(ngModel)]=\"selectedStartTime\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>schedule</mat-icon>\n </mat-form-field>\n </div>\n <div class=\"picker-group\">\n <mat-form-field class=\"apipass-input-text-slim\">\n <mat-label [innerHTML]=\"endDateLabel\"></mat-label>\n <input matInput [(ngModel)]=\"selectedEndDate\"\n [mask]=\"dateMask\" [dropSpecialCharacters]=\"false\" (blur)=\"endDateChanged()\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>date_range</mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"apipass-input-text-slim\" *ngIf=\"!hideTime\">\n <mat-label [innerHTML]=\"endTimeLabel\"></mat-label>\n <input matInput [mask]=\"timeMask\" [dropSpecialCharacters]=\"false\" [(ngModel)]=\"selectedEndTime\">\n <mat-icon class=\"mat-icon-slim text-tertiary\" matIconSuffix>schedule</mat-icon>\n </mat-form-field>\n </div>\n </div>\n <mat-calendar\n [selected]=\"_selectedDateRange\"\n [maxDate]=\"calendarMaxDate\"\n [minDate]=\"calendarMinDate\"\n (selectedChange)=\"onDateRangeChange($event)\"></mat-calendar>\n </div>\n </div>\n </div>\n <div class=\"input-date-time-actions\">\n <button class=\"action-button dropdown-cancel-button\" *ngIf=\"cancelLabel\" (click)=\"cancel()\">\n <span class=\"dropdown-cancel-button-text\" [innerHTML]=\"cancelLabel\"></span>\n </button>\n <button class=\"action-button dropdown-apply-button\" *ngIf=\"applyLabel\" (click)=\"apply()\">\n <span class=\"dropdown-cancel-button-text\" [innerHTML]=\"applyLabel\"></span>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".input-date-time-interval mat-form-field{width:100%}.input-date-time-interval mat-form-field .interval-input{display:flex;flex-wrap:nowrap}.input-date-time-interval mat-form-field .interval-input .period-badget{display:flex;justify-content:space-around;align-items:center;gap:5px;padding:1px 10px;margin-left:15px;margin-right:5px;background:#EEE;border-radius:4px;border:1px solid #CCC}.input-date-time-interval mat-form-field .interval-input .period-badget .period-text{white-space:nowrap}.input-date-time-interval mat-form-field .date-value-input{display:flex;justify-content:flex-start;align-items:center;gap:5px}.input-date-time-interval-overlay-panel{margin-bottom:5px}.input-date-time-interval-dropdown{box-sizing:border-box;background:#FFF;border:1px solid #CCC;border-radius:5px;width:450px}@media (max-width: 500px){.input-date-time-interval-dropdown{width:90vw}}.input-date-time-interval-dropdown .input-options-container{display:flex;justify-content:space-between;align-items:flex-start}.input-date-time-interval-dropdown .input-options-container .container-text{font-weight:600;margin-bottom:5px}@media (max-width: 500px){.input-date-time-interval-dropdown .input-options-container{flex-direction:column}}.input-date-time-interval-dropdown .input-options-container .intervals-container{padding:10px;width:35%;overflow-x:hidden;overflow-y:auto;border-right:1px solid #CCC}@media (max-width: 500px){.input-date-time-interval-dropdown .input-options-container .intervals-container{width:100%;border-right:none}}.input-date-time-interval-dropdown .input-options-container .intervals-container ng-scrollbar{max-height:380px;min-height:380px}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval{display:flex;justify-content:space-between;align-items:center;gap:5px;background:#FFF;padding:6px 10px;border-radius:5px;cursor:pointer;font-weight:600;color:var(--color-primary)}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval .interval-label{width:100%;height:20px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:13px}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval .interval-icon{width:20px;height:20px}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval .interval-icon mat-icon{width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-size:18px;font-weight:700}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval:hover{background:#CCC}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval.interval-selected{background:var(--color-primary);color:#fff}.input-date-time-interval-dropdown .input-options-container .intervals-container .interval.interval-selected .interval-label{width:calc(100% - 25px)}.input-date-time-interval-dropdown .input-options-container .calendar-container{padding:10px 10px 0;width:65%}.input-date-time-interval-dropdown .input-options-container .calendar-container.only-calendar{width:100%}@media (max-width: 500px){.input-date-time-interval-dropdown .input-options-container .calendar-container{width:100%}}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields{display:flex;justify-content:space-between;flex-direction:column;gap:5px;margin-bottom:5px}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields .picker-group{display:flex;justify-content:space-between;align-items:center;flex-direction:row;gap:5px}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields.picker-only-date{flex-direction:row}.input-date-time-interval-dropdown .input-options-container .calendar-container .picker .picker-fields.picker-only-date .picker-group{width:calc(50% - 5px)}.input-date-time-interval-dropdown .input-date-time-actions{box-sizing:border-box;width:100%;border-top:1px solid #CCC;padding:10px 15px;display:flex;gap:10px;justify-content:center;align-items:center}.input-date-time-interval-dropdown .input-date-time-actions .action-button{display:flex;min-width:105px;padding:5px 15px;gap:5px;overflow:hidden;text-overflow:ellipsis;justify-content:center;align-items:center;font-weight:700;border-radius:10px;cursor:pointer}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-cancel-button{color:var(--color-primary);border:1px solid var(--color-primary);background:#FFF}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-cancel-button:hover{background:var(--color-primary);color:#fff}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-apply-button{color:var(--color-primary);border:1px solid var(--color-secondary);background:var(--color-secondary)}.input-date-time-interval-dropdown .input-date-time-actions .dropdown-apply-button:hover{background:var(--color-secondary-hover)}\n"] }]
|
|
262
|
+
}], ctorParameters: function () { return [{ type: i1.ScrollStrategyOptions }]; }, propDecorators: { timezone: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], dateMask: [{
|
|
265
|
+
type: Input
|
|
266
|
+
}], timeMask: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], dateFormat: [{
|
|
269
|
+
type: Input
|
|
270
|
+
}], label: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}], periodLabel: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}], relativeLabel: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], absoluteLabel: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], startDateLabel: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], startDate: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], startTimeLabel: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], startTime: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], endTimeLabel: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], endTime: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], endDateLabel: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], endDate: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], calendarMaxDate: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], calendarMinDate: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], cancelLabel: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], applyLabel: [{
|
|
301
|
+
type: Input
|
|
302
|
+
}], hideTime: [{
|
|
303
|
+
type: Input
|
|
304
|
+
}], value: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], intervals: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], valueChange: [{
|
|
309
|
+
type: Output
|
|
310
|
+
}], scrollbarRef: [{
|
|
311
|
+
type: ViewChild,
|
|
312
|
+
args: ['intervalsBar']
|
|
313
|
+
}], onKeydownHandler: [{
|
|
314
|
+
type: HostListener,
|
|
315
|
+
args: ['document:keydown.escape', ['$event']]
|
|
316
|
+
}] } });
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLWludGVydmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXQtZGF0ZS10aW1lLWludGVydmFsL2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC9pbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBa0IscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQUU1QyxNQVdhLDhCQUE4QjtJQThIdEI7SUE1SFgsTUFBTSxDQUFtQjtJQUN2QixrQkFBa0IsQ0FBa0I7SUFDdkMsY0FBYyxDQUFnQjtJQUc5QixRQUFRLEdBQVcsbUJBQW1CLENBQUE7SUFHdEMsUUFBUSxHQUFXLFlBQVksQ0FBQTtJQUcvQixRQUFRLEdBQVcsVUFBVSxDQUFBO0lBRzdCLFVBQVUsR0FBVyxxQkFBcUIsQ0FBQTtJQUcxQyxLQUFLLENBQVE7SUFHYixXQUFXLEdBQVcs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QURsQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFXRixLQUFLO3NCQURSLEtBQUs7Z0JBNkJDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxXQUFXO3NCQURqQixNQUFNO2dCQVdvQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBR2xCLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUaW1lSW50ZXJ2YWwgfSBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwvdGltZS1pbnRlcnZhbCc7XG5pbXBvcnQgeyBUaW1lSW50ZXJ2YWxWYWx1ZSB9IGZyb20gJy4vbW9kZWwvZGF0ZS10aW1lLWludGVybmFsLm1vZGVsJztcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgU2Nyb2xsU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbCcsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXQtZGF0ZS10aW1lLWludGVydmFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXREYXRlVGltZUludGVydmFsQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dERhdGVUaW1lSW50ZXJ2YWxDb21wb25lbnQge1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBUaW1lSW50ZXJ2YWxWYWx1ZVxuICBwcm90ZWN0ZWQgX3NlbGVjdGVkRGF0ZVJhbmdlOiBEYXRlUmFuZ2U8RGF0ZT47XG4gIHB1YmxpYyBzY3JvbGxTdHJhdGVneTogU2Nyb2xsU3RyYXRlZ3lcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGltZXpvbmU6IHN0cmluZyA9ICdBbWVyaWNhL1Nhb19QYXVsbydcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0ZU1hc2s6IHN0cmluZyA9ICcwMC8wMC8wMDAwJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aW1lTWFzazogc3RyaW5nID0gJzAwOjAwOjAwJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnREQvTU0vWVlZWSBISDptbTpzcydcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWw6IHN0cmluZ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwZXJpb2RMYWJlbDogc3RyaW5nID0gJ1NlbGVjdGVkIFJlbGF0aXZlIEludGVydmFsJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWxhdGl2ZUxhYmVsOiBzdHJpbmcgPSAnUmVsYXRpdmUgVGltZSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFic29sdXRlTGFiZWw6IHN0cmluZyA9ICdBYnNvbHV0ZSBUaW1lJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydERhdGVMYWJlbCA9ICdTdGFydCBEYXRlJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydERhdGU6IERhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0YXJ0VGltZUxhYmVsID0gJ1N0YXJ0IFRpbWUnXG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0YXJ0VGltZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbmRUaW1lTGFiZWwgPSAnRW5kIFRpbWUnXG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuZFRpbWU6IHN0cmluZ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbmREYXRlTGFiZWwgPSAnRW5kIERhdGUnXG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuZERhdGU6IERhdGVcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FsZW5kYXJNYXhEYXRlOiBEYXRlXG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhbGVuZGFyTWluRGF0ZTogRGF0ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYW5jZWxMYWJlbDogc3RyaW5nID0gJ0NhbmNlbCdcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXBwbHlMYWJlbDogc3RyaW5nID0gJ0FwcGx5J1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWRlVGltZSA9IGZhbHNlO1xuXG4gIGdldCB2YWx1ZSgpOiBUaW1lSW50ZXJ2YWxWYWx1ZSB7XG4gICAgaWYgKCF0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBuZXcgVGltZUludGVydmFsVmFsdWUodGhpcy50aW1lem9uZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogVGltZUludGVydmFsVmFsdWUpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMucmVmcmVzaFZhbHVlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoVmFsdWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92YWx1ZS5pbnRlcnZhbCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEludGVydmFsID0gdGhpcy5fdmFsdWUuaW50ZXJ2YWw7XG4gICAgICB0aGlzLnJlc2V0RGF0ZXMoKVxuICAgIH0gZWxzZSBpZiAodGhpcy5fdmFsdWU/LmFic29sdXRlU3RhcnREYXRlIHx8IHRoaXMuX3ZhbHVlPy5hYnNvbHV0ZUVuZERhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMuX3ZhbHVlPy5hYnNvbHV0ZVN0YXJ0RGF0ZSB8fCB0aGlzLnN0YXJ0RGF0ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSB0aGlzLmRhdGVUb1N0cmluZyhzdGFydERhdGUpO1xuICAgICAgY29uc3QgZW5kRGF0ZSA9IHRoaXMuX3ZhbHVlPy5hYnNvbHV0ZUVuZERhdGUgfHwgdGhpcy5lbmREYXRlO1xuICAgICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB0aGlzLmRhdGVUb1N0cmluZyhlbmREYXRlKTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZVJhbmdlID0gdGhpcy5nZXREYXRlUmFuZ2UodGhpcy5zdHJpbmdUb0RhdGUodGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSksIHRoaXMuc3RyaW5nVG9EYXRlKHRoaXMuc2VsZWN0ZWRFbmREYXRlKSk7XG4gICAgICBpZiAodGhpcy5fdmFsdWU/LmFic29sdXRlU3RhcnREYXRlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGFydFRpbWUgPSB0aGlzLl92YWx1ZS5hYnNvbHV0ZVN0YXJ0RGF0ZS50b1RpbWVTdHJpbmcoKS5zcGxpdCgnICcpWzBdXG4gICAgICB9XG4gICAgICBpZiAodGhpcy52YWx1ZT8uYWJzb2x1dGVFbmREYXRlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbmRUaW1lID0gdGhpcy52YWx1ZT8uYWJzb2x1dGVFbmREYXRlLnRvVGltZVN0cmluZygpLnNwbGl0KCcgJylbMF1cbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGFydFRpbWUgPSB0aGlzLnNlbGVjdGVkU3RhcnRUaW1lIHx8IHRoaXMuc3RhcnRUaW1lO1xuICAgICAgdGhpcy5zZWxlY3RlZEVuZFRpbWUgPSB0aGlzLnNlbGVjdGVkRW5kVGltZSB8fCB0aGlzLmVuZFRpbWU7XG4gICAgICB0aGlzLnNlbGVjdGVkSW50ZXJ2YWwgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaW50ZXJ2YWxzOiBUaW1lSW50ZXJ2YWxbXVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaW1lSW50ZXJ2YWxWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRpbWVJbnRlcnZhbFZhbHVlPigpXG5cbiAgcHVibGljIHNlbGVjdGVkSW50ZXJ2YWw6IFRpbWVJbnRlcnZhbDtcbiAgcHVibGljIHNlbGVjdGVkU3RhcnRUaW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBzZWxlY3RlZEVuZFRpbWU6IHN0cmluZztcbiAgcHVibGljIHNlbGVjdGVkU3RhcnREYXRlOiBzdHJpbmdcbiAgcHVibGljIHNlbGVjdGVkRW5kRGF0ZTogc3RyaW5nXG5cbiAgcHVibGljIGRyb3Bkb3duT3BlbjogYm9vbGVhblxuXG4gIEBWaWV3Q2hpbGQoJ2ludGVydmFsc0JhcicpIHNjcm9sbGJhclJlZjogTmdTY3JvbGxiYXJcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbktleWRvd25IYW5kbGVyKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNzbzogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKSB7XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneSA9IHRoaXMuc3NvLmJsb2NrKClcbiAgICB0aGlzLnJlc2V0RGF0ZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRHJvcERvd24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLl92YWx1ZS5pbnRlcnZhbCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEludGVydmFsID0gdGhpcy5fdmFsdWUuaW50ZXJ2YWw7XG4gICAgICAgIHRoaXMuc2Nyb2xsYmFyUmVmLnNjcm9sbFRvRWxlbWVudChgI2FwaXBhc3MtZGF0ZXRpbWUtaW50ZXJ2YWwtJHtzZWxlY3RlZEludGVydmFsLmlkfWAsIHsgZHVyYXRpb246IDgwMCB9KS50aGVuKClcbiAgICAgIH1cbiAgICB9KVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICBwdWJsaWMgY2xvc2VEcm9wZG93bihldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwoKTtcbiAgICB0aGlzLmRyb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChpbnRlcnZhbDogVGltZUludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGludGVydmFsPy5pZCA9PT0gdGhpcy5zZWxlY3RlZEludGVydmFsPy5pZDtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RJbnRlcnZhbChpbnRlcnZhbDogVGltZUludGVydmFsKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEludGVydmFsID0gaW50ZXJ2YWw7XG4gICAgdGhpcy5yZXNldERhdGVzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RGF0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0ZWREYXRlUmFuZ2UgPSB0aGlzLmdldERhdGVSYW5nZSh0aGlzLnN0YXJ0RGF0ZSwgdGhpcy5lbmREYXRlKTtcbiAgICB0aGlzLnNlbGVjdGVkU3RhcnRUaW1lID0gdGhpcy5zdGFydFRpbWVcbiAgICB0aGlzLnNlbGVjdGVkRW5kVGltZSA9IHRoaXMuZW5kVGltZVxuICAgIHRoaXMuc2VsZWN0ZWRTdGFydERhdGUgPSB0aGlzLmRhdGVUb1N0cmluZyh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5zZWxlY3RlZEVuZERhdGUgPSB0aGlzLmRhdGVUb1N0cmluZyh0aGlzLmVuZERhdGUpO1xuICB9XG5cbiAgcHVibGljIG9uRGF0ZVJhbmdlQ2hhbmdlKGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWREYXRlUmFuZ2U/LnN0YXJ0ICYmIGRhdGUgPiB0aGlzLl9zZWxlY3RlZERhdGVSYW5nZS5zdGFydCAmJiAhdGhpcy5fc2VsZWN0ZWREYXRlUmFuZ2UuZW5kKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZERhdGVSYW5nZSA9IHRoaXMuZ2V0RGF0ZVJhbmdlKHRoaXMuX3NlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0LCBkYXRlKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gdGhpcy5kYXRlVG9TdHJpbmcoZGF0ZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRGF0ZVJhbmdlID0gdGhpcy5nZXREYXRlUmFuZ2UoZGF0ZSwgdW5kZWZpbmVkKVxuICAgICAgdGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSA9IHRoaXMuZGF0ZVRvU3RyaW5nKGRhdGUpO1xuICAgICAgdGhpcy5zZWxlY3RlZEludGVydmFsID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGF0ZVRvU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlID8gbW9tZW50KGRhdGUpLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXQpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpbmdUb0RhdGUoZGF0ZTogc3RyaW5nKTogRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUgPyBtb21lbnQoZGF0ZSwgdGhpcy5kYXRlRm9ybWF0KS50b0RhdGUoKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXRlUmFuZ2Uoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogRGF0ZVJhbmdlPERhdGU+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlUmFuZ2Uoc3RhcnREYXRlID8gbW9tZW50KHN0YXJ0RGF0ZSkudG9EYXRlKCkgOiB1bmRlZmluZWQsIGVuZERhdGUgPyBtb21lbnQoZW5kRGF0ZSkudG9EYXRlKCkgOiB1bmRlZmluZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVJhbmdlPERhdGU+KG51bGwsIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGFydERhdGVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkRGF0ZVJhbmdlID0gdGhpcy5nZXREYXRlUmFuZ2UodGhpcy5zdHJpbmdUb0RhdGUodGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSksIHRoaXMuc3RyaW5nVG9EYXRlKHRoaXMuc2VsZWN0ZWRFbmREYXRlKSk7XG4gICAgdGhpcy5zZWxlY3RlZEludGVydmFsID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGVuZERhdGVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMuc3RyaW5nVG9EYXRlKHRoaXMuc2VsZWN0ZWRTdGFydERhdGUpO1xuICAgIGNvbnN0IGVuZERhdGUgPSB0aGlzLnN0cmluZ1RvRGF0ZSh0aGlzLnNlbGVjdGVkRW5kRGF0ZSk7XG4gICAgaWYgKGVuZERhdGUgPCBzdGFydERhdGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbmREYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RlZERhdGVSYW5nZSA9IHRoaXMuZ2V0RGF0ZVJhbmdlKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgdGhpcy5zZWxlY3RlZEludGVydmFsID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2hWYWx1ZXMoKTtcbiAgICB0aGlzLmRyb3Bkb3duT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFwcGx5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSW50ZXJ2YWwpIHtcbiAgICAgIHRoaXMuX3ZhbHVlLmludGVydmFsID0gdGhpcy5zZWxlY3RlZEludGVydmFsO1xuICAgICAgdGhpcy5fdmFsdWUuYWJzb2x1dGVTdGFydERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl92YWx1ZS5hYnNvbHV0ZUVuZERhdGUgPSB1bmRlZmluZWRcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTdGFydERhdGUpIHtcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5zdHJpbmdUb0RhdGUodGhpcy5zZWxlY3RlZFN0YXJ0RGF0ZSk7XG4gICAgICAgIHRoaXMuYXBwbHlUaW1lT25EYXRlKHN0YXJ0RGF0ZSwgdGhpcy5zZWxlY3RlZFN0YXJ0VGltZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGFydFRpbWUgPSB0aGlzLnNlbGVjdGVkU3RhcnRUaW1lID8/ICcwMDowMDowMCdcbiAgICAgICAgdGhpcy5fdmFsdWUuYWJzb2x1dGVTdGFydERhdGUgPSBtb21lbnQoc3RhcnREYXRlKS50b0RhdGUoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUuYWJzb2x1dGVTdGFydERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEVuZERhdGUpIHtcbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IHRoaXMuc3RyaW5nVG9EYXRlKHRoaXMuc2VsZWN0ZWRFbmREYXRlKTtcbiAgICAgICAgdGhpcy5hcHBseVRpbWVPbkRhdGUoZW5kRGF0ZSwgdGhpcy5zZWxlY3RlZEVuZFRpbWUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRW5kVGltZSA9IHRoaXMuc2VsZWN0ZWRFbmRUaW1lID8/ICcwMDowMDowMCdcbiAgICAgICAgdGhpcy5fdmFsdWUuYWJzb2x1dGVFbmREYXRlID0gbW9tZW50KGVuZERhdGUpLnRvRGF0ZSgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZS5hYnNvbHV0ZUVuZERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aGlzLl92YWx1ZS5pbnRlcnZhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcbiAgICB0aGlzLmRyb3Bkb3duT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVRpbWVPbkRhdGUoZGF0ZTogRGF0ZSwgdGltZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRpbWUpIHtcbiAgICAgIGRhdGUuc2V0SG91cnModGhpcy5nZXRIb3Vyc0Zyb21UaW1lKHRpbWUpKVxuICAgICAgZGF0ZS5zZXRNaW51dGVzKHRoaXMuZ2V0TWludXRlc0Zyb21UaW1lKHRpbWUpKVxuICAgICAgZGF0ZS5zZXRTZWNvbmRzKHRoaXMuZ2V0U2Vjb25kc0Zyb21UaW1lKHRpbWUpKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SG91cnNGcm9tVGltZSh0aW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCh0aW1lLnNwbGl0KCc6JylbMF0pIHx8IDA7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRNaW51dGVzRnJvbVRpbWUodGltZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodGltZS5zcGxpdCgnOicpWzFdKSB8fCAwO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2Vjb25kc0Zyb21UaW1lKHRpbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KHRpbWUuc3BsaXQoJzonKVsyXSkgfHwgMDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0SW5wdXRUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlPy5pbnRlcnZhbCkge1xuICAgICAgcmV0dXJuIHRoaXMucGVyaW9kTGFiZWw7XG4gICAgfVxuICAgIGNvbnN0IGVtcHR5RGF0ZTogc3RyaW5nID0gdGhpcy5oaWRlVGltZSA/ICdfX19fX19fX19fJyA6ICdfX19fX19fX19fIF9fX19fX19fJztcbiAgICBsZXQgZm9ybWF0ZWRUZXh0ID0gJyc7XG4gICAgaWYgKHRoaXMuX3ZhbHVlLmFic29sdXRlU3RhcnREYXRlKSB7XG4gICAgICBmb3JtYXRlZFRleHQgKz0gdGhpcy5kYXRlVG9TdHJpbmcodGhpcy5fdmFsdWUuYWJzb2x1dGVTdGFydERhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtYXRlZFRleHQgKz0gZW1wdHlEYXRlXG4gICAgfVxuICAgIGZvcm1hdGVkVGV4dCArPSAnIC0gJ1xuICAgIGlmICh0aGlzLl92YWx1ZS5hYnNvbHV0ZUVuZERhdGUpIHtcbiAgICAgIGZvcm1hdGVkVGV4dCArPSB0aGlzLmRhdGVUb1N0cmluZyh0aGlzLl92YWx1ZS5hYnNvbHV0ZUVuZERhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtYXRlZFRleHQgKz0gZW1wdHlEYXRlXG4gICAgfVxuICAgIHJldHVybiBmb3JtYXRlZFRleHQ7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWRhdGUtdGltZS1pbnRlcnZhbFwiPlxuICA8bWF0LWZvcm0tZmllbGQgY2RrT3ZlcmxheU9yaWdpbiAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiIGNsYXNzPVwiY2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkcm9wZG93bk9wZW4gPyBjbG9zZURyb3Bkb3duKCRldmVudCkgOiBvcGVuRHJvcERvd24oJGV2ZW50KVwiPlxuICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlXCIgW2lubmVySFRNTF09XCJsYWJlbFwiPjwvbWF0LWxhYmVsPlxuICAgIDxzcGFuIGNsYXNzPVwiaW50ZXJ2YWwtaW5wdXRcIj5cbiAgICAgIDxkaXYgbWF0UHJlZml4IGNsYXNzPVwicGVyaW9kLWJhZGdldCB0ZXh0LXByaW1hcnlcIiAqbmdJZj1cInZhbHVlPy5pbnRlcnZhbFwiPlxuICAgICAgICA8bWF0LWljb24+ZGF0ZV9yYW5nZTwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGVyaW9kLXRleHRcIiBbaW5uZXJIVE1MXT1cInZhbHVlPy5pbnRlcnZhbD8ubGFiZWxcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIiBjbGFzcz1cImNsaWNrYWJsZVwiIG1hdElucHV0IFt2YWx1ZV09XCJnZXRJbnB1dFRleHQoKVwiIFtyZWFkb25seV09XCJ0cnVlXCI+XG4gICAgPC9zcGFuPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cImNsaWNrYWJsZSB0ZXh0LXRlcnRpYXJ5XCIgbWF0SWNvblN1ZmZpeD57e2Ryb3Bkb3duT3BlbiA/ICdleHBhbmRfbGVzcycgOiAnZXhwYW5kX21vcmUnfX08L21hdC1pY29uPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzXT1cIidpbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwtb3ZlcmxheS1wYW5lbCdcIlxuICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3ldPVwic2Nyb2xsU3RyYXRlZ3lcIlxuICAgICAgICAgICAgIChiYWNrZHJvcENsaWNrKT1cImNsb3NlRHJvcGRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgKG92ZXJsYXlPdXRzaWRlQ2xpY2spPVwiY2xvc2VEcm9wZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJkcm9wZG93bk9wZW5cIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWRhdGUtdGltZS1pbnRlcnZhbC1kcm9wZG93biBtZGMtbWVudS1zdXJmYWNlXCI+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LW9wdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW50ZXJ2YWxzLWNvbnRhaW5lclwiICpuZ0lmPVwidGhpcy5pbnRlcnZhbHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci10ZXh0XCIgKm5nSWY9XCJyZWxhdGl2ZUxhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGl2ZS10ZXh0XCIgW2lubmVySFRNTF09XCJyZWxhdGl2ZUxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXNjcm9sbGJhciAjaW50ZXJ2YWxzQmFyIGNsYXNzPVwiZGF0ZS10aW1lLWludGVydmFsLXNjcm9sbGJhclwiIFt2aXNpYmlsaXR5XT1cIidhbHdheXMnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImludGVydmFsXCJcbiAgICAgICAgICAgICAgIFtpZF09XCInYXBpcGFzcy1kYXRldGltZS1pbnRlcnZhbC0nICsgaW50ZXJ2YWwuaWRcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEludGVydmFsKGludGVydmFsKVwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ludGVydmFsLXNlbGVjdGVkJzogaXNTZWxlY3RlZChpbnRlcnZhbCl9XCJcbiAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpbnRlcnZhbCBvZiB0aGlzLmludGVydmFsc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludGVydmFsLWxhYmVsXCI+XG4gICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiaW50ZXJ2YWwubGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnRlcnZhbC1pY29uXCIgKm5nSWY9XCJpc1NlbGVjdGVkKGludGVydmFsKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1zbGltIHRleHQtc2Vjb25kYXJ5XCI+Y2hlY2s8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctc2Nyb2xsYmFyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J29ubHktY2FsZW5kYXInOiAhdGhpcy5pbnRlcnZhbHN9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGV4dFwiICpuZ0lmPVwiYWJzb2x1dGVMYWJlbFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWJzb2x1dGUtdGV4dFwiIFtpbm5lckhUTUxdPVwiYWJzb2x1dGVMYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwaWNrZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyLWZpZWxkc1wiIFtuZ0NsYXNzXT1cInsncGlja2VyLW9ubHktZGF0ZSc6IGhpZGVUaW1lfVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlci1ncm91cFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhcGlwYXNzLWlucHV0LXRleHQtc2xpbVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWwgW2lubmVySFRNTF09XCJzdGFydERhdGVMYWJlbFwiPjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU3RhcnREYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW21hc2tdPVwiZGF0ZU1hc2tcIiBbZHJvcFNwZWNpYWxDaGFyYWN0ZXJzXT1cImZhbHNlXCIgKGJsdXIpPVwic3RhcnREYXRlQ2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tc2xpbSB0ZXh0LXRlcnRpYXJ5XCIgbWF0SWNvblN1ZmZpeD5kYXRlX3JhbmdlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhcGlwYXNzLWlucHV0LXRleHQtc2xpbVwiICpuZ0lmPVwiIWhpZGVUaW1lXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBbaW5uZXJIVE1MXT1cInN0YXJ0VGltZUxhYmVsXCI+PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFttYXNrXT1cInRpbWVNYXNrXCIgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTdGFydFRpbWVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1zbGltIHRleHQtdGVydGlhcnlcIiBtYXRJY29uU3VmZml4PnNjaGVkdWxlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlci1ncm91cFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhcGlwYXNzLWlucHV0LXRleHQtc2xpbVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWwgW2lubmVySFRNTF09XCJlbmREYXRlTGFiZWxcIj48L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbWFza109XCJkYXRlTWFza1wiIFtkcm9wU3BlY2lhbENoYXJhY3RlcnNdPVwiZmFsc2VcIiAoYmx1cik9XCJlbmREYXRlQ2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tc2xpbSB0ZXh0LXRlcnRpYXJ5XCIgbWF0SWNvblN1ZmZpeD5kYXRlX3JhbmdlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhcGlwYXNzLWlucHV0LXRleHQtc2xpbVwiICpuZ0lmPVwiIWhpZGVUaW1lXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBbaW5uZXJIVE1MXT1cImVuZFRpbWVMYWJlbFwiPjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWFza109XCJ0aW1lTWFza1wiIFtkcm9wU3BlY2lhbENoYXJhY3RlcnNdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRW5kVGltZVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXNsaW0gdGV4dC10ZXJ0aWFyeVwiIG1hdEljb25TdWZmaXg+c2NoZWR1bGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1jYWxlbmRhclxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZERhdGVSYW5nZVwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJjYWxlbmRhck1heERhdGVcIlxuICAgICAgICAgICAgW21pbkRhdGVdPVwiY2FsZW5kYXJNaW5EYXRlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJvbkRhdGVSYW5nZUNoYW5nZSgkZXZlbnQpXCI+PC9tYXQtY2FsZW5kYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWRhdGUtdGltZS1hY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLWJ1dHRvbiBkcm9wZG93bi1jYW5jZWwtYnV0dG9uXCIgKm5nSWY9XCJjYW5jZWxMYWJlbFwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWNhbmNlbC1idXR0b24tdGV4dFwiIFtpbm5lckhUTUxdPVwiY2FuY2VsTGFiZWxcIj48L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnV0dG9uIGRyb3Bkb3duLWFwcGx5LWJ1dHRvblwiICpuZ0lmPVwiYXBwbHlMYWJlbFwiIChjbGljayk9XCJhcHBseSgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tY2FuY2VsLWJ1dHRvbi10ZXh0XCIgW2lubmVySFRNTF09XCJhcHBseUxhYmVsXCI+PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import moment from 'moment-timezone';
|
|
2
|
+
export class TimeIntervalValue {
|
|
3
|
+
_timezone;
|
|
4
|
+
_absoluteStartDate;
|
|
5
|
+
_absoluteEndDate;
|
|
6
|
+
_interval;
|
|
7
|
+
constructor(timezone) {
|
|
8
|
+
this._timezone = timezone;
|
|
9
|
+
}
|
|
10
|
+
getStartDate() {
|
|
11
|
+
if (this._interval?.getStartDate) {
|
|
12
|
+
return new Date(moment(this._interval.getStartDate()).tz(this._timezone).format());
|
|
13
|
+
}
|
|
14
|
+
if (this._absoluteStartDate) {
|
|
15
|
+
return new Date(moment(this._absoluteStartDate).tz(this._timezone).format());
|
|
16
|
+
}
|
|
17
|
+
return this._absoluteStartDate;
|
|
18
|
+
}
|
|
19
|
+
getEndDate() {
|
|
20
|
+
if (this._interval?.getEndDate) {
|
|
21
|
+
return new Date(moment(this._interval.getEndDate()).tz(this._timezone).format());
|
|
22
|
+
}
|
|
23
|
+
if (this._absoluteEndDate) {
|
|
24
|
+
return new Date(moment(this._absoluteEndDate).tz(this._timezone).format());
|
|
25
|
+
}
|
|
26
|
+
return this._absoluteEndDate;
|
|
27
|
+
}
|
|
28
|
+
isRelativeInterval() {
|
|
29
|
+
return !!this._interval;
|
|
30
|
+
}
|
|
31
|
+
isAbsoluteDate() {
|
|
32
|
+
return !this.isRelativeInterval();
|
|
33
|
+
}
|
|
34
|
+
get absoluteStartDate() {
|
|
35
|
+
return this._absoluteStartDate;
|
|
36
|
+
}
|
|
37
|
+
set absoluteStartDate(value) {
|
|
38
|
+
this._absoluteStartDate = value;
|
|
39
|
+
}
|
|
40
|
+
get absoluteEndDate() {
|
|
41
|
+
return this._absoluteEndDate;
|
|
42
|
+
}
|
|
43
|
+
set absoluteEndDate(value) {
|
|
44
|
+
this._absoluteEndDate = value;
|
|
45
|
+
}
|
|
46
|
+
get interval() {
|
|
47
|
+
return this._interval;
|
|
48
|
+
}
|
|
49
|
+
set interval(value) {
|
|
50
|
+
this._interval = value;
|
|
51
|
+
}
|
|
52
|
+
get timezone() {
|
|
53
|
+
return this._timezone;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWludGVybmFsLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9pbnB1dC1kYXRlLXRpbWUtaW50ZXJ2YWwvbW9kZWwvZGF0ZS10aW1lLWludGVybmFsLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBRXJDLE1BQU0sT0FBTyxpQkFBaUI7SUFFWCxTQUFTLENBQVE7SUFDMUIsa0JBQWtCLENBQU07SUFDeEIsZ0JBQWdCLENBQU07SUFDdEIsU0FBUyxDQUFjO0lBRS9CLFlBQVksUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRTtZQUNoQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3BGO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFO1lBQzlCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDbEY7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDNUU7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxpQkFBaUIsQ0FBQyxLQUFXO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsS0FBVztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGltZUludGVydmFsIH0gZnJvbSAnLi4vZGVmYXVsdC1pbnRlcnZhbC90aW1lLWludGVydmFsJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcblxuZXhwb3J0IGNsYXNzIFRpbWVJbnRlcnZhbFZhbHVlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90aW1lem9uZTogc3RyaW5nXG4gIHByaXZhdGUgX2Fic29sdXRlU3RhcnREYXRlOiBEYXRlXG4gIHByaXZhdGUgX2Fic29sdXRlRW5kRGF0ZTogRGF0ZVxuICBwcml2YXRlIF9pbnRlcnZhbDogVGltZUludGVydmFsXG5cbiAgY29uc3RydWN0b3IodGltZXpvbmU6IHN0cmluZykge1xuICAgIHRoaXMuX3RpbWV6b25lID0gdGltZXpvbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhcnREYXRlKCk6IERhdGUge1xuICAgIGlmICh0aGlzLl9pbnRlcnZhbD8uZ2V0U3RhcnREYXRlKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUobW9tZW50KHRoaXMuX2ludGVydmFsLmdldFN0YXJ0RGF0ZSgpKS50eih0aGlzLl90aW1lem9uZSkuZm9ybWF0KCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fYWJzb2x1dGVTdGFydERhdGUpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtb21lbnQodGhpcy5fYWJzb2x1dGVTdGFydERhdGUpLnR6KHRoaXMuX3RpbWV6b25lKS5mb3JtYXQoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hYnNvbHV0ZVN0YXJ0RGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbmREYXRlKCk6IERhdGUge1xuICAgIGlmICh0aGlzLl9pbnRlcnZhbD8uZ2V0RW5kRGF0ZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKG1vbWVudCh0aGlzLl9pbnRlcnZhbC5nZXRFbmREYXRlKCkpLnR6KHRoaXMuX3RpbWV6b25lKS5mb3JtYXQoKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9hYnNvbHV0ZUVuZERhdGUpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtb21lbnQodGhpcy5fYWJzb2x1dGVFbmREYXRlKS50eih0aGlzLl90aW1lem9uZSkuZm9ybWF0KCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYWJzb2x1dGVFbmREYXRlO1xuICB9XG5cbiAgcHVibGljIGlzUmVsYXRpdmVJbnRlcnZhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9pbnRlcnZhbDtcbiAgfVxuXG4gIHB1YmxpYyBpc0Fic29sdXRlRGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNSZWxhdGl2ZUludGVydmFsKClcbiAgfVxuXG4gIGdldCBhYnNvbHV0ZVN0YXJ0RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fYWJzb2x1dGVTdGFydERhdGU7XG4gIH1cblxuICBzZXQgYWJzb2x1dGVTdGFydERhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLl9hYnNvbHV0ZVN0YXJ0RGF0ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGFic29sdXRlRW5kRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fYWJzb2x1dGVFbmREYXRlO1xuICB9XG5cbiAgc2V0IGFic29sdXRlRW5kRGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX2Fic29sdXRlRW5kRGF0ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGludGVydmFsKCk6IFRpbWVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIHRoaXMuX2ludGVydmFsO1xuICB9XG5cbiAgc2V0IGludGVydmFsKHZhbHVlOiBUaW1lSW50ZXJ2YWwpIHtcbiAgICB0aGlzLl9pbnRlcnZhbCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHRpbWV6b25lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RpbWV6b25lO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Export builders
|
|
2
|
+
export * from './builder/default-intervals.builder';
|
|
3
|
+
export * from './builder/time-interval-value.builder';
|
|
4
|
+
export * from './builder/time-intervals.builder';
|
|
5
|
+
// Export model class
|
|
6
|
+
export * from './model/date-time-internal.model';
|
|
7
|
+
// Export default intervals
|
|
8
|
+
export * from './default-interval/time-interval';
|
|
9
|
+
export * from './default-interval/current-month-interval';
|
|
10
|
+
export * from './default-interval/last-five-minutes-interval';
|
|
11
|
+
export * from './default-interval/last-hour-interval';
|
|
12
|
+
export * from './default-interval/last-minute-interval';
|
|
13
|
+
export * from './default-interval/last-month-interval';
|
|
14
|
+
export * from './default-interval/last-one-week-interval';
|
|
15
|
+
export * from './default-interval/last-quarter-interval';
|
|
16
|
+
export * from './default-interval/last-ten-minutes-interval';
|
|
17
|
+
export * from './default-interval/last-thirty-minutes-interval';
|
|
18
|
+
export * from './default-interval/last-three-hours-interval';
|
|
19
|
+
export * from './default-interval/last-two-hours-interval';
|
|
20
|
+
export * from './default-interval/last-year-interval';
|
|
21
|
+
export * from './default-interval/this-quarter-interval';
|
|
22
|
+
export * from './default-interval/this-week-interval';
|
|
23
|
+
export * from './default-interval/this-year-interval';
|
|
24
|
+
export * from './default-interval/today-interval';
|
|
25
|
+
export * from './default-interval/yesterday-interval';
|
|
26
|
+
// Export Component
|
|
27
|
+
export * from './input-date-time-interval.component';
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXQtZGF0ZS10aW1lLWludGVydmFsL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0JBQWtCO0FBQ2xCLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLGtDQUFrQyxDQUFBO0FBRWhELHFCQUFxQjtBQUNyQixjQUFjLGtDQUFrQyxDQUFBO0FBRWhELDJCQUEyQjtBQUMzQixjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQTtBQUN0RCxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyw4Q0FBOEMsQ0FBQTtBQUM1RCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsOENBQThDLENBQUE7QUFDNUQsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUVyRCxtQkFBbUI7QUFDbkIsY0FBYyxzQ0FBc0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydCBidWlsZGVyc1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZGVyL2RlZmF1bHQtaW50ZXJ2YWxzLmJ1aWxkZXInXG5leHBvcnQgKiBmcm9tICcuL2J1aWxkZXIvdGltZS1pbnRlcnZhbC12YWx1ZS5idWlsZGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZGVyL3RpbWUtaW50ZXJ2YWxzLmJ1aWxkZXInXG5cbi8vIEV4cG9ydCBtb2RlbCBjbGFzc1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9kYXRlLXRpbWUtaW50ZXJuYWwubW9kZWwnXG5cbi8vIEV4cG9ydCBkZWZhdWx0IGludGVydmFsc1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LWludGVydmFsL3RpbWUtaW50ZXJ2YWwnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwvY3VycmVudC1tb250aC1pbnRlcnZhbCdcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1pbnRlcnZhbC9sYXN0LWZpdmUtbWludXRlcy1pbnRlcnZhbCdcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1pbnRlcnZhbC9sYXN0LWhvdXItaW50ZXJ2YWwnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwvbGFzdC1taW51dGUtaW50ZXJ2YWwnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwvbGFzdC1tb250aC1pbnRlcnZhbCdcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1pbnRlcnZhbC9sYXN0LW9uZS13ZWVrLWludGVydmFsJ1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LWludGVydmFsL2xhc3QtcXVhcnRlci1pbnRlcnZhbCdcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1pbnRlcnZhbC9sYXN0LXRlbi1taW51dGVzLWludGVydmFsJ1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LWludGVydmFsL2xhc3QtdGhpcnR5LW1pbnV0ZXMtaW50ZXJ2YWwnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwvbGFzdC10aHJlZS1ob3Vycy1pbnRlcnZhbCdcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1pbnRlcnZhbC9sYXN0LXR3by1ob3Vycy1pbnRlcnZhbCdcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1pbnRlcnZhbC9sYXN0LXllYXItaW50ZXJ2YWwnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwvdGhpcy1xdWFydGVyLWludGVydmFsJ1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LWludGVydmFsL3RoaXMtd2Vlay1pbnRlcnZhbCdcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1pbnRlcnZhbC90aGlzLXllYXItaW50ZXJ2YWwnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwvdG9kYXktaW50ZXJ2YWwnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW50ZXJ2YWwveWVzdGVyZGF5LWludGVydmFsJ1xuXG4vLyBFeHBvcnQgQ29tcG9uZW50XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWRhdGUtdGltZS1pbnRlcnZhbC5jb21wb25lbnQnXG4iXX0=
|