@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
@@ -4,7 +4,7 @@ import { DateAdapter } from '@angular/material/core';
4
4
  import { DrDatePickerService } from '../services/dr-date-picker.service';
5
5
  import { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';
6
6
  import * as moment from 'moment';
7
- import { ForecastTagService } from '../../../date-tags/forecast-tag/forecast-tag.service';
7
+ import { ForecastTagService } from '../../../dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/forecast-tag.service';
8
8
  import { TimeframeOption } from '../../../models/datePicker';
9
9
  import { DrFiscalMonthCalendarHeaderComponent } from './dr-fiscal-month-calendar-header.component';
10
10
  import * as i0 from "@angular/core";
@@ -169,4 +169,4 @@ export class DrFiscalMonthCalendarPickerComponent extends DrDatePickerComponent
169
169
  DrDatePickerService,
170
170
  ], template: "<i *ngIf=\"!useButton\" class=\"dr-icon-date\" (click)=\"datePicker.open()\"></i>\n\n<ng-container *ngIf=\"(datePickerService.timeframe$ | async) === timeframeOption.WEEK\">\n <input\n [attr.id]=\"id\"\n [ngModel]=\"input.value\"\n (click)=\"datePicker.open()\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\" />\n\n <mat-date-range-input [formGroup]=\"rangeForm\" [rangePicker]=\"datePicker\" [dateFilter]=\"dateFilter\" class=\"range-input\">\n <input\n matStartDate\n #input\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n formControlName=\"start\"\n (dateChange)=\"valueChangedInCalendar(rangeForm.value.start)\" />\n <input matEndDate [drDatePickerFormat]=\"datePickerService.format$ | async\" formControlName=\"end\" />\n </mat-date-range-input>\n\n <mat-date-range-picker\n #datePicker\n [startAt]=\"_startAt\"\n [panelClass]=\"'dr-week-datepicker' + (panelClass ? ' ' + panelClass : '')\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR, datePicker)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH, datePicker)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n </mat-date-range-picker>\n</ng-container>\n\n<ng-container *ngIf=\"(datePickerService.timeframe$ | async) !== timeframeOption.WEEK\">\n <input\n [attr.id]=\"id\"\n [ngModel]=\"displayValue$ | async\"\n (ngModelChange)=\"valueChangedInCalendar($event)\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"\n [class.hidden-calendar-input]=\"useButton\" />\n\n <dr-button\n *ngIf=\"useButton\"\n [icon]=\"'dr-icon-date'\"\n [iconAfter]=\"iconAfterButton\"\n (click)=\"datePicker.open()\"\n class=\"datepicker-button\">\n {{ buttonLabel || 'Select Date' }}\n </dr-button>\n\n <mat-datepicker\n #datePicker\n [panelClass]=\"panelClass\"\n [startAt]=\"_startAt\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR, datePicker)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH, datePicker)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n </mat-datepicker>\n</ng-container>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background-color:#fff;border:1px solid #9ea1aa;border-radius:6px;color:#333;overflow:hidden;outline:none;cursor:pointer}:host.use-button-picker{border:none}:host:hover{border-color:#9ea1aa}:host.active,:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;border:1px solid #aeabac;background:#f0f1f4;color:#aeabac}:host.disabled:after{color:#aeabac}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host.use-button-picker:after{display:none}:host:not(.use-button-picker):after,:host:not(.use-button-picker):before{position:absolute;display:flex;border-color:#6d6e6f transparent transparent;color:#6d6e6f}:host:not(.use-button-picker):after{font-family:DataRails!important;content:var(--dr-icon-arrow-down, \"\\ea18\");font-size:24px;color:#6d6e6f;top:0;bottom:0;right:8px;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:center}:host i{display:flex;align-items:center;position:absolute;color:#6d6e6f;left:8px;top:0;bottom:0}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}:host input.hidden-calendar-input{width:0;height:0;padding:0}:host .datepicker-button{width:100%}:host .range-input{position:absolute;height:0;width:0;bottom:0;left:0;z-index:-1}::ng-deep .mat-datepicker-popup .dr-week-datepicker{min-width:min(400px,100vw)!important}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-today{background:#f2f2fb;color:#4646ce;border:none;font-weight:600}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-cell-preview{border:none}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-range-start .mat-calendar-body-cell-preview,::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-preview-start .mat-calendar-body-cell-preview{left:5%;width:95%;border-top-left-radius:40px;border-bottom-left-radius:40px}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-range-end .mat-calendar-body-cell-preview,::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-preview-end .mat-calendar-body-cell-preview{right:5%;width:95%;border-top-right-radius:40px;border-bottom-right-radius:40px}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-preview:not(.mat-calendar-body-in-range) .mat-calendar-body-cell-preview{background-color:#f5f5f5}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-preview:not(.mat-calendar-body-in-range)>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:transparent!important}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-preview:not(.mat-calendar-body-in-range)>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical):not(.mat-calendar-body-today){color:#19181a!important;font-weight:400!important}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range .mat-calendar-body-cell-preview{background:#4646ce!important}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range:before{background:initial!important}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range .mat-calendar-body-selected,::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range .mat-calendar-body-cell-content{background:transparent!important;color:#f2f2fb!important;font-weight:600!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-datepicker-popup .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),::ng-deep .mat-datepicker-popup .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#fff}::ng-deep .mat-datepicker-popup .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#f2f2fb;color:#4646ce;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-datepicker-popup .mat-button-focus-overlay{background:#f5f5f5}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#f5f5f5;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-calendar-period-button:hover{background:#f5f5f5;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#333}::ng-deep .mat-datepicker-popup .mat-calendar-table-header-divider{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-body-label{color:#fff;padding:0}::ng-deep .mat-datepicker-popup .mat-calendar-body>tr[aria-hidden=true]>.mat-calendar-body-label{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-content{display:flex}::ng-deep .mat-datepicker-popup .mat-calendar-content dr-week-selector{flex:0}::ng-deep .mat-datepicker-popup .mat-calendar-content mat-month-view,::ng-deep .mat-datepicker-popup .mat-calendar-content mat-multi-year-view,::ng-deep .mat-datepicker-popup .mat-calendar-content mat-year-view{flex:1}\n"] }]
171
171
  }], null, null); })();
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1waWNrZXIvZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7OztJQ1RuRyw0QkFBdUU7SUFBNUIsMEtBQVMsZUFBQSx3QkFBaUIsQ0FBQSxJQUFDO0lBQUMsaUJBQUk7Ozs7SUFFM0UsNkJBQXNG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SUFBSSxTQUFTLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUNyRztZQUNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuRTtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7d1ZBbkNRLG9DQUFvQyxTQUFwQyxvQ0FBb0M7bUdBQXBDLG9DQUFvQyw0RUFObEM7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7Z0JBQzlGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ3RELG1CQUFtQjthQUN0QjtZQzNDTCxpRkFBMkU7WUFFM0UseUdBK0JlOztZQUVmLHdHQW1DZTs7O1lBdEVYLHFDQUFnQjtZQUVMLGVBQXFFO1lBQXJFLDBHQUFxRTtZQWlDckUsZUFBcUU7WUFBckUsMEdBQXFFOzs7dUZEVXZFLG9DQUFvQztjQVhoRCxTQUFTOzJCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQztvQkFDUCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLHNDQUFzQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7b0JBQzlGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7b0JBQ3RELG1CQUFtQjtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZUFkYXB0ZXIsIERyRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZvcmVjYXN0VGFnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGUtdGFncy9mb3JlY2FzdC10YWcvZm9yZWNhc3QtdGFnLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGltZWZyYW1lT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RhdGVQaWNrZXInO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRHJGaXNjYWxNb250aENhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kci1maXNjYWwtbW9udGgtY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBGaXNjYWxNb250aEFkYXB0ZXIgZXh0ZW5kcyBDdXN0b21EYXRlQWRhcHRlciB7XG4gICAgcmVhZG9ubHkgZGF0ZVBpY2tlclNlcnZpY2UgPSBpbmplY3QoRHJEYXRlUGlja2VyU2VydmljZSk7XG5cbiAgICBvdmVycmlkZSBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBGb3JlY2FzdFRhZ1NlcnZpY2UuZ2V0Rm9yZWNhc3RNb250aFRlbXBsYXRlcygpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGZvcm1hdChkYXRlOiBtb21lbnQuTW9tZW50LCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcgfCBhbnkge1xuICAgICAgICBpZiAoIWRhdGUpIHJldHVybiAnJztcbiAgICAgICAgY29uc3QgZGF0ZVRvRm9ybWF0ID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZShkYXRlLmNsb25lKCkpO1xuICAgICAgICBjb25zdCBtb250aCA9IGRhdGVUb0Zvcm1hdC5tb250aCgpO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZVRvRm9ybWF0LnllYXIoKTtcbiAgICAgICAgcmV0dXJuIGAke0ZvcmVjYXN0VGFnU2VydmljZS5nZXRGb3JlY2FzdExhYmVsKG1vbnRoICsgMSl9ICgke3llYXJ9KWA7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgdG9kYXkoKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb21lbnQgPSBtb21lbnQudXRjKCk7XG4gICAgICAgIGNvbnN0IG1vbWVudFdpdGhTdWJzdHJNb250aCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUoY3VycmVudE1vbWVudCk7XG4gICAgICAgIGNvbnN0IG1vbWVudFdpdGhTaGlmdGVkWWVhciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuYWRkRmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihtb21lbnRXaXRoU3Vic3RyTW9udGgpO1xuICAgICAgICByZXR1cm4gbW9tZW50V2l0aFNoaWZ0ZWRZZWFyID8gbW9tZW50V2l0aFNoaWZ0ZWRZZWFyIDogbW9tZW50V2l0aFN1YnN0ck1vbnRoO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1maXNjYWwtbW9udGgtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4uL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IERyRmlzY2FsTW9udGhDYWxlbmRhclBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IEZpc2NhbE1vbnRoQWRhcHRlciB9LFxuICAgICAgICBEckRhdGVQaWNrZXJTZXJ2aWNlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyRmlzY2FsTW9udGhDYWxlbmRhclBpY2tlckNvbXBvbmVudCBleHRlbmRzIERyRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGN1c3RvbUhlYWRlciA9IERyRmlzY2FsTW9udGhDYWxlbmRhckhlYWRlckNvbXBvbmVudDtcbiAgICBvdmVycmlkZSBmb3JtYXQgPSBUaW1lZnJhbWVPcHRpb24uTU9OVEg7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtYXQoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjaG9zZW5QZXJpb2RIYW5kbGVyKGNob3NlbkRhdGU6IG1vbWVudC5Nb21lbnQsIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLCBwaWNrZXI6IE1hdERhdGVwaWNrZXI8YW55Pik6IHZvaWQge1xuICAgICAgICBpZiAodGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uWUVBUikge1xuICAgICAgICAgICAgY2hvc2VuRGF0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuYWRkRmlzY2FsWWVhck1vbnRoc1RvRGF0ZShjaG9zZW5EYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5NT05USCkge1xuICAgICAgICAgICAgY29uc3QgbW9tZW50V2l0aFNoaWZ0ZWRZZWFyID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJTaGlmdEZvclllYXIoY2hvc2VuRGF0ZSk7XG4gICAgICAgICAgICBjaG9zZW5EYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5hZGRGaXNjYWxZZWFyTW9udGhzVG9EYXRlKFxuICAgICAgICAgICAgICAgIG1vbWVudFdpdGhTaGlmdGVkWWVhciA/IG1vbWVudFdpdGhTaGlmdGVkWWVhciA6IGNob3NlbkRhdGUsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSB0aW1lZnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkSW5DYWxlbmRhcihjaG9zZW5EYXRlKTtcbiAgICAgICAgICAgIHBpY2tlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRyYW5zZm9ybURpc3BsYXllZFZhbHVlKHZhbHVlOiBtb21lbnQuTW9tZW50LCB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbik6IG1vbWVudC5Nb21lbnQge1xuICAgICAgICBjb25zdCB2YWx1ZVRvUmV0dXJuID0gdmFsdWU/LmNsb25lKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHZhbHVlVG9SZXR1cm4gJiZcbiAgICAgICAgICAgICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmlzVGltZWZyYW1lRGVwZW5kaW5nT25GWSh0aW1lZnJhbWUpIHx8IHRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLk1PTlRIKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuYWRkRmlzY2FsWWVhclNoaWZ0Rm9yWWVhcih2YWx1ZVRvUmV0dXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWVUb1JldHVybjtcbiAgICB9XG59XG4iLCI8aSAqbmdJZj1cIiF1c2VCdXR0b25cIiBjbGFzcz1cImRyLWljb24tZGF0ZVwiIChjbGljayk9XCJkYXRlUGlja2VyLm9wZW4oKVwiPjwvaT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIihkYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUkIHwgYXN5bmMpID09PSB0aW1lZnJhbWVPcHRpb24uV0VFS1wiPlxuICAgIDxpbnB1dFxuICAgICAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgICAgIFtuZ01vZGVsXT1cImlucHV0LnZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW21pbl09XCJfbWluXCJcbiAgICAgICAgW21heF09XCJfbWF4XCIgLz5cblxuICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbZm9ybUdyb3VwXT1cInJhbmdlRm9ybVwiIFtyYW5nZVBpY2tlcl09XCJkYXRlUGlja2VyXCIgW2RhdGVGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiIGNsYXNzPVwicmFuZ2UtaW5wdXRcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRTdGFydERhdGVcbiAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgW2RyRGF0ZVBpY2tlckZvcm1hdF09XCJkYXRlUGlja2VyU2VydmljZS5mb3JtYXQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwidmFsdWVDaGFuZ2VkSW5DYWxlbmRhcihyYW5nZUZvcm0udmFsdWUuc3RhcnQpXCIgLz5cbiAgICAgICAgPGlucHV0IG1hdEVuZERhdGUgW2RyRGF0ZVBpY2tlckZvcm1hdF09XCJkYXRlUGlja2VyU2VydmljZS5mb3JtYXQkIHwgYXN5bmNcIiBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIiAvPlxuICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyXG4gICAgICAgICNkYXRlUGlja2VyXG4gICAgICAgIFtzdGFydEF0XT1cIl9zdGFydEF0XCJcbiAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ2RyLXdlZWstZGF0ZXBpY2tlcicgKyAocGFuZWxDbGFzcyA/ICcgJyArIHBhbmVsQ2xhc3MgOiAnJylcIlxuICAgICAgICBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiY3VzdG9tSGVhZGVyXCJcbiAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLllFQVIsIGRhdGVQaWNrZXIpXCJcbiAgICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwiY2hvc2VuUGVyaW9kSGFuZGxlcigkZXZlbnQsIHRpbWVmcmFtZU9wdGlvbi5NT05USCwgZGF0ZVBpY2tlcilcIlxuICAgICAgICAob3BlbmVkKT1cIm9uT3BlbigpXCJcbiAgICAgICAgKGNsb3NlZCk9XCJvbkNMb3NlKClcIj5cbiAgICA8L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiKGRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSQgfCBhc3luYykgIT09IHRpbWVmcmFtZU9wdGlvbi5XRUVLXCI+XG4gICAgPGlucHV0XG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZGlzcGxheVZhbHVlJCB8IGFzeW5jXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2VkSW5DYWxlbmRhcigkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZVBpY2tlclwiXG4gICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbZHJEYXRlUGlja2VyRm9ybWF0XT1cImRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQgfCBhc3luY1wiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFttaW5dPVwiX21pblwiXG4gICAgICAgIFttYXhdPVwiX21heFwiXG4gICAgICAgIFtjbGFzcy5oaWRkZW4tY2FsZW5kYXItaW5wdXRdPVwidXNlQnV0dG9uXCIgLz5cblxuICAgIDxkci1idXR0b25cbiAgICAgICAgKm5nSWY9XCJ1c2VCdXR0b25cIlxuICAgICAgICBbaWNvbl09XCInZHItaWNvbi1kYXRlJ1wiXG4gICAgICAgIFtpY29uQWZ0ZXJdPVwiaWNvbkFmdGVyQnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWJ1dHRvblwiPlxuICAgICAgICB7eyBidXR0b25MYWJlbCB8fCAnU2VsZWN0IERhdGUnIH19XG4gICAgPC9kci1idXR0b24+XG5cbiAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICAgI2RhdGVQaWNrZXJcbiAgICAgICAgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiXG4gICAgICAgIFtzdGFydEF0XT1cIl9zdGFydEF0XCJcbiAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImN1c3RvbUhlYWRlclwiXG4gICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwiY2hvc2VuUGVyaW9kSGFuZGxlcigkZXZlbnQsIHRpbWVmcmFtZU9wdGlvbi5ZRUFSLCBkYXRlUGlja2VyKVwiXG4gICAgICAgIChtb250aFNlbGVjdGVkKT1cImNob3NlblBlcmlvZEhhbmRsZXIoJGV2ZW50LCB0aW1lZnJhbWVPcHRpb24uTU9OVEgsIGRhdGVQaWNrZXIpXCJcbiAgICAgICAgKG9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gICAgICAgIChjbG9zZWQpPVwib25DTG9zZSgpXCI+XG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cbjwvbmctY29udGFpbmVyPlxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1waWNrZXIvZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7OztJQ1RuRyw0QkFBdUU7SUFBNUIsMEtBQVMsZUFBQSx3QkFBaUIsQ0FBQSxJQUFDO0lBQUMsaUJBQUk7Ozs7SUFFM0UsNkJBQXNG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SUFBSSxTQUFTLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUNyRztZQUNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuRTtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7d1ZBbkNRLG9DQUFvQyxTQUFwQyxvQ0FBb0M7bUdBQXBDLG9DQUFvQyw0RUFObEM7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7Z0JBQzlGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ3RELG1CQUFtQjthQUN0QjtZQzNDTCxpRkFBMkU7WUFFM0UseUdBK0JlOztZQUVmLHdHQW1DZTs7O1lBdEVYLHFDQUFnQjtZQUVMLGVBQXFFO1lBQXJFLDBHQUFxRTtZQWlDckUsZUFBcUU7WUFBckUsMEdBQXFFOzs7dUZEVXZFLG9DQUFvQztjQVhoRCxTQUFTOzJCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQztvQkFDUCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLHNDQUFzQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7b0JBQzlGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7b0JBQ3RELG1CQUFtQjtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZUFkYXB0ZXIsIERyRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZvcmVjYXN0VGFnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RyLXRhZ3MvZHItdGFnL2RyLXRhZy1kYXRlL2RyLXRhZy1mb3JlY2FzdC9mb3JlY2FzdC10YWcuc2VydmljZSc7XG5pbXBvcnQgeyBUaW1lZnJhbWVPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEckZpc2NhbE1vbnRoQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEZpc2NhbE1vbnRoQWRhcHRlciBleHRlbmRzIEN1c3RvbURhdGVBZGFwdGVyIHtcbiAgICByZWFkb25seSBkYXRlUGlja2VyU2VydmljZSA9IGluamVjdChEckRhdGVQaWNrZXJTZXJ2aWNlKTtcblxuICAgIG92ZXJyaWRlIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEZvcmVjYXN0VGFnU2VydmljZS5nZXRGb3JlY2FzdE1vbnRoVGVtcGxhdGVzKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgZm9ybWF0KGRhdGU6IG1vbWVudC5Nb21lbnQsIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB8IGFueSB7XG4gICAgICAgIGlmICghZGF0ZSkgcmV0dXJuICcnO1xuICAgICAgICBjb25zdCBkYXRlVG9Gb3JtYXQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnN1YnRyYWN0RmlzY2FsWWVhck1vbnRoc0Zyb21EYXRlKGRhdGUuY2xvbmUoKSk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gZGF0ZVRvRm9ybWF0Lm1vbnRoKCk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlVG9Gb3JtYXQueWVhcigpO1xuICAgICAgICByZXR1cm4gYCR7Rm9yZWNhc3RUYWdTZXJ2aWNlLmdldEZvcmVjYXN0TGFiZWwobW9udGggKyAxKX0gKCR7eWVhcn0pYDtcbiAgICB9XG5cbiAgICBvdmVycmlkZSB0b2RheSgpOiBtb21lbnQuTW9tZW50IHtcbiAgICAgICAgY29uc3QgY3VycmVudE1vbWVudCA9IG1vbWVudC51dGMoKTtcbiAgICAgICAgY29uc3QgbW9tZW50V2l0aFN1YnN0ck1vbnRoID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZShjdXJyZW50TW9tZW50KTtcbiAgICAgICAgY29uc3QgbW9tZW50V2l0aFNoaWZ0ZWRZZWFyID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5hZGRGaXNjYWxZZWFyU2hpZnRGb3JZZWFyKG1vbWVudFdpdGhTdWJzdHJNb250aCk7XG4gICAgICAgIHJldHVybiBtb21lbnRXaXRoU2hpZnRlZFllYXIgPyBtb21lbnRXaXRoU2hpZnRlZFllYXIgOiBtb21lbnRXaXRoU3Vic3RyTW9udGg7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWZpc2NhbC1tb250aC1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi4vZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRHJGaXNjYWxNb250aENhbGVuZGFyUGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogRmlzY2FsTW9udGhBZGFwdGVyIH0sXG4gICAgICAgIERyRGF0ZVBpY2tlclNlcnZpY2UsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJGaXNjYWxNb250aENhbGVuZGFyUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgRHJEYXRlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgY3VzdG9tSGVhZGVyID0gRHJGaXNjYWxNb250aENhbGVuZGFySGVhZGVyQ29tcG9uZW50O1xuICAgIG92ZXJyaWRlIGZvcm1hdCA9IFRpbWVmcmFtZU9wdGlvbi5NT05USDtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1hdCgpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGNob3NlblBlcmlvZEhhbmRsZXIoY2hvc2VuRGF0ZTogbW9tZW50Lk1vbWVudCwgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24sIHBpY2tlcjogTWF0RGF0ZXBpY2tlcjxhbnk+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5ZRUFSKSB7XG4gICAgICAgICAgICBjaG9zZW5EYXRlID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5hZGRGaXNjYWxZZWFyTW9udGhzVG9EYXRlKGNob3NlbkRhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLk1PTlRIKSB7XG4gICAgICAgICAgICBjb25zdCBtb21lbnRXaXRoU2hpZnRlZFllYXIgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnN1YnRyYWN0RmlzY2FsWWVhclNoaWZ0Rm9yWWVhcihjaG9zZW5EYXRlKTtcbiAgICAgICAgICAgIGNob3NlbkRhdGUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmFkZEZpc2NhbFllYXJNb250aHNUb0RhdGUoXG4gICAgICAgICAgICAgICAgbW9tZW50V2l0aFNoaWZ0ZWRZZWFyID8gbW9tZW50V2l0aFNoaWZ0ZWRZZWFyIDogY2hvc2VuRGF0ZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUgPT09IHRpbWVmcmFtZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWRJbkNhbGVuZGFyKGNob3NlbkRhdGUpO1xuICAgICAgICAgICAgcGlja2VyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNmb3JtRGlzcGxheWVkVmFsdWUodmFsdWU6IG1vbWVudC5Nb21lbnQsIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGNvbnN0IHZhbHVlVG9SZXR1cm4gPSB2YWx1ZT8uY2xvbmUoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdmFsdWVUb1JldHVybiAmJlxuICAgICAgICAgICAgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNUaW1lZnJhbWVEZXBlbmRpbmdPbkZZKHRpbWVmcmFtZSkgfHwgdGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uTU9OVEgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5hZGRGaXNjYWxZZWFyU2hpZnRGb3JZZWFyKHZhbHVlVG9SZXR1cm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZVRvUmV0dXJuO1xuICAgIH1cbn1cbiIsIjxpICpuZ0lmPVwiIXVzZUJ1dHRvblwiIGNsYXNzPVwiZHItaWNvbi1kYXRlXCIgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCI+PC9pPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiKGRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSQgfCBhc3luYykgPT09IHRpbWVmcmFtZU9wdGlvbi5XRUVLXCI+XG4gICAgPGlucHV0XG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW25nTW9kZWxdPVwiaW5wdXQudmFsdWVcIlxuICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbbWluXT1cIl9taW5cIlxuICAgICAgICBbbWF4XT1cIl9tYXhcIiAvPlxuXG4gICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtmb3JtR3JvdXBdPVwicmFuZ2VGb3JtXCIgW3JhbmdlUGlja2VyXT1cImRhdGVQaWNrZXJcIiBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCIgY2xhc3M9XCJyYW5nZS1pbnB1dFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdFN0YXJ0RGF0ZVxuICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICBbZHJEYXRlUGlja2VyRm9ybWF0XT1cImRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQgfCBhc3luY1wiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiXG4gICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZWRJbkNhbGVuZGFyKHJhbmdlRm9ybS52YWx1ZS5zdGFydClcIiAvPlxuICAgICAgICA8aW5wdXQgbWF0RW5kRGF0ZSBbZHJEYXRlUGlja2VyRm9ybWF0XT1cImRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQgfCBhc3luY1wiIGZvcm1Db250cm9sTmFtZT1cImVuZFwiIC8+XG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cblxuICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXJcbiAgICAgICAgI2RhdGVQaWNrZXJcbiAgICAgICAgW3N0YXJ0QXRdPVwiX3N0YXJ0QXRcIlxuICAgICAgICBbcGFuZWxDbGFzc109XCInZHItd2Vlay1kYXRlcGlja2VyJyArIChwYW5lbENsYXNzID8gJyAnICsgcGFuZWxDbGFzcyA6ICcnKVwiXG4gICAgICAgIFtjYWxlbmRhckhlYWRlckNvbXBvbmVudF09XCJjdXN0b21IZWFkZXJcIlxuICAgICAgICAoeWVhclNlbGVjdGVkKT1cImNob3NlblBlcmlvZEhhbmRsZXIoJGV2ZW50LCB0aW1lZnJhbWVPcHRpb24uWUVBUiwgZGF0ZVBpY2tlcilcIlxuICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLk1PTlRILCBkYXRlUGlja2VyKVwiXG4gICAgICAgIChvcGVuZWQpPVwib25PcGVuKClcIlxuICAgICAgICAoY2xvc2VkKT1cIm9uQ0xvc2UoKVwiPlxuICAgIDwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIoZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lJCB8IGFzeW5jKSAhPT0gdGltZWZyYW1lT3B0aW9uLldFRUtcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICBbbmdNb2RlbF09XCJkaXNwbGF5VmFsdWUkIHwgYXN5bmNcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWRJbkNhbGVuZGFyKCRldmVudClcIlxuICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJkYXRlUGlja2VyXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtkckRhdGVQaWNrZXJGb3JtYXRdPVwiZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW21pbl09XCJfbWluXCJcbiAgICAgICAgW21heF09XCJfbWF4XCJcbiAgICAgICAgW2NsYXNzLmhpZGRlbi1jYWxlbmRhci1pbnB1dF09XCJ1c2VCdXR0b25cIiAvPlxuXG4gICAgPGRyLWJ1dHRvblxuICAgICAgICAqbmdJZj1cInVzZUJ1dHRvblwiXG4gICAgICAgIFtpY29uXT1cIidkci1pY29uLWRhdGUnXCJcbiAgICAgICAgW2ljb25BZnRlcl09XCJpY29uQWZ0ZXJCdXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5vcGVuKClcIlxuICAgICAgICBjbGFzcz1cImRhdGVwaWNrZXItYnV0dG9uXCI+XG4gICAgICAgIHt7IGJ1dHRvbkxhYmVsIHx8ICdTZWxlY3QgRGF0ZScgfX1cbiAgICA8L2RyLWJ1dHRvbj5cblxuICAgIDxtYXQtZGF0ZXBpY2tlclxuICAgICAgICAjZGF0ZVBpY2tlclxuICAgICAgICBbcGFuZWxDbGFzc109XCJwYW5lbENsYXNzXCJcbiAgICAgICAgW3N0YXJ0QXRdPVwiX3N0YXJ0QXRcIlxuICAgICAgICBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiY3VzdG9tSGVhZGVyXCJcbiAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJjaG9zZW5QZXJpb2RIYW5kbGVyKCRldmVudCwgdGltZWZyYW1lT3B0aW9uLllFQVIsIGRhdGVQaWNrZXIpXCJcbiAgICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwiY2hvc2VuUGVyaW9kSGFuZGxlcigkZXZlbnQsIHRpbWVmcmFtZU9wdGlvbi5NT05USCwgZGF0ZVBpY2tlcilcIlxuICAgICAgICAob3BlbmVkKT1cIm9uT3BlbigpXCJcbiAgICAgICAgKGNsb3NlZCk9XCJvbkNMb3NlKClcIj5cbiAgICA8L21hdC1kYXRlcGlja2VyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,87 @@
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, isForecastMultipleDimension) {
26
+ return {
27
+ [Scenario.ACTUALS]: {
28
+ ...allDateTags,
29
+ [TagsConfigSubType.MONTH]: {
30
+ name: 'Date',
31
+ toggle: true,
32
+ },
33
+ [TagsConfigSubType.FILE_STATUS]: {
34
+ toggle: false,
35
+ },
36
+ },
37
+ [Scenario.BUDGET]: {
38
+ [TagsConfigSubType.BUDGET_CYCLE]: {
39
+ toggle: true,
40
+ acceptableSubTags: [TagsConfigSubType.YEAR],
41
+ hidden: !isMultipleDimension,
42
+ },
43
+ [TagsConfigSubType.PLAN]: {
44
+ toggle: false,
45
+ turnOffDateTags: true,
46
+ hidden: isMultipleDimension,
47
+ },
48
+ [TagsConfigSubType.YEAR]: {
49
+ name: 'Date',
50
+ toggle: true,
51
+ },
52
+ [TagsConfigSubType.QUARTER]: {
53
+ name: 'Date',
54
+ toggle: false,
55
+ },
56
+ [TagsConfigSubType.FILE_STATUS]: {
57
+ toggle: false,
58
+ },
59
+ },
60
+ [Scenario.FORECAST]: {
61
+ [TagsConfigSubType.FORECAST_NEW]: {
62
+ toggle: true,
63
+ name: isForecastMultipleDimension ? 'Scenario cycle' : 'Date',
64
+ },
65
+ [TagsConfigSubType.FORECAST_CYCLE]: {
66
+ toggle: true,
67
+ name: 'Planning scenario',
68
+ acceptableSubTags: [TagsConfigSubType.FORECAST_NEW],
69
+ hidden: !isForecastMultipleDimension,
70
+ },
71
+ [TagsConfigSubType.FILE_STATUS]: {
72
+ toggle: false,
73
+ },
74
+ },
75
+ [Scenario.NONE]: {
76
+ ...allDateTags,
77
+ [TagsConfigSubType.MONTH]: {
78
+ name: 'Date',
79
+ toggle: true,
80
+ },
81
+ [TagsConfigSubType.FILE_STATUS]: {
82
+ toggle: true,
83
+ },
84
+ },
85
+ };
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8tdGFncy1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWdzL19jb25zdHMvc2NlbmFyaW8tdGFncy1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBNEMsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN2QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNyQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSx3QkFBd0IsQ0FDcEMsbUJBQTRCLEVBQzVCLDJCQUFvQztJQUVwQyxPQUFPO1FBQ0gsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEIsR0FBRyxXQUFXO1lBQ2QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLElBQUk7YUFDZjtZQUNELENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2FBQ2hCO1NBQ0o7UUFDRCxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNmLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sRUFBRSxJQUFJO2dCQUNaLGlCQUFpQixFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUMzQyxNQUFNLEVBQUUsQ0FBQyxtQkFBbUI7YUFDL0I7WUFDRCxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0QixNQUFNLEVBQUUsS0FBSztnQkFDYixlQUFlLEVBQUUsSUFBSTtnQkFDckIsTUFBTSxFQUFFLG1CQUFtQjthQUM5QjtZQUNELENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2FBQ2Y7WUFDRCxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsS0FBSzthQUNoQjtZQUNELENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2FBQ2hCO1NBQ0o7UUFDRCxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNqQixDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM5QixNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNO2FBQ2hFO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxFQUFFLElBQUk7Z0JBQ1osSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsaUJBQWlCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ25ELE1BQU0sRUFBRSxDQUFDLDJCQUEyQjthQUN2QztZQUNELENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2FBQ2hCO1NBQ0o7UUFDRCxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNiLEdBQUcsV0FBVztZQUNkLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2FBQ2Y7WUFDRCxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsSUFBSTthQUNmO1NBQ0o7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhZ3NDb25maWdTdWJUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgU2NlbmFyaW8sIFRTY2VuYXJpb1RhZ0NvbmZpZ0RhdGEsIFRTY2VuYXJpb1RhZ0RhdGEgfSBmcm9tICcuLi9faW50ZXJmYWNlcy9zY2VuYXJpbyc7XG5cbmV4cG9ydCBjb25zdCBhbGxEYXRlVGFncyA9IHtcbiAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuWUVBUl06IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH0sXG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLlFVQVJURVJdOiB7XG4gICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICB9LFxuICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5NT05USF06IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH0sXG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLkRBWV06IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH0sXG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLldFRUtdOiB7XG4gICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICB9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyhcbiAgICBpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuLFxuICAgIGlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbixcbik6IFRTY2VuYXJpb1RhZ0RhdGE8VFNjZW5hcmlvVGFnQ29uZmlnRGF0YT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIFtTY2VuYXJpby5BQ1RVQUxTXToge1xuICAgICAgICAgICAgLi4uYWxsRGF0ZVRhZ3MsXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuTU9OVEhdOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuRklMRV9TVEFUVVNdOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtTY2VuYXJpby5CVURHRVRdOiB7XG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuQlVER0VUX0NZQ0xFXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhY2NlcHRhYmxlU3ViVGFnczogW1RhZ3NDb25maWdTdWJUeXBlLllFQVJdLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogIWlzTXVsdGlwbGVEaW1lbnNpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLlBMQU5dOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0dXJuT2ZmRGF0ZVRhZ3M6IHRydWUsXG4gICAgICAgICAgICAgICAgaGlkZGVuOiBpc011bHRpcGxlRGltZW5zaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSXToge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLlFVQVJURVJdOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkZJTEVfU1RBVFVTXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2NlbmFyaW8uRk9SRUNBU1RdOiB7XG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfTkVXXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBpc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb24gPyAnU2NlbmFyaW8gY3ljbGUnIDogJ0RhdGUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9DWUNMRV06IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgbmFtZTogJ1BsYW5uaW5nIHNjZW5hcmlvJyxcbiAgICAgICAgICAgICAgICBhY2NlcHRhYmxlU3ViVGFnczogW1RhZ3NDb25maWdTdWJUeXBlLkZPUkVDQVNUX05FV10sXG4gICAgICAgICAgICAgICAgaGlkZGVuOiAhaXNGb3JlY2FzdE11bHRpcGxlRGltZW5zaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GSUxFX1NUQVRVU106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NjZW5hcmlvLk5PTkVdOiB7XG4gICAgICAgICAgICAuLi5hbGxEYXRlVGFncyxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5NT05USF06IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GSUxFX1NUQVRVU106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH07XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWdzL19pbnRlcmZhY2VzL3NjZW5hcmlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDaEIsK0JBQW1CLENBQUE7SUFDbkIsaUNBQXFCLENBQUE7SUFDckIsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsUUFBUSxLQUFSLFFBQVEsUUFLbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVGFnLCBJVGFnRm9yU2VydmVyLCBUYWdzQ29uZmlnU3ViVHlwZSwgVGFnVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5cbmV4cG9ydCBlbnVtIFNjZW5hcmlvIHtcbiAgICBBQ1RVQUxTID0gJ0FjdHVhbHMnLFxuICAgIEZPUkVDQVNUID0gJ0ZvcmVjYXN0JyxcbiAgICBCVURHRVQgPSAnQnVkZ2V0JyxcbiAgICBOT05FID0gJ05vbmUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuYXJpb1RhZyBleHRlbmRzIElUYWcge1xuICAgIHNjZW5hcmlvRGF0YTogSVNjZW5hcmlvO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuYXJpb0NvbW1vbiB7XG4gICAgdG9nZ2xlOiBib29sZWFuO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGFjY2VwdGFibGVTdWJUYWdzPzogVGFnc0NvbmZpZ1N1YlR5cGVbXTtcbiAgICB0dXJuT2ZmRGF0ZVRhZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuYXJpbyBleHRlbmRzIE9taXQ8SVNjZW5hcmlvQ29tbW9uLCAnbmFtZScgfCAnZGVzY3JpcHRpb24nPiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuYXJpb1RhZ1VpIGV4dGVuZHMgSVNjZW5hcmlvQ29tbW9uIHtcbiAgICBzZWxlY3RlZFRhZ1N1YlR5cGU6IFRhZ3NDb25maWdTdWJUeXBlO1xuICAgIHR5cGU6IFRhZ1R5cGVzO1xuICAgIHN1YlRhZ3M/OiBJU2NlbmFyaW9TdWJUYWdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2NlbmFyaW9TdWJUYWcge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzdWJUeXBlOiBUYWdzQ29uZmlnU3ViVHlwZTtcbiAgICBoaWRkZW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBUU2NlbmFyaW9UYWdDb25maWdEYXRhID0geyBba2V5IGluIFRhZ3NDb25maWdTdWJUeXBlXT86IElTY2VuYXJpbyB9O1xuZXhwb3J0IHR5cGUgVFNjZW5hcmlvVGFnRGF0YTxUPiA9IHsgW2tleSBpbiBTY2VuYXJpb10/OiBUIH07XG5leHBvcnQgdHlwZSBUU2NlbmFyaW9EYXRhQ2hhbmdlZCA9IHsgc2NlbmFyaW86IFNjZW5hcmlvOyB0YWdzPzogSVRhZ0ZvclNlcnZlcltdOyB0YWdzQ29uZmlnPzogSVRhZ1tdIH07XG4iXX0=
@@ -0,0 +1,195 @@
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, indexOf as _indexOf, reduce as _reduce, some as _some, map as _map, includes as _includes, } from 'lodash';
5
+ import { getScenarioTagDataConfig } from '../_consts/scenario-tags-config';
6
+ import * as i0 from "@angular/core";
7
+ export class ScenarioService {
8
+ constructor() {
9
+ this.DEFAULT_FORECAST_DATE_TAG = 'Month';
10
+ }
11
+ get scenarios() {
12
+ return _orderBy(Object.values(Scenario), (scenario) => (scenario === Scenario.NONE ? 1 : 0));
13
+ }
14
+ get areExistingTagsConfig() {
15
+ return !!this.currentTagsConfig;
16
+ }
17
+ initScenarioTags(wholeTagsConfig, currentTagsConfig, isMultipleDimension, isForecastMultipleDimension) {
18
+ if (!wholeTagsConfig?.length)
19
+ return;
20
+ this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);
21
+ this.currentTagsConfig = currentTagsConfig;
22
+ this.isMultipleDimension = isMultipleDimension;
23
+ this.isForecastMultipleDimension = isForecastMultipleDimension;
24
+ }
25
+ getTagsConfigByScenarioTags(scenarioTags, tagsConfig) {
26
+ const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) => _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));
27
+ return this.sortScenarioTags(scenarioTagsConfig);
28
+ }
29
+ getScenarioTagsByScenario(scenario) {
30
+ const scenarioTagsConfig = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);
31
+ const scenarioTagsUi = [];
32
+ _forEach(scenarioTagsConfig, (scenarioTag) => {
33
+ const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;
34
+ const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });
35
+ const tag = tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);
36
+ if (isTagWithSubTags) {
37
+ this.updateScenarioSubTags(tag, scenarioTag);
38
+ tag.subTags = ScenarioService.sortedSubTags(tag);
39
+ }
40
+ if (tagWithSubTags)
41
+ return;
42
+ scenarioTagsUi.push(tag);
43
+ });
44
+ if (this.areExistingTagsConfig) {
45
+ this.initExistingTagsConfig(scenario, scenarioTagsUi);
46
+ }
47
+ const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });
48
+ if (isTagNotSupportingDates) {
49
+ this.turnOffDateTag(scenarioTagsUi);
50
+ }
51
+ const tagWithSpecificDateTags = _find(scenarioTagsUi, (tag) => tag.toggle && !!tag.acceptableSubTags?.length);
52
+ if (tagWithSpecificDateTags) {
53
+ this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);
54
+ }
55
+ return this.sortScenarioTags(scenarioTagsUi);
56
+ }
57
+ tagNotSupportingDatesHandler(tag, tagNotSupportingDates, dateTag) {
58
+ if (!tagNotSupportingDates || !tag.toggle)
59
+ return;
60
+ if (tag.type === TagTypes.DATE) {
61
+ tagNotSupportingDates.toggle = false;
62
+ }
63
+ if (tag === tagNotSupportingDates) {
64
+ if (dateTag) {
65
+ dateTag.toggle = false;
66
+ }
67
+ }
68
+ }
69
+ tagAcceptableSubTagsHandler(tag, dateTag) {
70
+ if (!tag.acceptableSubTags?.length)
71
+ return;
72
+ if (!dateTag)
73
+ return;
74
+ dateTag.subTags = _map(dateTag.subTags, (subTag) => {
75
+ subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);
76
+ return subTag;
77
+ });
78
+ dateTag.selectedTagSubType = tag.acceptableSubTags[0];
79
+ }
80
+ sortScenarioTags(scenarioTagsUi) {
81
+ return _orderBy(scenarioTagsUi, [(tag) => (tag.type === TagTypes.DATE ? 0 : 1), (tag) => tag.name === 'File Status']);
82
+ }
83
+ static sortedSubTags(tag) {
84
+ const SUB_TAGS_ORDER = [
85
+ TagsConfigSubType.DAY,
86
+ TagsConfigSubType.WEEK,
87
+ TagsConfigSubType.MONTH,
88
+ TagsConfigSubType.QUARTER,
89
+ TagsConfigSubType.YEAR,
90
+ ];
91
+ return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));
92
+ }
93
+ initExistingTagsConfig(scenario, scenarioTagsUi) {
94
+ _forEach(this.currentTagsConfig, (tagConfig) => {
95
+ const tagSubType = tagConfig?.options?.sub_type;
96
+ const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);
97
+ if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {
98
+ return;
99
+ }
100
+ const scenarioTagUi = tagConfig.type === TagTypes.DATE
101
+ ? _find(scenarioTagsUi, { type: tagConfig.type })
102
+ : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });
103
+ if (scenarioTagUi) {
104
+ scenarioTagUi.toggle = true;
105
+ scenarioTagUi.selectedTagSubType = tagSubType;
106
+ }
107
+ });
108
+ }
109
+ prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isDateTag) {
110
+ const toggleStatus = isDateTag
111
+ ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)
112
+ : scenarioTag.scenarioData.toggle;
113
+ const selectedTagSubType = isDateTag
114
+ ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)
115
+ : scenarioTag.options.sub_type;
116
+ const tag = {
117
+ toggle: this.areExistingTagsConfig ? false : toggleStatus,
118
+ name: scenarioTag.scenarioData.name || scenarioTag.name,
119
+ description: scenarioTag.scenarioData.description || scenarioTag.description,
120
+ type: scenarioTag.type,
121
+ selectedTagSubType,
122
+ };
123
+ if (scenarioTag.scenarioData.turnOffDateTags) {
124
+ tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;
125
+ }
126
+ if (scenarioTag.scenarioData.acceptableSubTags) {
127
+ tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;
128
+ }
129
+ return tag;
130
+ }
131
+ updateScenarioSubTags(tag, scenarioTag) {
132
+ if (!tag.subTags) {
133
+ tag.subTags = [];
134
+ }
135
+ const tagSubType = scenarioTag.options.sub_type;
136
+ tag.subTags.push({
137
+ subType: tagSubType,
138
+ name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,
139
+ });
140
+ }
141
+ turnOffDateTag(scenarioTags) {
142
+ const dateTag = _find(scenarioTags, { type: TagTypes.DATE });
143
+ if (!dateTag)
144
+ return;
145
+ dateTag.toggle = false;
146
+ }
147
+ hideNotAvailableTags(tagWithSpecificDateTags, scenarioTags) {
148
+ const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;
149
+ if (!subTags.length)
150
+ return;
151
+ _forEach(scenarioTags, (tag) => {
152
+ if (!tag.acceptableSubTags?.length)
153
+ return;
154
+ if (tag !== tagWithSpecificDateTags) {
155
+ tag.toggle = false;
156
+ }
157
+ });
158
+ _forEach(subTags, (subTag) => {
159
+ subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);
160
+ });
161
+ }
162
+ getScenarioSelectedDateTag(scenario, dateTags) {
163
+ const monthSubType = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options
164
+ ?.sub_type;
165
+ const scenarioSelectedDateTag = {
166
+ [Scenario.ACTUALS]: () => monthSubType,
167
+ [Scenario.BUDGET]: () => _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,
168
+ [Scenario.FORECAST]: () => _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options
169
+ ?.sub_type,
170
+ [Scenario.NONE]: () => monthSubType,
171
+ };
172
+ if (!scenarioSelectedDateTag[scenario])
173
+ return;
174
+ return scenarioSelectedDateTag[scenario]();
175
+ }
176
+ getScenarioTagsConfig(scenario, tagsConfig) {
177
+ return _reduce(tagsConfig, (acc, tagConfig) => {
178
+ const tagSubType = tagConfig?.options?.sub_type;
179
+ const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);
180
+ const scenarioTagConfig = scenarioTagDataConfig && scenarioTagDataConfig[scenario] ? scenarioTagDataConfig[scenario][tagSubType] : null;
181
+ if (!scenarioTagConfig || scenarioTagConfig.hidden)
182
+ return acc;
183
+ const clonedTagConfig = _cloneDeep(tagConfig);
184
+ const scenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };
185
+ acc.push(scenarioTag);
186
+ return acc;
187
+ }, []);
188
+ }
189
+ /** @nocollapse */ static { this.ɵfac = function ScenarioService_Factory(t) { return new (t || ScenarioService)(); }; }
190
+ /** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ScenarioService, factory: ScenarioService.ɵfac }); }
191
+ }
192
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ScenarioService, [{
193
+ type: Injectable
194
+ }], null, null); })();
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXRhZ3MvX3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVEsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUE0RCxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RyxPQUFPLEVBQ0gsU0FBUyxJQUFJLFVBQVUsRUFDdkIsTUFBTSxJQUFJLE9BQU8sRUFDakIsSUFBSSxJQUFJLEtBQUssRUFDYixPQUFPLElBQUksUUFBUSxFQUNuQixPQUFPLElBQUksUUFBUSxFQUNuQixPQUFPLElBQUksUUFBUSxFQUNuQixNQUFNLElBQUksT0FBTyxFQUNqQixJQUFJLElBQUksS0FBSyxFQUNiLEdBQUcsSUFBSSxJQUFJLEVBQ1gsUUFBUSxJQUFJLFNBQVMsR0FDeEIsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRzNFLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVksOEJBQXlCLEdBQUcsT0FBTyxDQUFDO0tBNFAvQztJQXJQRyxJQUFXLFNBQVM7UUFDaEIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxJQUFZLHFCQUFxQjtRQUM3QixPQUFPLENBQUMsQ0FBQyxJ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QzttR0E1UFEsZUFBZTtzR0FBZixlQUFlLFdBQWYsZUFBZTs7dUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhZywgVGFnc0NvbmZpZ1N1YlR5cGUsIFRhZ1R5cGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgSVNjZW5hcmlvLCBJU2NlbmFyaW9TdWJUYWcsIElTY2VuYXJpb1RhZywgSVNjZW5hcmlvVGFnVWksIFNjZW5hcmlvIH0gZnJvbSAnLi4vX2ludGVyZmFjZXMvc2NlbmFyaW8nO1xuaW1wb3J0IHtcbiAgICBjbG9uZURlZXAgYXMgX2Nsb25lRGVlcCxcbiAgICBmaWx0ZXIgYXMgX2ZpbHRlcixcbiAgICBmaW5kIGFzIF9maW5kLFxuICAgIGZvckVhY2ggYXMgX2ZvckVhY2gsXG4gICAgb3JkZXJCeSBhcyBfb3JkZXJCeSxcbiAgICBpbmRleE9mIGFzIF9pbmRleE9mLFxuICAgIHJlZHVjZSBhcyBfcmVkdWNlLFxuICAgIHNvbWUgYXMgX3NvbWUsXG4gICAgbWFwIGFzIF9tYXAsXG4gICAgaW5jbHVkZXMgYXMgX2luY2x1ZGVzLFxufSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnIH0gZnJvbSAnLi4vX2NvbnN0cy9zY2VuYXJpby10YWdzLWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY2VuYXJpb1NlcnZpY2Uge1xuICAgIHByaXZhdGUgREVGQVVMVF9GT1JFQ0FTVF9EQVRFX1RBRyA9ICdNb250aCc7XG5cbiAgICBwcml2YXRlIHdob2xlVGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIHByaXZhdGUgY3VycmVudFRhZ3NDb25maWc6IElUYWdbXTtcbiAgICBwcml2YXRlIGlzTXVsdGlwbGVEaW1lbnNpb246IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBpc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb246IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IHNjZW5hcmlvcygpOiBTY2VuYXJpb1tdIHtcbiAgICAgICAgcmV0dXJuIF9vcmRlckJ5KE9iamVjdC52YWx1ZXMoU2NlbmFyaW8pLCAoc2NlbmFyaW8pID0+IChzY2VuYXJpbyA9PT0gU2NlbmFyaW8uTk9ORSA/IDEgOiAwKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYXJlRXhpc3RpbmdUYWdzQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmN1cnJlbnRUYWdzQ29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0U2NlbmFyaW9UYWdzKFxuICAgICAgICB3aG9sZVRhZ3NDb25maWc6IElUYWdbXSxcbiAgICAgICAgY3VycmVudFRhZ3NDb25maWc6IElUYWdbXSxcbiAgICAgICAgaXNNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbixcbiAgICAgICAgaXNGb3JlY2FzdE11bHRpcGxlRGltZW5zaW9uOiBib29sZWFuLFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoIXdob2xlVGFnc0NvbmZpZz8ubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy53aG9sZVRhZ3NDb25maWcgPSBfY2xvbmVEZWVwKHdob2xlVGFnc0NvbmZpZyk7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ3NDb25maWcgPSBjdXJyZW50VGFnc0NvbmZpZztcbiAgICAgICAgdGhpcy5pc011bHRpcGxlRGltZW5zaW9uID0gaXNNdWx0aXBsZURpbWVuc2lvbjtcbiAgICAgICAgdGhpcy5pc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb24gPSBpc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRhZ3NDb25maWdCeVNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3M6IElTY2VuYXJpb1RhZ1VpW10sIHRhZ3NDb25maWc6IElUYWdbXSk6IElUYWdbXSB7XG4gICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnc0NvbmZpZyA9IF9maWx0ZXIodGFnc0NvbmZpZywgKHRhZ0NvbmZpZykgPT5cbiAgICAgICAgICAgIF9zb21lKFxuICAgICAgICAgICAgICAgIHNjZW5hcmlvVGFncyxcbiAgICAgICAgICAgICAgICAoc2NlbmFyaW9UYWcpID0+IHNjZW5hcmlvVGFnLnRvZ2dsZSAmJiBzY2VuYXJpb1RhZy5zZWxlY3RlZFRhZ1N1YlR5cGUgPT09IHRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnc0NvbmZpZyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNjZW5hcmlvVGFnc0J5U2NlbmFyaW8oc2NlbmFyaW86IFNjZW5hcmlvKSB7XG4gICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnc0NvbmZpZzogSVNjZW5hcmlvVGFnW10gPSB0aGlzLmdldFNjZW5hcmlvVGFnc0NvbmZpZyhzY2VuYXJpbywgdGhpcy53aG9sZVRhZ3NDb25maWcpO1xuICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ3NVaTogSVNjZW5hcmlvVGFnVWlbXSA9IFtdO1xuXG4gICAgICAgIF9mb3JFYWNoKHNjZW5hcmlvVGFnc0NvbmZpZywgKHNjZW5hcmlvVGFnOiBJU2NlbmFyaW9UYWcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzVGFnV2l0aFN1YlRhZ3MgPSBzY2VuYXJpb1RhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFO1xuICAgICAgICAgICAgY29uc3QgdGFnV2l0aFN1YlRhZ3MgPSBpc1RhZ1dpdGhTdWJUYWdzICYmIF9maW5kKHNjZW5hcmlvVGFnc1VpLCB7IHR5cGU6IHNjZW5hcmlvVGFnLnR5cGUgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHRhZzogSVNjZW5hcmlvVGFnVWkgPVxuICAgICAgICAgICAgICAgIHRhZ1dpdGhTdWJUYWdzIHx8IHRoaXMucHJlcGFyZVNjZW5hcmlvVGFnKHNjZW5hcmlvVGFnc0NvbmZpZywgc2NlbmFyaW9UYWcsIHNjZW5hcmlvLCBpc1RhZ1dpdGhTdWJUYWdzKTtcblxuICAgICAgICAgICAgaWYgKGlzVGFnV2l0aFN1YlRhZ3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNjZW5hcmlvU3ViVGFncyh0YWcsIHNjZW5hcmlvVGFnKTtcbiAgICAgICAgICAgICAgICB0YWcuc3ViVGFncyA9IFNjZW5hcmlvU2VydmljZS5zb3J0ZWRTdWJUYWdzKHRhZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0YWdXaXRoU3ViVGFncykgcmV0dXJuO1xuICAgICAgICAgICAgc2NlbmFyaW9UYWdzVWkucHVzaCh0YWcpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEV4aXN0aW5nVGFnc0NvbmZpZyhzY2VuYXJpbywgc2NlbmFyaW9UYWdzVWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNUYWdOb3RTdXBwb3J0aW5nRGF0ZXMgPSBfc29tZShzY2VuYXJpb1RhZ3NVaSwgeyB0dXJuT2ZmRGF0ZVRhZ3M6IHRydWUsIHRvZ2dsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKGlzVGFnTm90U3VwcG9ydGluZ0RhdGVzKSB7XG4gICAgICAgICAgICB0aGlzLnR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnc1VpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSA9IF9maW5kKFxuICAgICAgICAgICAgc2NlbmFyaW9UYWdzVWksXG4gICAgICAgICAgICAodGFnKSA9PiB0YWcudG9nZ2xlICYmICEhdGFnLmFjY2VwdGFibGVTdWJUYWdzPy5sZW5ndGgsXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0YWdXaXRoU3BlY2lmaWNEYXRlVGFncykge1xuICAgICAgICAgICAgdGhpcy5oaWRlTm90QXZhaWxhYmxlVGFncyh0YWdXaXRoU3BlY2lmaWNEYXRlVGFncywgc2NlbmFyaW9UYWdzVWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NVaSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRhZ05vdFN1cHBvcnRpbmdEYXRlc0hhbmRsZXI8VCBleHRlbmRzIElTY2VuYXJpb1RhZ1VpPih0YWc6IFQsIHRhZ05vdFN1cHBvcnRpbmdEYXRlczogVCwgZGF0ZVRhZzogVCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRhZ05vdFN1cHBvcnRpbmdEYXRlcyB8fCAhdGFnLnRvZ2dsZSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0YWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSkge1xuICAgICAgICAgICAgdGFnTm90U3VwcG9ydGluZ0RhdGVzLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhZyA9PT0gdGFnTm90U3VwcG9ydGluZ0RhdGVzKSB7XG4gICAgICAgICAgICBpZiAoZGF0ZVRhZykge1xuICAgICAgICAgICAgICAgIGRhdGVUYWcudG9nZ2xlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdGFnQWNjZXB0YWJsZVN1YlRhZ3NIYW5kbGVyPFQgZXh0ZW5kcyBJU2NlbmFyaW9UYWdVaT4odGFnOiBULCBkYXRlVGFnOiBUKTogdm9pZCB7XG4gICAgICAgIGlmICghdGFnLmFjY2VwdGFibGVTdWJUYWdzPy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBpZiAoIWRhdGVUYWcpIHJldHVybjtcblxuICAgICAgICBkYXRlVGFnLnN1YlRhZ3MgPSBfbWFwKGRhdGVUYWcuc3ViVGFncywgKHN1YlRhZykgPT4ge1xuICAgICAgICAgICAgc3ViVGFnLmhpZGRlbiA9IHRhZy50b2dnbGUgJiYgIV9pbmNsdWRlcyh0YWcuYWNjZXB0YWJsZVN1YlRhZ3MsIHN1YlRhZy5zdWJUeXBlKTtcbiAgICAgICAgICAgIHJldHVybiBzdWJUYWc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRhdGVUYWcuc2VsZWN0ZWRUYWdTdWJUeXBlID0gdGFnLmFjY2VwdGFibGVTdWJUYWdzWzBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnc1VpOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIF9vcmRlckJ5KHNjZW5hcmlvVGFnc1VpLCBbKHRhZykgPT4gKHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFID8gMCA6IDEpLCAodGFnKSA9PiB0YWcubmFtZSA9PT0gJ0ZpbGUgU3RhdHVzJ10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc29ydGVkU3ViVGFncyh0YWc6IElTY2VuYXJpb1RhZ1VpKTogSVNjZW5hcmlvU3ViVGFnW10ge1xuICAgICAgICBjb25zdCBTVUJfVEFHU19PUkRFUiA9IFtcbiAgICAgICAgICAgIFRhZ3NDb25maWdTdWJUeXBlLkRBWSxcbiAgICAgICAgICAgIFRhZ3NDb25maWdTdWJUeXBlLldFRUssXG4gICAgICAgICAgICBUYWdzQ29uZmlnU3ViVHlwZS5NT05USCxcbiAgICAgICAgICAgIFRhZ3NDb25maWdTdWJUeXBlLlFVQVJURVIsXG4gICAgICAgICAgICBUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSLFxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gX29yZGVyQnkodGFnLnN1YlRhZ3MsIChzdWJUYWcpID0+IF9pbmRleE9mKFNVQl9UQUdTX09SREVSLCBzdWJUYWcuc3ViVHlwZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEV4aXN0aW5nVGFnc0NvbmZpZyhzY2VuYXJpbzogU2NlbmFyaW8sIHNjZW5hcmlvVGFnc1VpOiBJU2NlbmFyaW9UYWdVaVtdKSB7XG4gICAgICAgIF9mb3JFYWNoKHRoaXMuY3VycmVudFRhZ3NDb25maWcsICh0YWdDb25maWcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ1N1YlR5cGUgPSB0YWdDb25maWc/Lm9wdGlvbnM/LnN1Yl90eXBlO1xuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdEYXRhQ29uZmlnID0gZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnKHRoaXMuaXNNdWx0aXBsZURpbWVuc2lvbiwgdGhpcy5pc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICAgICAgaWYgKCFzY2VuYXJpb1RhZ0RhdGFDb25maWcgfHwgIXNjZW5hcmlvVGFnRGF0YUNvbmZpZ1tzY2VuYXJpb10gfHwgIXNjZW5hcmlvVGFnRGF0YUNvbmZpZ1tzY2VuYXJpb11bdGFnU3ViVHlwZV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnVWkgPVxuICAgICAgICAgICAgICAgIHRhZ0NvbmZpZy50eXBlID09PSBUYWdUeXBlcy5EQVRFXG4gICAgICAgICAgICAgICAgICAgID8gX2ZpbmQoc2NlbmFyaW9UYWdzVWksIHsgdHlwZTogdGFnQ29uZmlnLnR5cGUgfSlcbiAgICAgICAgICAgICAgICAgICAgOiBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyBzZWxlY3RlZFRhZ1N1YlR5cGU6IHRhZ1N1YlR5cGUgfSk7XG5cbiAgICAgICAgICAgIGlmIChzY2VuYXJpb1RhZ1VpKSB7XG4gICAgICAgICAgICAgICAgc2NlbmFyaW9UYWdVaS50b2dnbGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNjZW5hcmlvVGFnVWkuc2VsZWN0ZWRUYWdTdWJUeXBlID0gdGFnU3ViVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcmVwYXJlU2NlbmFyaW9UYWcoXG4gICAgICAgIHNjZW5hcmlvVGFnc0NvbmZpZzogSVNjZW5hcmlvVGFnW10sXG4gICAgICAgIHNjZW5hcmlvVGFnOiBJU2NlbmFyaW9UYWcsXG4gICAgICAgIHNjZW5hcmlvOiBTY2VuYXJpbyxcbiAgICAgICAgaXNEYXRlVGFnOiBib29sZWFuLFxuICAgICk6IElTY2VuYXJpb1RhZ1VpIHtcbiAgICAgICAgY29uc3QgdG9nZ2xlU3RhdHVzID0gaXNEYXRlVGFnXG4gICAgICAgICAgICA/IF9zb21lKHNjZW5hcmlvVGFnc0NvbmZpZywgKHRhZykgPT4gdGFnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUgJiYgdGFnLnNjZW5hcmlvRGF0YS50b2dnbGUpXG4gICAgICAgICAgICA6IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS50b2dnbGU7XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUYWdTdWJUeXBlID0gaXNEYXRlVGFnXG4gICAgICAgICAgICA/IHRoaXMuZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW8sIHNjZW5hcmlvVGFnc0NvbmZpZylcbiAgICAgICAgICAgIDogc2NlbmFyaW9UYWcub3B0aW9ucy5zdWJfdHlwZTtcblxuICAgICAgICBjb25zdCB0YWc6IElTY2VuYXJpb1RhZ1VpID0ge1xuICAgICAgICAgICAgdG9nZ2xlOiB0aGlzLmFyZUV4aXN0aW5nVGFnc0NvbmZpZyA/IGZhbHNlIDogdG9nZ2xlU3RhdHVzLFxuICAgICAgICAgICAgbmFtZTogc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLm5hbWUgfHwgc2NlbmFyaW9UYWcubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEuZGVzY3JpcHRpb24gfHwgc2NlbmFyaW9UYWcuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB0eXBlOiBzY2VuYXJpb1RhZy50eXBlLFxuICAgICAgICAgICAgc2VsZWN0ZWRUYWdTdWJUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEudHVybk9mZkRhdGVUYWdzKSB7XG4gICAgICAgICAgICB0YWcudHVybk9mZkRhdGVUYWdzID0gc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLnR1cm5PZmZEYXRlVGFncztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEuYWNjZXB0YWJsZVN1YlRhZ3MpIHtcbiAgICAgICAgICAgIHRhZy5hY2NlcHRhYmxlU3ViVGFncyA9IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5hY2NlcHRhYmxlU3ViVGFncztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTY2VuYXJpb1N1YlRhZ3ModGFnOiBJU2NlbmFyaW9UYWdVaSwgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRhZy5zdWJUYWdzKSB7XG4gICAgICAgICAgICB0YWcuc3ViVGFncyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFnU3ViVHlwZSA9IHNjZW5hcmlvVGFnLm9wdGlvbnMuc3ViX3R5cGU7XG5cbiAgICAgICAgdGFnLnN1YlRhZ3MucHVzaCh7XG4gICAgICAgICAgICBzdWJUeXBlOiB0YWdTdWJUeXBlLFxuICAgICAgICAgICAgbmFtZTogdGFnU3ViVHlwZSA9PT0gVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfTkVXID8gdGhpcy5ERUZBVUxUX0ZPUkVDQVNUX0RBVEVfVEFHIDogc2NlbmFyaW9UYWcubmFtZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0dXJuT2ZmRGF0ZVRhZyhzY2VuYXJpb1RhZ3M6IElTY2VuYXJpb1RhZ1VpW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZVRhZyA9IF9maW5kKHNjZW5hcmlvVGFncywgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuXG4gICAgICAgIGlmICghZGF0ZVRhZykgcmV0dXJuO1xuICAgICAgICBkYXRlVGFnLnRvZ2dsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU5vdEF2YWlsYWJsZVRhZ3ModGFnV2l0aFNwZWNpZmljRGF0ZVRhZ3M6IElTY2VuYXJpb1RhZ1VpLCBzY2VuYXJpb1RhZ3M6IElTY2VuYXJpb1RhZ1VpW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3ViVGFncyA9IF9maW5kKHNjZW5hcmlvVGFncywgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pPy5zdWJUYWdzO1xuICAgICAgICBpZiAoIXN1YlRhZ3MubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgX2ZvckVhY2goc2NlbmFyaW9UYWdzLCAodGFnKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRhZy5hY2NlcHRhYmxlU3ViVGFncz8ubGVuZ3RoKSByZXR1cm47XG4gICAgICAgICAgICBpZiAodGFnICE9PSB0YWdXaXRoU3BlY2lmaWNEYXRlVGFncykge1xuICAgICAgICAgICAgICAgIHRhZy50b2dnbGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgX2ZvckVhY2goc3ViVGFncywgKHN1YlRhZykgPT4ge1xuICAgICAgICAgICAgc3ViVGFnLmhpZGRlbiA9ICF0YWdXaXRoU3BlY2lmaWNEYXRlVGFncy5hY2NlcHRhYmxlU3ViVGFncy5pbmNsdWRlcyhzdWJUYWcuc3ViVHlwZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW86IFNjZW5hcmlvLCBkYXRlVGFnczogSVNjZW5hcmlvVGFnW10pOiBUYWdzQ29uZmlnU3ViVHlwZSB7XG4gICAgICAgIGNvbnN0IG1vbnRoU3ViVHlwZSA9IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5NT05USCk/Lm9wdGlvbnNcbiAgICAgICAgICAgID8uc3ViX3R5cGU7XG5cbiAgICAgICAgY29uc3Qgc2NlbmFyaW9TZWxlY3RlZERhdGVUYWcgPSB7XG4gICAgICAgICAgICBbU2NlbmFyaW8uQUNUVUFMU106ICgpID0+IG1vbnRoU3ViVHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5CVURHRVRdOiAoKSA9PlxuICAgICAgICAgICAgICAgIF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSKT8ub3B0aW9ucz8uc3ViX3R5cGUsXG4gICAgICAgICAgICBbU2NlbmFyaW8uRk9SRUNBU1RdOiAoKSA9PlxuICAgICAgICAgICAgICAgIF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcpPy5vcHRpb25zXG4gICAgICAgICAgICAgICAgICAgID8uc3ViX3R5cGUsXG4gICAgICAgICAgICBbU2NlbmFyaW8uTk9ORV06ICgpID0+IG1vbnRoU3ViVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnW3NjZW5hcmlvXSkgcmV0dXJuO1xuICAgICAgICByZXR1cm4gc2NlbmFyaW9TZWxlY3RlZERhdGVUYWdbc2NlbmFyaW9dKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTY2VuYXJpb1RhZ3NDb25maWcoc2NlbmFyaW86IFNjZW5hcmlvLCB0YWdzQ29uZmlnOiBJVGFnW10pOiBJU2NlbmFyaW9UYWdbXSB7XG4gICAgICAgIHJldHVybiBfcmVkdWNlKFxuICAgICAgICAgICAgdGFnc0NvbmZpZyxcbiAgICAgICAgICAgIChhY2M6IElTY2VuYXJpb1RhZ1tdLCB0YWdDb25maWc6IElUYWcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnRGF0YUNvbmZpZyA9IGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc011bHRpcGxlRGltZW5zaW9uLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbixcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnQ29uZmlnOiBJU2NlbmFyaW8gPVxuICAgICAgICAgICAgICAgICAgICBzY2VuYXJpb1RhZ0RhdGFDb25maWcgJiYgc2NlbmFyaW9UYWdEYXRhQ29uZmlnW3NjZW5hcmlvXSA/IHNjZW5hcmlvVGFnRGF0YUNvbmZpZ1tzY2VuYXJpb11bdGFnU3ViVHlwZV0gOiBudWxsO1xuICAgICAgICAgICAgICAgIGlmICghc2NlbmFyaW9UYWdDb25maWcgfHwgc2NlbmFyaW9UYWdDb25maWcuaGlkZGVuKSByZXR1cm4gYWNjO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVkVGFnQ29uZmlnID0gX2Nsb25lRGVlcCh0YWdDb25maWcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnOiBJU2NlbmFyaW9UYWcgPSB7IC4uLmNsb25lZFRhZ0NvbmZpZywgc2NlbmFyaW9EYXRhOiBzY2VuYXJpb1RhZ0NvbmZpZyB9O1xuXG4gICAgICAgICAgICAgICAgYWNjLnB1c2goc2NlbmFyaW9UYWcpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW10sXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,71 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TagsConfigSubType, TagTypes } from '../../models/serverTags';
3
+ import { find as _find, reduce as _reduce, some as _some } from 'lodash';
4
+ import { ScenarioService } from './scenario.service';
5
+ import * as i0 from "@angular/core";
6
+ export class TagsConstructorService {
7
+ constructor() {
8
+ this.tagsNotSupportingDatesTag = [TagsConfigSubType.PLAN];
9
+ this.tagsAcceptableSubTags = {
10
+ [TagsConfigSubType.BUDGET_CYCLE]: [TagsConfigSubType.YEAR],
11
+ };
12
+ }
13
+ buildTags(tagsConfigToDisplay, selectedTagsConfig) {
14
+ return _reduce(tagsConfigToDisplay, (acc, tagConfig) => {
15
+ const isTagWithSubTags = tagConfig.type === TagTypes.DATE && tagConfig.options.sub_type !== TagsConfigSubType.FORECAST_NEW;
16
+ const tagWithSubTags = isTagWithSubTags && _find(acc, { type: tagConfig.type });
17
+ const tag = tagWithSubTags || this.prepareTag(tagConfig, selectedTagsConfig, isTagWithSubTags);
18
+ if (isTagWithSubTags) {
19
+ this.updateSubTags(tag, tagConfig, selectedTagsConfig);
20
+ tag.subTags = ScenarioService.sortedSubTags(tag);
21
+ }
22
+ if (tagWithSubTags)
23
+ return acc;
24
+ acc.push(tag);
25
+ return acc;
26
+ }, []);
27
+ }
28
+ updateSubTags(tag, tagConfig, selectedTagsConfig) {
29
+ const tagSubType = tagConfig.options.sub_type;
30
+ if (tagSubType === TagsConfigSubType.FORECAST_NEW)
31
+ return;
32
+ if (!tag.subTags) {
33
+ tag.subTags = [];
34
+ }
35
+ tag.name = 'Date';
36
+ const enabledTagSubType = _find(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === tagSubType)?.options
37
+ ?.sub_type;
38
+ tag.toggle = !!enabledTagSubType || tag.toggle;
39
+ if (tag.toggle && enabledTagSubType) {
40
+ tag.selectedTagSubType = tagSubType;
41
+ }
42
+ tag.subTags.push({
43
+ subType: tagSubType,
44
+ name: tagConfig.name,
45
+ });
46
+ }
47
+ prepareTag(tagConfig, selectedTagsConfig, isTagWithSubTags) {
48
+ const selectedTagSubType = isTagWithSubTags ? TagsConfigSubType.MONTH : tagConfig.options.sub_type;
49
+ const toggleStatus = _some(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === selectedTagSubType);
50
+ const tag = {
51
+ toggle: toggleStatus,
52
+ name: tagConfig.name,
53
+ description: tagConfig.description,
54
+ type: tagConfig.type,
55
+ selectedTagSubType,
56
+ };
57
+ if (this.tagsNotSupportingDatesTag.includes(selectedTagSubType)) {
58
+ tag.turnOffDateTags = true;
59
+ }
60
+ if (this.tagsAcceptableSubTags[selectedTagSubType]) {
61
+ tag.acceptableSubTags = this.tagsAcceptableSubTags[selectedTagSubType];
62
+ }
63
+ return tag;
64
+ }
65
+ /** @nocollapse */ static { this.ɵfac = function TagsConstructorService_Factory(t) { return new (t || TagsConstructorService)(); }; }
66
+ /** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: TagsConstructorService, factory: TagsConstructorService.ɵfac }); }
67
+ }
68
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TagsConstructorService, [{
69
+ type: Injectable
70
+ }], null, null); })();
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy1jb25zdHJ1Y3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9fc2VydmljZXMvdGFncy1jb25zdHJ1Y3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFRLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBSXJELE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFcUIsOEJBQXlCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCwwQkFBcUIsR0FBRztZQUNyQyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1NBQzdELENBQUM7S0F3RUw7SUF0RVUsU0FBUyxDQUFDLG1CQUEyQixFQUFFLGtCQUEwQjtRQUNwRSxPQUFPLE9BQU8sQ0FDVixtQkFBbUIsRUFDbkIsQ0FBQyxHQUFHLEVBQUUsU0FBZSxFQUFFLEVBQUU7WUFDckIsTUFBTSxnQkFBZ0IsR0FDbEIsU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLGlCQUFpQixDQUFDLFlBQVksQ0FBQztZQUN0RyxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRWhGLE1BQU0sR0FBRyxHQUFHLGNBQWMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBRS9GLElBQUksZ0JBQWdCLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN2RCxHQUFHLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEQ7WUFFRCxJQUFJLGNBQWM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFFL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFtQixFQUFFLFNBQWUsRUFBRSxrQkFBMEI7UUFDbEYsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDOUMsSUFBSSxVQUFVLEtBQUssaUJBQWlCLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFMUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDZCxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNwQjtRQUVELEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBRWxCLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsRUFBRSxPQUFPO1lBQ3BILEVBQUUsUUFBUSxDQUFDO1FBQ2YsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsaUJBQWlCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUUvQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksaUJBQWlCLEVBQUU7WUFDakMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQztTQUN2QztRQUVELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2IsT0FBTyxFQUFFLFVBQVU7WUFDbkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1NBQ3ZCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxVQUFVLENBQUMsU0FBZSxFQUFFLGtCQUEwQixFQUFFLGdCQUF5QjtRQUNyRixNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ25HLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsQ0FBQztRQUVuSCxNQUFNLEdBQUcsR0FBbUI7WUFDeEIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVztZQUNsQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsa0JBQWtCO1NBQ3JCLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUM3RCxHQUFHLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUM5QjtRQUVELElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDaEQsR0FBRyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzBHQTNFUSxzQkFBc0I7c0dBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7O3VGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUYWcsIFRhZ3NDb25maWdTdWJUeXBlLCBUYWdUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IGZpbmQgYXMgX2ZpbmQsIHJlZHVjZSBhcyBfcmVkdWNlLCBzb21lIGFzIF9zb21lIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFNjZW5hcmlvU2VydmljZSB9IGZyb20gJy4vc2NlbmFyaW8uc2VydmljZSc7XG5pbXBvcnQgeyBJU2NlbmFyaW9UYWdVaSB9IGZyb20gJy4uL19pbnRlcmZhY2VzL3NjZW5hcmlvJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhZ3NDb25zdHJ1Y3RvclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFnc05vdFN1cHBvcnRpbmdEYXRlc1RhZyA9IFtUYWdzQ29uZmlnU3ViVHlwZS5QTEFOXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhZ3NBY2NlcHRhYmxlU3ViVGFncyA9IHtcbiAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkJVREdFVF9DWUNMRV06IFtUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSXSxcbiAgICB9O1xuXG4gICAgcHVibGljIGJ1aWxkVGFncyh0YWdzQ29uZmlnVG9EaXNwbGF5OiBJVGFnW10sIHNlbGVjdGVkVGFnc0NvbmZpZzogSVRhZ1tdKTogSVNjZW5hcmlvVGFnVWlbXSB7XG4gICAgICAgIHJldHVybiBfcmVkdWNlKFxuICAgICAgICAgICAgdGFnc0NvbmZpZ1RvRGlzcGxheSxcbiAgICAgICAgICAgIChhY2MsIHRhZ0NvbmZpZzogSVRhZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzVGFnV2l0aFN1YlRhZ3MgPVxuICAgICAgICAgICAgICAgICAgICB0YWdDb25maWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSAmJiB0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSAhPT0gVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfTkVXO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ1dpdGhTdWJUYWdzID0gaXNUYWdXaXRoU3ViVGFncyAmJiBfZmluZChhY2MsIHsgdHlwZTogdGFnQ29uZmlnLnR5cGUgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0YWcgPSB0YWdXaXRoU3ViVGFncyB8fCB0aGlzLnByZXBhcmVUYWcodGFnQ29uZmlnLCBzZWxlY3RlZFRhZ3NDb25maWcsIGlzVGFnV2l0aFN1YlRhZ3MpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzVGFnV2l0aFN1YlRhZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTdWJUYWdzKHRhZywgdGFnQ29uZmlnLCBzZWxlY3RlZFRhZ3NDb25maWcpO1xuICAgICAgICAgICAgICAgICAgICB0YWcuc3ViVGFncyA9IFNjZW5hcmlvU2VydmljZS5zb3J0ZWRTdWJUYWdzKHRhZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRhZ1dpdGhTdWJUYWdzKSByZXR1cm4gYWNjO1xuXG4gICAgICAgICAgICAgICAgYWNjLnB1c2godGFnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3ViVGFncyh0YWc6IElTY2VuYXJpb1RhZ1VpLCB0YWdDb25maWc6IElUYWcsIHNlbGVjdGVkVGFnc0NvbmZpZzogSVRhZ1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhZ1N1YlR5cGUgPSB0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZTtcbiAgICAgICAgaWYgKHRhZ1N1YlR5cGUgPT09IFRhZ3NDb25maWdTdWJUeXBlLkZPUkVDQVNUX05FVykgcmV0dXJuO1xuXG4gICAgICAgIGlmICghdGFnLnN1YlRhZ3MpIHtcbiAgICAgICAgICAgIHRhZy5zdWJUYWdzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICB0YWcubmFtZSA9ICdEYXRlJztcblxuICAgICAgICBjb25zdCBlbmFibGVkVGFnU3ViVHlwZSA9IF9maW5kKHNlbGVjdGVkVGFnc0NvbmZpZywgKF90YWdDb25maWcpID0+IF90YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSA9PT0gdGFnU3ViVHlwZSk/Lm9wdGlvbnNcbiAgICAgICAgICAgID8uc3ViX3R5cGU7XG4gICAgICAgIHRhZy50b2dnbGUgPSAhIWVuYWJsZWRUYWdTdWJUeXBlIHx8IHRhZy50b2dnbGU7XG5cbiAgICAgICAgaWYgKHRhZy50b2dnbGUgJiYgZW5hYmxlZFRhZ1N1YlR5cGUpIHtcbiAgICAgICAgICAgIHRhZy5zZWxlY3RlZFRhZ1N1YlR5cGUgPSB0YWdTdWJUeXBlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGFnLnN1YlRhZ3MucHVzaCh7XG4gICAgICAgICAgICBzdWJUeXBlOiB0YWdTdWJUeXBlLFxuICAgICAgICAgICAgbmFtZTogdGFnQ29uZmlnLm5hbWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJlcGFyZVRhZyh0YWdDb25maWc6IElUYWcsIHNlbGVjdGVkVGFnc0NvbmZpZzogSVRhZ1tdLCBpc1RhZ1dpdGhTdWJUYWdzOiBib29sZWFuKTogSVNjZW5hcmlvVGFnVWkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRhZ1N1YlR5cGUgPSBpc1RhZ1dpdGhTdWJUYWdzID8gVGFnc0NvbmZpZ1N1YlR5cGUuTU9OVEggOiB0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZTtcbiAgICAgICAgY29uc3QgdG9nZ2xlU3RhdHVzID0gX3NvbWUoc2VsZWN0ZWRUYWdzQ29uZmlnLCAoX3RhZ0NvbmZpZykgPT4gX3RhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlID09PSBzZWxlY3RlZFRhZ1N1YlR5cGUpO1xuXG4gICAgICAgIGNvbnN0IHRhZzogSVNjZW5hcmlvVGFnVWkgPSB7XG4gICAgICAgICAgICB0b2dnbGU6IHRvZ2dsZVN0YXR1cyxcbiAgICAgICAgICAgIG5hbWU6IHRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRhZ0NvbmZpZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHR5cGU6IHRhZ0NvbmZpZy50eXBlLFxuICAgICAgICAgICAgc2VsZWN0ZWRUYWdTdWJUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLnRhZ3NOb3RTdXBwb3J0aW5nRGF0ZXNUYWcuaW5jbHVkZXMoc2VsZWN0ZWRUYWdTdWJUeXBlKSkge1xuICAgICAgICAgICAgdGFnLnR1cm5PZmZEYXRlVGFncyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YWdzQWNjZXB0YWJsZVN1YlRhZ3Nbc2VsZWN0ZWRUYWdTdWJUeXBlXSkge1xuICAgICAgICAgICAgdGFnLmFjY2VwdGFibGVTdWJUYWdzID0gdGhpcy50YWdzQWNjZXB0YWJsZVN1YlRhZ3Nbc2VsZWN0ZWRUYWdTdWJUeXBlXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWc7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AnyTagComponent {
4
+ constructor() {
5
+ this.dateChange = new EventEmitter();
6
+ this.name = undefined;
7
+ this.defaultValue = undefined;
8
+ this.dateObj = { date: undefined };
9
+ }
10
+ ngOnInit() {
11
+ this.initDate();
12
+ this.initName();
13
+ this.chosenTagHandler(this.dateObj.date);
14
+ }
15
+ initDate() { }
16
+ initName() { }
17
+ changeInputHandler(event) {
18
+ const input = event.target;
19
+ this.chosenTagHandler(input.value);
20
+ }
21
+ chosenTagHandler(value) {
22
+ // need implement in all tags
23
+ }
24
+ /** @nocollapse */ static { this.ɵfac = function AnyTagComponent_Factory(t) { return new (t || AnyTagComponent)(); }; }
25
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AnyTagComponent, selectors: [["any-tag"]], inputs: { name: "name", defaultValue: "defaultValue", disabled: "disabled" }, outputs: { dateChange: "dateChange" }, decls: 0, vars: 0, template: function AnyTagComponent_Template(rf, ctx) { }, encapsulation: 2 }); }
26
+ }
27
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnyTagComponent, [{
28
+ type: Component,
29
+ args: [{
30
+ template: ``,
31
+ selector: 'any-tag',
32
+ }]
33
+ }], function () { return []; }, { dateChange: [{
34
+ type: Output
35
+ }], name: [{
36
+ type: Input
37
+ }], defaultValue: [{
38
+ type: Input
39
+ }], disabled: [{
40
+ type: Input
41
+ }] }); })();
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LXRhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWdzL2RyLXRhZy9kci10YWctZGF0ZS9hbnktdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8vRSxNQUFNLE9BQU8sZUFBZTtJQU14QjtRQUxVLGVBQVUsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUNuRSxTQUFJLEdBQXVCLFNBQVMsQ0FBQztRQUNyQyxpQkFBWSxHQUF1QixTQUFTLENBQUM7UUFFdEQsWUFBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNoQixRQUFRO1FBQ0osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsUUFBUSxLQUFJLENBQUM7SUFDYixRQUFRLEtBQUksQ0FBQztJQUNiLGtCQUFrQixDQUFDLEtBQVk7UUFDM0IsTUFBTSxLQUFLLEdBQXVDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBSztRQUNsQiw2QkFBNkI7SUFDakMsQ0FBQzttR0FwQlEsZUFBZTttR0FBZixlQUFlOzt1RkFBZixlQUFlO2NBSjNCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsRUFBRTtnQkFDWixRQUFRLEVBQUUsU0FBUzthQUN0QjtzQ0FFYSxVQUFVO2tCQUFuQixNQUFNO1lBQ0UsSUFBSTtrQkFBWixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHNlbGVjdG9yOiAnYW55LXRhZycsXG59KVxuZXhwb3J0IGNsYXNzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpIGRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGF0ZVRhZz4gPSBuZXcgRXZlbnRFbWl0dGVyPElEYXRlVGFnPigpO1xuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBkYXRlT2JqID0geyBkYXRlOiB1bmRlZmluZWQgfTtcbiAgICBjb25zdHJ1Y3RvcigpIHt9XG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdERhdGUoKTtcbiAgICAgICAgdGhpcy5pbml0TmFtZSgpO1xuICAgICAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIodGhpcy5kYXRlT2JqLmRhdGUpO1xuICAgIH1cbiAgICBpbml0RGF0ZSgpIHt9XG4gICAgaW5pdE5hbWUoKSB7fVxuICAgIGNoYW5nZUlucHV0SGFuZGxlcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSA8SFRNTElucHV0RWxlbWVudD5ldmVudC50YXJnZXQ7XG4gICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcihpbnB1dC52YWx1ZSk7XG4gICAgfVxuICAgIGNob3NlblRhZ0hhbmRsZXIodmFsdWUpIHtcbiAgICAgICAgLy8gbmVlZCBpbXBsZW1lbnQgaW4gYWxsIHRhZ3NcbiAgICB9XG59XG4iXX0=