@datarailsshared/datarailsshared 1.6.275 → 1.6.277
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/datarailsshared-datarailsshared-1.6.277.tgz +0 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-fiscal-month-calendar-picker/dr-fiscal-month-calendar-picker.component.mjs +2 -2
- package/esm2022/lib/dr-tags/_consts/scenario-tags-config.mjs +87 -0
- package/esm2022/lib/dr-tags/_interfaces/scenario.mjs +8 -0
- package/esm2022/lib/dr-tags/_services/scenario.service.mjs +195 -0
- package/esm2022/lib/dr-tags/_services/tags-constructor.service.mjs +71 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/any-tag.component.mjs +42 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-date.component.mjs +151 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-day/dr-tag-day.component.mjs +98 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/dr-tag-forecast.component.mjs +225 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/forecast-tag.service.mjs +87 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-month/dr-tag-month.component.mjs +101 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-quarter/dr-tag-quarter.component.mjs +129 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-week/dr-tag-week.component.mjs +105 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-year/dr-tag-year.component.mjs +99 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-dynamic/dr-tag-dynamic.component.mjs +230 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-list/dr-tag-list.component.mjs +85 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag.component.mjs +241 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag.types.mjs +2 -0
- package/esm2022/lib/dr-tags/dr-tags-and-scenario/dr-tags-and-scenario.component.mjs +103 -0
- package/esm2022/lib/dr-tags/dr-tags-and-scenario-constructor/dr-tags-and-scenario-constructor.component.mjs +107 -0
- package/esm2022/lib/dr-tags/dr-tags-constructor/dr-tags-constructor.component.mjs +164 -0
- package/esm2022/local-api.mjs +18 -25
- package/fesm2022/datarailsshared-datarailsshared.mjs +8634 -8736
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/{dr-scenario/consts → dr-tags/_consts}/scenario-tags-config.d.ts +1 -1
- package/lib/{dr-scenario/services → dr-tags/_services}/scenario.service.d.ts +1 -1
- package/lib/{dr-tags-constructor → dr-tags/_services}/tags-constructor.service.d.ts +2 -2
- package/lib/{date-tags → dr-tags/dr-tag/dr-tag-date}/any-tag.component.d.ts +1 -1
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-date.component.d.ts +18 -0
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-day/dr-tag-day.component.d.ts +14 -0
- package/lib/{date-tags/forecast-tag/forecast-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/dr-tag-forecast.component.d.ts} +5 -5
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-month/dr-tag-month.component.d.ts +14 -0
- package/lib/{date-tags/quarter-tag/quarter-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-quarter/dr-tag-quarter.component.d.ts} +3 -3
- package/lib/{date-tags/week-tag/week-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-week/dr-tag-week.component.d.ts} +3 -3
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-year/dr-tag-year.component.d.ts +14 -0
- package/lib/{dr-dynamic-tag/dr-dynamic-tag.component.d.ts → dr-tags/dr-tag/dr-tag-dynamic/dr-tag-dynamic.component.d.ts} +5 -5
- package/lib/dr-tags/dr-tag/dr-tag-list/dr-tag-list.component.d.ts +15 -0
- package/lib/dr-tags/{dr-tag.component.d.ts → dr-tag/dr-tag.component.d.ts} +2 -2
- package/lib/dr-tags/dr-tags-and-scenario/dr-tags-and-scenario.component.d.ts +31 -0
- package/lib/{dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts → dr-tags/dr-tags-and-scenario-constructor/dr-tags-and-scenario-constructor.component.d.ts} +6 -6
- package/lib/{dr-tags-constructor → dr-tags/dr-tags-constructor}/dr-tags-constructor.component.d.ts +6 -6
- package/local-api.d.ts +17 -24
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.275.tgz +0 -0
- package/esm2022/lib/date-tags/any-tag.component.mjs +0 -42
- package/esm2022/lib/date-tags/date-tag.component.mjs +0 -131
- package/esm2022/lib/date-tags/date-tag.module.mjs +0 -53
- package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +0 -95
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +0 -222
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.service.mjs +0 -87
- package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +0 -98
- package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +0 -126
- package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +0 -102
- package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +0 -96
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +0 -227
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +0 -21
- package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +0 -104
- package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +0 -100
- package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +0 -87
- package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +0 -27
- package/esm2022/lib/dr-scenario/interfaces/scenario.mjs +0 -8
- package/esm2022/lib/dr-scenario/services/scenario.service.mjs +0 -195
- package/esm2022/lib/dr-tags/dr-tag.component.mjs +0 -240
- package/esm2022/lib/dr-tags/dr-tag.module.mjs +0 -23
- package/esm2022/lib/dr-tags/dr-tag.types.mjs +0 -2
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +0 -161
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +0 -24
- package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +0 -71
- package/esm2022/lib/list-tags/list-tag.component.mjs +0 -82
- package/esm2022/lib/list-tags/list-tag.module.mjs +0 -22
- package/lib/date-tags/date-tag.component.d.ts +0 -18
- package/lib/date-tags/date-tag.module.d.ts +0 -21
- package/lib/date-tags/day-tag/day-tag.component.d.ts +0 -14
- package/lib/date-tags/month-tag/month-tag.component.d.ts +0 -14
- package/lib/date-tags/year-tag/year-tag.component.d.ts +0 -14
- package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +0 -10
- package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +0 -31
- package/lib/dr-scenario/dr-scenario.module.d.ts +0 -13
- package/lib/dr-tags/dr-tag.module.d.ts +0 -11
- package/lib/dr-tags-constructor/dr-tags-constructor.module.d.ts +0 -10
- package/lib/list-tags/list-tag.component.d.ts +0 -15
- package/lib/list-tags/list-tag.module.d.ts +0 -10
- /package/lib/{dr-scenario/interfaces → dr-tags/_interfaces}/scenario.d.ts +0 -0
- /package/lib/{date-tags/forecast-tag → dr-tags/dr-tag/dr-tag-date/dr-tag-forecast}/forecast-tag.service.d.ts +0 -0
- /package/lib/dr-tags/{dr-tag.types.d.ts → dr-tag/dr-tag.types.d.ts} +0 -0
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import { AnyTagComponent } from '../any-tag.component';
|
|
3
|
-
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
4
|
-
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
5
|
-
import moment from 'moment';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/forms";
|
|
8
|
-
import * as i2 from "../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
|
|
9
|
-
const DAY_FORMATS = {
|
|
10
|
-
parse: {
|
|
11
|
-
dateInput: 'DD-MM-YYYY',
|
|
12
|
-
},
|
|
13
|
-
display: {
|
|
14
|
-
dateInput: 'DD.MM.YYYY',
|
|
15
|
-
monthYearLabel: 'MMMM YYYY',
|
|
16
|
-
dateA11yLabel: 'LL',
|
|
17
|
-
monthYearA11yLabel: 'MMMM YYYY',
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
export class DayTagComponent extends AnyTagComponent {
|
|
21
|
-
get isLocked() {
|
|
22
|
-
return this.date ? !this.dateFilter(moment.unix(this.date)) : false;
|
|
23
|
-
}
|
|
24
|
-
constructor() {
|
|
25
|
-
super();
|
|
26
|
-
this.lockedDate = [];
|
|
27
|
-
}
|
|
28
|
-
initDate() {
|
|
29
|
-
this.date = this.defaultValue || moment().unix();
|
|
30
|
-
this.dateObj.date = this.date;
|
|
31
|
-
}
|
|
32
|
-
initName() {
|
|
33
|
-
if (!this.name) {
|
|
34
|
-
this.name = 'Day';
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
chosenTagHandler(value) {
|
|
38
|
-
const date = moment.unix(value);
|
|
39
|
-
const resultTag = {
|
|
40
|
-
name: this.name,
|
|
41
|
-
value: date.unix(),
|
|
42
|
-
label: date.format('MM/DD/YYYY'),
|
|
43
|
-
locked: !this.dateFilter(date),
|
|
44
|
-
};
|
|
45
|
-
console.log('resultTag', resultTag);
|
|
46
|
-
this.dateChange.emit(resultTag);
|
|
47
|
-
}
|
|
48
|
-
dateFilter(momentData) {
|
|
49
|
-
const date = momentData.date();
|
|
50
|
-
return !this.lockedDate.some((timestamp) => {
|
|
51
|
-
const lockDate = moment.unix(timestamp);
|
|
52
|
-
return lockDate.date() === date;
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
/** @nocollapse */ static { this.ɵfac = function DayTagComponent_Factory(t) { return new (t || DayTagComponent)(); }; }
|
|
56
|
-
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DayTagComponent, selectors: [["day-tag"]], hostVars: 2, hostBindings: function DayTagComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
57
|
-
i0.ɵɵclassProp("locked", ctx.isLocked);
|
|
58
|
-
} }, inputs: { lockedDate: "lockedDate" }, features: [i0.ɵɵProvidersFeature([
|
|
59
|
-
{
|
|
60
|
-
provide: DateAdapter,
|
|
61
|
-
useClass: MomentDateAdapter,
|
|
62
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
63
|
-
},
|
|
64
|
-
{ provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },
|
|
65
|
-
]), i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper"], [1, "tag__label"], ["format", "day", 3, "ngModel", "disabled", "datepickerFilter", "ngModelChange"]], template: function DayTagComponent_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
|
|
67
|
-
i0.ɵɵtext(2);
|
|
68
|
-
i0.ɵɵelementEnd();
|
|
69
|
-
i0.ɵɵelementStart(3, "dr-date-picker", 2);
|
|
70
|
-
i0.ɵɵlistener("ngModelChange", function DayTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.date = $event; })("ngModelChange", function DayTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
|
|
71
|
-
i0.ɵɵelementEnd()();
|
|
72
|
-
} if (rf & 2) {
|
|
73
|
-
i0.ɵɵadvance(2);
|
|
74
|
-
i0.ɵɵtextInterpolate(ctx.name);
|
|
75
|
-
i0.ɵɵadvance(1);
|
|
76
|
-
i0.ɵɵproperty("ngModel", ctx.date)("disabled", ctx.disabled)("datepickerFilter", ctx.dateFilter.bind(ctx));
|
|
77
|
-
} }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.DrDatePickerComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-date-picker[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
|
|
78
|
-
}
|
|
79
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DayTagComponent, [{
|
|
80
|
-
type: Component,
|
|
81
|
-
args: [{ selector: 'day-tag', providers: [
|
|
82
|
-
{
|
|
83
|
-
provide: DateAdapter,
|
|
84
|
-
useClass: MomentDateAdapter,
|
|
85
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
86
|
-
},
|
|
87
|
-
{ provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },
|
|
88
|
-
], template: "<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"day\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-date-picker{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
|
|
89
|
-
}], function () { return []; }, { isLocked: [{
|
|
90
|
-
type: HostBinding,
|
|
91
|
-
args: ['class.locked']
|
|
92
|
-
}], lockedDate: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}] }); })();
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXRhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kYXRlLXRhZ3MvZGF5LXRhZy9kYXktdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9kYXktdGFnL2RheS10YWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7OztBQUU1QixNQUFNLFdBQVcsR0FBRztJQUNoQixLQUFLLEVBQUU7UUFDSCxTQUFTLEVBQUUsWUFBWTtLQUMxQjtJQUNELE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDbEM7Q0FDSixDQUFDO0FBZUYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTtJQUNoRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEUsQ0FBQztJQU1EO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFMSCxlQUFVLEdBQVUsRUFBRSxDQUFDO0lBTWhDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxNQUFNLFNBQVMsR0FBYTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDaEMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7U0FDakMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBVTtRQUNqQixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO21HQTVDUSxlQUFlO21HQUFmLGVBQWU7O29GQVRiO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxXQUFXO29CQUNwQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7aUJBQzNEO2dCQUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7YUFDdkQ7WUM5QkwsOEJBQXlCLFdBQUE7WUFDQyxZQUFVO1lBQUEsaUJBQUk7WUFDcEMseUNBSytDO1lBSDNDLCtJQUFrQiw2R0FHRCw0QkFBd0IsSUFIdkI7WUFHeUIsaUJBQWlCLEVBQUE7O1lBTjFDLGVBQVU7WUFBViw4QkFBVTtZQUc1QixlQUFrQjtZQUFsQixrQ0FBa0IsMEJBQUEsOENBQUE7Ozt1RkQ0QmIsZUFBZTtjQWIzQixTQUFTOzJCQUVJLFNBQVMsYUFFUjtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUMzRDtvQkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2lCQUN2RDtzQ0FJRyxRQUFRO2tCQURYLFdBQVc7bUJBQUMsY0FBYztZQUtsQixVQUFVO2tCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgQW55VGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vYW55LXRhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmNvbnN0IERBWV9GT1JNQVRTID0ge1xuICAgIHBhcnNlOiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ0RELU1NLVlZWVknLFxuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgbW9udGhZZWFyTGFiZWw6ICdNTU1NIFlZWVknLFxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxuICAgICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICAgIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJ2RheS10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAnZGF5LXRhZycsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF5LXRhZy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgICAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBEQVlfRk9STUFUUyB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIERheVRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sb2NrZWQnKVxuICAgIGdldCBpc0xvY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZSA/ICF0aGlzLmRhdGVGaWx0ZXIobW9tZW50LnVuaXgodGhpcy5kYXRlKSkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuXG4gICAgZGF0ZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXREYXRlKCkge1xuICAgICAgICB0aGlzLmRhdGUgPSB0aGlzLmRlZmF1bHRWYWx1ZSB8fCBtb21lbnQoKS51bml4KCk7XG4gICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gdGhpcy5kYXRlO1xuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ0RheSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaG9zZW5UYWdIYW5kbGVyKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudC51bml4KHZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBkYXRlLnVuaXgoKSxcbiAgICAgICAgICAgIGxhYmVsOiBkYXRlLmZvcm1hdCgnTU0vREQvWVlZWScpLFxuICAgICAgICAgICAgbG9ja2VkOiAhdGhpcy5kYXRlRmlsdGVyKGRhdGUpLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZygncmVzdWx0VGFnJywgcmVzdWx0VGFnKTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyKG1vbWVudERhdGEpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudERhdGEuZGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5sb2NrZWREYXRlLnNvbWUoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgcmV0dXJuIGxvY2tEYXRlLmRhdGUoKSA9PT0gZGF0ZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhZy13cmFwcGVyXCI+XG4gICAgPHAgY2xhc3M9XCJ0YWdfX2xhYmVsXCI+e3sgbmFtZSB9fTwvcD5cbiAgICA8ZHItZGF0ZS1waWNrZXJcbiAgICAgICAgZm9ybWF0PVwiZGF5XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2RhdGVwaWNrZXJGaWx0ZXJdPVwiZGF0ZUZpbHRlci5iaW5kKHRoaXMpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hvc2VuVGFnSGFuZGxlcigkZXZlbnQpXCI+PC9kci1kYXRlLXBpY2tlcj5cbjwvZGl2PlxuIl19
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { AnyTagComponent } from '../any-tag.component';
|
|
3
|
-
import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
4
|
-
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
5
|
-
import { find as _find, cloneDeep as _cloneDeep } from 'lodash';
|
|
6
|
-
import moment from 'moment';
|
|
7
|
-
import { DatePickerPeriodPosition } from '../../models/datePicker';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common";
|
|
10
|
-
import * as i2 from "@angular/forms";
|
|
11
|
-
import * as i3 from "../../dr-inputs/dr-select/dr-select.component";
|
|
12
|
-
import * as i4 from "../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
|
|
13
|
-
function ForecastTagComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
|
15
|
-
i0.ɵɵelementContainerStart(0);
|
|
16
|
-
i0.ɵɵelementStart(1, "div", 2)(2, "div", 3)(3, "p", 4);
|
|
17
|
-
i0.ɵɵtext(4);
|
|
18
|
-
i0.ɵɵelementEnd();
|
|
19
|
-
i0.ɵɵelementStart(5, "dr-select", 5);
|
|
20
|
-
i0.ɵɵlistener("ngModelChange", function ForecastTagComponent_ng_container_0_Template_dr_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.forecastValue = $event); })("ngModelChange", function ForecastTagComponent_ng_container_0_Template_dr_select_ngModelChange_5_listener() { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.changeTagInputHandler()); });
|
|
21
|
-
i0.ɵɵelementEnd()();
|
|
22
|
-
i0.ɵɵelementStart(6, "div", 6)(7, "p", 4);
|
|
23
|
-
i0.ɵɵtext(8, "Year");
|
|
24
|
-
i0.ɵɵelementEnd();
|
|
25
|
-
i0.ɵɵelementStart(9, "dr-date-picker", 7);
|
|
26
|
-
i0.ɵɵlistener("ngModelChange", function ForecastTagComponent_ng_container_0_Template_dr_date_picker_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.forecastYear = $event); })("ngModelChange", function ForecastTagComponent_ng_container_0_Template_dr_date_picker_ngModelChange_9_listener() { i0.ɵɵrestoreView(_r4); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.changeYearInputHandler()); });
|
|
27
|
-
i0.ɵɵelementEnd()()();
|
|
28
|
-
i0.ɵɵelementContainerEnd();
|
|
29
|
-
} if (rf & 2) {
|
|
30
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
31
|
-
i0.ɵɵadvance(4);
|
|
32
|
-
i0.ɵɵtextInterpolate((ctx_r0.tagAdditionalSettings == null ? null : ctx_r0.tagAdditionalSettings.tagLabel) || "Forecast");
|
|
33
|
-
i0.ɵɵadvance(1);
|
|
34
|
-
i0.ɵɵproperty("ngModel", ctx_r0.forecastValue)("disabled", ctx_r0.disabled)("items", ctx_r0.forecastTags);
|
|
35
|
-
i0.ɵɵadvance(4);
|
|
36
|
-
i0.ɵɵproperty("ngModel", ctx_r0.forecastYear)("datepickerFilter", ctx_r0.dateFilter.bind(ctx_r0))("periodPosition", ctx_r0.datePickerPeriodPosition.MIDDLE_OF_PERIOD)("disabled", ctx_r0.disabled);
|
|
37
|
-
} }
|
|
38
|
-
function ForecastTagComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
-
const _r9 = i0.ɵɵgetCurrentView();
|
|
40
|
-
i0.ɵɵelementStart(0, "div", 8)(1, "p", 4);
|
|
41
|
-
i0.ɵɵtext(2);
|
|
42
|
-
i0.ɵɵelementEnd();
|
|
43
|
-
i0.ɵɵelementStart(3, "div", 9)(4, "dr-date-picker", 10);
|
|
44
|
-
i0.ɵɵlistener("ngModelChange", function ForecastTagComponent_ng_template_1_Template_dr_date_picker_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.forecastYear = $event); })("ngModelChange", function ForecastTagComponent_ng_template_1_Template_dr_date_picker_ngModelChange_4_listener() { i0.ɵɵrestoreView(_r9); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.changeYearInputHandler()); });
|
|
45
|
-
i0.ɵɵelementEnd();
|
|
46
|
-
i0.ɵɵelementStart(5, "dr-select", 11);
|
|
47
|
-
i0.ɵɵlistener("ngModelChange", function ForecastTagComponent_ng_template_1_Template_dr_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.forecastValue = $event); })("ngModelChange", function ForecastTagComponent_ng_template_1_Template_dr_select_ngModelChange_5_listener() { i0.ɵɵrestoreView(_r9); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.changeTagInputHandler()); });
|
|
48
|
-
i0.ɵɵelementEnd()()();
|
|
49
|
-
} if (rf & 2) {
|
|
50
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
51
|
-
i0.ɵɵadvance(2);
|
|
52
|
-
i0.ɵɵtextInterpolate((ctx_r2.tagAdditionalSettings == null ? null : ctx_r2.tagAdditionalSettings.tagLabel) || "Scenario cycle");
|
|
53
|
-
i0.ɵɵadvance(2);
|
|
54
|
-
i0.ɵɵproperty("ngModel", ctx_r2.forecastYear)("datepickerFilter", ctx_r2.dateFilter.bind(ctx_r2))("disabled", ctx_r2.disabled);
|
|
55
|
-
i0.ɵɵadvance(1);
|
|
56
|
-
i0.ɵɵproperty("ngModel", ctx_r2.forecastValue)("disabled", ctx_r2.disabled)("items", ctx_r2.forecastTags);
|
|
57
|
-
} }
|
|
58
|
-
/* BEFORE MERGE INTO MASTER YOU MUST CONSULT WITH ARTEM LAZIUK !!!*/
|
|
59
|
-
const FORECAST_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';
|
|
60
|
-
export class ForecastTagComponent extends AnyTagComponent {
|
|
61
|
-
constructor() {
|
|
62
|
-
super();
|
|
63
|
-
this.datePickerPeriodPosition = DatePickerPeriodPosition;
|
|
64
|
-
this.lockedDate = [];
|
|
65
|
-
this.tagAdditionalSettings = {};
|
|
66
|
-
this.forecastValue = undefined;
|
|
67
|
-
this.isDateEventHappened = false;
|
|
68
|
-
this.forecastTags = [
|
|
69
|
-
{ value: 0, label: '0+12', disabled: false },
|
|
70
|
-
{ value: 1, label: '1+11', disabled: false },
|
|
71
|
-
{ value: 2, label: '2+10', disabled: false },
|
|
72
|
-
{ value: 3, label: '3+9', disabled: false },
|
|
73
|
-
{ value: 4, label: '4+8', disabled: false },
|
|
74
|
-
{ value: 5, label: '5+7', disabled: false },
|
|
75
|
-
{ value: 6, label: '6+6', disabled: false },
|
|
76
|
-
{ value: 7, label: '7+5', disabled: false },
|
|
77
|
-
{ value: 8, label: '8+4', disabled: false },
|
|
78
|
-
{ value: 9, label: '9+3', disabled: false },
|
|
79
|
-
{ value: 10, label: '10+2', disabled: false },
|
|
80
|
-
{ value: 11, label: '11+1', disabled: false },
|
|
81
|
-
];
|
|
82
|
-
this.initDateValue = null;
|
|
83
|
-
this.firstDayMonthOfYear = '01';
|
|
84
|
-
}
|
|
85
|
-
ngOnChanges(changes) {
|
|
86
|
-
if (changes.lockedDate) {
|
|
87
|
-
this.updateLockedDate();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
initDate() {
|
|
91
|
-
const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();
|
|
92
|
-
const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
|
|
93
|
-
this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;
|
|
94
|
-
this.forecastYear = moment
|
|
95
|
-
.utc(`${this.firstDayMonthOfYear}/${this.firstDayMonthOfYear}/${this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, this.fiscalYearBack)}`, FORECAST_DEFAULT_DATE_FORMAT)
|
|
96
|
-
.set('hours', 12)
|
|
97
|
-
.unix();
|
|
98
|
-
this.updateLockedDate();
|
|
99
|
-
if (!this.initDateValue) {
|
|
100
|
-
this.initDateValue = _cloneDeep(this.dateObj.date);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
updateLockedDate() {
|
|
104
|
-
const year = moment.unix(this.forecastYear).year();
|
|
105
|
-
this.forecastTags = this.forecastTags.map((forecastTag) => {
|
|
106
|
-
forecastTag.disabled = this.lockedDate.some((timestamp) => {
|
|
107
|
-
const locked = moment.unix(timestamp);
|
|
108
|
-
return locked.month() === forecastTag.value && +locked.year() === +year;
|
|
109
|
-
});
|
|
110
|
-
return forecastTag;
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
initName() {
|
|
114
|
-
if (!this.name) {
|
|
115
|
-
this.name = 'Forecast (New)';
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {
|
|
119
|
-
const all_months = [];
|
|
120
|
-
for (let i = fiscal_year_starts_from; i < 13; i++) {
|
|
121
|
-
all_months.push(i);
|
|
122
|
-
}
|
|
123
|
-
for (let i = 1; i < fiscal_year_starts_from; i++) {
|
|
124
|
-
all_months.push(i);
|
|
125
|
-
}
|
|
126
|
-
return all_months.indexOf(dateObj.month() + 1) + 1;
|
|
127
|
-
}
|
|
128
|
-
getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {
|
|
129
|
-
let fiscal_year = dateObj.year();
|
|
130
|
-
if (!fiscal_year_back) {
|
|
131
|
-
if (dateObj.month() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {
|
|
132
|
-
fiscal_year += 1;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
if (dateObj.month() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {
|
|
137
|
-
fiscal_year -= 1;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return fiscal_year;
|
|
141
|
-
}
|
|
142
|
-
changeTagInputHandler() {
|
|
143
|
-
this.chosenTagHandler();
|
|
144
|
-
}
|
|
145
|
-
changeYearInputHandler() {
|
|
146
|
-
this.updateLockedDate();
|
|
147
|
-
this.initDateValue = _cloneDeep(this.dateObj.date);
|
|
148
|
-
this.chosenTagHandler();
|
|
149
|
-
}
|
|
150
|
-
chosenTagHandler() {
|
|
151
|
-
if (this.isDateEventHappened)
|
|
152
|
-
return;
|
|
153
|
-
const month = this.forecastValue;
|
|
154
|
-
const year = moment.unix(this.forecastYear);
|
|
155
|
-
const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
|
|
156
|
-
const fiscal_year_back = this.fiscalYearBack || false;
|
|
157
|
-
if (!Number.isNaN(month) && !Number.isNaN(year)) {
|
|
158
|
-
const date = new Date(year.year(), month, 1, 12, 0, 0, 0);
|
|
159
|
-
if (fiscal_year_starts_from !== 1) {
|
|
160
|
-
if (!fiscal_year_back) {
|
|
161
|
-
date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
this.dateObj.date = moment(date).unix();
|
|
168
|
-
this.isDateEventHappened = true;
|
|
169
|
-
setTimeout(() => {
|
|
170
|
-
this.isDateEventHappened = false;
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
const resultTag = {
|
|
174
|
-
name: this.name,
|
|
175
|
-
value: this.dateObj.date,
|
|
176
|
-
label: `${_find(this.forecastTags, { value: this.forecastValue })?.label} (${year.year()})`,
|
|
177
|
-
locked: !this.dateFilter(moment.unix(this.dateObj.date)),
|
|
178
|
-
};
|
|
179
|
-
this.dateChange.emit(resultTag);
|
|
180
|
-
}
|
|
181
|
-
dateFilter(date) {
|
|
182
|
-
const month = this.forecastValue;
|
|
183
|
-
const year = date.year();
|
|
184
|
-
return !this.lockedDate.some((timestamp) => {
|
|
185
|
-
const lockDate = moment.unix(timestamp);
|
|
186
|
-
return lockDate.month() === month && lockDate.year() === year;
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
/** @nocollapse */ static { this.ɵfac = function ForecastTagComponent_Factory(t) { return new (t || ForecastTagComponent)(); }; }
|
|
190
|
-
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ForecastTagComponent, selectors: [["forecast-tag"]], inputs: { fiscalYearStartsFrom: "fiscalYearStartsFrom", fiscalYearBack: "fiscalYearBack", lockedDate: "lockedDate", tagAdditionalSettings: "tagAdditionalSettings" }, features: [i0.ɵɵProvidersFeature([
|
|
191
|
-
{
|
|
192
|
-
provide: DateAdapter,
|
|
193
|
-
useClass: MomentDateAdapter,
|
|
194
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
195
|
-
},
|
|
196
|
-
]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [[4, "ngIf", "ngIfElse"], ["splitInputsTpl", ""], [1, "forecast-tag__container"], [1, "forecast-tag__forecast"], [1, "tag__label"], ["placeholder", "Select", "bindLabel", "label", "bindValue", "value", 3, "ngModel", "disabled", "items", "ngModelChange"], [1, "forecast-tag__year"], ["format", "year", 3, "ngModel", "datepickerFilter", "periodPosition", "disabled", "ngModelChange"], [1, "forecast-tag__split-container"], [1, "forecast-tag__split-dropdowns"], ["format", "year", 1, "no-right-border-radius", "no-right-border", 3, "ngModel", "datepickerFilter", "disabled", "ngModelChange"], ["placeholder", "Select", "bindLabel", "label", "bindValue", "value", "no-left-border-radius", "", 3, "ngModel", "disabled", "items", "ngModelChange"]], template: function ForecastTagComponent_Template(rf, ctx) { if (rf & 1) {
|
|
197
|
-
i0.ɵɵtemplate(0, ForecastTagComponent_ng_container_0_Template, 10, 8, "ng-container", 0);
|
|
198
|
-
i0.ɵɵtemplate(1, ForecastTagComponent_ng_template_1_Template, 6, 7, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
199
|
-
} if (rf & 2) {
|
|
200
|
-
const _r1 = i0.ɵɵreference(2);
|
|
201
|
-
i0.ɵɵproperty("ngIf", !(ctx.tagAdditionalSettings == null ? null : ctx.tagAdditionalSettings.showSplitDynamicTagInputs))("ngIfElse", _r1);
|
|
202
|
-
} }, dependencies: [i1.NgIf, i2.NgControlStatus, i2.NgModel, i3.DrSelectComponent, i4.DrDatePickerComponent], styles: [".tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.forecast-tag__container[_ngcontent-%COMP%]{display:flex;align-items:center}.forecast-tag__split-container[_ngcontent-%COMP%]{display:flex;flex-direction:column}.forecast-tag__split-dropdowns[_ngcontent-%COMP%]{display:flex;flex-direction:row}.forecast-tag__year[_ngcontent-%COMP%]{width:50%;margin-left:24px}.forecast-tag__forecast[_ngcontent-%COMP%]{width:50%}dr-date-picker.no-right-border-radius[_ngcontent-%COMP%] {border-bottom-right-radius:0!important;border-top-right-radius:0!important}dr-date-picker.no-right-border[_ngcontent-%COMP%] {border-right:none!important}"] }); }
|
|
203
|
-
}
|
|
204
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ForecastTagComponent, [{
|
|
205
|
-
type: Component,
|
|
206
|
-
args: [{ selector: 'forecast-tag', providers: [
|
|
207
|
-
{
|
|
208
|
-
provide: DateAdapter,
|
|
209
|
-
useClass: MomentDateAdapter,
|
|
210
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
211
|
-
},
|
|
212
|
-
], template: "<ng-container *ngIf=\"!tagAdditionalSettings?.showSplitDynamicTagInputs; else splitInputsTpl\">\n <div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">{{ tagAdditionalSettings?.tagLabel || 'Forecast' }}</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"forecastYear\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [periodPosition]=\"datePickerPeriodPosition.MIDDLE_OF_PERIOD\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n </div>\n </div>\n</ng-container>\n\n<ng-template #splitInputsTpl>\n <div class=\"forecast-tag__split-container\">\n <p class=\"tag__label\">{{ tagAdditionalSettings?.tagLabel || 'Scenario cycle' }}</p>\n <div class=\"forecast-tag__split-dropdowns\">\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"forecastYear\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n class=\"no-right-border-radius no-right-border\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n no-left-border-radius\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n </div>\n</ng-template>\n", styles: [".tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.forecast-tag__container{display:flex;align-items:center}.forecast-tag__split-container{display:flex;flex-direction:column}.forecast-tag__split-dropdowns{display:flex;flex-direction:row}.forecast-tag__year{width:50%;margin-left:24px}.forecast-tag__forecast{width:50%}dr-date-picker.no-right-border-radius ::ng-deep{border-bottom-right-radius:0!important;border-top-right-radius:0!important}dr-date-picker.no-right-border ::ng-deep{border-right:none!important}\n"] }]
|
|
213
|
-
}], function () { return []; }, { fiscalYearStartsFrom: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], fiscalYearBack: [{
|
|
216
|
-
type: Input
|
|
217
|
-
}], lockedDate: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}], tagAdditionalSettings: [{
|
|
220
|
-
type: Input
|
|
221
|
-
}] }); })();
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZWNhc3QtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9mb3JlY2FzdC10YWcvZm9yZWNhc3QtdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9mb3JlY2FzdC10YWcvZm9yZWNhc3QtdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxTQUFTLElBQUksVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7SUNSbkUsNkJBQTZGO0lBQ3pGLDhCQUFxQyxhQUFBLFdBQUE7SUFFUCxZQUFtRDtJQUFBLGlCQUFJO0lBQzdFLG9DQU84QztJQUwxQyxvUEFBMkIsZ0xBS1YsZUFBQSw4QkFBdUIsQ0FBQSxJQUxiO0lBS2UsaUJBQVksRUFBQTtJQUU5RCw4QkFBZ0MsV0FBQTtJQUNOLG9CQUFJO0lBQUEsaUJBQUk7SUFDOUIseUNBTStDO0lBSjNDLHdQQUEwQixxTEFJVCxlQUFBLCtCQUF3QixDQUFBLElBSmY7SUFJaUIsaUJBQWlCLEVB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SSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0FsS1Esb0JBQW9CO21HQUFwQixvQkFBb0Isd09BUmxCO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxXQUFXO29CQUNwQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7aUJBQzNEO2FBQ0o7WUN4Qkwsd0ZBd0JlO1lBRWYsc0hBc0JjOzs7WUFoREMsd0hBQXlELGlCQUFBOzs7dUZEMEIzRCxvQkFBb0I7Y0FaaEMsU0FBUzsyQkFFSSxjQUFjLGFBRWI7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLFdBQVc7d0JBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7d0JBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQztxQkFDM0Q7aUJBQ0o7c0NBSVEsb0JBQW9CO2tCQUE1QixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgQW55VGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vYW55LXRhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kLCBjbG9uZURlZXAgYXMgX2Nsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBJVGFnQWRkaXRpb25hbFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vZHItdGFncy9kci10YWcudHlwZXMnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlclBlcmlvZFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RhdGVQaWNrZXInO1xuXG4vKiBCRUZPUkUgTUVSR0UgSU5UTyBNQVNURVIgWU9VIE1VU1QgQ09OU1VMVCBXSVRIIEFSVEVNIExBWklVSyAhISEqL1xuXG5jb25zdCBGT1JFQ0FTVF9ERUZBVUxUX0RBVEVfRk9STUFUID0gJ01NL0REL3l5eXknO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJ2ZvcmVjYXN0LXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdmb3JlY2FzdC10YWcnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvcmVjYXN0LXRhZy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgICAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcmVjYXN0VGFnQ29tcG9uZW50IGV4dGVuZHMgQW55VGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICByZWFkb25seSBkYXRlUGlja2VyUGVyaW9kUG9zaXRpb24gPSBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb247XG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb20/OiBudW1iZXI7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhckJhY2s/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgdGFnQWRkaXRpb25hbFNldHRpbmdzOiBJVGFnQWRkaXRpb25hbFNldHRpbmdzID0ge307XG5cbiAgICBmb3JlY2FzdFZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yZWNhc3RZZWFyOiBudW1iZXI7XG4gICAgaXNEYXRlRXZlbnRIYXBwZW5lZCA9IGZhbHNlO1xuXG4gICAgZm9yZWNhc3RUYWdzOiBhbnlbXSA9IFtcbiAgICAgICAgeyB2YWx1ZTogMCwgbGFiZWw6ICcwKzEyJywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDEsIGxhYmVsOiAnMSsxMScsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB7IHZhbHVlOiAyLCBsYWJlbDogJzIrMTAnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogMywgbGFiZWw6ICczKzknLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNCwgbGFiZWw6ICc0KzgnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNSwgbGFiZWw6ICc1KzcnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNiwgbGFiZWw6ICc2KzYnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNywgbGFiZWw6ICc3KzUnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogOCwgbGFiZWw6ICc4KzQnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogOSwgbGFiZWw6ICc5KzMnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogMTAsIGxhYmVsOiAnMTArMicsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB7IHZhbHVlOiAxMSwgbGFiZWw6ICcxMSsxJywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgXTtcblxuICAgIHByaXZhdGUgaW5pdERhdGVWYWx1ZSA9IG51bGw7XG4gICAgcHJpdmF0ZSBmaXJzdERheU1vbnRoT2ZZZWFyID0gJzAxJztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubG9ja2VkRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NrZWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0RGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZGF0ZVZhbCA9IHRoaXMuZGVmYXVsdFZhbHVlID8gbW9tZW50LnVuaXgodGhpcy5kZWZhdWx0VmFsdWUpIDogbW9tZW50KCk7XG4gICAgICAgIGNvbnN0IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tID0gdGhpcy5maXNjYWxZZWFyU3RhcnRzRnJvbSB8fCAxO1xuICAgICAgICB0aGlzLmZvcmVjYXN0VmFsdWUgPSB0aGlzLmdldEZpc2NhbE1vbnRoRnJvbURhdGUoZGF0ZVZhbCwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20pIC0gMTtcbiAgICAgICAgdGhpcy5mb3JlY2FzdFllYXIgPSBtb21lbnRcbiAgICAgICAgICAgIC51dGMoXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5maXJzdERheU1vbnRoT2ZZZWFyfS8ke3RoaXMuZmlyc3REYXlNb250aE9mWWVhcn0vJHt0aGlzLmdldEZpc2NhbFllYXJGcm9tRGF0ZShkYXRlVmFsLCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSwgdGhpcy5maXNjYWxZZWFyQmFjayl9YCxcbiAgICAgICAgICAgICAgICBGT1JFQ0FTVF9ERUZBVUxUX0RBVEVfRk9STUFULFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnNldCgnaG91cnMnLCAxMilcbiAgICAgICAgICAgIC51bml4KCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVMb2NrZWREYXRlKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmluaXREYXRlVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdERhdGVWYWx1ZSA9IF9jbG9uZURlZXAodGhpcy5kYXRlT2JqLmRhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlTG9ja2VkRGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeWVhciA9IG1vbWVudC51bml4KHRoaXMuZm9yZWNhc3RZZWFyKS55ZWFyKCk7XG5cbiAgICAgICAgdGhpcy5mb3JlY2FzdFRhZ3MgPSB0aGlzLmZvcmVjYXN0VGFncy5tYXAoKGZvcmVjYXN0VGFnKSA9PiB7XG4gICAgICAgICAgICBmb3JlY2FzdFRhZy5kaXNhYmxlZCA9IHRoaXMubG9ja2VkRGF0ZS5zb21lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NrZWQgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NrZWQubW9udGgoKSA9PT0gZm9yZWNhc3RUYWcudmFsdWUgJiYgK2xvY2tlZC55ZWFyKCkgPT09ICt5ZWFyO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBmb3JlY2FzdFRhZztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdE5hbWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAnRm9yZWNhc3QgKE5ldyknO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RmlzY2FsTW9udGhGcm9tRGF0ZShkYXRlT2JqLCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSkge1xuICAgICAgICBjb25zdCBhbGxfbW9udGhzID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tOyBpIDwgMTM7IGkrKykge1xuICAgICAgICAgICAgYWxsX21vbnRocy5wdXNoKGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbTsgaSsrKSB7XG4gICAgICAgICAgICBhbGxfbW9udGhzLnB1c2goaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWxsX21vbnRocy5pbmRleE9mKGRhdGVPYmoubW9udGgoKSArIDEpICsgMTtcbiAgICB9XG5cbiAgICBnZXRGaXNjYWxZZWFyRnJvbURhdGUoZGF0ZU9iaiwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20sIGZpc2NhbF95ZWFyX2JhY2spIHtcbiAgICAgICAgbGV0IGZpc2NhbF95ZWFyID0gZGF0ZU9iai55ZWFyKCk7XG5cbiAgICAgICAgaWYgKCFmaXNjYWxfeWVhcl9iYWNrKSB7XG4gICAgICAgICAgICBpZiAoZGF0ZU9iai5tb250aCgpICsgMSA+PSBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAmJiBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAhPT0gMSkge1xuICAgICAgICAgICAgICAgIGZpc2NhbF95ZWFyICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZGF0ZU9iai5tb250aCgpICsgMSA8IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICYmIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgZmlzY2FsX3llYXIgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaXNjYWxfeWVhcjtcbiAgICB9XG5cbiAgICBjaGFuZ2VUYWdJbnB1dEhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcigpO1xuICAgIH1cblxuICAgIGNoYW5nZVllYXJJbnB1dEhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlTG9ja2VkRGF0ZSgpO1xuICAgICAgICB0aGlzLmluaXREYXRlVmFsdWUgPSBfY2xvbmVEZWVwKHRoaXMuZGF0ZU9iai5kYXRlKTtcbiAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgY2hvc2VuVGFnSGFuZGxlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEYXRlRXZlbnRIYXBwZW5lZCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5mb3JlY2FzdFZhbHVlO1xuICAgICAgICBjb25zdCB5ZWFyID0gbW9tZW50LnVuaXgodGhpcy5mb3JlY2FzdFllYXIpO1xuICAgICAgICBjb25zdCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSA9IHRoaXMuZmlzY2FsWWVhclN0YXJ0c0Zyb20gfHwgMTtcbiAgICAgICAgY29uc3QgZmlzY2FsX3llYXJfYmFjayA9IHRoaXMuZmlzY2FsWWVhckJhY2sgfHwgZmFsc2U7XG5cbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obW9udGgpICYmICFOdW1iZXIuaXNOYU4oeWVhcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLnllYXIoKSwgbW9udGgsIDEsIDEyLCAwLCAwLCAwKTtcblxuICAgICAgICAgICAgaWYgKGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFmaXNjYWxfeWVhcl9iYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpIC0gMTMgKyBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgLSAxICsgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSBtb21lbnQoZGF0ZSkudW5peCgpO1xuXG4gICAgICAgICAgICB0aGlzLmlzRGF0ZUV2ZW50SGFwcGVuZWQgPSB0cnVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0RhdGVFdmVudEhhcHBlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdFRhZzogSURhdGVUYWcgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5kYXRlT2JqLmRhdGUsXG4gICAgICAgICAgICBsYWJlbDogYCR7X2ZpbmQodGhpcy5mb3JlY2FzdFRhZ3MsIHsgdmFsdWU6IHRoaXMuZm9yZWNhc3RWYWx1ZSB9KT8ubGFiZWx9ICgke3llYXIueWVhcigpfSlgLFxuICAgICAgICAgICAgbG9ja2VkOiAhdGhpcy5kYXRlRmlsdGVyKG1vbWVudC51bml4KHRoaXMuZGF0ZU9iai5kYXRlKSksXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyKGRhdGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLmZvcmVjYXN0VmFsdWU7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLnllYXIoKTtcblxuICAgICAgICByZXR1cm4gIXRoaXMubG9ja2VkRGF0ZS5zb21lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcbiAgICAgICAgICAgIHJldHVybiBsb2NrRGF0ZS5tb250aCgpID09PSBtb250aCAmJiBsb2NrRGF0ZS55ZWFyKCkgPT09IHllYXI7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhdGFnQWRkaXRpb25hbFNldHRpbmdzPy5zaG93U3BsaXREeW5hbWljVGFnSW5wdXRzOyBlbHNlIHNwbGl0SW5wdXRzVHBsXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcmVjYXN0LXRhZ19fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JlY2FzdC10YWdfX2ZvcmVjYXN0XCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRhZ19fbGFiZWxcIj57eyB0YWdBZGRpdGlvbmFsU2V0dGluZ3M/LnRhZ0xhYmVsIHx8ICdGb3JlY2FzdCcgfX08L3A+XG4gICAgICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9yZWNhc3RWYWx1ZVwiXG4gICAgICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJmb3JlY2FzdFRhZ3NcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVRhZ0lucHV0SGFuZGxlcigpXCI+PC9kci1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9yZWNhc3QtdGFnX195ZWFyXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRhZ19fbGFiZWxcIj5ZZWFyPC9wPlxuICAgICAgICAgICAgPGRyLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgICAgZm9ybWF0PVwieWVhclwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JlY2FzdFllYXJcIlxuICAgICAgICAgICAgICAgIFtkYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXIuYmluZCh0aGlzKVwiXG4gICAgICAgICAgICAgICAgW3BlcmlvZFBvc2l0aW9uXT1cImRhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5NSURETEVfT0ZfUEVSSU9EXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVllYXJJbnB1dEhhbmRsZXIoKVwiPjwvZHItZGF0ZS1waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc3BsaXRJbnB1dHNUcGw+XG4gICAgPGRpdiBjbGFzcz1cImZvcmVjYXN0LXRhZ19fc3BsaXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGFnX19sYWJlbFwiPnt7IHRhZ0FkZGl0aW9uYWxTZXR0aW5ncz8udGFnTGFiZWwgfHwgJ1NjZW5hcmlvIGN5Y2xlJyB9fTwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcmVjYXN0LXRhZ19fc3BsaXQtZHJvcGRvd25zXCI+XG4gICAgICAgICAgICA8ZHItZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICBmb3JtYXQ9XCJ5ZWFyXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcmVjYXN0WWVhclwiXG4gICAgICAgICAgICAgICAgW2RhdGVwaWNrZXJGaWx0ZXJdPVwiZGF0ZUZpbHRlci5iaW5kKHRoaXMpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm8tcmlnaHQtYm9yZGVyLXJhZGl1cyBuby1yaWdodC1ib3JkZXJcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVllYXJJbnB1dEhhbmRsZXIoKVwiPjwvZHItZGF0ZS1waWNrZXI+XG4gICAgICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9yZWNhc3RWYWx1ZVwiXG4gICAgICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJmb3JlY2FzdFRhZ3NcIlxuICAgICAgICAgICAgICAgIG5vLWxlZnQtYm9yZGVyLXJhZGl1c1xuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVRhZ0lucHV0SGFuZGxlcigpXCI+PC9kci1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { indexOf as _indexOf } from 'lodash';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ForecastTagService {
|
|
5
|
-
static { this.MONTH_DIFF = 1; }
|
|
6
|
-
static { this.forecastByMonth = {
|
|
7
|
-
'0': '0+12',
|
|
8
|
-
'1': '1+11',
|
|
9
|
-
'2': '2+10',
|
|
10
|
-
'3': '3+9',
|
|
11
|
-
'4': '4+8',
|
|
12
|
-
'5': '5+7',
|
|
13
|
-
'6': '6+6',
|
|
14
|
-
'7': '7+5',
|
|
15
|
-
'8': '8+4',
|
|
16
|
-
'9': '9+3',
|
|
17
|
-
'10': '10+2',
|
|
18
|
-
'11': '11+1',
|
|
19
|
-
}; }
|
|
20
|
-
static getForecastMonthTemplates() {
|
|
21
|
-
return Array.from(Object.values(ForecastTagService.forecastByMonth));
|
|
22
|
-
}
|
|
23
|
-
static getFiscalMonthFromDate(date, fiscalYearStartsFrom) {
|
|
24
|
-
const all_months = [];
|
|
25
|
-
for (let i = fiscalYearStartsFrom; i < 13; i++) {
|
|
26
|
-
all_months.push(i);
|
|
27
|
-
}
|
|
28
|
-
for (let i = 1; i < fiscalYearStartsFrom; i++) {
|
|
29
|
-
all_months.push(i);
|
|
30
|
-
}
|
|
31
|
-
return _indexOf(all_months, date.month() + ForecastTagService.MONTH_DIFF) + ForecastTagService.MONTH_DIFF;
|
|
32
|
-
}
|
|
33
|
-
static getFiscalYearFromDate(date, fiscalYearStartsFrom, fiscalYearBack) {
|
|
34
|
-
const month = date.month();
|
|
35
|
-
let fiscal_year = date.year();
|
|
36
|
-
if (!fiscalYearBack) {
|
|
37
|
-
if (month + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {
|
|
38
|
-
fiscal_year += 1;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
if (month + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {
|
|
43
|
-
fiscal_year -= 1;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return fiscal_year;
|
|
47
|
-
}
|
|
48
|
-
static getForecastLabel(month) {
|
|
49
|
-
const index = month - ForecastTagService.MONTH_DIFF;
|
|
50
|
-
return ForecastTagService.forecastByMonth[index];
|
|
51
|
-
}
|
|
52
|
-
static getCalendarDateFromMonthAndFiscalYear(chosenMoment, monthLabel, fiscalYearStartsFrom, fiscalYearBack) {
|
|
53
|
-
const yearWithMonth = ForecastTagService.addMonthsWithoutYearChange(chosenMoment, monthLabel, fiscalYearStartsFrom);
|
|
54
|
-
return ForecastTagService.transformYearFromFiscal(yearWithMonth, fiscalYearStartsFrom, fiscalYearBack);
|
|
55
|
-
}
|
|
56
|
-
static addMonthsWithoutYearChange(date, monthLabel, fiscalYearStartsFrom) {
|
|
57
|
-
if (!monthLabel || !date)
|
|
58
|
-
return;
|
|
59
|
-
const dateToTransform = date.clone();
|
|
60
|
-
const labelsIndex = +Object.keys(ForecastTagService.forecastByMonth).find((key) => ForecastTagService.forecastByMonth[key] === monthLabel);
|
|
61
|
-
const monthsWithFiscalDifference = labelsIndex + fiscalYearStartsFrom - 1;
|
|
62
|
-
const monthsToAdd = monthsWithFiscalDifference >= 12 ? monthsWithFiscalDifference - 12 : monthsWithFiscalDifference;
|
|
63
|
-
return dateToTransform.utc().startOf('year').add(monthsToAdd, 'M');
|
|
64
|
-
}
|
|
65
|
-
static transformYearFromFiscal(fiscalYearWithMonth, fiscalYearStartsFrom, fiscalYearBack) {
|
|
66
|
-
if (!fiscalYearWithMonth)
|
|
67
|
-
return;
|
|
68
|
-
let fiscalYearStartMoment = fiscalYearWithMonth.clone();
|
|
69
|
-
if (fiscalYearBack) {
|
|
70
|
-
if (fiscalYearStartMoment.month() + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {
|
|
71
|
-
fiscalYearStartMoment.add(1, 'year');
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
if (fiscalYearStartMoment.month() + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {
|
|
76
|
-
fiscalYearStartMoment.subtract(1, 'year');
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return fiscalYearStartMoment.unix();
|
|
80
|
-
}
|
|
81
|
-
/** @nocollapse */ static { this.ɵfac = function ForecastTagService_Factory(t) { return new (t || ForecastTagService)(); }; }
|
|
82
|
-
/** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ForecastTagService, factory: ForecastTagService.ɵfac }); }
|
|
83
|
-
}
|
|
84
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ForecastTagService, [{
|
|
85
|
-
type: Injectable
|
|
86
|
-
}], null, null); })();
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZWNhc3QtdGFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kYXRlLXRhZ3MvZm9yZWNhc3QtdGFnL2ZvcmVjYXN0LXRhZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sSUFBSSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBTzdDLE1BQU0sT0FBTyxrQkFBa0I7YUFDSCxlQUFVLEdBQUcsQ0FBQyxDQUFDO2FBQ2Ysb0JBQWUsR0FBcUI7UUFDeEQsR0FBRyxFQUFFLE1BQU07UUFDWCxHQUFHLEVBQUUsTUFBTTtRQUNYLEdBQUcsRUFBRSxNQUFNO1FBQ1gsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRSxNQUFNO0tBQ2YsQ0FBQztJQUVLLE1BQU0sQ0FBQyx5QkFBeUI7UUFDbkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sTUFBTSxDQUFDLHNCQUFzQixDQUFDLElBQW1CLEVBQUUsb0JBQTRCO1FBQ2xGLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV0QixLQUFLLElBQUksQ0FBQyxHQUFHLG9CQUFvQixFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFD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QUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxvQkFBb0IsSUFBSSxvQkFBb0IsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hGLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDeEM7U0FDSjthQUFNO1lBQ0gsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksb0JBQW9CLElBQUksb0JBQW9CLEtBQUssQ0FBQyxFQUFFO2dCQUN6RixxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzdDO1NBQ0o7UUFDRCxPQUFPLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7c0dBdkdRLGtCQUFrQjtzR0FBbEIsa0JBQWtCLFdBQWxCLGtCQUFrQjs7dUZBQWxCLGtCQUFrQjtjQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBpbmRleE9mIGFzIF9pbmRleE9mIH0gZnJvbSAnbG9kYXNoJztcblxuaW50ZXJmYWNlIElGb3JlY2FzdEJ5TW9udGgge1xuICAgIFttb250aEluZGV4OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JlY2FzdFRhZ1NlcnZpY2Uge1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1PTlRIX0RJRkYgPSAxO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGZvcmVjYXN0QnlNb250aDogSUZvcmVjYXN0QnlNb250aCA9IHtcbiAgICAgICAgJzAnOiAnMCsxMicsXG4gICAgICAgICcxJzogJzErMTEnLFxuICAgICAgICAnMic6ICcyKzEwJyxcbiAgICAgICAgJzMnOiAnMys5JyxcbiAgICAgICAgJzQnOiAnNCs4JyxcbiAgICAgICAgJzUnOiAnNSs3JyxcbiAgICAgICAgJzYnOiAnNis2JyxcbiAgICAgICAgJzcnOiAnNys1JyxcbiAgICAgICAgJzgnOiAnOCs0JyxcbiAgICAgICAgJzknOiAnOSszJyxcbiAgICAgICAgJzEwJzogJzEwKzInLFxuICAgICAgICAnMTEnOiAnMTErMScsXG4gICAgfTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Rm9yZWNhc3RNb250aFRlbXBsYXRlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKE9iamVjdC52YWx1ZXMoRm9yZWNhc3RUYWdTZXJ2aWNlLmZvcmVjYXN0QnlNb250aCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RmlzY2FsTW9udGhGcm9tRGF0ZShkYXRlOiBtb21lbnQuTW9tZW50LCBmaXNjYWxZZWFyU3RhcnRzRnJvbTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYWxsX21vbnRocyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSBmaXNjYWxZZWFyU3RhcnRzRnJvbTsgaSA8IDEzOyBpKyspIHtcbiAgICAgICAgICAgIGFsbF9tb250aHMucHVzaChpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgZmlzY2FsWWVhclN0YXJ0c0Zyb207IGkrKykge1xuICAgICAgICAgICAgYWxsX21vbnRocy5wdXNoKGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9pbmRleE9mKGFsbF9tb250aHMsIGRhdGUubW9udGgoKSArIEZvcmVjYXN0VGFnU2VydmljZS5NT05USF9ESUZGKSArIEZvcmVjYXN0VGFnU2VydmljZS5NT05USF9ESUZGO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RmlzY2FsWWVhckZyb21EYXRlKGRhdGU6IG1vbWVudC5Nb21lbnQsIGZpc2NhbFllYXJTdGFydHNGcm9tOiBudW1iZXIsIGZpc2NhbFllYXJCYWNrOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLm1vbnRoKCk7XG4gICAgICAgIGxldCBmaXNjYWxfeWVhciA9IGRhdGUueWVhcigpO1xuXG4gICAgICAgIGlmICghZmlzY2FsWWVhckJhY2spIHtcbiAgICAgICAgICAgIGlmIChtb250aCArIDEgPj0gZmlzY2FsWWVhclN0YXJ0c0Zyb20gJiYgZmlzY2FsWWVhclN0YXJ0c0Zyb20gIT09IDEpIHtcbiAgICAgICAgICAgICAgICBmaXNjYWxfeWVhciArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG1vbnRoICsgMSA8IGZpc2NhbFllYXJTdGFydHNGcm9tICYmIGZpc2NhbFllYXJTdGFydHNGcm9tICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgZmlzY2FsX3llYXIgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaXNjYWxfeWVhcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEZvcmVjYXN0TGFiZWwobW9udGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbW9udGggLSBGb3JlY2FzdFRhZ1NlcnZpY2UuTU9OVEhfRElGRjtcbiAgICAgICAgcmV0dXJuIEZvcmVjYXN0VGFnU2VydmljZS5mb3JlY2FzdEJ5TW9udGhbaW5kZXhdO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2FsZW5kYXJEYXRlRnJvbU1vbnRoQW5kRmlzY2FsWWVhcihcbiAgICAgICAgY2hvc2VuTW9tZW50OiBtb21lbnQuTW9tZW50LFxuICAgICAgICBtb250aExhYmVsOiBzdHJpbmcsXG4gICAgICAgIGZpc2NhbFllYXJTdGFydHNGcm9tOiBudW1iZXIsXG4gICAgICAgIGZpc2NhbFllYXJCYWNrOiBib29sZWFuLFxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHllYXJXaXRoTW9udGggPSBGb3JlY2FzdFRhZ1NlcnZpY2UuYWRkTW9udGhzV2l0aG91dFllYXJDaGFuZ2UoY2hvc2VuTW9tZW50LCBtb250aExhYmVsLCBmaXNjYWxZZWFyU3RhcnRzRnJvbSk7XG4gICAgICAgIHJldHVybiBGb3JlY2FzdFRhZ1NlcnZpY2UudHJhbnNmb3JtWWVhckZyb21GaXNjYWwoeWVhcldpdGhNb250aCwgZmlzY2FsWWVhclN0YXJ0c0Zyb20sIGZpc2NhbFllYXJCYWNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFkZE1vbnRoc1dpdGhvdXRZZWFyQ2hhbmdlKFxuICAgICAgICBkYXRlOiBtb21lbnQuTW9tZW50LFxuICAgICAgICBtb250aExhYmVsOiBzdHJpbmcsXG4gICAgICAgIGZpc2NhbFllYXJTdGFydHNGcm9tOiBudW1iZXIsXG4gICAgKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGlmICghbW9udGhMYWJlbCB8fCAhZGF0ZSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGRhdGVUb1RyYW5zZm9ybSA9IGRhdGUuY2xvbmUoKTtcblxuICAgICAgICBjb25zdCBsYWJlbHNJbmRleDogbnVtYmVyID0gK09iamVjdC5rZXlzKEZvcmVjYXN0VGFnU2VydmljZS5mb3JlY2FzdEJ5TW9udGgpLmZpbmQoXG4gICAgICAgICAgICAoa2V5OiBzdHJpbmcpID0+IEZvcmVjYXN0VGFnU2VydmljZS5mb3JlY2FzdEJ5TW9udGhba2V5XSA9PT0gbW9udGhMYWJlbCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbW9udGhzV2l0aEZpc2NhbERpZmZlcmVuY2UgPSBsYWJlbHNJbmRleCArIGZpc2NhbFllYXJTdGFydHNGcm9tIC0gMTtcbiAgICAgICAgY29uc3QgbW9udGhzVG9BZGQgPSBtb250aHNXaXRoRmlzY2FsRGlmZmVyZW5jZSA+PSAxMiA/IG1vbnRoc1dpdGhGaXNjYWxEaWZmZXJlbmNlIC0gMTIgOiBtb250aHNXaXRoRmlzY2FsRGlmZmVyZW5jZTtcblxuICAgICAgICByZXR1cm4gZGF0ZVRvVHJhbnNmb3JtLnV0YygpLnN0YXJ0T2YoJ3llYXInKS5hZGQobW9udGhzVG9BZGQsICdNJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0cmFuc2Zvcm1ZZWFyRnJvbUZpc2NhbChcbiAgICAgICAgZmlzY2FsWWVhcldpdGhNb250aDogbW9tZW50Lk1vbWVudCxcbiAgICAgICAgZmlzY2FsWWVhclN0YXJ0c0Zyb206IG51bWJlcixcbiAgICAgICAgZmlzY2FsWWVhckJhY2s6IGJvb2xlYW4sXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFmaXNjYWxZZWFyV2l0aE1vbnRoKSByZXR1cm47XG5cbiAgICAgICAgbGV0IGZpc2NhbFllYXJTdGFydE1vbWVudCA9IGZpc2NhbFllYXJXaXRoTW9udGguY2xvbmUoKTtcbiAgICAgICAgaWYgKGZpc2NhbFllYXJCYWNrKSB7XG4gICAgICAgICAgICBpZiAoZmlzY2FsWWVhclN0YXJ0TW9tZW50Lm1vbnRoKCkgKyAxIDwgZmlzY2FsWWVhclN0YXJ0c0Zyb20gJiYgZmlzY2FsWWVhclN0YXJ0c0Zyb20gIT09IDEpIHtcbiAgICAgICAgICAgICAgICBmaXNjYWxZZWFyU3RhcnRNb21lbnQuYWRkKDEsICd5ZWFyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZmlzY2FsWWVhclN0YXJ0TW9tZW50Lm1vbnRoKCkgKyAxID49IGZpc2NhbFllYXJTdGFydHNGcm9tICYmIGZpc2NhbFllYXJTdGFydHNGcm9tICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgZmlzY2FsWWVhclN0YXJ0TW9tZW50LnN1YnRyYWN0KDEsICd5ZWFyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpc2NhbFllYXJTdGFydE1vbWVudC51bml4KCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import { AnyTagComponent } from '../any-tag.component';
|
|
3
|
-
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
4
|
-
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
5
|
-
import moment from 'moment';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/forms";
|
|
8
|
-
import * as i2 from "../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
|
|
9
|
-
const MONTH_FORMATS = {
|
|
10
|
-
parse: {
|
|
11
|
-
dateInput: 'DD-MM-YYYY',
|
|
12
|
-
},
|
|
13
|
-
display: {
|
|
14
|
-
dateInput: 'MMMM YYYY',
|
|
15
|
-
monthYearLabel: 'MMMM YYYY',
|
|
16
|
-
dateA11yLabel: 'LL',
|
|
17
|
-
monthYearA11yLabel: 'MMMM YYYY',
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
export class MonthTagComponent extends AnyTagComponent {
|
|
21
|
-
get isLocked() {
|
|
22
|
-
return this.date ? !this.dateFilter(moment.unix(this.date)) : false;
|
|
23
|
-
}
|
|
24
|
-
constructor() {
|
|
25
|
-
super();
|
|
26
|
-
this.lockedDate = [];
|
|
27
|
-
}
|
|
28
|
-
initDate() {
|
|
29
|
-
this.date = this.defaultValue || moment().unix();
|
|
30
|
-
this.dateObj.date = this.date;
|
|
31
|
-
}
|
|
32
|
-
initName() {
|
|
33
|
-
if (!this.name) {
|
|
34
|
-
this.name = 'Month';
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
chosenTagHandler(value) {
|
|
38
|
-
const resultDate = moment.unix(value);
|
|
39
|
-
resultDate.hour(12);
|
|
40
|
-
const resultTag = {
|
|
41
|
-
name: this.name,
|
|
42
|
-
value: resultDate.unix(),
|
|
43
|
-
label: resultDate.format('MMMM YYYY'),
|
|
44
|
-
locked: !this.dateFilter(resultDate),
|
|
45
|
-
};
|
|
46
|
-
console.log(resultTag, value);
|
|
47
|
-
this.dateChange.emit(resultTag);
|
|
48
|
-
}
|
|
49
|
-
// Should be as arrow function to avoid lose scope
|
|
50
|
-
dateFilter(date) {
|
|
51
|
-
const month = date.month();
|
|
52
|
-
const year = date.year();
|
|
53
|
-
return !this.lockedDate.some((timestamp) => {
|
|
54
|
-
const lockDate = moment.unix(timestamp);
|
|
55
|
-
return lockDate.year() === year && lockDate.month() === month;
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
/** @nocollapse */ static { this.ɵfac = function MonthTagComponent_Factory(t) { return new (t || MonthTagComponent)(); }; }
|
|
59
|
-
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: MonthTagComponent, selectors: [["month-tag"]], hostVars: 2, hostBindings: function MonthTagComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
60
|
-
i0.ɵɵclassProp("locked", ctx.isLocked);
|
|
61
|
-
} }, inputs: { lockedDate: "lockedDate" }, features: [i0.ɵɵProvidersFeature([
|
|
62
|
-
{
|
|
63
|
-
provide: DateAdapter,
|
|
64
|
-
useClass: MomentDateAdapter,
|
|
65
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
66
|
-
},
|
|
67
|
-
{ provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },
|
|
68
|
-
]), i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper"], [1, "tag__label"], ["format", "month", 3, "ngModel", "disabled", "datepickerFilter", "ngModelChange"]], template: function MonthTagComponent_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
|
|
70
|
-
i0.ɵɵtext(2);
|
|
71
|
-
i0.ɵɵelementEnd();
|
|
72
|
-
i0.ɵɵelementStart(3, "dr-date-picker", 2);
|
|
73
|
-
i0.ɵɵlistener("ngModelChange", function MonthTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.date = $event; })("ngModelChange", function MonthTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
|
|
74
|
-
i0.ɵɵelementEnd()();
|
|
75
|
-
} if (rf & 2) {
|
|
76
|
-
i0.ɵɵadvance(2);
|
|
77
|
-
i0.ɵɵtextInterpolate(ctx.name);
|
|
78
|
-
i0.ɵɵadvance(1);
|
|
79
|
-
i0.ɵɵproperty("ngModel", ctx.date)("disabled", ctx.disabled)("datepickerFilter", ctx.dateFilter.bind(ctx));
|
|
80
|
-
} }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.DrDatePickerComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-date-picker[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
|
|
81
|
-
}
|
|
82
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MonthTagComponent, [{
|
|
83
|
-
type: Component,
|
|
84
|
-
args: [{ selector: 'month-tag', providers: [
|
|
85
|
-
{
|
|
86
|
-
provide: DateAdapter,
|
|
87
|
-
useClass: MomentDateAdapter,
|
|
88
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
89
|
-
},
|
|
90
|
-
{ provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },
|
|
91
|
-
], template: "<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"month\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-date-picker{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
|
|
92
|
-
}], function () { return []; }, { isLocked: [{
|
|
93
|
-
type: HostBinding,
|
|
94
|
-
args: ['class.locked']
|
|
95
|
-
}], lockedDate: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}] }); })();
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9tb250aC10YWcvbW9udGgtdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9tb250aC10YWcvbW9udGgtdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFFNUIsTUFBTSxhQUFhLEdBQUc7SUFDbEIsS0FBSyxFQUFFO1FBQ0gsU0FBUyxFQUFFLFlBQVk7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsV0FBVztRQUN0QixjQUFjLEVBQUUsV0FBVztRQUMzQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2xDO0NBQ0osQ0FBQztBQWVGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBQ2xELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURhdGVUYWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBBbnlUYWdDb21wb25lbnQgfSBmcm9tICcuLi9hbnktdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBNT05USF9GT1JNQVRTID0ge1xuICAgIHBhcnNlOiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ0RELU1NLVlZWVknLFxuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdNTU1NIFlZWVknLFxuICAgICAgICBtb250aFllYXJMYWJlbDogJ01NTU0gWVlZWScsXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gICAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnbW9udGgtdGFnLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tb250aC10YWcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzZWxlY3RvcjogJ21vbnRoLXRhZycsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1PTlRIX0ZPUk1BVFMgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNb250aFRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sb2NrZWQnKVxuICAgIGdldCBpc0xvY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZSA/ICF0aGlzLmRhdGVGaWx0ZXIobW9tZW50LnVuaXgodGhpcy5kYXRlKSkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuXG4gICAgZGF0ZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXREYXRlKCkge1xuICAgICAgICB0aGlzLmRhdGUgPSB0aGlzLmRlZmF1bHRWYWx1ZSB8fCBtb21lbnQoKS51bml4KCk7XG4gICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gdGhpcy5kYXRlO1xuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ01vbnRoJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNob3NlblRhZ0hhbmRsZXIodmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCByZXN1bHREYXRlID0gbW9tZW50LnVuaXgodmFsdWUpO1xuICAgICAgICByZXN1bHREYXRlLmhvdXIoMTIpO1xuICAgICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHJlc3VsdERhdGUudW5peCgpLFxuICAgICAgICAgICAgbGFiZWw6IHJlc3VsdERhdGUuZm9ybWF0KCdNTU1NIFlZWVknKSxcbiAgICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcihyZXN1bHREYXRlKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2cocmVzdWx0VGFnLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgLy8gU2hvdWxkIGJlIGFzIGFycm93IGZ1bmN0aW9uIHRvIGF2b2lkIGxvc2Ugc2NvcGVcbiAgICBkYXRlRmlsdGVyKGRhdGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLm1vbnRoKCk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLnllYXIoKTtcblxuICAgICAgICByZXR1cm4gIXRoaXMubG9ja2VkRGF0ZS5zb21lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcbiAgICAgICAgICAgIHJldHVybiBsb2NrRGF0ZS55ZWFyKCkgPT09IHllYXIgJiYgbG9ja0RhdGUubW9udGgoKSA9PT0gbW9udGg7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWctd3JhcHBlclwiPlxuICAgIDxwIGNsYXNzPVwidGFnX19sYWJlbFwiPnt7IG5hbWUgfX08L3A+XG4gICAgPGRyLWRhdGUtcGlja2VyXG4gICAgICAgIGZvcm1hdD1cIm1vbnRoXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2RhdGVwaWNrZXJGaWx0ZXJdPVwiZGF0ZUZpbHRlci5iaW5kKHRoaXMpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hvc2VuVGFnSGFuZGxlcigkZXZlbnQpXCI+PC9kci1kYXRlLXBpY2tlcj5cbjwvZGl2PlxuIl19
|