@datarailsshared/datarailsshared 1.4.165-rocket → 1.4.167

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +475 -23
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.4.167.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +2 -0
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +3 -1
  7. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +2 -2
  8. package/esm2015/lib/date-tags/month-tag/month-tag.component.js +2 -2
  9. package/esm2015/lib/date-tags/week-tag/week-tag.component.js +2 -2
  10. package/esm2015/lib/date-tags/year-tag/year-tag.component.js +5 -10
  11. package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +4 -1
  12. package/esm2015/lib/dr-dialog/services/dialog.service.js +4 -1
  13. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +1 -1
  14. package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +6 -6
  15. package/esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-mode.js +6 -0
  16. package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +93 -0
  17. package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +74 -0
  18. package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +73 -0
  19. package/esm2015/lib/dr-scenario/dr-scenario.module.js +28 -0
  20. package/esm2015/lib/dr-scenario/interfaces/scenario.js +8 -0
  21. package/esm2015/lib/dr-scenario/services/scenario.service.js +160 -0
  22. package/esm2015/lib/dr-tags/dr-tag.component.js +5 -4
  23. package/esm2015/public-api.js +5 -2
  24. package/fesm2015/datarailsshared-datarailsshared.js +441 -26
  25. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  26. package/lib/date-tags/date-tag.module.d.ts +1 -2
  27. package/lib/date-tags/year-tag/year-tag.component.d.ts +1 -3
  28. package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +1 -0
  29. package/lib/dr-dialog/services/dialog.service.d.ts +1 -0
  30. package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +2 -2
  31. package/lib/dr-inputs/dr-toggle-button/{toggle-button-theme.d.ts → toggle-button-mode.d.ts} +1 -1
  32. package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +27 -0
  33. package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +26 -0
  34. package/lib/dr-scenario/consts/scenario-tags-config.d.ts +24 -0
  35. package/lib/dr-scenario/dr-scenario.module.d.ts +2 -0
  36. package/lib/dr-scenario/interfaces/scenario.d.ts +43 -0
  37. package/lib/dr-scenario/services/scenario.service.d.ts +21 -0
  38. package/lib/dr-tags/dr-tag.component.d.ts +2 -2
  39. package/package.json +1 -1
  40. package/public-api.d.ts +4 -1
  41. package/datarailsshared-datarailsshared-1.4.165-rocket.tgz +0 -0
  42. package/esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-theme.js +0 -6
@@ -0,0 +1,93 @@
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 { ToggleButtonMode } from '../../../dr-inputs/dr-toggle-button/toggle-button-mode';
7
+ export class DrScenarioConfigurationComponent {
8
+ constructor(scenarioService) {
9
+ this.scenarioService = scenarioService;
10
+ this.toggleButtonMode = ToggleButtonMode;
11
+ this._scenarioTags = [];
12
+ this.wholeTagsConfig = [];
13
+ this.selectedScenario = Scenario.ACTUALS;
14
+ this.isMultipleDimension = false;
15
+ this.scenarioDataChanged = new EventEmitter();
16
+ }
17
+ get scenarioTags() {
18
+ return this._scenarioTags;
19
+ }
20
+ set scenarioTags(tags) {
21
+ this._scenarioTags = tags;
22
+ this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });
23
+ }
24
+ get dateTag() {
25
+ return _find(this.scenarioTags, { type: TagTypes.DATE });
26
+ }
27
+ ngOnInit() {
28
+ this.scenarios = this.scenarioService.scenarios;
29
+ this.scenarioService.initScenarioTags(this.selectedScenario, this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension);
30
+ this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);
31
+ }
32
+ onScenarioChange(scenario) {
33
+ this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);
34
+ this.onScenarioDataChange();
35
+ }
36
+ onScenarioTagToggle(tag) {
37
+ this.tagNotSupportingDatesHandler(tag);
38
+ this.tagAcceptableDateHandler(tag);
39
+ this.onScenarioDataChange();
40
+ }
41
+ onScenarioDataChange() {
42
+ this.scenarioDataChanged.emit({
43
+ scenario: this.selectedScenario,
44
+ tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),
45
+ });
46
+ }
47
+ tagNotSupportingDatesHandler(tag) {
48
+ if (!this.tagNotSupportingDates || !tag.toggle)
49
+ return;
50
+ if (tag.type === TagTypes.DATE) {
51
+ this.tagNotSupportingDates.toggle = false;
52
+ }
53
+ if (tag === this.tagNotSupportingDates) {
54
+ const dateTag = this.dateTag;
55
+ if (dateTag) {
56
+ dateTag.toggle = false;
57
+ }
58
+ }
59
+ }
60
+ tagAcceptableDateHandler(tag) {
61
+ var _a;
62
+ if (!((_a = tag.acceptableDateTags) === null || _a === void 0 ? void 0 : _a.length))
63
+ return;
64
+ const dateTag = this.dateTag;
65
+ if (!dateTag)
66
+ return;
67
+ dateTag.subTags = _map(dateTag.subTags, (subTag) => {
68
+ subTag.hidden = tag.toggle && !_includes(tag.acceptableDateTags, subTag.subType);
69
+ return subTag;
70
+ });
71
+ dateTag.selectedTagSubType = tag.acceptableDateTags[0];
72
+ }
73
+ }
74
+ DrScenarioConfigurationComponent.decorators = [
75
+ { type: Component, args: [{
76
+ selector: 'dr-scenario-configuration',
77
+ 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 [mode]=\"toggleButtonMode.DOTTED\"\n (ngModelChange)=\"onScenarioDataChange()\"></dr-toggle-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n",
78
+ changeDetection: ChangeDetectionStrategy.OnPush,
79
+ providers: [ScenarioService],
80
+ 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"]
81
+ },] }
82
+ ];
83
+ DrScenarioConfigurationComponent.ctorParameters = () => [
84
+ { type: ScenarioService }
85
+ ];
86
+ DrScenarioConfigurationComponent.propDecorators = {
87
+ currentTagsConfig: [{ type: Input }],
88
+ wholeTagsConfig: [{ type: Input }],
89
+ selectedScenario: [{ type: Input }],
90
+ isMultipleDimension: [{ type: Input }],
91
+ scenarioDataChanged: [{ type: Output }]
92
+ };
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixRQUFRLEVBQXdCLE1BQU0sMkJBQTJCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBUSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFTMUYsTUFBTSxPQUFPLGdDQUFnQztJQTJCekMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBMUI3QyxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUduQyxrQkFBYSxHQUFxQixFQUFFLENBQUM7UUFJN0Isb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0IscUJBQWdCLEdBQWEsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUM5Qyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFFcEMsd0JBQW1CLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO0lBZ0JwSCxDQUFDO0lBZEQsSUFBVyxZQUFZO1FBQ25C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LE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7O1lBekZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxnckRBQXlEO2dCQUV6RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDOzthQUMvQjs7O1lBWFEsZUFBZTs7O2dDQW1CbkIsS0FBSzs4QkFDTCxLQUFLOytCQUNMLEtBQUs7a0NBQ0wsS0FBSztrQ0FFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJU2NlbmFyaW9UYWdVaSwgU2NlbmFyaW8sIFRTY2VuYXJpb0RhdGFDaGFuZ2VkIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2VuYXJpbyc7XG5pbXBvcnQgeyBTY2VuYXJpb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zY2VuYXJpby5zZXJ2aWNlJztcbmltcG9ydCB7IElUYWcsIFRhZ1R5cGVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgZmluZCBhcyBfZmluZCwgaW5jbHVkZXMgYXMgX2luY2x1ZGVzLCBtYXAgYXMgX21hcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBUb2dnbGVCdXR0b25Nb2RlIH0gZnJvbSAnLi4vLi4vLi4vZHItaW5wdXRzL2RyLXRvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi1tb2RlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1zY2VuYXJpby1jb25maWd1cmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1NjZW5hcmlvU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRHJTY2VuYXJpb0NvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyB0b2dnbGVCdXR0b25Nb2RlID0gVG9nZ2xlQnV0dG9uTW9kZTtcbiAgICBwdWJsaWMgc2NlbmFyaW9zOiBTY2VuYXJpb1tdO1xuXG4gICAgcHJpdmF0ZSBfc2NlbmFyaW9UYWdzOiBJU2NlbmFyaW9UYWdVaVtdID0gW107XG4gICAgcHJpdmF0ZSB0YWdOb3RTdXBwb3J0aW5nRGF0ZXM6IElTY2VuYXJpb1RhZ1VpO1xuXG4gICAgQElucHV0KCkgcHVibGljIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgQElucHV0KCkgcHVibGljIHdob2xlVGFnc0NvbmZpZzogSVRhZ1tdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkU2NlbmFyaW86IFNjZW5hcmlvID0gU2NlbmFyaW8uQUNUVUFMUztcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY2VuYXJpb0RhdGFDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFNjZW5hcmlvRGF0YUNoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4oKTtcblxuICAgIHB1YmxpYyBnZXQgc2NlbmFyaW9UYWdzKCk6IElTY2VuYXJpb1RhZ1VpW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2NlbmFyaW9UYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgc2NlbmFyaW9UYWdzKHRhZ3M6IElTY2VuYXJpb1RhZ1VpW10pIHtcbiAgICAgICAgdGhpcy5fc2NlbmFyaW9UYWdzID0gdGFncztcbiAgICAgICAgdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXMgPSBfZmluZCh0YWdzLCB7IHR1cm5PZmZEYXRlVGFnczogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGVUYWcoKTogSVNjZW5hcmlvVGFnVWkge1xuICAgICAgICByZXR1cm4gX2ZpbmQodGhpcy5zY2VuYXJpb1RhZ3MsIHsgdHlwZTogVGFnVHlwZXMuREFURSB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNjZW5hcmlvU2VydmljZTogU2NlbmFyaW9TZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjZW5hcmlvcyA9IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnNjZW5hcmlvcztcbiAgICAgICAgdGhpcy5zY2VuYXJpb1NlcnZpY2UuaW5pdFNjZW5hcmlvVGFncyh0aGlzLnNlbGVjdGVkU2NlbmFyaW8sIHRoaXMud2hvbGVUYWdzQ29uZmlnLCB0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLCB0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICB0aGlzLnNjZW5hcmlvVGFncyA9IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLmdldFNjZW5hcmlvVGFnc0J5U2NlbmFyaW8odGhpcy5zZWxlY3RlZFNjZW5hcmlvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TY2VuYXJpb0NoYW5nZShzY2VuYXJpbzogU2NlbmFyaW8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY2VuYXJpb1RhZ3MgPSB0aGlzLnNjZW5hcmlvU2VydmljZS5nZXRTY2VuYXJpb1RhZ3NCeVNjZW5hcmlvKHNjZW5hcmlvKTtcbiAgICAgICAgdGhpcy5vblNjZW5hcmlvRGF0YUNoYW5nZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNjZW5hcmlvVGFnVG9nZ2xlKHRhZzogSVNjZW5hcmlvVGFnVWkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXNIYW5kbGVyKHRhZyk7XG4gICAgICAgIHRoaXMudGFnQWNjZXB0YWJsZURhdGVIYW5kbGVyKHRhZyk7XG4gICAgICAgIHRoaXMub25TY2VuYXJpb0RhdGFDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TY2VuYXJpb0RhdGFDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9EYXRhQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIHNjZW5hcmlvOiB0aGlzLnNlbGVjdGVkU2NlbmFyaW8sXG4gICAgICAgICAgICB0YWdzQ29uZmlnOiB0aGlzLnNjZW5hcmlvU2VydmljZS5nZXRUYWdzQ29uZmlnQnlTY2VuYXJpb1RhZ3ModGhpcy5zY2VuYXJpb1RhZ3MsIHRoaXMud2hvbGVUYWdzQ29uZmlnKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0YWdOb3RTdXBwb3J0aW5nRGF0ZXNIYW5kbGVyKHRhZzogSVNjZW5hcmlvVGFnVWkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhZ05vdFN1cHBvcnRpbmdEYXRlcyB8fCAhdGFnLnRvZ2dsZSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0YWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSkge1xuICAgICAgICAgICAgdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXMudG9nZ2xlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFnID09PSB0aGlzLnRhZ05vdFN1cHBvcnRpbmdEYXRlcykge1xuICAgICAgICAgICAgY29uc3QgZGF0ZVRhZyA9IHRoaXMuZGF0ZVRhZztcblxuICAgICAgICAgICAgaWYgKGRhdGVUYWcpIHtcbiAgICAgICAgICAgICAgICBkYXRlVGFnLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0YWdBY2NlcHRhYmxlRGF0ZUhhbmRsZXIodGFnOiBJU2NlbmFyaW9UYWdVaSkge1xuICAgICAgICBpZiAoIXRhZy5hY2NlcHRhYmxlRGF0ZVRhZ3M/Lmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBkYXRlVGFnID0gdGhpcy5kYXRlVGFnO1xuXG4gICAgICAgIGlmICghZGF0ZVRhZykgcmV0dXJuO1xuXG4gICAgICAgIGRhdGVUYWcuc3ViVGFncyA9IF9tYXAoZGF0ZVRhZy5zdWJUYWdzLCAoc3ViVGFnKSA9PiB7XG4gICAgICAgICAgICBzdWJUYWcuaGlkZGVuID0gdGFnLnRvZ2dsZSAmJiAhX2luY2x1ZGVzKHRhZy5hY2NlcHRhYmxlRGF0ZVRhZ3MsIHN1YlRhZy5zdWJUeXBlKTtcbiAgICAgICAgICAgIHJldHVybiBzdWJUYWc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRhdGVUYWcuc2VsZWN0ZWRUYWdTdWJUeXBlID0gdGFnLmFjY2VwdGFibGVEYXRlVGFnc1swXTtcbiAgICB9XG59XG4iXX0=
@@ -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}\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) {
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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Qy9DLE9BQU8sdUJBQXVCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU8scUJBQXFCLENBQUMsUUFBa0IsRUFBRSxVQUFrQjtRQUNoRSxPQUFPLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFtQixFQUFFLFNBQWUsRUFBRSxFQUFFOztZQUNoRSxNQUFNLFVBQVUsR0FBRyxNQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxPQUFPLDBDQUFFLFFBQVEsQ0FBQztZQUVoRCxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0saUJBQWlCLEdBQWMsTUFBQSxxQkFBcUIsYUFBckIscUJBQXFCLHVCQUFyQixxQkFBcUIsQ0FBRyxRQUFRLENBQUMsMENBQUcsVUFBVSxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLE1BQU07Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFFL0QsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sV0FBVyxtQ0FBc0IsZUFBZSxLQUFFLFlBQVksRUFBRSxpQkFBaUIsR0FBRSxDQUFDO1lBRTFGLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDOzs7WUFwTEosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUYWcsIFRhZ3NDb25maWdTdWJUeXBlLCBUYWdUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7XG4gICAgSVNjZW5hcmlvLFxuICAgIElTY2VuYXJpb1RhZyxcbiAgICBJU2NlbmFyaW9UYWdVaSxcbiAgICBTY2VuYXJpb1xufSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcbmltcG9ydCB7XG4gICAgY2xvbmVEZWVwIGFzIF9jbG9uZURlZXAsXG4gICAgZmlsdGVyIGFzIF9maWx0ZXIsXG4gICAgZmluZCBhcyBfZmluZCxcbiAgICBmb3JFYWNoIGFzIF9mb3JFYWNoLFxuICAgIG9yZGVyQnkgYXMgX29yZGVyQnksXG4gICAgcmVkdWNlIGFzIF9yZWR1Y2UsXG4gICAgc29tZSBhcyBfc29tZSxcbn0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyB9IGZyb20gJy4uL2NvbnN0cy9zY2VuYXJpby10YWdzLWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY2VuYXJpb1NlcnZpY2Uge1xuICAgIHByaXZhdGUgREVGQVVMVF9GT1JFQ0FTVF9EQVRFX1RBRyA9ICdNb250aCc7XG5cbiAgICBwcml2YXRlIHdob2xlVGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIHByaXZhdGUgY3VycmVudFRhZ3NDb25maWc6IElUYWdbXTtcbiAgICBwcml2YXRlIGlzTXVsdGlwbGVEaW1lbnNpb246IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IHNjZW5hcmlvcygpOiBTY2VuYXJpb1tdIHtcbiAgICAgICAgcmV0dXJuIF9vcmRlckJ5KE9iamVjdC52YWx1ZXMoU2NlbmFyaW8pLCAoc2NlbmFyaW8pID0+IHNjZW5hcmlvID09PSBTY2VuYXJpby5OT05FID8gMSA6IDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGFyZUV4aXN0aW5nVGFnc0NvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jdXJyZW50VGFnc0NvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdFNjZW5hcmlvVGFncyhzY2VuYXJpbzogU2NlbmFyaW8sIHdob2xlVGFnc0NvbmZpZzogSVRhZ1tdLCBjdXJyZW50VGFnc0NvbmZpZzogSVRhZ1tdLCBpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghd2hvbGVUYWdzQ29uZmlnPy5sZW5ndGggfHwgIXNjZW5hcmlvKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy53aG9sZVRhZ3NDb25maWcgPSB3aG9sZVRhZ3NDb25maWc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ3NDb25maWcgPSBjdXJyZW50VGFnc0NvbmZpZztcbiAgICAgICAgdGhpcy5pc011bHRpcGxlRGltZW5zaW9uID0gaXNNdWx0aXBsZURpbWVuc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VGFnc0NvbmZpZ0J5U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSwgdGFnc0NvbmZpZzogSVRhZ1tdKTogSVRhZ1tdIHtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzQ29uZmlnID0gX2ZpbHRlcih0YWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PlxuICAgICAgICAgICAgX3NvbWUoc2NlbmFyaW9UYWdzLCAoc2NlbmFyaW9UYWcpID0+IHNjZW5hcmlvVGFnLnRvZ2dsZSAmJiBzY2VuYXJpb1RhZy5zZWxlY3RlZFRhZ1N1YlR5cGUgPT09IHRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NDb25maWcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTY2VuYXJpb1RhZ3NCeVNjZW5hcmlvKHNjZW5hcmlvOiBTY2VuYXJpbykge1xuICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ3NDb25maWc6IElTY2VuYXJpb1RhZ1tdID0gdGhpcy5nZXRTY2VuYXJpb1RhZ3NDb25maWcoc2NlbmFyaW8sIHRoaXMud2hvbGVUYWdzQ29uZmlnKTtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzVWk6IElTY2VuYXJpb1RhZ1VpW10gPSBbXTtcblxuICAgICAgICBfZm9yRWFjaChzY2VuYXJpb1RhZ3NDb25maWcsIChzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0RhdGVUYWcgPSBzY2VuYXJpb1RhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFO1xuICAgICAgICAgICAgY29uc3QgZGF0ZVRhZyA9IGlzRGF0ZVRhZyAmJiBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuXG4gICAgICAgICAgICBjb25zdCB0YWc6IElTY2VuYXJpb1RhZ1VpID0gZGF0ZVRhZyB8fCB0aGlzLnByZXBhcmVTY2VuYXJpb1RhZyhzY2VuYXJpb1RhZ3NDb25maWcsIHNjZW5hcmlvVGFnLCBzY2VuYXJpbywgaXNEYXRlVGFnKTtcblxuICAgICAgICAgICAgaWYgKGlzRGF0ZVRhZykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2NlbmFyaW9EYXRlVGFnKHRhZywgc2NlbmFyaW9UYWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0ZVRhZykgcmV0dXJuO1xuICAgICAgICAgICAgc2NlbmFyaW9UYWdzVWkucHVzaCh0YWcpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEV4aXN0aW5nVGFnc0NvbmZpZyhzY2VuYXJpbywgc2NlbmFyaW9UYWdzVWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNUYWdOb3RTdXBwb3J0aW5nRGF0ZXMgPSBfc29tZShzY2VuYXJpb1RhZ3NVaSwgeyB0dXJuT2ZmRGF0ZVRhZ3M6IHRydWUsIHRvZ2dsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKGlzVGFnTm90U3VwcG9ydGluZ0RhdGVzKSB7XG4gICAgICAgICAgICB0aGlzLnR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnc1VpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSA9IF9maW5kKHNjZW5hcmlvVGFnc1VpLCAodGFnKSA9PiB0YWcudG9nZ2xlICYmICEhdGFnLmFjY2VwdGFibGVEYXRlVGFncz8ubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLCBzY2VuYXJpb1RhZ3NVaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnc1VpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NVaTogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBfb3JkZXJCeShzY2VuYXJpb1RhZ3NVaSwgW1xuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFID8gMCA6IDEpLFxuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy5uYW1lID09PSAnRmlsZSBTdGF0dXMnKVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFeGlzdGluZ1RhZ3NDb25maWcoc2NlbmFyaW86IFNjZW5hcmlvLCBzY2VuYXJpb1RhZ3NVaTogSVNjZW5hcmlvVGFnVWlbXSkge1xuICAgICAgICBfZm9yRWFjaCh0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcbiAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnRGF0YUNvbmZpZyA9IGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyh0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICAgICAgaWYgKCFzY2VuYXJpb1RhZ0RhdGFDb25maWc/LltzY2VuYXJpb10/Llt0YWdTdWJUeXBlXSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ1VpID0gdGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEVcbiAgICAgICAgICAgICAgICA/IF9maW5kKHNjZW5hcmlvVGFnc1VpLCB7IHR5cGU6IHRhZ0NvbmZpZy50eXBlIH0pXG4gICAgICAgICAgICAgICAgOiBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyBzZWxlY3RlZFRhZ1N1YlR5cGU6IHRhZ1N1YlR5cGUgfSk7XG5cbiAgICAgICAgICAgIHNjZW5hcmlvVGFnVWkudG9nZ2xlID0gdHJ1ZTtcbiAgICAgICAgICAgIHNjZW5hcmlvVGFnVWkuc2VsZWN0ZWRUYWdTdWJUeXBlID0gdGFnU3ViVHlwZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcmVwYXJlU2NlbmFyaW9UYWcoc2NlbmFyaW9UYWdzQ29uZmlnOiBJU2NlbmFyaW9UYWdbXSwgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZywgc2NlbmFyaW86IFNjZW5hcmlvLCBpc0RhdGVUYWc6IGJvb2xlYW4pOiBJU2NlbmFyaW9UYWdVaSB7XG4gICAgICAgIGNvbnN0IHRvZ2dsZVN0YXR1cyA9IGlzRGF0ZVRhZ1xuICAgICAgICAgICAgPyBfc29tZShzY2VuYXJpb1RhZ3NDb25maWcsICh0YWcpID0+IHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFICYmIHRhZy5zY2VuYXJpb0RhdGEudG9nZ2xlKVxuICAgICAgICAgICAgOiBzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEudG9nZ2xlO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGFnU3ViVHlwZSA9ICBpc0RhdGVUYWdcbiAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW8sIHNjZW5hcmlvVGFnc0NvbmZpZylcbiAgICAgICAgICAgICAgICA6IHNjZW5hcmlvVGFnLm9wdGlvbnMuc3ViX3R5cGU7XG5cbiAgICAgICAgY29uc3QgdGFnOiBJU2NlbmFyaW9UYWdVaSA9IHtcbiAgICAgICAgICAgIHRvZ2dsZTogdGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcgPyBmYWxzZSA6IHRvZ2dsZVN0YXR1cyxcbiAgICAgICAgICAgIG5hbWU6IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5uYW1lIHx8IHNjZW5hcmlvVGFnLm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmRlc2NyaXB0aW9uIHx8IHNjZW5hcmlvVGFnLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgdHlwZTogc2NlbmFyaW9UYWcudHlwZSxcbiAgICAgICAgICAgIHNlbGVjdGVkVGFnU3ViVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLnR1cm5PZmZEYXRlVGFncykge1xuICAgICAgICAgICAgdGFnLnR1cm5PZmZEYXRlVGFncyA9IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS50dXJuT2ZmRGF0ZVRhZ3M7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmFjY2VwdGFibGVEYXRlVGFncykge1xuICAgICAgICAgICAgdGFnLmFjY2VwdGFibGVEYXRlVGFncyA9IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5hY2NlcHRhYmxlRGF0ZVRhZ3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFnO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2NlbmFyaW9EYXRlVGFnKGRhdGVUYWc6IElTY2VuYXJpb1RhZ1VpLCBzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnKTogdm9pZCB7XG4gICAgICAgIGlmICghZGF0ZVRhZy5zdWJUYWdzKSB7XG4gICAgICAgICAgICBkYXRlVGFnLnN1YlRhZ3MgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1N1YlR5cGUgPSBzY2VuYXJpb1RhZy5vcHRpb25zLnN1Yl90eXBlO1xuXG4gICAgICAgIGRhdGVUYWcuc3ViVGFncy5wdXNoKHtcbiAgICAgICAgICAgIHN1YlR5cGU6IHRhZ1N1YlR5cGUsXG4gICAgICAgICAgICBuYW1lOiB0YWdTdWJUeXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcgPyB0aGlzLkRFRkFVTFRfRk9SRUNBU1RfREFURV9UQUcgOiBzY2VuYXJpb1RhZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXRlVGFnID0gX2ZpbmQoc2NlbmFyaW9UYWdzLCB7IHR5cGU6IFRhZ1R5cGVzLkRBVEUgfSk7XG5cbiAgICAgICAgaWYgKCFkYXRlVGFnKSByZXR1cm47XG4gICAgICAgIGRhdGVUYWcudG9nZ2xlPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSwgc2NlbmFyaW9UYWdzOiBJU2NlbmFyaW9UYWdVaVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN1YlRhZ3MgPSBfZmluZChzY2VuYXJpb1RhZ3MsIHsgdHlwZTogVGFnVHlwZXMuREFURSB9KT8uc3ViVGFncztcbiAgICAgICAgaWYgKCFzdWJUYWdzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIF9mb3JFYWNoKHNjZW5hcmlvVGFncywgKHRhZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF0YWcuYWNjZXB0YWJsZURhdGVUYWdzPy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0YWcgIT09IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICAgICAgdGFnLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfZm9yRWFjaChzdWJUYWdzLCAoc3ViVGFnKSA9PiB7XG4gICAgICAgICAgICBzdWJUYWcuaGlkZGVuID0gIXRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLmFjY2VwdGFibGVEYXRlVGFncy5pbmNsdWRlcyhzdWJUYWcuc3ViVHlwZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW86IFNjZW5hcmlvLCBkYXRlVGFnczogSVNjZW5hcmlvVGFnW10pOiBUYWdzQ29uZmlnU3ViVHlwZSB7XG4gICAgICAgIGNvbnN0IG1vbnRoU3ViVHlwZSA9IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5NT05USCk/Lm9wdGlvbnM/LnN1Yl90eXBlO1xuXG4gICAgICAgIGNvbnN0IHNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnID0ge1xuICAgICAgICAgICAgW1NjZW5hcmlvLkFDVFVBTFNdOiAoKSA9PiBtb250aFN1YlR5cGUsXG4gICAgICAgICAgICBbU2NlbmFyaW8uQlVER0VUXTogKCkgPT4gX2ZpbmQoZGF0ZVRhZ3MsICh0YWc6IElTY2VuYXJpb1RhZykgPT4gdGFnLm9wdGlvbnMuc3ViX3R5cGUgPT09IFRhZ3NDb25maWdTdWJUeXBlLllFQVIpPy5vcHRpb25zPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5GT1JFQ0FTVF06ICgpID0+IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcpPy5vcHRpb25zPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5OT05FXTogKCkgPT4gbW9udGhTdWJUeXBlLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZ1tzY2VuYXJpb10pIHJldHVybjtcbiAgICAgICAgcmV0dXJuIHNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnW3NjZW5hcmlvXSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NlbmFyaW9UYWdzQ29uZmlnKHNjZW5hcmlvOiBTY2VuYXJpbywgdGFnc0NvbmZpZzogSVRhZ1tdKTogSVNjZW5hcmlvVGFnW10ge1xuICAgICAgICByZXR1cm4gX3JlZHVjZSh0YWdzQ29uZmlnLCAoYWNjOiBJU2NlbmFyaW9UYWdbXSwgdGFnQ29uZmlnOiBJVGFnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcblxuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdEYXRhQ29uZmlnID0gZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnKHRoaXMuaXNNdWx0aXBsZURpbWVuc2lvbik7XG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ0NvbmZpZzogSVNjZW5hcmlvID0gc2NlbmFyaW9UYWdEYXRhQ29uZmlnPy5bc2NlbmFyaW9dPy5bdGFnU3ViVHlwZV07XG4gICAgICAgICAgICBpZiAoIXNjZW5hcmlvVGFnQ29uZmlnIHx8IHNjZW5hcmlvVGFnQ29uZmlnLmhpZGRlbikgcmV0dXJuIGFjYztcblxuICAgICAgICAgICAgY29uc3QgY2xvbmVkVGFnQ29uZmlnID0gX2Nsb25lRGVlcCh0YWdDb25maWcpO1xuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZyA9IHsgLi4uY2xvbmVkVGFnQ29uZmlnLCBzY2VuYXJpb0RhdGE6IHNjZW5hcmlvVGFnQ29uZmlnIH07XG5cbiAgICAgICAgICAgIGFjYy5wdXNoKHNjZW5hcmlvVGFnKTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG59XG4iXX0=
@@ -24,12 +24,13 @@ export class DrTagComponent {
24
24
  get connectedTags() {
25
25
  return this._connectedTags;
26
26
  }
27
- ngOnChanges() {
28
- this.calculateDynamicTag();
27
+ ngOnChanges(simpleChanges) {
28
+ if (simpleChanges.tagsConfig) {
29
+ this.calculateDynamicTag();
30
+ }
29
31
  }
30
32
  ngOnInit() {
31
33
  var _a, _b;
32
- this.calculateDynamicTag();
33
34
  this.dateTag = {
34
35
  type: this.tagConfig.type,
35
36
  sub_type: this.tagConfig.options.sub_type,
@@ -173,4 +174,4 @@ DrTagComponent.propDecorators = {
173
174
  dynamicTagChange: [{ type: Output }],
174
175
  dynamicTagAdd: [{ type: Output }]
175
176
  };
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXRhZ3MvZHItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQTJDLFFBQVEsRUFBaUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBU3pHLE1BQU0sT0FBTyxjQUFjO0lBdUN2QjtRQW5DUyxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBS3ZCLHFCQUFnQixHQUFnQixFQUFFLENBQUM7UUFVbEMsY0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQyxDQUFDLGlDQUFpQztRQUM3RyxxQkFBZ0IsR0FBa0MsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDdEYsa0JBQWEsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFJeEYsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFLbkIsd0JBQW1CLEdBQW9CLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFvQixFQUFFLENBQUM7UUFPekMsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNmLEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLEVBQUU7U0FDWCxDQUFDO0lBQ04sQ0FBQztJQWxDRCxJQUFvQixhQUFhLENBQUMsSUFBcUI7UUFDbkQsSUFBSSxD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QzthQUNMO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDcEIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO29CQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7b0JBQ3BCLEtBQUssRUFBRSxTQUFTO2lCQUNuQixDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRTFELElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2VBQzlGLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7O1lBdk1KLFNBQVMsU0FBQztnQkFDUCx1N0NBQW9DO2dCQUNwQyxRQUFRLEVBQUUsUUFBUTtnQkFFbEIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3hDOzs7O3dCQUdJLEtBQUs7MEJBRUwsS0FBSzt5QkFDTCxLQUFLO21DQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFFTCxLQUFLOytCQUNMLEtBQUs7NEJBRUwsS0FBSztxQ0FJTCxLQUFLO3VCQUVMLEtBQUs7d0JBRUwsTUFBTTsrQkFDTixNQUFNOzRCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZVRhZywgSUxpc3RUYWcsIElUYWcsIElUYWdGb3JTZXJ2ZXIsIFRhZ1R5cGVzLCBURHluYW1pY1RhZywgVER5bmFtaWNUYWdWYWx1ZSB9IGZyb20gJy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IGZpbmQgYXMgX2ZpbmQsIGZvckVhY2ggYXMgX2ZvckVhY2gsIG1hcCBhcyBfbWFwLCBtZXJnZSBhcyBfbWVyZ2UsIHNvbWUgYXMgX3NvbWUgfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJ2RyLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdkci10YWcnLFxuICAgIHN0eWxlVXJsczogWydkci10YWcuY29tcG9uZW50LnNjc3MnLCAnLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL3ByZWJ1aWx0LXRoZW1lcy9pbmRpZ28tcGluay5jc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuXG5leHBvcnQgY2xhc3MgRHJUYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgdGFnQ29uZmlnOiBJVGFnO1xuICAgIC8vIHNlbGVjdGVkVGFnVmFsdWVcbiAgICBASW5wdXQoKSBzZWxlY3RlZFRhZzogSVRhZ0ZvclNlcnZlcjtcbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGZpc2NhbFllYXJTdGFydHNGcm9tPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGZpc2NhbFllYXJCYWNrPzogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHRhZ3NDb25maWc6IElUYWdbXTtcbiAgICBASW5wdXQoKSBkeW5hbWljVGFnVmFsdWVzOiBURHluYW1pY1RhZyA9IHt9O1xuXG4gICAgQElucHV0KCkgcHVibGljIHNldCBjb25uZWN0ZWRUYWdzKHRhZ3M6IElUYWdGb3JTZXJ2ZXJbXSkge1xuICAgICAgICB0aGlzLl9jb25uZWN0ZWRUYWdzID0gdGFncyB8fCBbXTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpc0R5bmFtaWNUYWdBZGRFbmFibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgdGFnQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPElUYWdGb3JTZXJ2ZXI+KCk7IC8vIE5vdCBlbWl0IHZhbHVlIGZvciBkeW5hbWljIHRhZ1xuICAgIEBPdXRwdXQoKSBkeW5hbWljVGFnQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcltdPigpO1xuICAgIEBPdXRwdXQoKSBkeW5hbWljVGFnQWRkOiBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFREeW5hbWljVGFnVmFsdWU+KCk7XG5cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHVibGljIGN1cnJlbnRUYWdEeW5hbWljOiBib29sZWFuO1xuICAgIHB1YmxpYyBjdXJyZW50VGFnQ29ubmVjdGVkVG9EeW5hbWljID0gZmFsc2U7XG4gICAgcHVibGljIHRhZ1R5cGVzID0gVGFnVHlwZXM7XG5cbiAgICBwdWJsaWMgZGF0ZVRhZzogYW55O1xuICAgIHB1YmxpYyBsaXN0VGFnOiBhbnk7XG5cbiAgICBwcml2YXRlIGNvbm5lY3RlZFRhZ3NWYWx1ZXM6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgZHluYW1pY1RhZ1ZhbHVlOiBJVGFnRm9yU2VydmVyO1xuICAgIHByaXZhdGUgX2Nvbm5lY3RlZFRhZ3M6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGdldCBjb25uZWN0ZWRUYWdzKCk6IElUYWdGb3JTZXJ2ZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25uZWN0ZWRUYWdzO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFnID0ge1xuICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbmFtZTogJydcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVEeW5hbWljVGFnKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlRHluYW1pY1RhZygpO1xuXG4gICAgICAgIHRoaXMuZGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudGFnQ29uZmlnLnR5cGUsXG4gICAgICAgICAgICBzdWJfdHlwZTogdGhpcy50YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNlbGVjdGVkVGFnPy52YWx1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmxpc3RUYWcgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLnRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50YWdDb25maWcudHlwZSxcbiAgICAgICAgICAgIHZhbHVlczogdGhpcy50YWdDb25maWcudmFsdWVzLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRUYWc/LnZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLnRhZ3NDb25maWcgJiYgdGhpcy5jdXJyZW50VGFnRHluYW1pYykge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmVUYWdJdGVtcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGFnQ29uZmlnICYmIHRoaXMudGFnQ29uZmlnLm9wdGlvbnMgJiYgdGhpcy50YWdDb25maWcub3B0aW9ucy5kZWZhdWx0X3ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMudGFnQ29uZmlnLm9wdGlvbnMuZGVmYXVsdF92YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZUhhbmRsZXIoZXZlbnQ6IElEYXRlVGFnKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRUYWdEeW5hbWljKSB7XG4gICAgICAgICAgICB0aGlzLm9uRHluYW1pY0hhbmRsZXIoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQ6IElUYWdGb3JTZXJ2ZXIgPSB7XG4gICAgICAgICAgICBpZDogdGhpcy50YWdDb25maWcuaWQsXG4gICAgICAgICAgICBuYW1lOiBldmVudC5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGV2ZW50LnZhbHVlLFxuICAgICAgICAgICAgbGFiZWw6IGV2ZW50LmxhYmVsLFxuICAgICAgICAgICAgbG9ja2VkOiBldmVudC5sb2NrZWRcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRFdmVudCk7XG4gICAgICAgIHRoaXMudGFnQ2hhbmdlLmVtaXQocmVzdWx0RXZlbnQpO1xuICAgIH1cblxuICAgIG9uTGlzdEhhbmRsZXIoZXZlbnQ6IElMaXN0VGFnKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRUYWdEeW5hbWljKSB7XG4gICAgICAgICAgICB0aGlzLm9uRHluYW1pY0hhbmRsZXIoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQ6IElUYWdGb3JTZXJ2ZXIgPSB7XG4gICAgICAgICAgICBpZDogdGhpcy50YWdDb25maWcuaWQsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLnRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGV2ZW50LnZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdEV2ZW50KTtcbiAgICAgICAgdGhpcy50YWdDaGFuZ2UuZW1pdChyZXN1bHRFdmVudCk7XG4gICAgfVxuXG4gICAgb25EeW5hbWljVGFnQ2hhbmdlKHRhZz86IElUYWdGb3JTZXJ2ZXIpIHtcbiAgICAgICAgaWYgKHRhZykge1xuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFnVmFsdWUgPSB0YWc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmR5bmFtaWNUYWdDaGFuZ2UuZW1pdChbLi4udGhpcy5jb25uZWN0ZWRUYWdzVmFsdWVzLCB0aGlzLmR5bmFtaWNUYWdWYWx1ZV0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25EeW5hbWljSGFuZGxlcihldmVudCkge1xuICAgICAgICBjb25zdCBjb25uZWN0ZWREYXRlVGFnQ29uZmlnID0gX2ZpbmQodGhpcy50YWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PiB0YWdDb25maWcubmFtZSA9PT0gZXZlbnQubmFtZSk7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkVGFncyA9IF9tYXAodGhpcy5jb25uZWN0ZWRUYWdzLCB0YWcgPT4ge1xuICAgICAgICAgICAgaWYgKHRhZy5pZCA9PT0gY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy5pZCkge1xuICAgICAgICAgICAgICAgIHRhZy52YWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRhZy5sb2NrZWQgPSBldmVudC5sb2NrZWQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy50eXBlID09PSBUYWdUeXBlcy5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhZy5sYWJlbCA9IGV2ZW50LmxhYmVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRhZztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQ6IElUYWdGb3JTZXJ2ZXIgPSB7XG4gICAgICAgICAgICBpZDogY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IGNvbm5lY3RlZERhdGVUYWdDb25maWcubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBldmVudC52YWx1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChjb25uZWN0ZWREYXRlVGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUpIHtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxhYmVsID0gZXZlbnQubGFiZWw7XG4gICAgICAgICAgICByZXN1bHRFdmVudC5sb2NrZWQgPSBldmVudC5sb2NrZWQ7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGNvbnN0IHNhdmVkVGFnID0gX2ZpbmQodGhpcy5jb25uZWN0ZWRUYWdzVmFsdWVzLCB7IGlkOiByZXN1bHRFdmVudC5pZCB9KTtcblxuICAgICAgICBpZiAoc2F2ZWRUYWcpIHtcbiAgICAgICAgICAgIF9tZXJnZShzYXZlZFRhZywgcmVzdWx0RXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRUYWdzVmFsdWVzLnB1c2gocmVzdWx0RXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkR5bmFtaWNUYWdDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpZ3VyZVRhZ0l0ZW1zKCkge1xuICAgICAgICBfZm9yRWFjaCh0aGlzLnRhZ3NDb25maWcsICh0YWdDb25maWcpID0+IHtcbiAgICAgICAgICAgIC8vIFRPRE86IHRhc2sgRFItMjIzNTBcbiAgICAgICAgICAgIC8vIFRPRE86IHNob3VsZCBiZSBsaWtlIHRoaXMudGFnQ29uZmlnLm9wdGlvbnMuY29ubmVjdGVkX3RhZ3MuaW5jbHVkZXMoY3Vyci5vcHRpb25zLnN1Yl90eXBlKVxuICAgICAgICAgICAgaWYgKCFbJ3llYXInXS5pbmNsdWRlcyh0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSkpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0YWdDb25maWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRhZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdGFnQ29uZmlnLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlOiB0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IChfZmluZCh0aGlzLmNvbm5lY3RlZFRhZ3MsIHsgaWQ6IHRhZ0NvbmZpZy5pZCB9KSB8fCB7fSkudmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRhZ0NvbmZpZy50eXBlID09PSBUYWdUeXBlcy5MSVNUKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0VGFnID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0YWdDb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdGFnQ29uZmlnLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlczogdGFnQ29uZmlnLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRhZ0NvbmZpZz8ub3B0aW9ucz8uZGVmYXVsdF92YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIV9maW5kKHRoaXMuY29ubmVjdGVkVGFncywgeyBpZDogdGFnQ29uZmlnLmlkIH0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRUYWdzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDogdGFnQ29uZmlnLmlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0YWdDb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVEeW5hbWljVGFnKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdEeW5hbWljID0gdGhpcy50YWdDb25maWcub3B0aW9ucy5pc19jdXN0b207XG5cbiAgICAgICAgdGhpcy5jdXJyZW50VGFnQ29ubmVjdGVkVG9EeW5hbWljID0gX3NvbWUodGhpcy50YWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PiB0YWdDb25maWcub3B0aW9ucy5pc19jdXN0b21cbiAgICAgICAgICAgICYmIFsneWVhciddLmluY2x1ZGVzKHRoaXMudGFnQ29uZmlnLm9wdGlvbnMuc3ViX3R5cGUpKTtcbiAgICB9XG59XG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXRhZ3MvZHItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTJDLFFBQVEsRUFBaUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBU3pHLE1BQU0sT0FBTyxjQUFjO0lBdUN2QjtRQW5DUyxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBS3ZCLHFCQUFnQixHQUFnQixFQUFFLENBQUM7UUFVbEMsY0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQyxDQUFDLGlDQUFpQztRQUM3RyxxQkFBZ0IsR0FBa0MsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDdEYsa0JBQWEsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFJeEYsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFLbkIsd0JBQW1CLEdBQW9CLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFvQixFQUFFLENBQUM7UUFPekMsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNmLEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLEVBQUU7U0FDWCxDQUFDO0lBQ04sQ0FBQztJQWxDRCxJQUFvQixhQUFhLENBQUMsSUFBcUI7UUFDbkQsSUFBSSxD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YUFBYTtpQkFDM0MsQ0FBQzthQUNMO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDcEIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO29CQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7b0JBQ3BCLEtBQUssRUFBRSxTQUFTO2lCQUNuQixDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRTFELElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2VBQzlGLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7O1lBdk1KLFNBQVMsU0FBQztnQkFDUCx1N0NBQW9DO2dCQUNwQyxRQUFRLEVBQUUsUUFBUTtnQkFFbEIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3hDOzs7O3dCQUdJLEtBQUs7MEJBRUwsS0FBSzt5QkFDTCxLQUFLO21DQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFFTCxLQUFLOytCQUNMLEtBQUs7NEJBRUwsS0FBSztxQ0FJTCxLQUFLO3VCQUVMLEtBQUs7d0JBRUwsTUFBTTsrQkFDTixNQUFNOzRCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnLCBJTGlzdFRhZywgSVRhZywgSVRhZ0ZvclNlcnZlciwgVGFnVHlwZXMsIFREeW5hbWljVGFnLCBURHluYW1pY1RhZ1ZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgZmluZCBhcyBfZmluZCwgZm9yRWFjaCBhcyBfZm9yRWFjaCwgbWFwIGFzIF9tYXAsIG1lcmdlIGFzIF9tZXJnZSwgc29tZSBhcyBfc29tZSB9IGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnZHItdGFnLmNvbXBvbmVudC5odG1sJyxcbiAgICBzZWxlY3RvcjogJ2RyLXRhZycsXG4gICAgc3R5bGVVcmxzOiBbJ2RyLXRhZy5jb21wb25lbnQuc2NzcycsICcuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvcHJlYnVpbHQtdGhlbWVzL2luZGlnby1waW5rLmNzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5cbmV4cG9ydCBjbGFzcyBEclRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSB0YWdDb25maWc6IElUYWc7XG4gICAgLy8gc2VsZWN0ZWRUYWdWYWx1ZVxuICAgIEBJbnB1dCgpIHNlbGVjdGVkVGFnOiBJVGFnRm9yU2VydmVyO1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb20/OiBudW1iZXI7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhckJhY2s/OiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIEBJbnB1dCgpIGR5bmFtaWNUYWdWYWx1ZXM6IFREeW5hbWljVGFnID0ge307XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGNvbm5lY3RlZFRhZ3ModGFnczogSVRhZ0ZvclNlcnZlcltdKSB7XG4gICAgICAgIHRoaXMuX2Nvbm5lY3RlZFRhZ3MgPSB0YWdzIHx8IFtdO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGlzRHluYW1pY1RhZ0FkZEVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB0YWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4oKTsgLy8gTm90IGVtaXQgdmFsdWUgZm9yIGR5bmFtaWMgdGFnXG4gICAgQE91dHB1dCgpIGR5bmFtaWNUYWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyW10+KCk7XG4gICAgQE91dHB1dCgpIGR5bmFtaWNUYWdBZGQ6IEV2ZW50RW1pdHRlcjxURHluYW1pY1RhZ1ZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4oKTtcblxuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBwdWJsaWMgY3VycmVudFRhZ0R5bmFtaWM6IGJvb2xlYW47XG4gICAgcHVibGljIGN1cnJlbnRUYWdDb25uZWN0ZWRUb0R5bmFtaWMgPSBmYWxzZTtcbiAgICBwdWJsaWMgdGFnVHlwZXMgPSBUYWdUeXBlcztcblxuICAgIHB1YmxpYyBkYXRlVGFnOiBhbnk7XG4gICAgcHVibGljIGxpc3RUYWc6IGFueTtcblxuICAgIHByaXZhdGUgY29ubmVjdGVkVGFnc1ZhbHVlczogSVRhZ0ZvclNlcnZlcltdID0gW107XG4gICAgcHJpdmF0ZSBkeW5hbWljVGFnVmFsdWU6IElUYWdGb3JTZXJ2ZXI7XG4gICAgcHJpdmF0ZSBfY29ubmVjdGVkVGFnczogSVRhZ0ZvclNlcnZlcltdID0gW107XG5cbiAgICBwdWJsaWMgZ2V0IGNvbm5lY3RlZFRhZ3MoKTogSVRhZ0ZvclNlcnZlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3RlZFRhZ3M7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWcgPSB7XG4gICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiAnJ1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMudGFnc0NvbmZpZykge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVEeW5hbWljVGFnKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kYXRlVGFnID0ge1xuICAgICAgICAgICAgdHlwZTogdGhpcy50YWdDb25maWcudHlwZSxcbiAgICAgICAgICAgIHN1Yl90eXBlOiB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRUYWc/LnZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubGlzdFRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnRhZ0NvbmZpZy50eXBlLFxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnRhZ0NvbmZpZy52YWx1ZXMsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFRhZz8udmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMudGFnc0NvbmZpZyAmJiB0aGlzLmN1cnJlbnRUYWdEeW5hbWljKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZVRhZ0l0ZW1zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YWdDb25maWcgJiYgdGhpcy50YWdDb25maWcub3B0aW9ucyAmJiB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zLmRlZmF1bHRfdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy50YWdDb25maWcub3B0aW9ucy5kZWZhdWx0X3ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EYXRlSGFuZGxlcihldmVudDogSURhdGVUYWcpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFRhZ0R5bmFtaWMpIHtcbiAgICAgICAgICAgIHRoaXMub25EeW5hbWljSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IGV2ZW50Lm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogZXZlbnQudmFsdWUsXG4gICAgICAgICAgICBsYWJlbDogZXZlbnQubGFiZWwsXG4gICAgICAgICAgICBsb2NrZWQ6IGV2ZW50LmxvY2tlZFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdEV2ZW50KTtcbiAgICAgICAgdGhpcy50YWdDaGFuZ2UuZW1pdChyZXN1bHRFdmVudCk7XG4gICAgfVxuXG4gICAgb25MaXN0SGFuZGxlcihldmVudDogSUxpc3RUYWcpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFRhZ0R5bmFtaWMpIHtcbiAgICAgICAgICAgIHRoaXMub25EeW5hbWljSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogZXZlbnQudmFsdWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2cocmVzdWx0RXZlbnQpO1xuICAgICAgICB0aGlzLnRhZ0NoYW5nZS5lbWl0KHJlc3VsdEV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkR5bmFtaWNUYWdDaGFuZ2UodGFnPzogSVRhZ0ZvclNlcnZlcikge1xuICAgICAgICBpZiAodGFnKSB7XG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYWdWYWx1ZSA9IHRhZztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZHluYW1pY1RhZ0NoYW5nZS5lbWl0KFsuLi50aGlzLmNvbm5lY3RlZFRhZ3NWYWx1ZXMsIHRoaXMuZHluYW1pY1RhZ1ZhbHVlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkR5bmFtaWNIYW5kbGVyKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3RlZERhdGVUYWdDb25maWcgPSBfZmluZCh0aGlzLnRhZ3NDb25maWcsICh0YWdDb25maWcpID0+IHRhZ0NvbmZpZy5uYW1lID09PSBldmVudC5uYW1lKTtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRUYWdzID0gX21hcCh0aGlzLmNvbm5lY3RlZFRhZ3MsIHRhZyA9PiB7XG4gICAgICAgICAgICBpZiAodGFnLmlkID09PSBjb25uZWN0ZWREYXRlVGFnQ29uZmlnLmlkKSB7XG4gICAgICAgICAgICAgICAgdGFnLnZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGFnLmxvY2tlZCA9IGV2ZW50LmxvY2tlZDtcblxuICAgICAgICAgICAgICAgIGlmIChjb25uZWN0ZWREYXRlVGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFnLmxhYmVsID0gZXZlbnQubGFiZWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGFnO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiBjb25uZWN0ZWREYXRlVGFnQ29uZmlnLmlkLFxuICAgICAgICAgICAgbmFtZTogY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGV2ZW50LnZhbHVlXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNvbm5lY3RlZERhdGVUYWdDb25maWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSkge1xuICAgICAgICAgICAgcmVzdWx0RXZlbnQubGFiZWwgPSBldmVudC5sYWJlbDtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxvY2tlZCA9IGV2ZW50LmxvY2tlZDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgY29uc3Qgc2F2ZWRUYWcgPSBfZmluZCh0aGlzLmNvbm5lY3RlZFRhZ3NWYWx1ZXMsIHsgaWQ6IHJlc3VsdEV2ZW50LmlkIH0pO1xuXG4gICAgICAgIGlmIChzYXZlZFRhZykge1xuICAgICAgICAgICAgX21lcmdlKHNhdmVkVGFnLCByZXN1bHRFdmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3RlZFRhZ3NWYWx1ZXMucHVzaChyZXN1bHRFdmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uRHluYW1pY1RhZ0NoYW5nZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uZmlndXJlVGFnSXRlbXMoKSB7XG4gICAgICAgIF9mb3JFYWNoKHRoaXMudGFnc0NvbmZpZywgKHRhZ0NvbmZpZykgPT4ge1xuICAgICAgICAgICAgLy8gVE9ETzogdGFzayBEUi0yMjM1MFxuICAgICAgICAgICAgLy8gVE9ETzogc2hvdWxkIGJlIGxpa2UgdGhpcy50YWdDb25maWcub3B0aW9ucy5jb25uZWN0ZWRfdGFncy5pbmNsdWRlcyhjdXJyLm9wdGlvbnMuc3ViX3R5cGUpXG4gICAgICAgICAgICBpZiAoIVsneWVhciddLmluY2x1ZGVzKHRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlKSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHRhZ0NvbmZpZy50eXBlID09PSBUYWdUeXBlcy5EQVRFKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVGFnID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiB0YWdDb25maWcudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc3ViX3R5cGU6IHRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogKF9maW5kKHRoaXMuY29ubmVjdGVkVGFncywgeyBpZDogdGFnQ29uZmlnLmlkIH0pIHx8IHt9KS52YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkxJU1QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RUYWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiB0YWdDb25maWcudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiB0YWdDb25maWcudmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGFnQ29uZmlnPy5vcHRpb25zPy5kZWZhdWx0X3ZhbHVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghX2ZpbmQodGhpcy5jb25uZWN0ZWRUYWdzLCB7IGlkOiB0YWdDb25maWcuaWQgfSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZFRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiB0YWdDb25maWcuaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUR5bmFtaWNUYWcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0R5bmFtaWMgPSB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zLmlzX2N1c3RvbTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRUYWdDb25uZWN0ZWRUb0R5bmFtaWMgPSBfc29tZSh0aGlzLnRhZ3NDb25maWcsICh0YWdDb25maWcpID0+IHRhZ0NvbmZpZy5vcHRpb25zLmlzX2N1c3RvbVxuICAgICAgICAgICAgJiYgWyd5ZWFyJ10uaW5jbHVkZXModGhpcy50YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSkpO1xuICAgIH1cbn1cbiJdfQ==