@datarailsshared/datarailsshared 1.6.275 → 1.6.277

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/datarailsshared-datarailsshared-1.6.277.tgz +0 -0
  2. package/esm2022/lib/dr-inputs/date-pickers/dr-fiscal-month-calendar-picker/dr-fiscal-month-calendar-picker.component.mjs +2 -2
  3. package/esm2022/lib/dr-tags/_consts/scenario-tags-config.mjs +87 -0
  4. package/esm2022/lib/dr-tags/_interfaces/scenario.mjs +8 -0
  5. package/esm2022/lib/dr-tags/_services/scenario.service.mjs +195 -0
  6. package/esm2022/lib/dr-tags/_services/tags-constructor.service.mjs +71 -0
  7. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/any-tag.component.mjs +42 -0
  8. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-date.component.mjs +151 -0
  9. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-day/dr-tag-day.component.mjs +98 -0
  10. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/dr-tag-forecast.component.mjs +225 -0
  11. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/forecast-tag.service.mjs +87 -0
  12. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-month/dr-tag-month.component.mjs +101 -0
  13. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-quarter/dr-tag-quarter.component.mjs +129 -0
  14. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-week/dr-tag-week.component.mjs +105 -0
  15. package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-year/dr-tag-year.component.mjs +99 -0
  16. package/esm2022/lib/dr-tags/dr-tag/dr-tag-dynamic/dr-tag-dynamic.component.mjs +230 -0
  17. package/esm2022/lib/dr-tags/dr-tag/dr-tag-list/dr-tag-list.component.mjs +85 -0
  18. package/esm2022/lib/dr-tags/dr-tag/dr-tag.component.mjs +241 -0
  19. package/esm2022/lib/dr-tags/dr-tag/dr-tag.types.mjs +2 -0
  20. package/esm2022/lib/dr-tags/dr-tags-and-scenario/dr-tags-and-scenario.component.mjs +103 -0
  21. package/esm2022/lib/dr-tags/dr-tags-and-scenario-constructor/dr-tags-and-scenario-constructor.component.mjs +107 -0
  22. package/esm2022/lib/dr-tags/dr-tags-constructor/dr-tags-constructor.component.mjs +164 -0
  23. package/esm2022/local-api.mjs +18 -25
  24. package/fesm2022/datarailsshared-datarailsshared.mjs +8634 -8736
  25. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
  26. package/lib/{dr-scenario/consts → dr-tags/_consts}/scenario-tags-config.d.ts +1 -1
  27. package/lib/{dr-scenario/services → dr-tags/_services}/scenario.service.d.ts +1 -1
  28. package/lib/{dr-tags-constructor → dr-tags/_services}/tags-constructor.service.d.ts +2 -2
  29. package/lib/{date-tags → dr-tags/dr-tag/dr-tag-date}/any-tag.component.d.ts +1 -1
  30. package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-date.component.d.ts +18 -0
  31. package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-day/dr-tag-day.component.d.ts +14 -0
  32. package/lib/{date-tags/forecast-tag/forecast-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/dr-tag-forecast.component.d.ts} +5 -5
  33. package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-month/dr-tag-month.component.d.ts +14 -0
  34. package/lib/{date-tags/quarter-tag/quarter-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-quarter/dr-tag-quarter.component.d.ts} +3 -3
  35. package/lib/{date-tags/week-tag/week-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-week/dr-tag-week.component.d.ts} +3 -3
  36. package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-year/dr-tag-year.component.d.ts +14 -0
  37. package/lib/{dr-dynamic-tag/dr-dynamic-tag.component.d.ts → dr-tags/dr-tag/dr-tag-dynamic/dr-tag-dynamic.component.d.ts} +5 -5
  38. package/lib/dr-tags/dr-tag/dr-tag-list/dr-tag-list.component.d.ts +15 -0
  39. package/lib/dr-tags/{dr-tag.component.d.ts → dr-tag/dr-tag.component.d.ts} +2 -2
  40. package/lib/dr-tags/dr-tags-and-scenario/dr-tags-and-scenario.component.d.ts +31 -0
  41. package/lib/{dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts → dr-tags/dr-tags-and-scenario-constructor/dr-tags-and-scenario-constructor.component.d.ts} +6 -6
  42. package/lib/{dr-tags-constructor → dr-tags/dr-tags-constructor}/dr-tags-constructor.component.d.ts +6 -6
  43. package/local-api.d.ts +17 -24
  44. package/package.json +1 -1
  45. package/datarailsshared-datarailsshared-1.6.275.tgz +0 -0
  46. package/esm2022/lib/date-tags/any-tag.component.mjs +0 -42
  47. package/esm2022/lib/date-tags/date-tag.component.mjs +0 -131
  48. package/esm2022/lib/date-tags/date-tag.module.mjs +0 -53
  49. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +0 -95
  50. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +0 -222
  51. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.service.mjs +0 -87
  52. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +0 -98
  53. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +0 -126
  54. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +0 -102
  55. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +0 -96
  56. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +0 -227
  57. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +0 -21
  58. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +0 -104
  59. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +0 -100
  60. package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +0 -87
  61. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +0 -27
  62. package/esm2022/lib/dr-scenario/interfaces/scenario.mjs +0 -8
  63. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +0 -195
  64. package/esm2022/lib/dr-tags/dr-tag.component.mjs +0 -240
  65. package/esm2022/lib/dr-tags/dr-tag.module.mjs +0 -23
  66. package/esm2022/lib/dr-tags/dr-tag.types.mjs +0 -2
  67. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +0 -161
  68. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +0 -24
  69. package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +0 -71
  70. package/esm2022/lib/list-tags/list-tag.component.mjs +0 -82
  71. package/esm2022/lib/list-tags/list-tag.module.mjs +0 -22
  72. package/lib/date-tags/date-tag.component.d.ts +0 -18
  73. package/lib/date-tags/date-tag.module.d.ts +0 -21
  74. package/lib/date-tags/day-tag/day-tag.component.d.ts +0 -14
  75. package/lib/date-tags/month-tag/month-tag.component.d.ts +0 -14
  76. package/lib/date-tags/year-tag/year-tag.component.d.ts +0 -14
  77. package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +0 -10
  78. package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +0 -31
  79. package/lib/dr-scenario/dr-scenario.module.d.ts +0 -13
  80. package/lib/dr-tags/dr-tag.module.d.ts +0 -11
  81. package/lib/dr-tags-constructor/dr-tags-constructor.module.d.ts +0 -10
  82. package/lib/list-tags/list-tag.component.d.ts +0 -15
  83. package/lib/list-tags/list-tag.module.d.ts +0 -10
  84. /package/lib/{dr-scenario/interfaces → dr-tags/_interfaces}/scenario.d.ts +0 -0
  85. /package/lib/{date-tags/forecast-tag → dr-tags/dr-tag/dr-tag-date/dr-tag-forecast}/forecast-tag.service.d.ts +0 -0
  86. /package/lib/dr-tags/{dr-tag.types.d.ts → dr-tag/dr-tag.types.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWcvZHItdGFnLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElUYWdBZGRpdGlvbmFsU2V0dGluZ3Mge1xuICAgIHRhZ0xhYmVsPzogc3RyaW5nO1xuICAgIGN1c3RvbUR5bmFtaWNUYWdMYWJlbD86IHN0cmluZztcbiAgICBjdXN0b21EYXRlVGFnTGFiZWw/OiBzdHJpbmc7XG4gICAgc2hvd1NwbGl0RHluYW1pY1RhZ0lucHV0cz86IGJvb2xlYW47XG4gICAgc2hvd1NwbGl0RGF0ZUFuZER5bmFtaWNJbnB1dHM/OiBib29sZWFuO1xuICAgIGhpZGVGYXZvcml0ZVN0YXI/OiBib29sZWFuO1xuICAgIGR5bmFtaWNUYWdQYXJlbnRLZXlGb3JtYXQ/OiBzdHJpbmc7XG4gICAgZHluYW1pY1RhZ1BhcmVudEtleUZvcm1hdHRlckZuPzogKG1vbWVudERhdGEpID0+IHN0cmluZztcbiAgICBoaWRlRHluYW1pY1RhZ0xhYmVsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTXVsdGlwbGVMb2NrZWRUYWcge1xuICAgIGlkOiBudW1iZXI7XG4gICAgcGFyZW50X3RhZ192YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,103 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { reduce as _reduce, find as _find, merge as _merge } from 'lodash';
3
+ import { Scenario } from '../_interfaces/scenario';
4
+ import { CommonModule } from '@angular/common';
5
+ import { DrInputsModule } from '../../dr-inputs/dr-inputs.module';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { DrTagComponent } from '../dr-tag/dr-tag.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ function DrTagsAndScenarioComponent_div_0_Template(rf, ctx) { if (rf & 1) {
11
+ const _r3 = i0.ɵɵgetCurrentView();
12
+ i0.ɵɵelementStart(0, "div", 1)(1, "dr-tag", 2);
13
+ i0.ɵɵlistener("tagChange", function DrTagsAndScenarioComponent_div_0_Template_dr_tag_tagChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onTagChange($event)); })("dynamicTagChange", function DrTagsAndScenarioComponent_div_0_Template_dr_tag_dynamicTagChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onDynamicTagsChange($event)); });
14
+ i0.ɵɵelementEnd()();
15
+ } if (rf & 2) {
16
+ const tagConfig_r1 = ctx.$implicit;
17
+ const ctx_r0 = i0.ɵɵnextContext();
18
+ i0.ɵɵadvance(1);
19
+ i0.ɵɵproperty("tagConfig", tagConfig_r1)("selectedTag", ctx_r0.currentTagsMap[tagConfig_r1.id])("lockedDate", ctx_r0.lockedDates)("fiscalYearStartsFrom", ctx_r0.fiscalYearStartsFrom)("fiscalYearBack", ctx_r0.fiscalYearBack)("tagsConfig", ctx_r0.tagsConfig)("dynamicTagValues", ctx_r0.dynamicTagValues)("connectedTags", ctx_r0.connectedTags[tagConfig_r1.id])("isDynamicTagAddEnabled", ctx_r0.isDynamicAddEnabled)("tagAdditionalSettings", ctx_r0.tagAdditionalSettings);
20
+ } }
21
+ export class DrTagsAndScenarioComponent {
22
+ constructor() {
23
+ this.connectedTags = {};
24
+ this.dynamicTagValues = {};
25
+ this.lockedDates = [];
26
+ this.scenarioTagDataChanged = new EventEmitter();
27
+ this.currentTagsMap = {};
28
+ this._currentTags = [];
29
+ this.dynamicTagsToSave = [];
30
+ this.tagsToSave = [];
31
+ }
32
+ set currentTags(tags) {
33
+ this._currentTags = tags;
34
+ this.currentTagsMap = _reduce(tags, (acc, curr) => {
35
+ const tagId = _find(this.tagsConfig, { name: curr.name })?.id;
36
+ if (isNaN(tagId))
37
+ return acc;
38
+ acc[tagId] = curr;
39
+ return acc;
40
+ }, {});
41
+ }
42
+ get currentTags() {
43
+ return this._currentTags;
44
+ }
45
+ ngOnChanges(simpleChanges) {
46
+ this.currentTags = this.currentTags;
47
+ }
48
+ onTagChange($event) {
49
+ const savedTag = _find(this.tagsToSave, { id: $event.id });
50
+ if (savedTag) {
51
+ _merge(savedTag, $event);
52
+ }
53
+ else {
54
+ this.tagsToSave.push($event);
55
+ }
56
+ this.onScenarioTagDataChanged();
57
+ }
58
+ onDynamicTagsChange($event) {
59
+ this.dynamicTagsToSave = $event;
60
+ this.onScenarioTagDataChanged();
61
+ }
62
+ onScenarioTagDataChanged() {
63
+ const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];
64
+ this.scenarioTagDataChanged.emit({
65
+ scenario: this.scenario,
66
+ tagsConfig: this.tagsConfig,
67
+ tags,
68
+ });
69
+ }
70
+ /** @nocollapse */ static { this.ɵfac = function DrTagsAndScenarioComponent_Factory(t) { return new (t || DrTagsAndScenarioComponent)(); }; }
71
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTagsAndScenarioComponent, selectors: [["dr-tags-and-scenario"]], inputs: { tagsConfig: "tagsConfig", currentTags: "currentTags", scenario: "scenario", connectedTags: "connectedTags", dynamicTagValues: "dynamicTagValues", tagAdditionalSettings: "tagAdditionalSettings", lockedDates: "lockedDates", fiscalYearStartsFrom: "fiscalYearStartsFrom", fiscalYearBack: "fiscalYearBack", isDynamicAddEnabled: "isDynamicAddEnabled" }, outputs: { scenarioTagDataChanged: "scenarioTagDataChanged" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [["class", "scenario-tag-configuration", 4, "ngFor", "ngForOf"], [1, "scenario-tag-configuration"], [3, "tagConfig", "selectedTag", "lockedDate", "fiscalYearStartsFrom", "fiscalYearBack", "tagsConfig", "dynamicTagValues", "connectedTags", "isDynamicTagAddEnabled", "tagAdditionalSettings", "tagChange", "dynamicTagChange"]], template: function DrTagsAndScenarioComponent_Template(rf, ctx) { if (rf & 1) {
72
+ i0.ɵɵtemplate(0, DrTagsAndScenarioComponent_div_0_Template, 2, 10, "div", 0);
73
+ } if (rf & 2) {
74
+ i0.ɵɵproperty("ngForOf", ctx.tagsConfig);
75
+ } }, dependencies: [CommonModule, i1.NgForOf, DrInputsModule, FormsModule, DrTagComponent], styles: [".scenario-tag-configuration[_ngcontent-%COMP%]{margin-bottom:24px}.scenario-tag-configuration[_ngcontent-%COMP%]:last-child{margin-bottom:0}"], changeDetection: 0 }); }
76
+ }
77
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrTagsAndScenarioComponent, [{
78
+ type: Component,
79
+ args: [{ selector: 'dr-tags-and-scenario', standalone: true, imports: [CommonModule, DrInputsModule, FormsModule, DrTagComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scenario-tag-configuration\" *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag\n [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 [tagAdditionalSettings]=\"tagAdditionalSettings\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n", styles: [".scenario-tag-configuration{margin-bottom:24px}.scenario-tag-configuration:last-child{margin-bottom:0}\n"] }]
80
+ }], null, { tagsConfig: [{
81
+ type: Input
82
+ }], currentTags: [{
83
+ type: Input
84
+ }], scenario: [{
85
+ type: Input
86
+ }], connectedTags: [{
87
+ type: Input
88
+ }], dynamicTagValues: [{
89
+ type: Input
90
+ }], tagAdditionalSettings: [{
91
+ type: Input
92
+ }], lockedDates: [{
93
+ type: Input
94
+ }], fiscalYearStartsFrom: [{
95
+ type: Input
96
+ }], fiscalYearBack: [{
97
+ type: Input
98
+ }], isDynamicAddEnabled: [{
99
+ type: Input
100
+ }], scenarioTagDataChanged: [{
101
+ type: Output
102
+ }] }); })();
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFncy1hbmQtc2NlbmFyaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWdzLWFuZC1zY2VuYXJpby9kci10YWdzLWFuZC1zY2VuYXJpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWdzL2RyLXRhZ3MtYW5kLXNjZW5hcmlvL2RyLXRhZ3MtYW5kLXNjZW5hcmlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTFILE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUF3QixNQUFNLHlCQUF5QixDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7SUNSNUQsOEJBQTZFLGdCQUFBO0lBWXJFLHFMQUFhLGVBQUEsMEJBQW1CLENBQUEsSUFBQyxzTEFDYixlQUFBLGtDQUEyQixDQUFBLElBRGQ7SUFDZ0IsaUJBQVMsRUFBQTs7OztJQVgxRCxlQUF1QjtJQUF2Qix3Q0FBdUIsdURBQUEsa0NBQUEscURBQUEseUNBQUEsaUNBQUEsNkNBQUEsd0RB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QXBDLEtBQUs7WUFFVSxXQUFXO2tCQUExQixLQUFLO1lBQ1Usb0JBQW9CO2tCQUFuQyxLQUFLO1lBQ1UsY0FBYztrQkFBN0IsS0FBSztZQUNVLG1CQUFtQjtrQkFBbEMsS0FBSztZQUVXLHNCQUFzQjtrQkFBdEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVGFnLCBJVGFnRm9yU2VydmVyLCBUQ29ubmVjdGVkVGFncywgVER5bmFtaWNUYWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyByZWR1Y2UgYXMgX3JlZHVjZSwgZmluZCBhcyBfZmluZCwgbWVyZ2UgYXMgX21lcmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFNjZW5hcmlvLCBUU2NlbmFyaW9EYXRhQ2hhbmdlZCB9IGZyb20gJy4uL19pbnRlcmZhY2VzL3NjZW5hcmlvJztcbmltcG9ydCB7IElUYWdBZGRpdGlvbmFsU2V0dGluZ3MgfSBmcm9tICcuLi9kci10YWcvZHItdGFnLnR5cGVzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJUYWdDb21wb25lbnQgfSBmcm9tICcuLi9kci10YWcvZHItdGFnLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItdGFncy1hbmQtc2NlbmFyaW8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci10YWdzLWFuZC1zY2VuYXJpby5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItdGFncy1hbmQtc2NlbmFyaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERySW5wdXRzTW9kdWxlLCBGb3Jtc01vZHVsZSwgRHJUYWdDb21wb25lbnRdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEclRhZ3NBbmRTY2VuYXJpb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIHRhZ3NDb25maWc6IElUYWdbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGN1cnJlbnRUYWdzKHRhZ3M6IElUYWdGb3JTZXJ2ZXJbXSkge1xuICAgICAgICB0aGlzLl9jdXJyZW50VGFncyA9IHRhZ3M7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ3NNYXAgPSBfcmVkdWNlKFxuICAgICAgICAgICAgdGFncyxcbiAgICAgICAgICAgIChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdJZCA9IF9maW5kKHRoaXMudGFnc0NvbmZpZywgeyBuYW1lOiBjdXJyLm5hbWUgfSk/LmlkO1xuICAgICAgICAgICAgICAgIGlmIChpc05hTih0YWdJZCkpIHJldHVybiBhY2M7XG5cbiAgICAgICAgICAgICAgICBhY2NbdGFnSWRdID0gY3VycjtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzY2VuYXJpbzogU2NlbmFyaW87XG4gICAgQElucHV0KCkgcHVibGljIGNvbm5lY3RlZFRhZ3M6IFRDb25uZWN0ZWRUYWdzID0ge307XG4gICAgQElucHV0KCkgcHVibGljIGR5bmFtaWNUYWdWYWx1ZXM6IFREeW5hbWljVGFnID0ge307XG4gICAgQElucHV0KCkgcHVibGljIHRhZ0FkZGl0aW9uYWxTZXR0aW5nczogUmVjb3JkPHN0cmluZywgSVRhZ0FkZGl0aW9uYWxTZXR0aW5ncz47XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgbG9ja2VkRGF0ZXM6IHN0cmluZ1tdIHwgbnVtYmVyW10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlzY2FsWWVhclN0YXJ0c0Zyb206IG51bWJlcjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlzY2FsWWVhckJhY2s6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGlzRHluYW1pY0FkZEVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIHNjZW5hcmlvVGFnRGF0YUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRTY2VuYXJpb0RhdGFDaGFuZ2VkPigpO1xuXG4gICAgcHVibGljIGN1cnJlbnRUYWdzTWFwOiB7IFt0YWdJZDogbnVtYmVyXTogSVRhZ0ZvclNlcnZlciB9ID0ge307XG5cbiAgICBwcml2YXRlIF9jdXJyZW50VGFnczogSVRhZ0ZvclNlcnZlcltdID0gW107XG4gICAgcHJpdmF0ZSBkeW5hbWljVGFnc1RvU2F2ZTogSVRhZ0ZvclNlcnZlcltdID0gW107XG4gICAgcHJpdmF0ZSB0YWdzVG9TYXZlOiBJVGFnRm9yU2VydmVyW10gPSBbXTtcblxuICAgIHB1YmxpYyBnZXQgY3VycmVudFRhZ3MoKTogSVRhZ0ZvclNlcnZlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ3MgPSB0aGlzLmN1cnJlbnRUYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhZ0NoYW5nZSgkZXZlbnQ6IElUYWdGb3JTZXJ2ZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2F2ZWRUYWcgPSBfZmluZCh0aGlzLnRhZ3NUb1NhdmUsIHsgaWQ6ICRldmVudC5pZCB9KTtcblxuICAgICAgICBpZiAoc2F2ZWRUYWcpIHtcbiAgICAgICAgICAgIF9tZXJnZShzYXZlZFRhZywgJGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFnc1RvU2F2ZS5wdXNoKCRldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uU2NlbmFyaW9UYWdEYXRhQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkR5bmFtaWNUYWdzQ2hhbmdlKCRldmVudDogSVRhZ0ZvclNlcnZlcltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHluYW1pY1RhZ3NUb1NhdmUgPSAkZXZlbnQ7XG4gICAgICAgIHRoaXMub25TY2VuYXJpb1RhZ0RhdGFDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9UYWdEYXRhQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFncyA9IFsuLi50aGlzLmR5bmFtaWNUYWdzVG9TYXZlLCAuLi50aGlzLnRhZ3NUb1NhdmVdO1xuICAgICAgICB0aGlzLnNjZW5hcmlvVGFnRGF0YUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBzY2VuYXJpbzogdGhpcy5zY2VuYXJpbyxcbiAgICAgICAgICAgIHRhZ3NDb25maWc6IHRoaXMudGFnc0NvbmZpZyxcbiAgICAgICAgICAgIHRhZ3MsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2VuYXJpby10YWctY29uZmlndXJhdGlvblwiICpuZ0Zvcj1cImxldCB0YWdDb25maWcgb2YgdGFnc0NvbmZpZ1wiPlxuICAgIDxkci10YWdcbiAgICAgICAgW3RhZ0NvbmZpZ109XCJ0YWdDb25maWdcIlxuICAgICAgICBbc2VsZWN0ZWRUYWddPVwiY3VycmVudFRhZ3NNYXBbdGFnQ29uZmlnLmlkXVwiXG4gICAgICAgIFtsb2NrZWREYXRlXT1cImxvY2tlZERhdGVzXCJcbiAgICAgICAgW2Zpc2NhbFllYXJTdGFydHNGcm9tXT1cImZpc2NhbFllYXJTdGFydHNGcm9tXCJcbiAgICAgICAgW2Zpc2NhbFllYXJCYWNrXT1cImZpc2NhbFllYXJCYWNrXCJcbiAgICAgICAgW3RhZ3NDb25maWddPVwidGFnc0NvbmZpZ1wiXG4gICAgICAgIFtkeW5hbWljVGFnVmFsdWVzXT1cImR5bmFtaWNUYWdWYWx1ZXNcIlxuICAgICAgICBbY29ubmVjdGVkVGFnc109XCJjb25uZWN0ZWRUYWdzW3RhZ0NvbmZpZy5pZF1cIlxuICAgICAgICBbaXNEeW5hbWljVGFnQWRkRW5hYmxlZF09XCJpc0R5bmFtaWNBZGRFbmFibGVkXCJcbiAgICAgICAgW3RhZ0FkZGl0aW9uYWxTZXR0aW5nc109XCJ0YWdBZGRpdGlvbmFsU2V0dGluZ3NcIlxuICAgICAgICAodGFnQ2hhbmdlKT1cIm9uVGFnQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZHluYW1pY1RhZ0NoYW5nZSk9XCJvbkR5bmFtaWNUYWdzQ2hhbmdlKCRldmVudClcIj48L2RyLXRhZz5cbjwvZGl2PlxuIl19
@@ -0,0 +1,107 @@
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 } from 'lodash';
6
+ import { CommonModule } from '@angular/common';
7
+ import { DrInputsModule } from '../../dr-inputs/dr-inputs.module';
8
+ import { FormsModule } from '@angular/forms';
9
+ import { DrTagsConstructorComponent } from '../dr-tags-constructor/dr-tags-constructor.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../_services/scenario.service";
12
+ import * as i2 from "@angular/common";
13
+ import * as i3 from "../../dr-inputs/dr-select/dr-select.component";
14
+ import * as i4 from "@angular/forms";
15
+ function DrTagsAndScenarioConstructorComponent_div_5_Template(rf, ctx) { if (rf & 1) {
16
+ const _r2 = i0.ɵɵgetCurrentView();
17
+ i0.ɵɵelementStart(0, "div", 5)(1, "dr-tags-constructor", 6);
18
+ i0.ɵɵlistener("tagChange", function DrTagsAndScenarioConstructorComponent_div_5_Template_dr_tags_constructor_tagChange_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onScenarioDataChange()); })("tagToggle", function DrTagsAndScenarioConstructorComponent_div_5_Template_dr_tags_constructor_tagToggle_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onScenarioTagToggle($event)); });
19
+ i0.ɵɵelementEnd()();
20
+ } if (rf & 2) {
21
+ const ctx_r0 = i0.ɵɵnextContext();
22
+ i0.ɵɵadvance(1);
23
+ i0.ɵɵproperty("scenarioTagsConfig", ctx_r0.scenarioTags);
24
+ } }
25
+ export class DrTagsAndScenarioConstructorComponent {
26
+ set selectedScenario(scenario) {
27
+ if (!Object.values(Scenario).includes(scenario)) {
28
+ this._selectedScenario = Scenario.ACTUALS;
29
+ return;
30
+ }
31
+ this._selectedScenario = scenario;
32
+ }
33
+ get selectedScenario() {
34
+ return this._selectedScenario || Scenario.ACTUALS;
35
+ }
36
+ get scenarioTags() {
37
+ return this._scenarioTags;
38
+ }
39
+ set scenarioTags(tags) {
40
+ this._scenarioTags = tags;
41
+ this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });
42
+ }
43
+ get dateTag() {
44
+ return _find(this.scenarioTags, { type: TagTypes.DATE });
45
+ }
46
+ constructor(scenarioService) {
47
+ this.scenarioService = scenarioService;
48
+ this._scenarioTags = [];
49
+ this.wholeTagsConfig = [];
50
+ this.isMultipleDimension = false;
51
+ this.isForecastMultipleDimension = false;
52
+ this.scenarioDataChanged = new EventEmitter();
53
+ }
54
+ ngOnInit() {
55
+ this.scenarios = this.scenarioService.scenarios;
56
+ this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension, this.isForecastMultipleDimension);
57
+ this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);
58
+ }
59
+ onScenarioChange(scenario) {
60
+ this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);
61
+ this.onScenarioDataChange();
62
+ }
63
+ onScenarioTagToggle(tag) {
64
+ this.scenarioService.tagNotSupportingDatesHandler(tag, this.tagNotSupportingDates, this.dateTag);
65
+ this.scenarioService.tagAcceptableSubTagsHandler(tag, this.dateTag);
66
+ this.onScenarioDataChange();
67
+ }
68
+ onScenarioDataChange() {
69
+ this.scenarioDataChanged.emit({
70
+ scenario: this.selectedScenario,
71
+ tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),
72
+ });
73
+ }
74
+ /** @nocollapse */ static { this.ɵfac = function DrTagsAndScenarioConstructorComponent_Factory(t) { return new (t || DrTagsAndScenarioConstructorComponent)(i0.ɵɵdirectiveInject(i1.ScenarioService)); }; }
75
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTagsAndScenarioConstructorComponent, selectors: [["dr-tags-and-scenario-constructor"]], inputs: { currentTagsConfig: "currentTagsConfig", wholeTagsConfig: "wholeTagsConfig", selectedScenario: "selectedScenario", isMultipleDimension: "isMultipleDimension", isForecastMultipleDimension: "isForecastMultipleDimension" }, outputs: { scenarioDataChanged: "scenarioDataChanged" }, standalone: true, features: [i0.ɵɵProvidersFeature([ScenarioService]), i0.ɵɵStandaloneFeature], decls: 6, vars: 3, consts: [[1, "scenario"], [1, "scenario__list"], [1, "scenario__title", "scenario__title-list"], ["placeholder", "Select", 3, "ngModel", "items", "ngModelChange"], ["class", "scenario__tags", 4, "ngIf"], [1, "scenario__tags"], [3, "scenarioTagsConfig", "tagChange", "tagToggle"]], template: function DrTagsAndScenarioConstructorComponent_Template(rf, ctx) { if (rf & 1) {
76
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "p", 2);
77
+ i0.ɵɵtext(3, "Scenario");
78
+ i0.ɵɵelementEnd();
79
+ i0.ɵɵelementStart(4, "dr-select", 3);
80
+ i0.ɵɵlistener("ngModelChange", function DrTagsAndScenarioConstructorComponent_Template_dr_select_ngModelChange_4_listener($event) { return ctx.selectedScenario = $event; })("ngModelChange", function DrTagsAndScenarioConstructorComponent_Template_dr_select_ngModelChange_4_listener($event) { return ctx.onScenarioChange($event); });
81
+ i0.ɵɵelementEnd()();
82
+ i0.ɵɵtemplate(5, DrTagsAndScenarioConstructorComponent_div_5_Template, 2, 1, "div", 4);
83
+ i0.ɵɵelementEnd();
84
+ } if (rf & 2) {
85
+ i0.ɵɵadvance(4);
86
+ i0.ɵɵproperty("ngModel", ctx.selectedScenario)("items", ctx.scenarios);
87
+ i0.ɵɵadvance(1);
88
+ i0.ɵɵproperty("ngIf", ctx.scenarioTags == null ? null : ctx.scenarioTags.length);
89
+ } }, dependencies: [CommonModule, i2.NgIf, DrInputsModule, i3.DrSelectComponent, FormsModule, i4.NgControlStatus, i4.NgModel, DrTagsConstructorComponent], styles: [".scenario__title[_ngcontent-%COMP%]{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.scenario__title-list[_ngcontent-%COMP%]{margin-bottom:4px}.scenario__tags[_ngcontent-%COMP%]{margin-top:24px}[_nghost-%COMP%] .toggle-container__item__content{padding:2px 8px!important}"], changeDetection: 0 }); }
90
+ }
91
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrTagsAndScenarioConstructorComponent, [{
92
+ type: Component,
93
+ args: [{ selector: 'dr-tags-and-scenario-constructor', standalone: true, imports: [CommonModule, DrInputsModule, FormsModule, DrTagsConstructorComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ScenarioService], template: "<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select\n [(ngModel)]=\"selectedScenario\"\n placeholder=\"Select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\" *ngIf=\"scenarioTags?.length\">\n <dr-tags-constructor\n [scenarioTagsConfig]=\"scenarioTags\"\n (tagChange)=\"onScenarioDataChange()\"\n (tagToggle)=\"onScenarioTagToggle($any($event))\"></dr-tags-constructor>\n </div>\n</div>\n", styles: [".scenario__title{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.scenario__title-list{margin-bottom:4px}.scenario__tags{margin-top:24px}:host::ng-deep .toggle-container__item__content{padding:2px 8px!important}\n"] }]
94
+ }], function () { return [{ type: i1.ScenarioService }]; }, { currentTagsConfig: [{
95
+ type: Input
96
+ }], wholeTagsConfig: [{
97
+ type: Input
98
+ }], selectedScenario: [{
99
+ type: Input
100
+ }], isMultipleDimension: [{
101
+ type: Input
102
+ }], isForecastMultipleDimension: [{
103
+ type: Input
104
+ }], scenarioDataChanged: [{
105
+ type: Output
106
+ }] }); })();
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFncy1hbmQtc2NlbmFyaW8tY29uc3RydWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWdzLWFuZC1zY2VuYXJpby1jb25zdHJ1Y3Rvci9kci10YWdzLWFuZC1zY2VuYXJpby1jb25zdHJ1Y3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWdzL2RyLXRhZ3MtYW5kLXNjZW5hcmlvLWNvbnN0cnVjdG9yL2RyLXRhZ3MtYW5kLXNjZW5hcmlvLWNvbnN0cnVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFrQixRQUFRLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBUSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7SUNDOUYsOEJBQXlELDZCQUFBO0lBR2pELHVNQUFhLGVBQUEsNkJBQXNCLENBQUEsSUFBQyxn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cEVRLHFDQUFxQzttR0FBckMscUNBQXFDLHVZQUZuQyxDQUFDLGVBQWUsQ0FBQztZQ2pCaEMsOEJBQXNCLGFBQUEsV0FBQTtZQUVrQyx3QkFBUTtZQUFBLGlCQUFJO1lBQzVELG9DQUkrQztZQUgzQyw0S0FBOEIsOEhBR2IsNEJBQXdCLElBSFg7WUFHYSxpQkFBWSxFQUFBO1lBRS9ELHNGQUtNO1lBQ1YsaUJBQU07O1lBWE0sZUFBOEI7WUFBOUIsOENBQThCLHdCQUFBO1lBS1QsZUFBMEI7WUFBMUIsZ0ZBQTBCOzRCRE03QyxZQUFZLFdBQUUsY0FBYyx3QkFBRSxXQUFXLGtDQUFFLDBCQUEwQjs7dUZBSXRFLHFDQUFxQztjQVRqRCxTQUFTOzJCQUNJLGtDQUFrQyxjQUdoQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsQ0FBQyxtQkFDL0QsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGVBQWUsQ0FBQztrRUFTWixpQkFBaUI7a0JBQWhDLEtBQUs7WUFDVSxlQUFlO2tCQUE5QixLQUFLO1lBQ2MsZ0JBQWdCO2tCQUFuQyxLQUFLO1lBUVUsbUJBQW1CO2tCQUFsQyxLQUFLO1lBQ1UsMkJBQTJCO2tCQUExQyxLQUFLO1lBRVcsbUJBQW1CO2tCQUFuQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElTY2VuYXJpb1RhZ1VpLCBTY2VuYXJpbywgVFNjZW5hcmlvRGF0YUNoYW5nZWQgfSBmcm9tICcuLi9faW50ZXJmYWNlcy9zY2VuYXJpbyc7XG5pbXBvcnQgeyBTY2VuYXJpb1NlcnZpY2UgfSBmcm9tICcuLi9fc2VydmljZXMvc2NlbmFyaW8uc2VydmljZSc7XG5pbXBvcnQgeyBJVGFnLCBUYWdUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IGZpbmQgYXMgX2ZpbmQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEclRhZ3NDb25zdHJ1Y3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2RyLXRhZ3MtY29uc3RydWN0b3IvZHItdGFncy1jb25zdHJ1Y3Rvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLXRhZ3MtYW5kLXNjZW5hcmlvLWNvbnN0cnVjdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItdGFncy1hbmQtc2NlbmFyaW8tY29uc3RydWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXRhZ3MtYW5kLXNjZW5hcmlvLWNvbnN0cnVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEcklucHV0c01vZHVsZSwgRm9ybXNNb2R1bGUsIERyVGFnc0NvbnN0cnVjdG9yQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtTY2VuYXJpb1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBEclRhZ3NBbmRTY2VuYXJpb0NvbnN0cnVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgc2NlbmFyaW9zOiBTY2VuYXJpb1tdO1xuXG4gICAgcHJpdmF0ZSBfc2NlbmFyaW9UYWdzOiBJU2NlbmFyaW9UYWdVaVtdID0gW107XG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRTY2VuYXJpbzogU2NlbmFyaW87XG4gICAgcHJpdmF0ZSB0YWdOb3RTdXBwb3J0aW5nRGF0ZXM6IElTY2VuYXJpb1RhZ1VpO1xuXG4gICAgQElucHV0KCkgcHVibGljIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgQElucHV0KCkgcHVibGljIHdob2xlVGFnc0NvbmZpZzogSVRhZ1tdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIHNldCBzZWxlY3RlZFNjZW5hcmlvKHNjZW5hcmlvOiBTY2VuYXJpbykge1xuICAgICAgICBpZiAoIU9iamVjdC52YWx1ZXMoU2NlbmFyaW8pLmluY2x1ZGVzKHNjZW5hcmlvKSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTY2VuYXJpbyA9IFNjZW5hcmlvLkFDVFVBTFM7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZWxlY3RlZFNjZW5hcmlvID0gc2NlbmFyaW87XG4gICAgfVxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY2VuYXJpb0RhdGFDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFNjZW5hcmlvRGF0YUNoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4oKTtcblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRTY2VuYXJpbygpOiBTY2VuYXJpbyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFNjZW5hcmlvIHx8IFNjZW5hcmlvLkFDVFVBTFM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzY2VuYXJpb1RhZ3MoKTogSVNjZW5hcmlvVGFnVWlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY2VuYXJpb1RhZ3M7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzY2VuYXJpb1RhZ3ModGFnczogSVNjZW5hcmlvVGFnVWlbXSkge1xuICAgICAgICB0aGlzLl9zY2VuYXJpb1RhZ3MgPSB0YWdzO1xuICAgICAgICB0aGlzLnRhZ05vdFN1cHBvcnRpbmdEYXRlcyA9IF9maW5kKHRhZ3MsIHsgdHVybk9mZkRhdGVUYWdzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0ZVRhZygpOiBJU2NlbmFyaW9UYWdVaSB7XG4gICAgICAgIHJldHVybiBfZmluZCh0aGlzLnNjZW5hcmlvVGFncywgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2NlbmFyaW9TZXJ2aWNlOiBTY2VuYXJpb1NlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9zID0gdGhpcy5zY2VuYXJpb1NlcnZpY2Uuc2NlbmFyaW9zO1xuICAgICAgICB0aGlzLnNjZW5hcmlvU2VydmljZS5pbml0U2NlbmFyaW9UYWdzKFxuICAgICAgICAgICAgdGhpcy53aG9sZVRhZ3NDb25maWcsXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLFxuICAgICAgICAgICAgdGhpcy5pc011bHRpcGxlRGltZW5zaW9uLFxuICAgICAgICAgICAgdGhpcy5pc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb24sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9UYWdzID0gdGhpcy5zY2VuYXJpb1NlcnZpY2UuZ2V0U2NlbmFyaW9UYWdzQnlTY2VuYXJpbyh0aGlzLnNlbGVjdGVkU2NlbmFyaW8pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNjZW5hcmlvQ2hhbmdlKHNjZW5hcmlvOiBTY2VuYXJpbyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjZW5hcmlvVGFncyA9IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLmdldFNjZW5hcmlvVGFnc0J5U2NlbmFyaW8oc2NlbmFyaW8pO1xuICAgICAgICB0aGlzLm9uU2NlbmFyaW9EYXRhQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9UYWdUb2dnbGUodGFnOiBJU2NlbmFyaW9UYWdVaSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjZW5hcmlvU2VydmljZS50YWdOb3RTdXBwb3J0aW5nRGF0ZXNIYW5kbGVyPElTY2VuYXJpb1RhZ1VpPih0YWcsIHRoaXMudGFnTm90U3VwcG9ydGluZ0RhdGVzLCB0aGlzLmRhdGVUYWcpO1xuICAgICAgICB0aGlzLnNjZW5hcmlvU2VydmljZS50YWdBY2NlcHRhYmxlU3ViVGFnc0hhbmRsZXI8SVNjZW5hcmlvVGFnVWk+KHRhZywgdGhpcy5kYXRlVGFnKTtcbiAgICAgICAgdGhpcy5vblNjZW5hcmlvRGF0YUNoYW5nZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNjZW5hcmlvRGF0YUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY2VuYXJpb0RhdGFDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgc2NlbmFyaW86IHRoaXMuc2VsZWN0ZWRTY2VuYXJpbyxcbiAgICAgICAgICAgIHRhZ3NDb25maWc6IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLmdldFRhZ3NDb25maWdCeVNjZW5hcmlvVGFncyh0aGlzLnNjZW5hcmlvVGFncywgdGhpcy53aG9sZVRhZ3NDb25maWcpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2NlbmFyaW9cIj5cbiAgICA8ZGl2IGNsYXNzPVwic2NlbmFyaW9fX2xpc3RcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJzY2VuYXJpb19fdGl0bGUgc2NlbmFyaW9fX3RpdGxlLWxpc3RcIj5TY2VuYXJpbzwvcD5cbiAgICAgICAgPGRyLXNlbGVjdFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNjZW5hcmlvXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgICAgICAgIFtpdGVtc109XCJzY2VuYXJpb3NcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TY2VuYXJpb0NoYW5nZSgkZXZlbnQpXCI+PC9kci1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNjZW5hcmlvX190YWdzXCIgKm5nSWY9XCJzY2VuYXJpb1RhZ3M/Lmxlbmd0aFwiPlxuICAgICAgICA8ZHItdGFncy1jb25zdHJ1Y3RvclxuICAgICAgICAgICAgW3NjZW5hcmlvVGFnc0NvbmZpZ109XCJzY2VuYXJpb1RhZ3NcIlxuICAgICAgICAgICAgKHRhZ0NoYW5nZSk9XCJvblNjZW5hcmlvRGF0YUNoYW5nZSgpXCJcbiAgICAgICAgICAgICh0YWdUb2dnbGUpPVwib25TY2VuYXJpb1RhZ1RvZ2dsZSgkYW55KCRldmVudCkpXCI+PC9kci10YWdzLWNvbnN0cnVjdG9yPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,164 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ToggleButtonMode } from '../../dr-inputs/dr-toggle-button/toggle-button-mode';
3
+ import { reduce as _reduce, some as _some, filter as _filter, forEach as _forEach } from 'lodash';
4
+ import { ScenarioService } from '../_services/scenario.service';
5
+ import { TagsConstructorService } from '../_services/tags-constructor.service';
6
+ import { CommonModule } from '@angular/common';
7
+ import { FormsModule } from '@angular/forms';
8
+ import { DrInputsModule } from '../../dr-inputs/dr-inputs.module';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../_services/scenario.service";
11
+ import * as i2 from "../_services/tags-constructor.service";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "../../dr-inputs/dr-toggle/dr-toggle.component";
14
+ import * as i5 from "../../dr-inputs/dr-toggle-button/dr-toggle-button.component";
15
+ import * as i6 from "@angular/forms";
16
+ function DrTagsConstructorComponent_div_3_div_8_div_1_Template(rf, ctx) { if (rf & 1) {
17
+ const _r6 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "div", 12)(1, "dr-toggle-button", 13);
19
+ i0.ɵɵlistener("ngModelChange", function DrTagsConstructorComponent_div_3_div_8_div_1_Template_dr_toggle_button_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r6); const tag_r1 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(tag_r1.selectedTagSubType = $event); })("ngModelChange", function DrTagsConstructorComponent_div_3_div_8_div_1_Template_dr_toggle_button_ngModelChange_1_listener() { i0.ɵɵrestoreView(_r6); const tag_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onSubTagChange(tag_r1)); });
20
+ i0.ɵɵelementEnd()();
21
+ } if (rf & 2) {
22
+ const tag_r1 = i0.ɵɵnextContext(2).$implicit;
23
+ const ctx_r3 = i0.ɵɵnextContext();
24
+ i0.ɵɵadvance(1);
25
+ i0.ɵɵproperty("ngModel", tag_r1.selectedTagSubType)("items", tag_r1.subTags)("mode", ctx_r3.toggleButtonMode.DOTTED);
26
+ } }
27
+ function DrTagsConstructorComponent_div_3_div_8_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵelementStart(0, "div", 10);
29
+ i0.ɵɵtemplate(1, DrTagsConstructorComponent_div_3_div_8_div_1_Template, 2, 3, "div", 11);
30
+ i0.ɵɵelementEnd();
31
+ } if (rf & 2) {
32
+ const tag_r1 = i0.ɵɵnextContext().$implicit;
33
+ i0.ɵɵadvance(1);
34
+ i0.ɵɵproperty("ngIf", tag_r1.subTags == null ? null : tag_r1.subTags.length);
35
+ } }
36
+ function DrTagsConstructorComponent_div_3_Template(rf, ctx) { if (rf & 1) {
37
+ const _r12 = i0.ɵɵgetCurrentView();
38
+ i0.ɵɵelementStart(0, "div", 3)(1, "div", 4)(2, "p", 5);
39
+ i0.ɵɵtext(3);
40
+ i0.ɵɵelementEnd();
41
+ i0.ɵɵelementStart(4, "dr-toggle", 6);
42
+ i0.ɵɵlistener("ngModelChange", function DrTagsConstructorComponent_div_3_Template_dr_toggle_ngModelChange_4_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r12); const tag_r1 = restoredCtx.$implicit; return i0.ɵɵresetView(tag_r1.toggle = $event); })("ngModelChange", function DrTagsConstructorComponent_div_3_Template_dr_toggle_ngModelChange_4_listener() { const restoredCtx = i0.ɵɵrestoreView(_r12); const tag_r1 = restoredCtx.$implicit; const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onTagToggle(tag_r1)); });
43
+ i0.ɵɵelementEnd()();
44
+ i0.ɵɵelementStart(5, "div", 7)(6, "p", 8);
45
+ i0.ɵɵtext(7);
46
+ i0.ɵɵelementEnd()();
47
+ i0.ɵɵtemplate(8, DrTagsConstructorComponent_div_3_div_8_Template, 2, 1, "div", 9);
48
+ i0.ɵɵelementEnd();
49
+ } if (rf & 2) {
50
+ const tag_r1 = ctx.$implicit;
51
+ i0.ɵɵadvance(3);
52
+ i0.ɵɵtextInterpolate(tag_r1.name);
53
+ i0.ɵɵadvance(1);
54
+ i0.ɵɵproperty("ngModel", tag_r1.toggle);
55
+ i0.ɵɵadvance(3);
56
+ i0.ɵɵtextInterpolate(tag_r1.description);
57
+ i0.ɵɵadvance(1);
58
+ i0.ɵɵproperty("ngIf", tag_r1.toggle);
59
+ } }
60
+ export class DrTagsConstructorComponent {
61
+ get currentTags() {
62
+ return this.scenarioTagsConfig || this.tagsUi;
63
+ }
64
+ get isScenarioFlow() {
65
+ return !!this.scenarioTagsConfig;
66
+ }
67
+ get tagsWithSubTags() {
68
+ return _reduce(this.tagsUi, (acc, curr) => {
69
+ if (curr?.subTags?.length) {
70
+ acc.push(curr);
71
+ }
72
+ return acc;
73
+ }, []);
74
+ }
75
+ get tagsNotSupportingDateTag() {
76
+ return _reduce(this.tagsUi, (acc, curr) => {
77
+ if (curr?.turnOffDateTags) {
78
+ acc.push(curr);
79
+ }
80
+ return acc;
81
+ }, []);
82
+ }
83
+ constructor(scenarioService, tagsConstructor) {
84
+ this.scenarioService = scenarioService;
85
+ this.tagsConstructor = tagsConstructor;
86
+ this.toggleButtonMode = ToggleButtonMode;
87
+ /*
88
+ * Used for display provided tagsConfig
89
+ * (for scenario flow, use this input to get tagsConfig data on stateChange emit)
90
+ * */
91
+ this.tagsConfigToDisplay = [];
92
+ /*
93
+ * Used for toggle on provided tagsConfig
94
+ * (not related to scenario flow)
95
+ * */
96
+ this.selectedTagsConfig = [];
97
+ this.tagChange = new EventEmitter();
98
+ this.tagToggle = new EventEmitter();
99
+ this.stateChange = new EventEmitter();
100
+ this.tagsUi = [];
101
+ }
102
+ ngOnInit() {
103
+ if (!this.isScenarioFlow) {
104
+ this.buildTags();
105
+ }
106
+ }
107
+ onSubTagChange(tag) {
108
+ this.onStateChange();
109
+ const tagToEmit = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];
110
+ this.tagChange.emit(tagToEmit);
111
+ }
112
+ onTagToggle(tag) {
113
+ if (!this.isScenarioFlow) {
114
+ this.updateTagsState(tag);
115
+ }
116
+ this.onStateChange();
117
+ const tagToEmit = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];
118
+ this.tagToggle.emit(tagToEmit);
119
+ }
120
+ onStateChange() {
121
+ const tagsConfig = this.getTagsConfig(this.currentTags);
122
+ this.stateChange.emit(tagsConfig);
123
+ }
124
+ buildTags() {
125
+ this.tagsUi = this.tagsConstructor.buildTags(this.tagsConfigToDisplay, this.selectedTagsConfig);
126
+ }
127
+ getTagsConfig(currentTags) {
128
+ return _filter(this.tagsConfigToDisplay, (tagConfig) => _some(currentTags, (tag) => tag.toggle && tag.selectedTagSubType === tagConfig.options.sub_type));
129
+ }
130
+ updateTagsState(tag) {
131
+ _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagAcceptableSubTagsHandler(tag, tagWithSubTag));
132
+ _forEach(this.tagsNotSupportingDateTag, (tagNotSupportingDate) => {
133
+ _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagNotSupportingDatesHandler(tag, tagNotSupportingDate, tagWithSubTag));
134
+ });
135
+ }
136
+ /** @nocollapse */ static { this.ɵfac = function DrTagsConstructorComponent_Factory(t) { return new (t || DrTagsConstructorComponent)(i0.ɵɵdirectiveInject(i1.ScenarioService), i0.ɵɵdirectiveInject(i2.TagsConstructorService)); }; }
137
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTagsConstructorComponent, selectors: [["dr-tags-constructor"]], inputs: { scenarioTagsConfig: "scenarioTagsConfig", tagsConfigToDisplay: "tagsConfigToDisplay", selectedTagsConfig: "selectedTagsConfig" }, outputs: { tagChange: "tagChange", tagToggle: "tagToggle", stateChange: "stateChange" }, standalone: true, features: [i0.ɵɵProvidersFeature([ScenarioService, TagsConstructorService]), i0.ɵɵStandaloneFeature], decls: 4, vars: 1, consts: [[1, "tags-constructor"], [1, "tags-constructor__title--extra", "tags-constructor__tags__title"], ["class", "tags-constructor__tag", 4, "ngFor", "ngForOf"], [1, "tags-constructor__tag"], [1, "tags-constructor__tag__header"], [1, "tags-constructor__title"], [3, "ngModel", "ngModelChange"], [1, "tags-constructor__tag__description"], [1, "tags-constructor__text"], ["class", "tags-constructor__tag__body", 4, "ngIf"], [1, "tags-constructor__tag__body"], ["class", "tags-constructor__sub-tag", 4, "ngIf"], [1, "tags-constructor__sub-tag"], ["bindHidden", "hidden", "bindLabel", "name", "bindValue", "subType", 3, "ngModel", "items", "mode", "ngModelChange"]], template: function DrTagsConstructorComponent_Template(rf, ctx) { if (rf & 1) {
138
+ i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
139
+ i0.ɵɵtext(2, "Tags");
140
+ i0.ɵɵelementEnd();
141
+ i0.ɵɵtemplate(3, DrTagsConstructorComponent_div_3_Template, 9, 4, "div", 2);
142
+ i0.ɵɵelementEnd();
143
+ } if (rf & 2) {
144
+ i0.ɵɵadvance(3);
145
+ i0.ɵɵproperty("ngForOf", ctx.currentTags);
146
+ } }, dependencies: [CommonModule, i3.NgForOf, i3.NgIf, DrInputsModule, i4.DrToggleComponent, i5.DrToggleButtonComponent, FormsModule, i6.NgControlStatus, i6.NgModel], styles: [".tags-constructor__text[_ngcontent-%COMP%]{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px}.tags-constructor__title[_ngcontent-%COMP%]{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.tags-constructor__title--extra[_ngcontent-%COMP%]{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:700}.tags-constructor__tags__title[_ngcontent-%COMP%]{margin-bottom:16px}.tags-constructor__tag[_ngcontent-%COMP%]{margin-bottom:24px;padding-top:16px;border-top:1px solid #dfe0e3}.tags-constructor__tag[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tags-constructor__tag__description[_ngcontent-%COMP%]{margin-top:5px}.tags-constructor__tag__header[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.tags-constructor__sub-tag[_ngcontent-%COMP%]{margin-top:8px}[_nghost-%COMP%] .toggle-container__item__content{padding:2px 8px!important}"] }); }
147
+ }
148
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrTagsConstructorComponent, [{
149
+ type: Component,
150
+ args: [{ selector: 'dr-tags-constructor', standalone: true, imports: [CommonModule, DrInputsModule, FormsModule], providers: [ScenarioService, TagsConstructorService], template: "<div class=\"tags-constructor\">\n <p class=\"tags-constructor__title--extra tags-constructor__tags__title\">Tags</p>\n <div class=\"tags-constructor__tag\" *ngFor=\"let tag of currentTags\">\n <div class=\"tags-constructor__tag__header\">\n <p class=\"tags-constructor__title\">{{ tag.name }}</p>\n <dr-toggle [(ngModel)]=\"tag.toggle\" (ngModelChange)=\"onTagToggle(tag)\"></dr-toggle>\n </div>\n <div class=\"tags-constructor__tag__description\">\n <p class=\"tags-constructor__text\">{{ tag.description }}</p>\n </div>\n <div *ngIf=\"tag.toggle\" class=\"tags-constructor__tag__body\">\n <div *ngIf=\"tag.subTags?.length\" class=\"tags-constructor__sub-tag\">\n <dr-toggle-button\n [(ngModel)]=\"tag.selectedTagSubType\"\n bindHidden=\"hidden\"\n bindLabel=\"name\"\n bindValue=\"subType\"\n [items]=\"tag.subTags\"\n [mode]=\"toggleButtonMode.DOTTED\"\n (ngModelChange)=\"onSubTagChange(tag)\"></dr-toggle-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".tags-constructor__text{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px}.tags-constructor__title{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.tags-constructor__title--extra{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:700}.tags-constructor__tags__title{margin-bottom:16px}.tags-constructor__tag{margin-bottom:24px;padding-top:16px;border-top:1px solid #dfe0e3}.tags-constructor__tag:last-child{margin-bottom:0}.tags-constructor__tag__description{margin-top:5px}.tags-constructor__tag__header{display:flex;justify-content:space-between}.tags-constructor__sub-tag{margin-top:8px}:host::ng-deep .toggle-container__item__content{padding:2px 8px!important}\n"] }]
151
+ }], function () { return [{ type: i1.ScenarioService }, { type: i2.TagsConstructorService }]; }, { scenarioTagsConfig: [{
152
+ type: Input
153
+ }], tagsConfigToDisplay: [{
154
+ type: Input
155
+ }], selectedTagsConfig: [{
156
+ type: Input
157
+ }], tagChange: [{
158
+ type: Output
159
+ }], tagToggle: [{
160
+ type: Output
161
+ }], stateChange: [{
162
+ type: Output
163
+ }] }); })();
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFncy1jb25zdHJ1Y3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWdzL2RyLXRhZ3MtY29uc3RydWN0b3IvZHItdGFncy1jb25zdHJ1Y3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWdzL2RyLXRhZ3MtY29uc3RydWN0b3IvZHItdGFncy1jb25zdHJ1Y3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLE9BQU8sRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7OztJQ0V0RCwrQkFBbUUsMkJBQUE7SUFFM0QsOE5BQWEsa0RBQzNCLElBRGtELDhPQU1uQixlQUFBLDZCQUFtQixDQUFBLElBTkE7SUFNRSxpQkFBbUIsRUFBQTs7OztJQU56RCxlQUFvQztJQUFwQyxt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QUFDLHdCQUF3QixFQUFFLENBQUMsb0JBQW9CLEVBQUUsRUFBRTtZQUM3RCxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxDQUM5RixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQW5IUSwwQkFBMEI7bUdBQTFCLDBCQUEwQixnVUFGeEIsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7WUNqQnhELDhCQUE4QixXQUFBO1lBQzhDLG9CQUFJO1lBQUEsaUJBQUk7WUFDaEYsMkVBb0JNO1lBQ1YsaUJBQU07O1lBckJpRCxlQUFjO1lBQWQseUNBQWM7NEJEY3ZELFlBQVksdUJBQUUsY0FBYyxvREFBRSxXQUFXOzt1RkFHMUMsMEJBQTBCO2NBUnRDLFNBQVM7MkJBQ0kscUJBQXFCLGNBR25CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLGFBQ3pDLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO3VHQWlCM0Msa0JBQWtCO2tCQUExQixLQUFLO1lBTUcsbUJBQW1CO2tCQUEzQixLQUFLO1lBTUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUksU0FBUztrQkFBbEIsTUFBTTtZQUNHLFNBQVM7a0JBQWxCLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVNjZW5hcmlvVGFnVWkgfSBmcm9tICcuLi9faW50ZXJmYWNlcy9zY2VuYXJpbyc7XG5pbXBvcnQgeyBUb2dnbGVCdXR0b25Nb2RlIH0gZnJvbSAnLi4vLi4vZHItaW5wdXRzL2RyLXRvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi1tb2RlJztcbmltcG9ydCB7IElUYWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyByZWR1Y2UgYXMgX3JlZHVjZSwgc29tZSBhcyBfc29tZSwgZmlsdGVyIGFzIF9maWx0ZXIsIGZvckVhY2ggYXMgX2ZvckVhY2ggfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU2NlbmFyaW9TZXJ2aWNlIH0gZnJvbSAnLi4vX3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFnc0NvbnN0cnVjdG9yU2VydmljZSB9IGZyb20gJy4uL19zZXJ2aWNlcy90YWdzLWNvbnN0cnVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi9kci1pbnB1dHMvZHItaW5wdXRzLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItdGFncy1jb25zdHJ1Y3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXRhZ3MtY29uc3RydWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXRhZ3MtY29uc3RydWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERySW5wdXRzTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbU2NlbmFyaW9TZXJ2aWNlLCBUYWdzQ29uc3RydWN0b3JTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJUYWdzQ29uc3RydWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyByZWFkb25seSB0b2dnbGVCdXR0b25Nb2RlID0gVG9nZ2xlQnV0dG9uTW9kZTtcblxuICAgIHB1YmxpYyBnZXQgY3VycmVudFRhZ3MoKTogSVNjZW5hcmlvVGFnVWlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNjZW5hcmlvVGFnc0NvbmZpZyB8fCB0aGlzLnRhZ3NVaTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU2NlbmFyaW9GbG93KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNjZW5hcmlvVGFnc0NvbmZpZztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFVzZWQgb25seSBmb3Igc2NlbmFyaW8gZmxvdyAoZHItdGFncy1hbmQtc2NlbmFyaW8tY29uc3RydWN0b3IgdGFnKVxuICAgICAqIChvbmx5IHRoaXMgaW5wdXQgbmVjZXNzYXJ5IGZvciBzY2VuYXJpbyBmbG93KVxuICAgICAqICovXG4gICAgQElucHV0KCkgc2NlbmFyaW9UYWdzQ29uZmlnOiBJU2NlbmFyaW9UYWdVaVtdO1xuXG4gICAgLypcbiAgICAgKiBVc2VkIGZvciBkaXNwbGF5IHByb3ZpZGVkIHRhZ3NDb25maWdcbiAgICAgKiAoZm9yIHNjZW5hcmlvIGZsb3csIHVzZSB0aGlzIGlucHV0IHRvIGdldCB0YWdzQ29uZmlnIGRhdGEgb24gc3RhdGVDaGFuZ2UgZW1pdClcbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpIHRhZ3NDb25maWdUb0Rpc3BsYXk6IElUYWdbXSA9IFtdO1xuXG4gICAgLypcbiAgICAgKiBVc2VkIGZvciB0b2dnbGUgb24gcHJvdmlkZWQgdGFnc0NvbmZpZ1xuICAgICAqIChub3QgcmVsYXRlZCB0byBzY2VuYXJpbyBmbG93KVxuICAgICAqICovXG4gICAgQElucHV0KCkgc2VsZWN0ZWRUYWdzQ29uZmlnOiBJVGFnW10gPSBbXTtcblxuICAgIEBPdXRwdXQoKSB0YWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJU2NlbmFyaW9UYWdVaSB8IElUYWc+ID0gbmV3IEV2ZW50RW1pdHRlcjxJU2NlbmFyaW9UYWdVaSB8IElUYWc+KCk7XG4gICAgQE91dHB1dCgpIHRhZ1RvZ2dsZTogRXZlbnRFbWl0dGVyPElTY2VuYXJpb1RhZ1VpIHwgSVRhZz4gPSBuZXcgRXZlbnRFbWl0dGVyPElTY2VuYXJpb1RhZ1VpIHwgSVRhZz4oKTtcbiAgICBAT3V0cHV0KCkgc3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnW10+KCk7XG5cbiAgICBwcml2YXRlIHRhZ3NVaSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBnZXQgdGFnc1dpdGhTdWJUYWdzKCk6IElTY2VuYXJpb1RhZ1VpW10ge1xuICAgICAgICByZXR1cm4gX3JlZHVjZShcbiAgICAgICAgICAgIHRoaXMudGFnc1VpLFxuICAgICAgICAgICAgKGFjYywgY3VycjogSVNjZW5hcmlvVGFnVWkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3Vycj8uc3ViVGFncz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGN1cnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdGFnc05vdFN1cHBvcnRpbmdEYXRlVGFnKCk6IElTY2VuYXJpb1RhZ1VpW10ge1xuICAgICAgICByZXR1cm4gX3JlZHVjZShcbiAgICAgICAgICAgIHRoaXMudGFnc1VpLFxuICAgICAgICAgICAgKGFjYywgY3VycjogSVNjZW5hcmlvVGFnVWkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3Vycj8udHVybk9mZkRhdGVUYWdzKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGN1cnIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2NlbmFyaW9TZXJ2aWNlOiBTY2VuYXJpb1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGFnc0NvbnN0cnVjdG9yOiBUYWdzQ29uc3RydWN0b3JTZXJ2aWNlLFxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2NlbmFyaW9GbG93KSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkVGFncygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uU3ViVGFnQ2hhbmdlKHRhZzogSVNjZW5hcmlvVGFnVWkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblN0YXRlQ2hhbmdlKCk7XG5cbiAgICAgICAgY29uc3QgdGFnVG9FbWl0OiBJU2NlbmFyaW9UYWdVaSB8IElUYWcgPSB0aGlzLmlzU2NlbmFyaW9GbG93ID8gdGFnIDogdGhpcy5nZXRUYWdzQ29uZmlnKFt0YWddKT8uWzBdO1xuICAgICAgICB0aGlzLnRhZ0NoYW5nZS5lbWl0KHRhZ1RvRW1pdCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFnVG9nZ2xlKHRhZzogSVNjZW5hcmlvVGFnVWkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2NlbmFyaW9GbG93KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRhZ3NTdGF0ZSh0YWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblN0YXRlQ2hhbmdlKCk7XG5cbiAgICAgICAgY29uc3QgdGFnVG9FbWl0OiBJU2NlbmFyaW9UYWdVaSB8IElUYWcgPSB0aGlzLmlzU2NlbmFyaW9GbG93ID8gdGFnIDogdGhpcy5nZXRUYWdzQ29uZmlnKFt0YWddKT8uWzBdO1xuICAgICAgICB0aGlzLnRhZ1RvZ2dsZS5lbWl0KHRhZ1RvRW1pdCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU3RhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhZ3NDb25maWcgPSB0aGlzLmdldFRhZ3NDb25maWcodGhpcy5jdXJyZW50VGFncyk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh0YWdzQ29uZmlnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkVGFncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWdzVWkgPSB0aGlzLnRhZ3NDb25zdHJ1Y3Rvci5idWlsZFRhZ3ModGhpcy50YWdzQ29uZmlnVG9EaXNwbGF5LCB0aGlzLnNlbGVjdGVkVGFnc0NvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWdzQ29uZmlnKGN1cnJlbnRUYWdzOiBJU2NlbmFyaW9UYWdVaVtdKTogSVRhZ1tdIHtcbiAgICAgICAgcmV0dXJuIF9maWx0ZXIodGhpcy50YWdzQ29uZmlnVG9EaXNwbGF5LCAodGFnQ29uZmlnKSA9PlxuICAgICAgICAgICAgX3NvbWUoY3VycmVudFRhZ3MsICh0YWcpID0+IHRhZy50b2dnbGUgJiYgdGFnLnNlbGVjdGVkVGFnU3ViVHlwZSA9PT0gdGFnQ29uZmlnLm9wdGlvbnMuc3ViX3R5cGUpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGFnc1N0YXRlKHRhZzogSVNjZW5hcmlvVGFnVWkpOiB2b2lkIHtcbiAgICAgICAgX2ZvckVhY2godGhpcy50YWdzV2l0aFN1YlRhZ3MsICh0YWdXaXRoU3ViVGFnKSA9PiB0aGlzLnNjZW5hcmlvU2VydmljZS50YWdBY2NlcHRhYmxlU3ViVGFnc0hhbmRsZXIodGFnLCB0YWdXaXRoU3ViVGFnKSk7XG5cbiAgICAgICAgX2ZvckVhY2godGhpcy50YWdzTm90U3VwcG9ydGluZ0RhdGVUYWcsICh0YWdOb3RTdXBwb3J0aW5nRGF0ZSkgPT4ge1xuICAgICAgICAgICAgX2ZvckVhY2godGhpcy50YWdzV2l0aFN1YlRhZ3MsICh0YWdXaXRoU3ViVGFnKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnRhZ05vdFN1cHBvcnRpbmdEYXRlc0hhbmRsZXIodGFnLCB0YWdOb3RTdXBwb3J0aW5nRGF0ZSwgdGFnV2l0aFN1YlRhZyksXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFncy1jb25zdHJ1Y3RvclwiPlxuICAgIDxwIGNsYXNzPVwidGFncy1jb25zdHJ1Y3Rvcl9fdGl0bGUtLWV4dHJhIHRhZ3MtY29uc3RydWN0b3JfX3RhZ3NfX3RpdGxlXCI+VGFnczwvcD5cbiAgICA8ZGl2IGNsYXNzPVwidGFncy1jb25zdHJ1Y3Rvcl9fdGFnXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBjdXJyZW50VGFnc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFncy1jb25zdHJ1Y3Rvcl9fdGFnX19oZWFkZXJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGFncy1jb25zdHJ1Y3Rvcl9fdGl0bGVcIj57eyB0YWcubmFtZSB9fTwvcD5cbiAgICAgICAgICAgIDxkci10b2dnbGUgWyhuZ01vZGVsKV09XCJ0YWcudG9nZ2xlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UYWdUb2dnbGUodGFnKVwiPjwvZHItdG9nZ2xlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3MtY29uc3RydWN0b3JfX3RhZ19fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGFncy1jb25zdHJ1Y3Rvcl9fdGV4dFwiPnt7IHRhZy5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0YWcudG9nZ2xlXCIgY2xhc3M9XCJ0YWdzLWNvbnN0cnVjdG9yX190YWdfX2JvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWcuc3ViVGFncz8ubGVuZ3RoXCIgY2xhc3M9XCJ0YWdzLWNvbnN0cnVjdG9yX19zdWItdGFnXCI+XG4gICAgICAgICAgICAgICAgPGRyLXRvZ2dsZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWcuc2VsZWN0ZWRUYWdTdWJUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgYmluZEhpZGRlbj1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJzdWJUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cInRhZy5zdWJUYWdzXCJcbiAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwidG9nZ2xlQnV0dG9uTW9kZS5ET1RURURcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblN1YlRhZ0NoYW5nZSh0YWcpXCI+PC9kci10b2dnbGUtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=