@datarailsshared/datarailsshared 1.4.152 → 1.4.155-rocket
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/bundles/datarailsshared-datarailsshared.umd.js +499 -32
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.4.155-rocket.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +2 -0
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +3 -1
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +3 -8
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +3 -8
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +3 -8
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +1 -1
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +3 -3
- package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +5 -2
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +3 -2
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +8 -3
- package/esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-theme.js +6 -0
- package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +87 -0
- package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +74 -0
- package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +73 -0
- package/esm2015/lib/dr-scenario/dr-scenario.module.js +28 -0
- package/esm2015/lib/dr-scenario/interfaces/scenario.js +8 -0
- package/esm2015/lib/dr-scenario/services/scenario.service.js +160 -0
- package/esm2015/lib/dr-tags/dr-tag.component.js +17 -5
- package/esm2015/lib/models/serverTags.js +13 -1
- package/esm2015/public-api.js +6 -1
- package/fesm2015/datarailsshared-datarailsshared.js +462 -33
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +11 -12
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +3 -0
- package/lib/dr-inputs/dr-toggle-button/toggle-button-theme.d.ts +4 -0
- package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +25 -0
- package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +26 -0
- package/lib/dr-scenario/consts/scenario-tags-config.d.ts +24 -0
- package/lib/dr-scenario/dr-scenario.module.d.ts +2 -0
- package/lib/dr-scenario/interfaces/scenario.d.ts +43 -0
- package/lib/dr-scenario/services/scenario.service.d.ts +21 -0
- package/lib/dr-tags/dr-tag.component.d.ts +7 -3
- package/lib/models/serverTags.d.ts +15 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -1
- package/datarailsshared-datarailsshared-1.4.152.tgz +0 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { ToggleButtonTheme } from './toggle-button-theme';
|
|
3
4
|
export class DrToggleButtonComponent {
|
|
4
5
|
constructor(cdr) {
|
|
5
6
|
this.cdr = cdr;
|
|
6
7
|
this._disabled = false;
|
|
7
8
|
this.bindLabel = null;
|
|
8
9
|
this.bindValue = null;
|
|
10
|
+
this.bindHidden = null;
|
|
11
|
+
this.theme = ToggleButtonTheme.DEFAULT;
|
|
9
12
|
this.onChange = () => {
|
|
10
13
|
};
|
|
11
14
|
this.onTouched = () => {
|
|
@@ -37,12 +40,12 @@ export class DrToggleButtonComponent {
|
|
|
37
40
|
DrToggleButtonComponent.decorators = [
|
|
38
41
|
{ type: Component, args: [{
|
|
39
42
|
selector: 'dr-toggle-button',
|
|
40
|
-
template: "<div class=\"toggle-container\"
|
|
43
|
+
template: "<div class=\"toggle-container\"\n [class.disabled]=\"_disabled\"\n [attr.theme]=\"theme\">\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"!item?.[bindHidden]\"\n [class.selected]=\"item[bindValue] === selectedValue || item === selectedValue\"\n [class.disabled]=\"item.disabled\"\n class=\"toggle-container__item\">{{ item[bindLabel] || item.name || item }}</div>\n </ng-container>\n</div>\n",
|
|
41
44
|
providers: [
|
|
42
45
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }
|
|
43
46
|
],
|
|
44
47
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
45
|
-
styles: [".toggle-container{display:flex;flex-wrap:nowrap;
|
|
48
|
+
styles: [".toggle-container{display:flex;flex-wrap:nowrap;box-sizing:border-box;border-radius:20px;height:28px}.toggle-container.disabled{pointer-events:none}.toggle-container__item{height:28px;display:flex;align-items:center;justify-content:center;padding:4px 16px;border-radius:20px;margin:-1px;cursor:pointer;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;color:#4e566c}.toggle-container__item.selected{background:#f2f2fb!important;border:1px solid #7f7fdd!important;color:#25258c!important}.toggle-container__item.disabled{pointer-events:none;cursor:default;background:#f0f1f4;color:#9ea1aa;border:1px solid #c3c4ce}.toggle-container[theme~=default]{background:#f6f7f8;border:1px solid #c3c4ce}.toggle-container[theme~=dotted] .toggle-container__item{border:1px solid #9ea1aa;border-radius:18px;margin-left:5px;color:#0c142b}.toggle-container[theme~=dotted] .toggle-container__item:hover{background:#f0f1f4}.toggle-container[theme~=dotted] .toggle-container__item:hover .toggle-container[theme~=dotted] .toggle-container__item.selected{background:unset}.toggle-container[theme~=dotted] .toggle-container__item:first-child{margin-left:0}\n"]
|
|
46
49
|
},] }
|
|
47
50
|
];
|
|
48
51
|
DrToggleButtonComponent.ctorParameters = () => [
|
|
@@ -52,7 +55,9 @@ DrToggleButtonComponent.propDecorators = {
|
|
|
52
55
|
items: [{ type: Input }],
|
|
53
56
|
bindLabel: [{ type: Input }],
|
|
54
57
|
bindValue: [{ type: Input }],
|
|
58
|
+
bindHidden: [{ type: Input }],
|
|
59
|
+
theme: [{ type: Input }],
|
|
55
60
|
selectedValue: [{ type: Input }],
|
|
56
61
|
disabled: [{ type: Input }]
|
|
57
62
|
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZHItdG9nZ2xlLWJ1dHRvbi9kci10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBYTFELE1BQU0sT0FBTyx1QkFBdUI7SUFjaEMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFiMUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdULGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ2pDLFVBQUssR0FBc0IsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBVTlELGFBQVEsR0FBNkIsR0FBRyxFQUFFO1FBQzFDLENBQUMsQ0FBQztRQUNGLGNBQVMsR0FBZSxHQUFHLEVBQUU7UUFDN0IsQ0FBQyxDQUFDO0lBTEYsQ0FBQztJQUxELElBQWEsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFVRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQUk7UUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQXZESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsMGRBQWdEO2dCQUVoRCxTQUFTLEVBQUU7b0JBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7aUJBQ3RHO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBWmlDLGlCQUFpQjs7O29CQWtCOUMsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSztvQkFDTCxLQUFLOzRCQUNMLEtBQUs7dUJBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRvZ2dsZUJ1dHRvblRoZW1lIH0gZnJvbSAnLi90b2dnbGUtYnV0dG9uLXRoZW1lJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci10b2dnbGUtYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEclRvZ2dsZUJ1dHRvbkNvbXBvbmVudCksIG11bHRpOiB0cnVlIH1cbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5cbmV4cG9ydCBjbGFzcyBEclRvZ2dsZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBzdHJpbmdbXSB8IGFueVtdO1xuICAgIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgYmluZFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBiaW5kSGlkZGVuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSB0aGVtZTogVG9nZ2xlQnV0dG9uVGhlbWUgPSBUb2dnbGVCdXR0b25UaGVtZS5ERUZBVUxUO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIH07XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIH07XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldFZhbHVlKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gaXRlbVt0aGlzLmJpbmRWYWx1ZV0gfHwgaXRlbTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var ToggleButtonTheme;
|
|
2
|
+
(function (ToggleButtonTheme) {
|
|
3
|
+
ToggleButtonTheme["DEFAULT"] = "default";
|
|
4
|
+
ToggleButtonTheme["DOTTED"] = "dotted";
|
|
5
|
+
})(ToggleButtonTheme || (ToggleButtonTheme = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi10aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci10b2dnbGUtYnV0dG9uL3RvZ2dsZS1idXR0b24tdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksaUJBR1g7QUFIRCxXQUFZLGlCQUFpQjtJQUN6Qix3Q0FBbUIsQ0FBQTtJQUNuQixzQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUc1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFRvZ2dsZUJ1dHRvblRoZW1lIHtcbiAgICBERUZBVUxUID0gJ2RlZmF1bHQnLFxuICAgIERPVFRFRCA9ICdkb3R0ZWQnLFxufVxuIl19
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Scenario } from '../../interfaces/scenario';
|
|
3
|
+
import { ScenarioService } from '../../services/scenario.service';
|
|
4
|
+
import { TagTypes } from '../../../models/serverTags';
|
|
5
|
+
import { find as _find, includes as _includes, map as _map } from 'lodash';
|
|
6
|
+
import { ToggleButtonTheme } from '../../../dr-inputs/dr-toggle-button/toggle-button-theme';
|
|
7
|
+
export class DrScenarioConfigurationComponent {
|
|
8
|
+
constructor(scenarioService) {
|
|
9
|
+
this.scenarioService = scenarioService;
|
|
10
|
+
this.toggleButtonTheme = ToggleButtonTheme;
|
|
11
|
+
this._scenarioTags = [];
|
|
12
|
+
this.wholeTagsConfig = [];
|
|
13
|
+
this.selectedScenario = Scenario.ACTUALS;
|
|
14
|
+
this.scenarioDataChanged = new EventEmitter();
|
|
15
|
+
}
|
|
16
|
+
get scenarioTags() {
|
|
17
|
+
return this._scenarioTags;
|
|
18
|
+
}
|
|
19
|
+
set scenarioTags(tags) {
|
|
20
|
+
this._scenarioTags = tags;
|
|
21
|
+
this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.scenarios = this.scenarioService.scenarios;
|
|
25
|
+
this.scenarioService.initScenarioTags(this.selectedScenario, this.wholeTagsConfig, this.currentTagsConfig);
|
|
26
|
+
this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);
|
|
27
|
+
}
|
|
28
|
+
onScenarioChange(scenario) {
|
|
29
|
+
this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);
|
|
30
|
+
this.onScenarioDataChange();
|
|
31
|
+
}
|
|
32
|
+
onScenarioTagToggle(tag) {
|
|
33
|
+
this.tagNotSupportingDatesHandler(tag);
|
|
34
|
+
this.tagAcceptableDateHandler(tag);
|
|
35
|
+
this.onScenarioDataChange();
|
|
36
|
+
}
|
|
37
|
+
onScenarioDataChange() {
|
|
38
|
+
this.scenarioDataChanged.emit({
|
|
39
|
+
scenario: this.selectedScenario,
|
|
40
|
+
tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
tagNotSupportingDatesHandler(tag) {
|
|
44
|
+
if (!this.tagNotSupportingDates || !tag.toggle)
|
|
45
|
+
return;
|
|
46
|
+
if (tag.type === TagTypes.DATE) {
|
|
47
|
+
this.tagNotSupportingDates.toggle = false;
|
|
48
|
+
}
|
|
49
|
+
if (tag === this.tagNotSupportingDates) {
|
|
50
|
+
const dateTag = _find(this.scenarioTags, { type: TagTypes.DATE });
|
|
51
|
+
if (dateTag) {
|
|
52
|
+
dateTag.toggle = false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
tagAcceptableDateHandler(tag) {
|
|
57
|
+
var _a;
|
|
58
|
+
if (!((_a = tag.acceptableDateTags) === null || _a === void 0 ? void 0 : _a.length))
|
|
59
|
+
return;
|
|
60
|
+
const dateTag = _find(this.scenarioTags, { type: TagTypes.DATE });
|
|
61
|
+
if (!dateTag)
|
|
62
|
+
return;
|
|
63
|
+
dateTag.subTags = _map(dateTag.subTags, (subTag) => {
|
|
64
|
+
subTag.hidden = tag.toggle && !_includes(tag.acceptableDateTags, subTag.subType);
|
|
65
|
+
return subTag;
|
|
66
|
+
});
|
|
67
|
+
dateTag.selectedTagSubType = tag.acceptableDateTags[0];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
DrScenarioConfigurationComponent.decorators = [
|
|
71
|
+
{ type: Component, args: [{
|
|
72
|
+
selector: 'dr-scenario-configuration',
|
|
73
|
+
template: "<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select [(ngModel)]=\"selectedScenario\"\n placeholder=\"select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\">\n <p class=\"scenario__title--extra scenario__tags__title\">Tags</p>\n <div class=\"scenario__tag\" *ngFor=\"let tag of scenarioTags\">\n <div class=\"scenario__tag__header\">\n <p class=\"scenario__title\">{{ tag.name }}</p>\n <dr-toggle [(ngModel)]=\"tag.toggle\"\n (ngModelChange)=\"onScenarioTagToggle(tag)\"></dr-toggle>\n </div>\n <div class=\"scenario__tag__description\">\n <p class=\"scenario__text\">{{ tag.description }}</p>\n </div>\n <div *ngIf=\"tag.toggle\" class=\"scenario__tag__body\">\n <div *ngIf=\"tag.subTags?.length\" class=\"scenario__sub-tag\">\n <dr-toggle-button [(ngModel)]=\"tag.selectedTagSubType\"\n bindHidden=\"hidden\"\n bindLabel=\"name\"\n bindValue=\"subType\"\n [items]=\"tag.subTags\"\n [theme]=\"toggleButtonTheme.DOTTED\"\n (ngModelChange)=\"onScenarioDataChange()\"></dr-toggle-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n",
|
|
74
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
75
|
+
styles: [".scenario__text,.scenario__title,.scenario__title--extra{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px}.scenario__title{font-weight:600}.scenario__title--extra{font-weight:700}.scenario__tags{margin-top:24px}.scenario__tags__title{margin-bottom:16px}.scenario__title-list{margin-bottom:4px}.scenario__tag{margin-bottom:24px;padding-top:16px;border-top:1px solid #dfe0e3}.scenario__tag__description{margin-top:5px}.scenario__tag__header{display:flex;justify-content:space-between}.scenario__sub-tag{margin-top:8px}:host::ng-deep .toggle-container__item{padding:2px 8px!important}\n"]
|
|
76
|
+
},] }
|
|
77
|
+
];
|
|
78
|
+
DrScenarioConfigurationComponent.ctorParameters = () => [
|
|
79
|
+
{ type: ScenarioService }
|
|
80
|
+
];
|
|
81
|
+
DrScenarioConfigurationComponent.propDecorators = {
|
|
82
|
+
currentTagsConfig: [{ type: Input }],
|
|
83
|
+
wholeTagsConfig: [{ type: Input }],
|
|
84
|
+
selectedScenario: [{ type: Input }],
|
|
85
|
+
scenarioDataChanged: [{ type: Output }]
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixRQUFRLEVBQXdCLE1BQU0sMkJBQTJCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBUSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFRNUYsTUFBTSxPQUFPLGdDQUFnQztJQXFCekMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBcEI3QyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUdyQyxrQkFBYSxHQUFxQixFQUFFLENBQUM7UUFJN0Isb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0IscUJBQWdCLEdBQWEsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUM3Qyx3QkFBbUIsR0FBdUMsSUFBSSxZQUFZLEVBQXdCLENBQUM7SUFZcEgsQ0FBQztJQVZELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFD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a0IsR0FBRyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7O1lBbEZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxrckRBQXlEO2dCQUV6RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQVZRLGVBQWU7OztnQ0FrQm5CLEtBQUs7OEJBQ0wsS0FBSzsrQkFDTCxLQUFLO2tDQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElTY2VuYXJpb1RhZ1VpLCBTY2VuYXJpbywgVFNjZW5hcmlvRGF0YUNoYW5nZWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcbmltcG9ydCB7IFNjZW5hcmlvU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVRhZywgVGFnVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kLCBpbmNsdWRlcyBhcyBfaW5jbHVkZXMsIG1hcCBhcyBfbWFwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFRvZ2dsZUJ1dHRvblRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vZHItaW5wdXRzL2RyLXRvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi10aGVtZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEclNjZW5hcmlvQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIHRvZ2dsZUJ1dHRvblRoZW1lID0gVG9nZ2xlQnV0dG9uVGhlbWU7XG4gICAgcHVibGljIHNjZW5hcmlvczogU2NlbmFyaW9bXTtcblxuICAgIHByaXZhdGUgX3NjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSA9IFtdO1xuICAgIHByaXZhdGUgdGFnTm90U3VwcG9ydGluZ0RhdGVzOiBJU2NlbmFyaW9UYWdVaTtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50VGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB3aG9sZVRhZ3NDb25maWc6IElUYWdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFNjZW5hcmlvOiBTY2VuYXJpbyA9IFNjZW5hcmlvLkFDVFVBTFM7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY2VuYXJpb0RhdGFDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFNjZW5hcmlvRGF0YUNoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4oKTtcblxuICAgIHB1YmxpYyBnZXQgc2NlbmFyaW9UYWdzKCk6IElTY2VuYXJpb1RhZ1VpW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2NlbmFyaW9UYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgc2NlbmFyaW9UYWdzKHRhZ3M6IElTY2VuYXJpb1RhZ1VpW10pIHtcbiAgICAgICAgdGhpcy5fc2NlbmFyaW9UYWdzID0gdGFncztcbiAgICAgICAgdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXMgPSBfZmluZCh0YWdzLCB7IHR1cm5PZmZEYXRlVGFnczogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNjZW5hcmlvU2VydmljZTogU2NlbmFyaW9TZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjZW5hcmlvcyA9IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnNjZW5hcmlvcztcbiAgICAgICAgdGhpcy5zY2VuYXJpb1NlcnZpY2UuaW5pdFNjZW5hcmlvVGFncyh0aGlzLnNlbGVjdGVkU2NlbmFyaW8sIHRoaXMud2hvbGVUYWdzQ29uZmlnLCB0aGlzLmN1cnJlbnRUYWdzQ29uZmlnKTtcbiAgICAgICAgdGhpcy5zY2VuYXJpb1RhZ3MgPSB0aGlzLnNjZW5hcmlvU2VydmljZS5nZXRTY2VuYXJpb1RhZ3NCeVNjZW5hcmlvKHRoaXMuc2VsZWN0ZWRTY2VuYXJpbyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9DaGFuZ2Uoc2NlbmFyaW86IFNjZW5hcmlvKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9UYWdzID0gdGhpcy5zY2VuYXJpb1NlcnZpY2UuZ2V0U2NlbmFyaW9UYWdzQnlTY2VuYXJpbyhzY2VuYXJpbyk7XG4gICAgICAgIHRoaXMub25TY2VuYXJpb0RhdGFDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TY2VuYXJpb1RhZ1RvZ2dsZSh0YWc6IElTY2VuYXJpb1RhZ1VpKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFnTm90U3VwcG9ydGluZ0RhdGVzSGFuZGxlcih0YWcpO1xuICAgICAgICB0aGlzLnRhZ0FjY2VwdGFibGVEYXRlSGFuZGxlcih0YWcpO1xuICAgICAgICB0aGlzLm9uU2NlbmFyaW9EYXRhQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9EYXRhQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjZW5hcmlvRGF0YUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBzY2VuYXJpbzogdGhpcy5zZWxlY3RlZFNjZW5hcmlvLFxuICAgICAgICAgICAgdGFnc0NvbmZpZzogdGhpcy5zY2VuYXJpb1NlcnZpY2UuZ2V0VGFnc0NvbmZpZ0J5U2NlbmFyaW9UYWdzKHRoaXMuc2NlbmFyaW9UYWdzLCB0aGlzLndob2xlVGFnc0NvbmZpZyksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdGFnTm90U3VwcG9ydGluZ0RhdGVzSGFuZGxlcih0YWc6IElTY2VuYXJpb1RhZ1VpKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXMgfHwgIXRhZy50b2dnbGUpIHJldHVybjtcblxuICAgICAgICBpZiAodGFnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUpIHtcbiAgICAgICAgICAgIHRoaXMudGFnTm90U3VwcG9ydGluZ0RhdGVzLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhZyA9PT0gdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVUYWc6IElTY2VuYXJpb1RhZ1VpID0gX2ZpbmQodGhpcy5zY2VuYXJpb1RhZ3MsIHsgdHlwZTogVGFnVHlwZXMuREFURSB9KTtcblxuICAgICAgICAgICAgaWYgKGRhdGVUYWcpIHtcbiAgICAgICAgICAgICAgICBkYXRlVGFnLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0YWdBY2NlcHRhYmxlRGF0ZUhhbmRsZXIodGFnOiBJU2NlbmFyaW9UYWdVaSkge1xuICAgICAgICBpZiAoIXRhZy5hY2NlcHRhYmxlRGF0ZVRhZ3M/Lmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBkYXRlVGFnID0gX2ZpbmQodGhpcy5zY2VuYXJpb1RhZ3MsIHsgdHlwZTogVGFnVHlwZXMuREFURSB9KTtcblxuICAgICAgICBpZiAoIWRhdGVUYWcpIHJldHVybjtcblxuICAgICAgICBkYXRlVGFnLnN1YlRhZ3MgPSBfbWFwKGRhdGVUYWcuc3ViVGFncywgKHN1YlRhZykgPT4ge1xuICAgICAgICAgICAgc3ViVGFnLmhpZGRlbiA9IHRhZy50b2dnbGUgJiYgIV9pbmNsdWRlcyh0YWcuYWNjZXB0YWJsZURhdGVUYWdzLCBzdWJUYWcuc3ViVHlwZSk7XG4gICAgICAgICAgICByZXR1cm4gc3ViVGFnO1xuICAgICAgICB9KTtcblxuICAgICAgICBkYXRlVGFnLnNlbGVjdGVkVGFnU3ViVHlwZSA9IHRhZy5hY2NlcHRhYmxlRGF0ZVRhZ3NbMF07XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { reduce as _reduce, find as _find, merge as _merge } from 'lodash';
|
|
3
|
+
export class DrScenarioTagConfigurationComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.connectedTags = {};
|
|
6
|
+
this.dynamicTagValues = {};
|
|
7
|
+
this.lockedDates = [];
|
|
8
|
+
this.scenarioTagDataChanged = new EventEmitter();
|
|
9
|
+
this.currentTagsMap = {};
|
|
10
|
+
this._currentTags = [];
|
|
11
|
+
this.dynamicTagsToSave = [];
|
|
12
|
+
this.tagsToSave = [];
|
|
13
|
+
}
|
|
14
|
+
set currentTags(tags) {
|
|
15
|
+
this._currentTags = tags;
|
|
16
|
+
this.currentTagsMap = _reduce(tags, (acc, curr) => {
|
|
17
|
+
var _a;
|
|
18
|
+
const tagId = (_a = _find(this.tagsConfig, { name: curr.name })) === null || _a === void 0 ? void 0 : _a.id;
|
|
19
|
+
if (isNaN(tagId))
|
|
20
|
+
return acc;
|
|
21
|
+
acc[tagId] = curr;
|
|
22
|
+
return acc;
|
|
23
|
+
}, {});
|
|
24
|
+
}
|
|
25
|
+
get currentTags() {
|
|
26
|
+
return this._currentTags;
|
|
27
|
+
}
|
|
28
|
+
ngOnChanges(simpleChanges) {
|
|
29
|
+
this.currentTags = this.currentTags;
|
|
30
|
+
}
|
|
31
|
+
onTagChange($event) {
|
|
32
|
+
const savedTag = _find(this.tagsToSave, { id: $event.id });
|
|
33
|
+
if (savedTag) {
|
|
34
|
+
_merge(savedTag, $event);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.tagsToSave.push($event);
|
|
38
|
+
}
|
|
39
|
+
this.onScenarioTagDataChanged();
|
|
40
|
+
}
|
|
41
|
+
onDynamicTagsChange($event) {
|
|
42
|
+
this.dynamicTagsToSave = $event;
|
|
43
|
+
this.onScenarioTagDataChanged();
|
|
44
|
+
}
|
|
45
|
+
onScenarioTagDataChanged() {
|
|
46
|
+
const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];
|
|
47
|
+
this.scenarioTagDataChanged.emit({
|
|
48
|
+
scenario: this.scenario,
|
|
49
|
+
tagsConfig: this.tagsConfig,
|
|
50
|
+
tags,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
DrScenarioTagConfigurationComponent.decorators = [
|
|
55
|
+
{ type: Component, args: [{
|
|
56
|
+
selector: 'dr-scenario-tag-configuration',
|
|
57
|
+
template: "<div class=\"scenario-tag-configuration\"\n *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag [tagConfig]=\"tagConfig\"\n [selectedTag]=\"currentTagsMap[tagConfig.id]\"\n [lockedDate]=\"lockedDates\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [tagsConfig]=\"tagsConfig\"\n [dynamicTagValues]=\"dynamicTagValues\"\n [connectedTags]=\"connectedTags[tagConfig.id]\"\n [isDynamicTagAddEnabled]=\"isDynamicAddEnabled\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n",
|
|
58
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
59
|
+
styles: [".scenario-tag-configuration{margin-bottom:24px}.scenario-tag-configuration:last-child{margin-bottom:0}:host::ng-deep .tag__label,:host::ng-deep .dynamic-tag__label{font-weight:600!important}\n"]
|
|
60
|
+
},] }
|
|
61
|
+
];
|
|
62
|
+
DrScenarioTagConfigurationComponent.propDecorators = {
|
|
63
|
+
tagsConfig: [{ type: Input }],
|
|
64
|
+
currentTags: [{ type: Input }],
|
|
65
|
+
scenario: [{ type: Input }],
|
|
66
|
+
connectedTags: [{ type: Input }],
|
|
67
|
+
dynamicTagValues: [{ type: Input }],
|
|
68
|
+
lockedDates: [{ type: Input }],
|
|
69
|
+
fiscalYearStartsFrom: [{ type: Input }],
|
|
70
|
+
fiscalYearBack: [{ type: Input }],
|
|
71
|
+
isDynamicAddEnabled: [{ type: Input }],
|
|
72
|
+
scenarioTagDataChanged: [{ type: Output }]
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItc2NlbmFyaW8vY29tcG9uZW50cy9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBUzNFLE1BQU0sT0FBTyxtQ0FBbUM7SUFOaEQ7UUFvQm9CLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxxQkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO1FBRW5DLGdCQUFXLEdBQXdCLEVBQUUsQ0FBQztRQUtyQywyQkFBc0IsR0FBdUMsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFaEgsbUJBQWMsR0FBdUMsRUFBRSxDQUFDO1FBRXZELGlCQUFZLEdBQW9CLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBb0IsRUFBRSxDQUFDO1FBQ3hDLGVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBbUM3QyxDQUFDO0lBN0RHLElBQW9CLFdBQVcsQ0FBQyxJQUFxQjtRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7O1lBQzlDLE1BQU0sS0FBSyxHQUFHLE1BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLDBDQUFFLEVBQUUsQ0FBQztZQUM5RCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFFN0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNsQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFtQkQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRU0sV0FBVyxDQUFDLGFBQTRCO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN4QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQXFCO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTNELElBQUksUUFBUSxFQUFFO1lBQ1YsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM1QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEM7UUFFRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsTUFBdUI7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sd0JBQXdCO1FBQzNCLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLElBQUk7U0FDUCxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUFwRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLDRyQkFBNkQ7Z0JBRTdELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O3lCQUVJLEtBQUs7MEJBQ0wsS0FBSzt1QkFXTCxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSzswQkFFTCxLQUFLO21DQUNMLEtBQUs7NkJBQ0wsS0FBSztrQ0FDTCxLQUFLO3FDQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhZywgSVRhZ0ZvclNlcnZlciwgVENvbm5lY3RlZFRhZ3MsIFREeW5hbWljVGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgcmVkdWNlIGFzIF9yZWR1Y2UsIGZpbmQgYXMgX2ZpbmQsIG1lcmdlIGFzIF9tZXJnZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTY2VuYXJpbywgVFNjZW5hcmlvRGF0YUNoYW5nZWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXNjZW5hcmlvLXRhZy1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERyU2NlbmFyaW9UYWdDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgdGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgY3VycmVudFRhZ3ModGFnczogSVRhZ0ZvclNlcnZlcltdKSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUYWdzID0gdGFncztcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnc01hcCA9IF9yZWR1Y2UodGFncywgKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFnSWQgPSBfZmluZCh0aGlzLnRhZ3NDb25maWcsIHsgbmFtZTogY3Vyci5uYW1lIH0pPy5pZDtcbiAgICAgICAgICAgIGlmIChpc05hTih0YWdJZCkpIHJldHVybiBhY2M7XG5cbiAgICAgICAgICAgIGFjY1t0YWdJZF0gPSBjdXJyO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzY2VuYXJpbzogU2NlbmFyaW87XG4gICAgQElucHV0KCkgcHVibGljIGNvbm5lY3RlZFRhZ3M6IFRDb25uZWN0ZWRUYWdzID0ge307XG4gICAgQElucHV0KCkgcHVibGljIGR5bmFtaWNUYWdWYWx1ZXM6IFREeW5hbWljVGFnID0ge307XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgbG9ja2VkRGF0ZXM6IHN0cmluZ1tdIHwgbnVtYmVyW10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlzY2FsWWVhclN0YXJ0c0Zyb206IG51bWJlcjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlzY2FsWWVhckJhY2s6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGlzRHluYW1pY0FkZEVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIHNjZW5hcmlvVGFnRGF0YUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRTY2VuYXJpb0RhdGFDaGFuZ2VkPigpO1xuXG4gICAgcHVibGljIGN1cnJlbnRUYWdzTWFwOiB7IFt0YWdJZDogbnVtYmVyXTogSVRhZ0ZvclNlcnZlciB9ID0ge307XG5cbiAgICBwcml2YXRlIF9jdXJyZW50VGFnczogSVRhZ0ZvclNlcnZlcltdID0gW107XG4gICAgcHJpdmF0ZSBkeW5hbWljVGFnc1RvU2F2ZTogSVRhZ0ZvclNlcnZlcltdID0gW107XG4gICAgcHJpdmF0ZSB0YWdzVG9TYXZlOiBJVGFnRm9yU2VydmVyW10gPSBbXTtcblxuICAgIHB1YmxpYyBnZXQgY3VycmVudFRhZ3MoKTogSVRhZ0ZvclNlcnZlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ3MgPSB0aGlzLmN1cnJlbnRUYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhZ0NoYW5nZSgkZXZlbnQ6IElUYWdGb3JTZXJ2ZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2F2ZWRUYWcgPSBfZmluZCh0aGlzLnRhZ3NUb1NhdmUsIHsgaWQ6ICRldmVudC5pZCB9KTtcblxuICAgICAgICBpZiAoc2F2ZWRUYWcpIHtcbiAgICAgICAgICAgIF9tZXJnZShzYXZlZFRhZywgJGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFnc1RvU2F2ZS5wdXNoKCRldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uU2NlbmFyaW9UYWdEYXRhQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkR5bmFtaWNUYWdzQ2hhbmdlKCRldmVudDogSVRhZ0ZvclNlcnZlcltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHluYW1pY1RhZ3NUb1NhdmUgPSAkZXZlbnQ7XG4gICAgICAgIHRoaXMub25TY2VuYXJpb1RhZ0RhdGFDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9UYWdEYXRhQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFncyA9IFsuLi50aGlzLmR5bmFtaWNUYWdzVG9TYXZlLCAuLi50aGlzLnRhZ3NUb1NhdmVdO1xuICAgICAgICB0aGlzLnNjZW5hcmlvVGFnRGF0YUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBzY2VuYXJpbzogdGhpcy5zY2VuYXJpbyxcbiAgICAgICAgICAgIHRhZ3NDb25maWc6IHRoaXMudGFnc0NvbmZpZyxcbiAgICAgICAgICAgIHRhZ3MsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { TagsConfigSubType } from '../../models/serverTags';
|
|
2
|
+
import { Scenario } from '../interfaces/scenario';
|
|
3
|
+
export const allDateTags = {
|
|
4
|
+
[TagsConfigSubType.YEAR]: {
|
|
5
|
+
name: 'Date',
|
|
6
|
+
toggle: false,
|
|
7
|
+
},
|
|
8
|
+
[TagsConfigSubType.QUARTER]: {
|
|
9
|
+
name: 'Date',
|
|
10
|
+
toggle: false,
|
|
11
|
+
},
|
|
12
|
+
[TagsConfigSubType.MONTH]: {
|
|
13
|
+
name: 'Date',
|
|
14
|
+
toggle: false,
|
|
15
|
+
},
|
|
16
|
+
[TagsConfigSubType.DAY]: {
|
|
17
|
+
name: 'Date',
|
|
18
|
+
toggle: false,
|
|
19
|
+
},
|
|
20
|
+
[TagsConfigSubType.WEEK]: {
|
|
21
|
+
name: 'Date',
|
|
22
|
+
toggle: false,
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
export function getScenarioTagDataConfig(isMultipleDimension) {
|
|
26
|
+
return {
|
|
27
|
+
[Scenario.ACTUALS]: Object.assign(Object.assign({}, allDateTags), { [TagsConfigSubType.MONTH]: {
|
|
28
|
+
name: 'Date',
|
|
29
|
+
toggle: true,
|
|
30
|
+
}, [TagsConfigSubType.FILE_STATUS]: {
|
|
31
|
+
toggle: false,
|
|
32
|
+
} }),
|
|
33
|
+
[Scenario.BUDGET]: {
|
|
34
|
+
[TagsConfigSubType.BUDGET_CYCLE]: {
|
|
35
|
+
toggle: true,
|
|
36
|
+
acceptableDateTags: [TagsConfigSubType.YEAR],
|
|
37
|
+
hidden: !isMultipleDimension,
|
|
38
|
+
},
|
|
39
|
+
[TagsConfigSubType.PLAN]: {
|
|
40
|
+
toggle: false,
|
|
41
|
+
turnOffDateTags: true,
|
|
42
|
+
hidden: isMultipleDimension,
|
|
43
|
+
},
|
|
44
|
+
[TagsConfigSubType.YEAR]: {
|
|
45
|
+
name: 'Date',
|
|
46
|
+
toggle: true,
|
|
47
|
+
},
|
|
48
|
+
[TagsConfigSubType.QUARTER]: {
|
|
49
|
+
name: 'Date',
|
|
50
|
+
toggle: false,
|
|
51
|
+
},
|
|
52
|
+
[TagsConfigSubType.FILE_STATUS]: {
|
|
53
|
+
toggle: false,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
[Scenario.FORECAST]: {
|
|
57
|
+
[TagsConfigSubType.FORECAST_NEW]: {
|
|
58
|
+
toggle: true,
|
|
59
|
+
name: 'Date',
|
|
60
|
+
},
|
|
61
|
+
[TagsConfigSubType.FILE_STATUS]: {
|
|
62
|
+
toggle: false,
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
[Scenario.NONE]: Object.assign(Object.assign({}, allDateTags), { [TagsConfigSubType.MONTH]: {
|
|
66
|
+
name: 'Date',
|
|
67
|
+
toggle: true,
|
|
68
|
+
}, [TagsConfigSubType.FILE_STATUS]: {
|
|
69
|
+
toggle: true,
|
|
70
|
+
} }),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8tdGFncy1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb25zdHMvc2NlbmFyaW8tdGFncy1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBNEMsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN2QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNyQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxtQkFBNEI7SUFDakUsT0FBTztRQUNILENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQ0FDWCxXQUFXLEtBQ2QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLElBQUk7YUFDZixFQUNELENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2FBQ2hCLEdBQ0o7UUFDRCxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNmLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sRUFBRSxJQUFJO2dCQUNaLGtCQUFrQixFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUM1QyxNQUFNLEVBQUUsQ0FBQyxtQkFBbUI7YUFDL0I7WUFDRCxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0QixNQUFNLEVBQUUsS0FBSztnQkFDYixlQUFlLEVBQUUsSUFBSTtnQkFDckIsTUFBTSxFQUFFLG1CQUFtQjthQUM5QjtZQUNELENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2FBQ2Y7WUFDRCxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsS0FBSzthQUNoQjtZQUNELENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2FBQ2hCO1NBQ0o7UUFDRCxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNqQixDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM5QixNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsTUFBTTthQUNmO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDN0IsTUFBTSxFQUFFLEtBQUs7YUFDaEI7U0FDSjtRQUNELENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQ0FDUixXQUFXLEtBQ2QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLElBQUk7YUFDZixFQUNELENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxJQUFJO2FBQ2YsR0FDSjtLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFnc0NvbmZpZ1N1YlR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBTY2VuYXJpbywgVFNjZW5hcmlvVGFnQ29uZmlnRGF0YSwgVFNjZW5hcmlvVGFnRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2NlbmFyaW8nO1xuXG5leHBvcnQgY29uc3QgYWxsRGF0ZVRhZ3MgPSB7XG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLllFQVJdOiB7XG4gICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICB9LFxuICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5RVUFSVEVSXToge1xuICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgfSxcbiAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuTU9OVEhdOiB7XG4gICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICB9LFxuICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5EQVldOiB7XG4gICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICB9LFxuICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5XRUVLXToge1xuICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyhpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuKTogVFNjZW5hcmlvVGFnRGF0YTxUU2NlbmFyaW9UYWdDb25maWdEYXRhPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgW1NjZW5hcmlvLkFDVFVBTFNdOiB7XG4gICAgICAgICAgICAuLi5hbGxEYXRlVGFncyxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5NT05USF06IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GSUxFX1NUQVRVU106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NjZW5hcmlvLkJVREdFVF06IHtcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5CVURHRVRfQ1lDTEVdOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFjY2VwdGFibGVEYXRlVGFnczogW1RhZ3NDb25maWdTdWJUeXBlLllFQVJdLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogIWlzTXVsdGlwbGVEaW1lbnNpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLlBMQU5dOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0dXJuT2ZmRGF0ZVRhZ3M6IHRydWUsXG4gICAgICAgICAgICAgICAgaGlkZGVuOiBpc011bHRpcGxlRGltZW5zaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSXToge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLlFVQVJURVJdOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkZJTEVfU1RBVFVTXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2NlbmFyaW8uRk9SRUNBU1RdOiB7XG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfTkVXXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkZJTEVfU1RBVFVTXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2NlbmFyaW8uTk9ORV06IHtcbiAgICAgICAgICAgIC4uLmFsbERhdGVUYWdzLFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLk1PTlRIXToge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkZJTEVfU1RBVFVTXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ScenarioService } from './services/scenario.service';
|
|
4
|
+
import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
|
|
5
|
+
import { FormsModule } from '@angular/forms';
|
|
6
|
+
import { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';
|
|
7
|
+
import { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';
|
|
8
|
+
import { DrTagModule } from '../dr-tags/dr-tag.module';
|
|
9
|
+
const COMPONENTS = [
|
|
10
|
+
DrScenarioConfigurationComponent,
|
|
11
|
+
DrScenarioTagConfigurationComponent,
|
|
12
|
+
];
|
|
13
|
+
export class DrScenarioModule {
|
|
14
|
+
}
|
|
15
|
+
DrScenarioModule.decorators = [
|
|
16
|
+
{ type: NgModule, args: [{
|
|
17
|
+
declarations: [...COMPONENTS],
|
|
18
|
+
providers: [ScenarioService],
|
|
19
|
+
imports: [
|
|
20
|
+
CommonModule,
|
|
21
|
+
DrInputsModule,
|
|
22
|
+
FormsModule,
|
|
23
|
+
DrTagModule
|
|
24
|
+
],
|
|
25
|
+
exports: [...COMPONENTS],
|
|
26
|
+
},] }
|
|
27
|
+
];
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItc2NlbmFyaW8vZHItc2NlbmFyaW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd2RCxNQUFNLFVBQVUsR0FBRztJQUNmLGdDQUFnQztJQUNoQyxtQ0FBbUM7Q0FDdEMsQ0FBQTtBQWFELE1BQU0sT0FBTyxnQkFBZ0I7OztZQVg1QixRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7Z0JBQzdCLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDNUIsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxXQUFXO29CQUNYLFdBQVc7aUJBQ2Q7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7YUFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNjZW5hcmlvU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2NlbmFyaW8uc2VydmljZSc7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJTY2VuYXJpb0NvbmZpZ3VyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi9kci1zY2VuYXJpby1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEclNjZW5hcmlvVGFnQ29uZmlndXJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJUYWdNb2R1bGUgfSBmcm9tICcuLi9kci10YWdzL2RyLXRhZy5tb2R1bGUnO1xuXG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gICAgRHJTY2VuYXJpb0NvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgRHJTY2VuYXJpb1RhZ0NvbmZpZ3VyYXRpb25Db21wb25lbnQsXG5dXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbLi4uQ09NUE9ORU5UU10sXG4gICAgcHJvdmlkZXJzOiBbU2NlbmFyaW9TZXJ2aWNlXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRHJJbnB1dHNNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBEclRhZ01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogWy4uLkNPTVBPTkVOVFNdLFxufSlcbmV4cG9ydCBjbGFzcyBEclNjZW5hcmlvTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var Scenario;
|
|
2
|
+
(function (Scenario) {
|
|
3
|
+
Scenario["ACTUALS"] = "Actuals";
|
|
4
|
+
Scenario["FORECAST"] = "Forecast";
|
|
5
|
+
Scenario["BUDGET"] = "Budget";
|
|
6
|
+
Scenario["NONE"] = "None";
|
|
7
|
+
})(Scenario || (Scenario = {}));
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9pbnRlcmZhY2VzL3NjZW5hcmlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDaEIsK0JBQW1CLENBQUE7SUFDbkIsaUNBQXFCLENBQUE7SUFDckIsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsUUFBUSxLQUFSLFFBQVEsUUFLbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVGFnLCBJVGFnRm9yU2VydmVyLCBUYWdzQ29uZmlnU3ViVHlwZSwgVGFnVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5cbmV4cG9ydCBlbnVtIFNjZW5hcmlvIHtcbiAgICBBQ1RVQUxTID0gJ0FjdHVhbHMnLFxuICAgIEZPUkVDQVNUID0gJ0ZvcmVjYXN0JyxcbiAgICBCVURHRVQgPSAnQnVkZ2V0JyxcbiAgICBOT05FID0gJ05vbmUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuYXJpb1RhZyBleHRlbmRzIElUYWcge1xuICAgIHNjZW5hcmlvRGF0YTogSVNjZW5hcmlvO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuYXJpb0NvbW1vbiB7XG4gICAgdG9nZ2xlOiBib29sZWFuO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGFjY2VwdGFibGVEYXRlVGFncz86IFRhZ3NDb25maWdTdWJUeXBlW107XG4gICAgdHVybk9mZkRhdGVUYWdzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2NlbmFyaW8gZXh0ZW5kcyBPbWl0PElTY2VuYXJpb0NvbW1vbiwgJ25hbWUnIHwgJ2Rlc2NyaXB0aW9uJz4ge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2NlbmFyaW9UYWdVaSBleHRlbmRzIElTY2VuYXJpb0NvbW1vbiB7XG4gICAgc2VsZWN0ZWRUYWdTdWJUeXBlOiBUYWdzQ29uZmlnU3ViVHlwZTtcbiAgICB0eXBlOiBUYWdUeXBlcztcbiAgICBzdWJUYWdzPzogSVNjZW5hcmlvU3ViVGFnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNjZW5hcmlvU3ViVGFnIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc3ViVHlwZTogVGFnc0NvbmZpZ1N1YlR5cGU7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgVFNjZW5hcmlvVGFnQ29uZmlnRGF0YSA9IHsgW2tleSBpbiBUYWdzQ29uZmlnU3ViVHlwZV0/OiBJU2NlbmFyaW8gfTtcbmV4cG9ydCB0eXBlIFRTY2VuYXJpb1RhZ0RhdGE8VD4gPSB7IFtrZXkgaW4gU2NlbmFyaW9dPzogVCB9O1xuZXhwb3J0IHR5cGUgVFNjZW5hcmlvRGF0YUNoYW5nZWQgPSB7IHNjZW5hcmlvOiBTY2VuYXJpbzsgdGFncz86IElUYWdGb3JTZXJ2ZXJbXTsgdGFnc0NvbmZpZz86IElUYWdbXSB9O1xuIl19
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TagsConfigSubType, TagTypes } from '../../models/serverTags';
|
|
3
|
+
import { Scenario } from '../interfaces/scenario';
|
|
4
|
+
import { cloneDeep as _cloneDeep, filter as _filter, find as _find, forEach as _forEach, orderBy as _orderBy, reduce as _reduce, some as _some, } from 'lodash';
|
|
5
|
+
import { getScenarioTagDataConfig } from '../consts/scenario-tags-config';
|
|
6
|
+
export class ScenarioService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.DEFAULT_FORECAST_DATE_TAG = 'Month';
|
|
9
|
+
}
|
|
10
|
+
get scenarios() {
|
|
11
|
+
return _orderBy(Object.values(Scenario), (scenario) => scenario === Scenario.NONE ? 1 : 0);
|
|
12
|
+
}
|
|
13
|
+
get areExistingTagsConfig() {
|
|
14
|
+
return !!this.currentTagsConfig;
|
|
15
|
+
}
|
|
16
|
+
initScenarioTags(scenario, wholeTagsConfig, currentTagsConfig, isMultipleDimension = true) {
|
|
17
|
+
if (!(wholeTagsConfig === null || wholeTagsConfig === void 0 ? void 0 : wholeTagsConfig.length) || !scenario)
|
|
18
|
+
return;
|
|
19
|
+
this.wholeTagsConfig = wholeTagsConfig;
|
|
20
|
+
this.currentTagsConfig = currentTagsConfig;
|
|
21
|
+
this.isMultipleDimension = isMultipleDimension;
|
|
22
|
+
}
|
|
23
|
+
getTagsConfigByScenarioTags(scenarioTags, tagsConfig) {
|
|
24
|
+
const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) => _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));
|
|
25
|
+
return this.sortScenarioTags(scenarioTagsConfig);
|
|
26
|
+
}
|
|
27
|
+
getScenarioTagsByScenario(scenario) {
|
|
28
|
+
const scenarioTagsConfig = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);
|
|
29
|
+
const scenarioTagsUi = [];
|
|
30
|
+
_forEach(scenarioTagsConfig, (scenarioTag) => {
|
|
31
|
+
const isDateTag = scenarioTag.type === TagTypes.DATE;
|
|
32
|
+
const dateTag = isDateTag && _find(scenarioTagsUi, { type: TagTypes.DATE });
|
|
33
|
+
const tag = dateTag || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isDateTag);
|
|
34
|
+
if (isDateTag) {
|
|
35
|
+
this.updateScenarioDateTag(tag, scenarioTag);
|
|
36
|
+
}
|
|
37
|
+
if (dateTag)
|
|
38
|
+
return;
|
|
39
|
+
scenarioTagsUi.push(tag);
|
|
40
|
+
});
|
|
41
|
+
if (this.areExistingTagsConfig) {
|
|
42
|
+
this.initExistingTagsConfig(scenario, scenarioTagsUi);
|
|
43
|
+
}
|
|
44
|
+
const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });
|
|
45
|
+
if (isTagNotSupportingDates) {
|
|
46
|
+
this.turnOffDateTag(scenarioTagsUi);
|
|
47
|
+
}
|
|
48
|
+
const tagWithSpecificDateTags = _find(scenarioTagsUi, (tag) => { var _a; return tag.toggle && !!((_a = tag.acceptableDateTags) === null || _a === void 0 ? void 0 : _a.length); });
|
|
49
|
+
if (tagWithSpecificDateTags) {
|
|
50
|
+
this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);
|
|
51
|
+
}
|
|
52
|
+
return this.sortScenarioTags(scenarioTagsUi);
|
|
53
|
+
}
|
|
54
|
+
sortScenarioTags(scenarioTagsUi) {
|
|
55
|
+
return _orderBy(scenarioTagsUi, [
|
|
56
|
+
(tag) => (tag.type === TagTypes.DATE ? 0 : 1),
|
|
57
|
+
(tag) => (tag.name === 'File Status')
|
|
58
|
+
]);
|
|
59
|
+
}
|
|
60
|
+
initExistingTagsConfig(scenario, scenarioTagsUi) {
|
|
61
|
+
_forEach(this.currentTagsConfig, (tagConfig) => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
const tagSubType = (_a = tagConfig === null || tagConfig === void 0 ? void 0 : tagConfig.options) === null || _a === void 0 ? void 0 : _a.sub_type;
|
|
64
|
+
const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);
|
|
65
|
+
if (!((_b = scenarioTagDataConfig === null || scenarioTagDataConfig === void 0 ? void 0 : scenarioTagDataConfig[scenario]) === null || _b === void 0 ? void 0 : _b[tagSubType]))
|
|
66
|
+
return;
|
|
67
|
+
const scenarioTagUi = tagConfig.type === TagTypes.DATE
|
|
68
|
+
? _find(scenarioTagsUi, { type: tagConfig.type })
|
|
69
|
+
: _find(scenarioTagsUi, { selectedTagSubType: tagSubType });
|
|
70
|
+
scenarioTagUi.toggle = true;
|
|
71
|
+
scenarioTagUi.selectedTagSubType = tagSubType;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isDateTag) {
|
|
75
|
+
const toggleStatus = isDateTag
|
|
76
|
+
? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)
|
|
77
|
+
: scenarioTag.scenarioData.toggle;
|
|
78
|
+
const selectedTagSubType = isDateTag
|
|
79
|
+
? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)
|
|
80
|
+
: scenarioTag.options.sub_type;
|
|
81
|
+
const tag = {
|
|
82
|
+
toggle: this.areExistingTagsConfig ? false : toggleStatus,
|
|
83
|
+
name: scenarioTag.scenarioData.name || scenarioTag.name,
|
|
84
|
+
description: scenarioTag.scenarioData.description || scenarioTag.description,
|
|
85
|
+
type: scenarioTag.type,
|
|
86
|
+
selectedTagSubType,
|
|
87
|
+
};
|
|
88
|
+
if (scenarioTag.scenarioData.turnOffDateTags) {
|
|
89
|
+
tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;
|
|
90
|
+
}
|
|
91
|
+
if (scenarioTag.scenarioData.acceptableDateTags) {
|
|
92
|
+
tag.acceptableDateTags = scenarioTag.scenarioData.acceptableDateTags;
|
|
93
|
+
}
|
|
94
|
+
return tag;
|
|
95
|
+
}
|
|
96
|
+
updateScenarioDateTag(dateTag, scenarioTag) {
|
|
97
|
+
if (!dateTag.subTags) {
|
|
98
|
+
dateTag.subTags = [];
|
|
99
|
+
}
|
|
100
|
+
const tagSubType = scenarioTag.options.sub_type;
|
|
101
|
+
dateTag.subTags.push({
|
|
102
|
+
subType: tagSubType,
|
|
103
|
+
name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
turnOffDateTag(scenarioTags) {
|
|
107
|
+
const dateTag = _find(scenarioTags, { type: TagTypes.DATE });
|
|
108
|
+
if (!dateTag)
|
|
109
|
+
return;
|
|
110
|
+
dateTag.toggle = false;
|
|
111
|
+
}
|
|
112
|
+
hideNotAvailableTags(tagWithSpecificDateTags, scenarioTags) {
|
|
113
|
+
var _a;
|
|
114
|
+
const subTags = (_a = _find(scenarioTags, { type: TagTypes.DATE })) === null || _a === void 0 ? void 0 : _a.subTags;
|
|
115
|
+
if (!subTags.length)
|
|
116
|
+
return;
|
|
117
|
+
_forEach(scenarioTags, (tag) => {
|
|
118
|
+
var _a;
|
|
119
|
+
if (!((_a = tag.acceptableDateTags) === null || _a === void 0 ? void 0 : _a.length))
|
|
120
|
+
return;
|
|
121
|
+
if (tag !== tagWithSpecificDateTags) {
|
|
122
|
+
tag.toggle = false;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
_forEach(subTags, (subTag) => {
|
|
126
|
+
subTag.hidden = !tagWithSpecificDateTags.acceptableDateTags.includes(subTag.subType);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
getScenarioSelectedDateTag(scenario, dateTags) {
|
|
130
|
+
var _a, _b;
|
|
131
|
+
const monthSubType = (_b = (_a = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.MONTH)) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.sub_type;
|
|
132
|
+
const scenarioSelectedDateTag = {
|
|
133
|
+
[Scenario.ACTUALS]: () => monthSubType,
|
|
134
|
+
[Scenario.BUDGET]: () => { var _a, _b; return (_b = (_a = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.YEAR)) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.sub_type; },
|
|
135
|
+
[Scenario.FORECAST]: () => { var _a, _b; return (_b = (_a = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.sub_type; },
|
|
136
|
+
[Scenario.NONE]: () => monthSubType,
|
|
137
|
+
};
|
|
138
|
+
if (!scenarioSelectedDateTag[scenario])
|
|
139
|
+
return;
|
|
140
|
+
return scenarioSelectedDateTag[scenario]();
|
|
141
|
+
}
|
|
142
|
+
getScenarioTagsConfig(scenario, tagsConfig) {
|
|
143
|
+
return _reduce(tagsConfig, (acc, tagConfig) => {
|
|
144
|
+
var _a, _b;
|
|
145
|
+
const tagSubType = (_a = tagConfig === null || tagConfig === void 0 ? void 0 : tagConfig.options) === null || _a === void 0 ? void 0 : _a.sub_type;
|
|
146
|
+
const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);
|
|
147
|
+
const scenarioTagConfig = (_b = scenarioTagDataConfig === null || scenarioTagDataConfig === void 0 ? void 0 : scenarioTagDataConfig[scenario]) === null || _b === void 0 ? void 0 : _b[tagSubType];
|
|
148
|
+
if (!scenarioTagConfig || scenarioTagConfig.hidden)
|
|
149
|
+
return acc;
|
|
150
|
+
const clonedTagConfig = _cloneDeep(tagConfig);
|
|
151
|
+
const scenarioTag = Object.assign(Object.assign({}, clonedTagConfig), { scenarioData: scenarioTagConfig });
|
|
152
|
+
acc.push(scenarioTag);
|
|
153
|
+
return acc;
|
|
154
|
+
}, []);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
ScenarioService.decorators = [
|
|
158
|
+
{ type: Injectable }
|
|
159
|
+
];
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXNjZW5hcmlvL3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVEsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUlILFFBQVEsRUFDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDSCxTQUFTLElBQUksVUFBVSxFQUN2QixNQUFNLElBQUksT0FBTyxFQUNqQixJQUFJLElBQUksS0FBSyxFQUNiLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE1BQU0sSUFBSSxPQUFPLEVBQ2pCLElBQUksSUFBSSxLQUFLLEdBQ2hCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzFFLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVksOEJBQXlCLEdBQUcsT0FBTyxDQUFDO0lBbUxoRCxDQUFDO0lBN0tHLElBQVcsU0FBUztRQUNoQixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsSUFBWSxxQkFBcUI7UUFDN0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3BDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFLGVBQXVC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QU87UUFDL0MsT0FBTyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxRQUFrQixFQUFFLFVBQWtCO1FBQ2hFLE9BQU8sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQW1CLEVBQUUsU0FBZSxFQUFFLEVBQUU7O1lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE9BQU8sMENBQUUsUUFBUSxDQUFDO1lBRWhELE1BQU0scUJBQXFCLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDakYsTUFBTSxpQkFBaUIsR0FBYyxNQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFHLFFBQVEsQ0FBQywwQ0FBRyxVQUFVLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMsaUJBQWlCLElBQUksaUJBQWlCLENBQUMsTUFBTTtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUUvRCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUMsTUFBTSxXQUFXLG1DQUFzQixlQUFlLEtBQUUsWUFBWSxFQUFFLGlCQUFpQixHQUFFLENBQUM7WUFFMUYsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0QixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7OztZQXBMSixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhZywgVGFnc0NvbmZpZ1N1YlR5cGUsIFRhZ1R5cGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHtcbiAgICBJU2NlbmFyaW8sXG4gICAgSVNjZW5hcmlvVGFnLFxuICAgIElTY2VuYXJpb1RhZ1VpLFxuICAgIFNjZW5hcmlvXG59IGZyb20gJy4uL2ludGVyZmFjZXMvc2NlbmFyaW8nO1xuaW1wb3J0IHtcbiAgICBjbG9uZURlZXAgYXMgX2Nsb25lRGVlcCxcbiAgICBmaWx0ZXIgYXMgX2ZpbHRlcixcbiAgICBmaW5kIGFzIF9maW5kLFxuICAgIGZvckVhY2ggYXMgX2ZvckVhY2gsXG4gICAgb3JkZXJCeSBhcyBfb3JkZXJCeSxcbiAgICByZWR1Y2UgYXMgX3JlZHVjZSxcbiAgICBzb21lIGFzIF9zb21lLFxufSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnIH0gZnJvbSAnLi4vY29uc3RzL3NjZW5hcmlvLXRhZ3MtY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjZW5hcmlvU2VydmljZSB7XG4gICAgcHJpdmF0ZSBERUZBVUxUX0ZPUkVDQVNUX0RBVEVfVEFHID0gJ01vbnRoJztcblxuICAgIHByaXZhdGUgd2hvbGVUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgcHJpdmF0ZSBjdXJyZW50VGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIHByaXZhdGUgaXNNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBnZXQgc2NlbmFyaW9zKCk6IFNjZW5hcmlvW10ge1xuICAgICAgICByZXR1cm4gX29yZGVyQnkoT2JqZWN0LnZhbHVlcyhTY2VuYXJpbyksIChzY2VuYXJpbykgPT4gc2NlbmFyaW8gPT09IFNjZW5hcmlvLk5PTkUgPyAxIDogMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYXJlRXhpc3RpbmdUYWdzQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmN1cnJlbnRUYWdzQ29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0U2NlbmFyaW9UYWdzKHNjZW5hcmlvOiBTY2VuYXJpbywgd2hvbGVUYWdzQ29uZmlnOiBJVGFnW10sIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW10sIGlzTXVsdGlwbGVEaW1lbnNpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICghd2hvbGVUYWdzQ29uZmlnPy5sZW5ndGggfHwgIXNjZW5hcmlvKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy53aG9sZVRhZ3NDb25maWcgPSB3aG9sZVRhZ3NDb25maWc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ3NDb25maWcgPSBjdXJyZW50VGFnc0NvbmZpZztcbiAgICAgICAgdGhpcy5pc011bHRpcGxlRGltZW5zaW9uID0gaXNNdWx0aXBsZURpbWVuc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VGFnc0NvbmZpZ0J5U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSwgdGFnc0NvbmZpZzogSVRhZ1tdKTogSVRhZ1tdIHtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzQ29uZmlnID0gX2ZpbHRlcih0YWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PlxuICAgICAgICAgICAgX3NvbWUoc2NlbmFyaW9UYWdzLCAoc2NlbmFyaW9UYWcpID0+IHNjZW5hcmlvVGFnLnRvZ2dsZSAmJiBzY2VuYXJpb1RhZy5zZWxlY3RlZFRhZ1N1YlR5cGUgPT09IHRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NDb25maWcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTY2VuYXJpb1RhZ3NCeVNjZW5hcmlvKHNjZW5hcmlvOiBTY2VuYXJpbykge1xuICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ3NDb25maWc6IElTY2VuYXJpb1RhZ1tdID0gdGhpcy5nZXRTY2VuYXJpb1RhZ3NDb25maWcoc2NlbmFyaW8sIHRoaXMud2hvbGVUYWdzQ29uZmlnKTtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzVWk6IElTY2VuYXJpb1RhZ1VpW10gPSBbXTtcblxuICAgICAgICBfZm9yRWFjaChzY2VuYXJpb1RhZ3NDb25maWcsIChzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0RhdGVUYWcgPSBzY2VuYXJpb1RhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFO1xuICAgICAgICAgICAgY29uc3QgZGF0ZVRhZyA9IGlzRGF0ZVRhZyAmJiBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuXG4gICAgICAgICAgICBjb25zdCB0YWc6IElTY2VuYXJpb1RhZ1VpID0gZGF0ZVRhZyB8fCB0aGlzLnByZXBhcmVTY2VuYXJpb1RhZyhzY2VuYXJpb1RhZ3NDb25maWcsIHNjZW5hcmlvVGFnLCBzY2VuYXJpbywgaXNEYXRlVGFnKTtcblxuICAgICAgICAgICAgaWYgKGlzRGF0ZVRhZykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2NlbmFyaW9EYXRlVGFnKHRhZywgc2NlbmFyaW9UYWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0ZVRhZykgcmV0dXJuO1xuICAgICAgICAgICAgc2NlbmFyaW9UYWdzVWkucHVzaCh0YWcpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEV4aXN0aW5nVGFnc0NvbmZpZyhzY2VuYXJpbywgc2NlbmFyaW9UYWdzVWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNUYWdOb3RTdXBwb3J0aW5nRGF0ZXMgPSBfc29tZShzY2VuYXJpb1RhZ3NVaSwgeyB0dXJuT2ZmRGF0ZVRhZ3M6IHRydWUsIHRvZ2dsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKGlzVGFnTm90U3VwcG9ydGluZ0RhdGVzKSB7XG4gICAgICAgICAgICB0aGlzLnR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnc1VpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSA9IF9maW5kKHNjZW5hcmlvVGFnc1VpLCAodGFnKSA9PiB0YWcudG9nZ2xlICYmICEhdGFnLmFjY2VwdGFibGVEYXRlVGFncz8ubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLCBzY2VuYXJpb1RhZ3NVaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnc1VpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NVaTogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBfb3JkZXJCeShzY2VuYXJpb1RhZ3NVaSwgW1xuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFID8gMCA6IDEpLFxuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy5uYW1lID09PSAnRmlsZSBTdGF0dXMnKVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFeGlzdGluZ1RhZ3NDb25maWcoc2NlbmFyaW86IFNjZW5hcmlvLCBzY2VuYXJpb1RhZ3NVaTogSVNjZW5hcmlvVGFnVWlbXSkge1xuICAgICAgICBfZm9yRWFjaCh0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcbiAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnRGF0YUNvbmZpZyA9IGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyh0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICAgICAgaWYgKCFzY2VuYXJpb1RhZ0RhdGFDb25maWc/LltzY2VuYXJpb10/Llt0YWdTdWJUeXBlXSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ1VpID0gdGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEVcbiAgICAgICAgICAgICAgICA/IF9maW5kKHNjZW5hcmlvVGFnc1VpLCB7IHR5cGU6IHRhZ0NvbmZpZy50eXBlIH0pXG4gICAgICAgICAgICAgICAgOiBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyBzZWxlY3RlZFRhZ1N1YlR5cGU6IHRhZ1N1YlR5cGUgfSk7XG5cbiAgICAgICAgICAgIHNjZW5hcmlvVGFnVWkudG9nZ2xlID0gdHJ1ZTtcbiAgICAgICAgICAgIHNjZW5hcmlvVGFnVWkuc2VsZWN0ZWRUYWdTdWJUeXBlID0gdGFnU3ViVHlwZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcmVwYXJlU2NlbmFyaW9UYWcoc2NlbmFyaW9UYWdzQ29uZmlnOiBJU2NlbmFyaW9UYWdbXSwgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZywgc2NlbmFyaW86IFNjZW5hcmlvLCBpc0RhdGVUYWc6IGJvb2xlYW4pOiBJU2NlbmFyaW9UYWdVaSB7XG4gICAgICAgIGNvbnN0IHRvZ2dsZVN0YXR1cyA9IGlzRGF0ZVRhZ1xuICAgICAgICAgICAgPyBfc29tZShzY2VuYXJpb1RhZ3NDb25maWcsICh0YWcpID0+IHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFICYmIHRhZy5zY2VuYXJpb0RhdGEudG9nZ2xlKVxuICAgICAgICAgICAgOiBzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEudG9nZ2xlO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGFnU3ViVHlwZSA9ICBpc0RhdGVUYWdcbiAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW8sIHNjZW5hcmlvVGFnc0NvbmZpZylcbiAgICAgICAgICAgICAgICA6IHNjZW5hcmlvVGFnLm9wdGlvbnMuc3ViX3R5cGU7XG5cbiAgICAgICAgY29uc3QgdGFnOiBJU2NlbmFyaW9UYWdVaSA9IHtcbiAgICAgICAgICAgIHRvZ2dsZTogdGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcgPyBmYWxzZSA6IHRvZ2dsZVN0YXR1cyxcbiAgICAgICAgICAgIG5hbWU6IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5uYW1lIHx8IHNjZW5hcmlvVGFnLm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmRlc2NyaXB0aW9uIHx8IHNjZW5hcmlvVGFnLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgdHlwZTogc2NlbmFyaW9UYWcudHlwZSxcbiAgICAgICAgICAgIHNlbGVjdGVkVGFnU3ViVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLnR1cm5PZmZEYXRlVGFncykge1xuICAgICAgICAgICAgdGFnLnR1cm5PZmZEYXRlVGFncyA9IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS50dXJuT2ZmRGF0ZVRhZ3M7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmFjY2VwdGFibGVEYXRlVGFncykge1xuICAgICAgICAgICAgdGFnLmFjY2VwdGFibGVEYXRlVGFncyA9IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5hY2NlcHRhYmxlRGF0ZVRhZ3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFnO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2NlbmFyaW9EYXRlVGFnKGRhdGVUYWc6IElTY2VuYXJpb1RhZ1VpLCBzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnKTogdm9pZCB7XG4gICAgICAgIGlmICghZGF0ZVRhZy5zdWJUYWdzKSB7XG4gICAgICAgICAgICBkYXRlVGFnLnN1YlRhZ3MgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1N1YlR5cGUgPSBzY2VuYXJpb1RhZy5vcHRpb25zLnN1Yl90eXBlO1xuXG4gICAgICAgIGRhdGVUYWcuc3ViVGFncy5wdXNoKHtcbiAgICAgICAgICAgIHN1YlR5cGU6IHRhZ1N1YlR5cGUsXG4gICAgICAgICAgICBuYW1lOiB0YWdTdWJUeXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcgPyB0aGlzLkRFRkFVTFRfRk9SRUNBU1RfREFURV9UQUcgOiBzY2VuYXJpb1RhZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXRlVGFnID0gX2ZpbmQoc2NlbmFyaW9UYWdzLCB7IHR5cGU6IFRhZ1R5cGVzLkRBVEUgfSk7XG5cbiAgICAgICAgaWYgKCFkYXRlVGFnKSByZXR1cm47XG4gICAgICAgIGRhdGVUYWcudG9nZ2xlPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSwgc2NlbmFyaW9UYWdzOiBJU2NlbmFyaW9UYWdVaVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN1YlRhZ3MgPSBfZmluZChzY2VuYXJpb1RhZ3MsIHsgdHlwZTogVGFnVHlwZXMuREFURSB9KT8uc3ViVGFncztcbiAgICAgICAgaWYgKCFzdWJUYWdzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIF9mb3JFYWNoKHNjZW5hcmlvVGFncywgKHRhZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF0YWcuYWNjZXB0YWJsZURhdGVUYWdzPy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0YWcgIT09IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICAgICAgdGFnLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfZm9yRWFjaChzdWJUYWdzLCAoc3ViVGFnKSA9PiB7XG4gICAgICAgICAgICBzdWJUYWcuaGlkZGVuID0gIXRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLmFjY2VwdGFibGVEYXRlVGFncy5pbmNsdWRlcyhzdWJUYWcuc3ViVHlwZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW86IFNjZW5hcmlvLCBkYXRlVGFnczogSVNjZW5hcmlvVGFnW10pOiBUYWdzQ29uZmlnU3ViVHlwZSB7XG4gICAgICAgIGNvbnN0IG1vbnRoU3ViVHlwZSA9IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5NT05USCk/Lm9wdGlvbnM/LnN1Yl90eXBlO1xuXG4gICAgICAgIGNvbnN0IHNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnID0ge1xuICAgICAgICAgICAgW1NjZW5hcmlvLkFDVFVBTFNdOiAoKSA9PiBtb250aFN1YlR5cGUsXG4gICAgICAgICAgICBbU2NlbmFyaW8uQlVER0VUXTogKCkgPT4gX2ZpbmQoZGF0ZVRhZ3MsICh0YWc6IElTY2VuYXJpb1RhZykgPT4gdGFnLm9wdGlvbnMuc3ViX3R5cGUgPT09IFRhZ3NDb25maWdTdWJUeXBlLllFQVIpPy5vcHRpb25zPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5GT1JFQ0FTVF06ICgpID0+IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcpPy5vcHRpb25zPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5OT05FXTogKCkgPT4gbW9udGhTdWJUeXBlLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZ1tzY2VuYXJpb10pIHJldHVybjtcbiAgICAgICAgcmV0dXJuIHNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnW3NjZW5hcmlvXSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NlbmFyaW9UYWdzQ29uZmlnKHNjZW5hcmlvOiBTY2VuYXJpbywgdGFnc0NvbmZpZzogSVRhZ1tdKTogSVNjZW5hcmlvVGFnW10ge1xuICAgICAgICByZXR1cm4gX3JlZHVjZSh0YWdzQ29uZmlnLCAoYWNjOiBJU2NlbmFyaW9UYWdbXSwgdGFnQ29uZmlnOiBJVGFnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcblxuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdEYXRhQ29uZmlnID0gZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnKHRoaXMuaXNNdWx0aXBsZURpbWVuc2lvbik7XG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ0NvbmZpZzogSVNjZW5hcmlvID0gc2NlbmFyaW9UYWdEYXRhQ29uZmlnPy5bc2NlbmFyaW9dPy5bdGFnU3ViVHlwZV07XG4gICAgICAgICAgICBpZiAoIXNjZW5hcmlvVGFnQ29uZmlnIHx8IHNjZW5hcmlvVGFnQ29uZmlnLmhpZGRlbikgcmV0dXJuIGFjYztcblxuICAgICAgICAgICAgY29uc3QgY2xvbmVkVGFnQ29uZmlnID0gX2Nsb25lRGVlcCh0YWdDb25maWcpO1xuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZyA9IHsgLi4uY2xvbmVkVGFnQ29uZmlnLCBzY2VuYXJpb0RhdGE6IHNjZW5hcmlvVGFnQ29uZmlnIH07XG5cbiAgICAgICAgICAgIGFjYy5wdXNoKHNjZW5hcmlvVGFnKTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG59XG4iXX0=
|