@datarailsshared/datarailsshared 1.4.518 → 1.4.530

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.
@@ -6,6 +6,7 @@ import { AnyTagComponent } from '../date-tag.component';
6
6
  /* BEFORE MERGE INTO MASTER YOU MUST CONSULT WITH ARTEM LAZIUK !!!*/
7
7
  // @ts-ignore
8
8
  const moment = require('moment');
9
+ const FORECAST_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';
9
10
  export class ForecastTagComponent extends AnyTagComponent {
10
11
  constructor() {
11
12
  super();
@@ -28,6 +29,7 @@ export class ForecastTagComponent extends AnyTagComponent {
28
29
  { value: 11, label: '11+1', disabled: false }
29
30
  ];
30
31
  this.initDateValue = null;
32
+ this.firstDayMonthOfYear = '01';
31
33
  }
32
34
  ngOnChanges(changes) {
33
35
  if (changes.lockedDate) {
@@ -38,21 +40,16 @@ export class ForecastTagComponent extends AnyTagComponent {
38
40
  const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();
39
41
  const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
40
42
  this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;
41
- this.updateYear(dateVal.year(), this.forecastValue);
43
+ this.forecastYear = moment
44
+ .utc(`${this.firstDayMonthOfYear}/${this.firstDayMonthOfYear}/${this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, this.fiscalYearBack)}`, FORECAST_DEFAULT_DATE_FORMAT)
45
+ .unix();
42
46
  this.updateLockedDate();
43
47
  if (!this.initDateValue) {
44
48
  this.initDateValue = _cloneDeep(this.dateObj.date);
45
49
  }
46
50
  }
47
- updateYear(fiscalYear, month) {
48
- const DATE_TIME = '12:00:00';
49
- const MONTH_DIFF = 1;
50
- this.dateObj.date = fiscalYear
51
- ? moment.utc(`${month + MONTH_DIFF || '01'}/01/${fiscalYear} ${DATE_TIME}`, 'MM/DD/YYYY hh:mm:ss').unix()
52
- : moment.utc().unix();
53
- }
54
51
  updateLockedDate() {
55
- const year = moment.unix(this.dateObj.date).year();
52
+ const year = moment.unix(this.forecastYear).year();
56
53
  this.forecastTags = this.forecastTags.map(forecastTag => {
57
54
  forecastTag.disabled = this.lockedDate.some((timestamp) => {
58
55
  const locked = moment.unix(timestamp);
@@ -103,12 +100,11 @@ export class ForecastTagComponent extends AnyTagComponent {
103
100
  if (this.isDateEventHappened)
104
101
  return;
105
102
  const month = this.forecastValue;
106
- const year = moment.unix(this.dateObj.date).year();
103
+ const year = moment.unix(this.forecastYear);
107
104
  const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
108
105
  const fiscal_year_back = this.fiscalYearBack || false;
109
- const chosenDate = moment.unix(this.dateObj.date).unix();
110
106
  if (!Number.isNaN(month) && !Number.isNaN(year)) {
111
- const date = new Date(year, month, 1, 12, 0, 0, 0);
107
+ const date = new Date(year.year(), month, 1, 12, 0, 0, 0);
112
108
  if (fiscal_year_starts_from !== 1) {
113
109
  if (!fiscal_year_back) {
114
110
  date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);
@@ -117,19 +113,16 @@ export class ForecastTagComponent extends AnyTagComponent {
117
113
  date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);
118
114
  }
119
115
  }
120
- this.updateYear(year, date.getMonth());
116
+ this.dateObj.date = moment(date).unix();
121
117
  this.isDateEventHappened = true;
122
118
  setTimeout(() => {
123
119
  this.isDateEventHappened = false;
124
120
  });
125
121
  }
126
- const calculatedDate = moment.unix(this.dateObj.date).year(this.getFiscalYearFromDate(moment.unix(this.dateObj.date), fiscal_year_starts_from, fiscal_year_back));
127
122
  const resultTag = {
128
123
  name: this.name,
129
124
  value: this.dateObj.date,
130
- calculatedValue: calculatedDate.unix(),
131
- chosenValue: chosenDate,
132
- label: `${(_a = _find(this.forecastTags, { value: this.forecastValue })) === null || _a === void 0 ? void 0 : _a.label} (${year})`,
125
+ label: `${(_a = _find(this.forecastTags, { value: this.forecastValue })) === null || _a === void 0 ? void 0 : _a.label} (${year.year()})`,
133
126
  locked: !this.dateFilter(moment.unix(this.dateObj.date)),
134
127
  };
135
128
  this.dateChange.emit(resultTag);
@@ -146,7 +139,7 @@ export class ForecastTagComponent extends AnyTagComponent {
146
139
  }
147
140
  ForecastTagComponent.decorators = [
148
141
  { type: Component, args: [{
149
- template: "<ng-container *ngIf=\"!tagAdditionalSettings?.showSplitInputs; else splitInputsTpl\">\n <div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n </div>\n </div>\n</ng-container>\n\n<ng-template #splitInputsTpl>\n <div class=\"forecast-tag__split-container\">\n <p class=\"tag__label\">Period</p>\n <div class=\"forecast-tag__split-dropdowns\">\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n class=\"no-right-border-radius no-right-border\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n no-left-border-radius\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n </div>\n</ng-template>\n",
142
+ template: "<ng-container *ngIf=\"!tagAdditionalSettings?.showSplitInputs; else splitInputsTpl\">\n <div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"forecastYear\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n </div>\n </div>\n</ng-container>\n\n<ng-template #splitInputsTpl>\n <div class=\"forecast-tag__split-container\">\n <p class=\"tag__label\">Period</p>\n <div class=\"forecast-tag__split-dropdowns\">\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"forecastYear\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n class=\"no-right-border-radius no-right-border\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n no-left-border-radius\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n </div>\n</ng-template>\n",
150
143
  selector: 'forecast-tag',
151
144
  providers: [
152
145
  {
@@ -165,4 +158,4 @@ ForecastTagComponent.propDecorators = {
165
158
  lockedDate: [{ type: Input }],
166
159
  tagAdditionalSettings: [{ type: Input }]
167
160
  };
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZWNhc3QtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9mb3JlY2FzdC10YWcvZm9yZWNhc3QtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsU0FBUyxJQUFJLFVBQVUsRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RCxvRUFBb0U7QUFFcEUsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQWVqQyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQTBCckQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQXhCSCxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLDBCQUFxQixHQUEyQixFQUFFLENBQUM7UUFFNUQsa0JBQWEsR0FBdUIsU0FBUyxDQUFDO1FBQzlDLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUU1QixpQkFBWSxHQUFVO1lBQ2xCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDNUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUM1QyxFQUFFLEtBQUssRUFBRSxDQUFD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QkFBK0IsQ0FBQztxQkFDM0Q7aUJBQ0o7O2FBQ0o7Ozs7bUNBR0ksS0FBSzs2QkFDTCxLQUFLO3lCQUNMLEtBQUs7b0NBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURhdGVUYWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IGNsb25lRGVlcCBhcyBfY2xvbmVEZWVwLCBmaW5kIGFzIF9maW5kIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEFueVRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJVGFnQWRkaXRpb25hbFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vZHItdGFncy9kci10YWcudHlwZXMnO1xuXG4vKiBCRUZPUkUgTUVSR0UgSU5UTyBNQVNURVIgWU9VIE1VU1QgQ09OU1VMVCBXSVRIIEFSVEVNIExBWklVSyAhISEqL1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdmb3JlY2FzdC10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAnZm9yZWNhc3QtdGFnJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JlY2FzdC10YWcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICAgICAgfVxuICAgIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBGb3JlY2FzdFRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb20/OiBudW1iZXI7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhckJhY2s/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgdGFnQWRkaXRpb25hbFNldHRpbmdzOiBJVGFnQWRkaXRpb25hbFNldHRpbmdzID0ge307XG5cbiAgICBmb3JlY2FzdFZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaXNEYXRlRXZlbnRIYXBwZW5lZCA9IGZhbHNlO1xuXG4gICAgZm9yZWNhc3RUYWdzOiBhbnlbXSA9IFtcbiAgICAgICAgeyB2YWx1ZTogMCwgbGFiZWw6ICcwKzEyJywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDEsIGxhYmVsOiAnMSsxMScsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB7IHZhbHVlOiAyLCBsYWJlbDogJzIrMTAnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogMywgbGFiZWw6ICczKzknLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNCwgbGFiZWw6ICc0KzgnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNSwgbGFiZWw6ICc1KzcnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNiwgbGFiZWw6ICc2KzYnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogNywgbGFiZWw6ICc3KzUnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogOCwgbGFiZWw6ICc4KzQnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogOSwgbGFiZWw6ICc5KzMnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogMTAsIGxhYmVsOiAnMTArMicsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB7IHZhbHVlOiAxMSwgbGFiZWw6ICcxMSsxJywgZGlzYWJsZWQ6IGZhbHNlIH1cbiAgICBdO1xuXG4gICAgcHJpdmF0ZSBpbml0RGF0ZVZhbHVlID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubG9ja2VkRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NrZWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0RGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZGF0ZVZhbCA9IHRoaXMuZGVmYXVsdFZhbHVlID8gbW9tZW50LnVuaXgodGhpcy5kZWZhdWx0VmFsdWUpIDogbW9tZW50KCk7XG4gICAgICAgIGNvbnN0IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tID0gdGhpcy5maXNjYWxZZWFyU3RhcnRzRnJvbSB8fCAxO1xuICAgICAgICB0aGlzLmZvcmVjYXN0VmFsdWUgPSB0aGlzLmdldEZpc2NhbE1vbnRoRnJvbURhdGUoZGF0ZVZhbCwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20pIC0gMTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVllYXIoZGF0ZVZhbC55ZWFyKCksIHRoaXMuZm9yZWNhc3RWYWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlTG9ja2VkRGF0ZSgpO1xuXG4gICAgICAgIGlmICghdGhpcy5pbml0RGF0ZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmluaXREYXRlVmFsdWUgPSBfY2xvbmVEZWVwKHRoaXMuZGF0ZU9iai5kYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVllYXIoZmlzY2FsWWVhcj86IG51bWJlciwgbW9udGg/OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgREFURV9USU1FID0gJzEyOjAwOjAwJztcbiAgICAgICAgY29uc3QgTU9OVEhfRElGRiA9IDE7XG5cbiAgICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSBmaXNjYWxZZWFyXG4gICAgICAgICAgICA/IG1vbWVudC51dGMoYCR7IG1vbnRoICsgTU9OVEhfRElGRiB8fCAnMDEnIH0vMDEvJHsgZmlzY2FsWWVhciB9ICR7IERBVEVfVElNRSB9YCwgJ01NL0REL1lZWVkgaGg6bW06c3MnKS51bml4KClcbiAgICAgICAgICAgIDogbW9tZW50LnV0YygpLnVuaXgoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVMb2NrZWREYXRlKCkge1xuICAgICAgICBjb25zdCB5ZWFyID0gbW9tZW50LnVuaXgodGhpcy5kYXRlT2JqLmRhdGUpLnllYXIoKTtcblxuICAgICAgICB0aGlzLmZvcmVjYXN0VGFncyA9IHRoaXMuZm9yZWNhc3RUYWdzLm1hcChmb3JlY2FzdFRhZyA9PiB7XG4gICAgICAgICAgICBmb3JlY2FzdFRhZy5kaXNhYmxlZCA9IHRoaXMubG9ja2VkRGF0ZS5zb21lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NrZWQgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NrZWQubW9udGgoKSA9PT0gZm9yZWNhc3RUYWcudmFsdWUgJiYgK2xvY2tlZC55ZWFyKCkgPT09ICt5ZWFyO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBmb3JlY2FzdFRhZztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdE5hbWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAnRm9yZWNhc3QgKE5ldyknO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RmlzY2FsTW9udGhGcm9tRGF0ZShkYXRlT2JqLCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSkge1xuICAgICAgICBjb25zdCBhbGxfbW9udGhzID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tOyBpIDwgMTM7IGkrKykge1xuICAgICAgICAgICAgYWxsX21vbnRocy5wdXNoKGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbTsgaSsrKSB7XG4gICAgICAgICAgICBhbGxfbW9udGhzLnB1c2goaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWxsX21vbnRocy5pbmRleE9mKGRhdGVPYmoubW9udGgoKSArIDEpICsgMTtcbiAgICB9XG5cbiAgICBnZXRGaXNjYWxZZWFyRnJvbURhdGUoZGF0ZU9iaiwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20sIGZpc2NhbF95ZWFyX2JhY2spIHtcbiAgICAgICAgbGV0IGZpc2NhbF95ZWFyID0gZGF0ZU9iai55ZWFyKCk7XG4gICAgICAgIGlmICghZmlzY2FsX3llYXJfYmFjaykge1xuICAgICAgICAgICAgaWYgKGRhdGVPYmoubW9udGgoKSArIDEgPj0gZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20gJiYgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20gIT09IDEpIHtcbiAgICAgICAgICAgICAgICBmaXNjYWxfeWVhciArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRhdGVPYmoubW9udGgoKSArIDEgPCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAmJiBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAhPT0gMSkge1xuICAgICAgICAgICAgICAgIGZpc2NhbF95ZWFyIC09IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpc2NhbF95ZWFyO1xuICAgIH1cblxuICAgIGNoYW5nZVRhZ0lucHV0SGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlWWVhcklucHV0SGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy51cGRhdGVMb2NrZWREYXRlKCk7XG4gICAgICAgIHRoaXMuaW5pdERhdGVWYWx1ZSA9IF9jbG9uZURlZXAodGhpcy5kYXRlT2JqLmRhdGUpO1xuICAgICAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIoKTtcbiAgICB9XG5cbiAgICBjaG9zZW5UYWdIYW5kbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5pc0RhdGVFdmVudEhhcHBlbmVkKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLmZvcmVjYXN0VmFsdWU7XG4gICAgICAgIGNvbnN0IHllYXIgPSBtb21lbnQudW5peCh0aGlzLmRhdGVPYmouZGF0ZSkueWVhcigpO1xuICAgICAgICBjb25zdCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSA9IHRoaXMuZmlzY2FsWWVhclN0YXJ0c0Zyb20gfHwgMTtcbiAgICAgICAgY29uc3QgZmlzY2FsX3llYXJfYmFjayA9IHRoaXMuZmlzY2FsWWVhckJhY2sgfHwgZmFsc2U7XG4gICAgICAgIGNvbnN0IGNob3NlbkRhdGUgPSBtb21lbnQudW5peCh0aGlzLmRhdGVPYmouZGF0ZSkudW5peCgpO1xuXG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG1vbnRoKSAmJiAhTnVtYmVyLmlzTmFOKHllYXIpKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEsIDEyLCAwLCAwLCAwKTtcblxuICAgICAgICAgICAgaWYgKGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFmaXNjYWxfeWVhcl9iYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpIC0gMTMgKyBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgLSAxICsgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51cGRhdGVZZWFyKHllYXIsIGRhdGUuZ2V0TW9udGgoKSk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNEYXRlRXZlbnRIYXBwZW5lZCA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGF0ZUV2ZW50SGFwcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2FsY3VsYXRlZERhdGUgPSBtb21lbnQudW5peCh0aGlzLmRhdGVPYmouZGF0ZSkueWVhcih0aGlzLmdldEZpc2NhbFllYXJGcm9tRGF0ZShtb21lbnQudW5peCh0aGlzLmRhdGVPYmouZGF0ZSksIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tLCBmaXNjYWxfeWVhcl9iYWNrKSk7XG5cblxuICAgICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZGF0ZU9iai5kYXRlLFxuICAgICAgICAgICAgY2FsY3VsYXRlZFZhbHVlOiBjYWxjdWxhdGVkRGF0ZS51bml4KCksXG4gICAgICAgICAgICBjaG9zZW5WYWx1ZTogY2hvc2VuRGF0ZSxcbiAgICAgICAgICAgIGxhYmVsOiBgJHsgX2ZpbmQodGhpcy5mb3JlY2FzdFRhZ3MsIHsgdmFsdWU6IHRoaXMuZm9yZWNhc3RWYWx1ZSB9KT8ubGFiZWwgfSAoJHsgeWVhciB9KWAsXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIobW9tZW50LnVuaXgodGhpcy5kYXRlT2JqLmRhdGUpKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyKGRhdGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLmZvcmVjYXN0VmFsdWU7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLnllYXIoKTtcblxuICAgICAgICByZXR1cm4gIXRoaXMubG9ja2VkRGF0ZS5zb21lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcbiAgICAgICAgICAgIHJldHVybiBsb2NrRGF0ZS5tb250aCgpID09PSBtb250aCAmJiBsb2NrRGF0ZS55ZWFyKCkgPT09IHllYXI7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZWNhc3QtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9mb3JlY2FzdC10YWcvZm9yZWNhc3QtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsU0FBUyxJQUFJLFVBQVUsRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RCxvRUFBb0U7QUFFcEUsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLDRCQUE0QixHQUFHLFlBQVksQ0FBQztBQWVsRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQTRCckQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQTFCSCxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLDBCQUFxQixHQUEyQixFQUFFLENBQUM7UUFFNUQsa0JBQWEsR0FBdUIsU0FBUyxDQUFDO1FBRTlDLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUU1QixpQkFBWSxHQUFVO1lBQ2xCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDNUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtB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SUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEMsT0FBTyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssS0FBSyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQUEsQ0FBQzs7O1lBM0tMLFNBQVMsU0FBQztnQkFDUCx1OERBQTBDO2dCQUMxQyxRQUFRLEVBQUUsY0FBYztnQkFFeEIsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixRQUFRLEVBQUUsaUJBQWlCO3dCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7cUJBQzNEO2lCQUNKOzthQUNKOzs7O21DQUdJLEtBQUs7NkJBQ0wsS0FBSzt5QkFDTCxLQUFLO29DQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAgYXMgX2Nsb25lRGVlcCwgZmluZCBhcyBfZmluZCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBbnlUYWdDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXRhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVRhZ0FkZGl0aW9uYWxTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2RyLXRhZ3MvZHItdGFnLnR5cGVzJztcblxuLyogQkVGT1JFIE1FUkdFIElOVE8gTUFTVEVSIFlPVSBNVVNUIENPTlNVTFQgV0lUSCBBUlRFTSBMQVpJVUsgISEhKi9cblxuLy8gQHRzLWlnbm9yZVxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5cbmNvbnN0IEZPUkVDQVNUX0RFRkFVTFRfREFURV9GT1JNQVQgPSAnTU0vREQveXl5eSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnZm9yZWNhc3QtdGFnLmNvbXBvbmVudC5odG1sJyxcbiAgICBzZWxlY3RvcjogJ2ZvcmVjYXN0LXRhZycsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9yZWNhc3QtdGFnLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXG4gICAgICAgIH1cbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgRm9yZWNhc3RUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGZpc2NhbFllYXJTdGFydHNGcm9tPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGZpc2NhbFllYXJCYWNrPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHRhZ0FkZGl0aW9uYWxTZXR0aW5nczogSVRhZ0FkZGl0aW9uYWxTZXR0aW5ncyA9IHt9O1xuXG4gICAgZm9yZWNhc3RWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGZvcmVjYXN0WWVhcjogbnVtYmVyO1xuICAgIGlzRGF0ZUV2ZW50SGFwcGVuZWQgPSBmYWxzZTtcblxuICAgIGZvcmVjYXN0VGFnczogYW55W10gPSBbXG4gICAgICAgIHsgdmFsdWU6IDAsIGxhYmVsOiAnMCsxMicsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB7IHZhbHVlOiAxLCBsYWJlbDogJzErMTEnLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogMiwgbGFiZWw6ICcyKzEwJywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDMsIGxhYmVsOiAnMys5JywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDQsIGxhYmVsOiAnNCs4JywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDUsIGxhYmVsOiAnNSs3JywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDYsIGxhYmVsOiAnNis2JywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDcsIGxhYmVsOiAnNys1JywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDgsIGxhYmVsOiAnOCs0JywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDksIGxhYmVsOiAnOSszJywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6IDEwLCBsYWJlbDogJzEwKzInLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgeyB2YWx1ZTogMTEsIGxhYmVsOiAnMTErMScsIGRpc2FibGVkOiBmYWxzZSB9XG4gICAgXTtcblxuICAgIHByaXZhdGUgaW5pdERhdGVWYWx1ZSA9IG51bGw7XG4gICAgcHJpdmF0ZSBmaXJzdERheU1vbnRoT2ZZZWFyID0gJzAxJztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubG9ja2VkRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NrZWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0RGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZGF0ZVZhbCA9IHRoaXMuZGVmYXVsdFZhbHVlID8gbW9tZW50LnVuaXgodGhpcy5kZWZhdWx0VmFsdWUpIDogbW9tZW50KCk7XG4gICAgICAgIGNvbnN0IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tID0gdGhpcy5maXNjYWxZZWFyU3RhcnRzRnJvbSB8fCAxO1xuICAgICAgICB0aGlzLmZvcmVjYXN0VmFsdWUgPSB0aGlzLmdldEZpc2NhbE1vbnRoRnJvbURhdGUoZGF0ZVZhbCwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20pIC0gMTtcblxuICAgICAgICB0aGlzLmZvcmVjYXN0WWVhciA9IG1vbWVudFxuICAgICAgICAgICAgLnV0YyhcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmZpcnN0RGF5TW9udGhPZlllYXJ9LyR7dGhpcy5maXJzdERheU1vbnRoT2ZZZWFyfS8ke3RoaXMuZ2V0RmlzY2FsWWVhckZyb21EYXRlKGRhdGVWYWwsIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tLCB0aGlzLmZpc2NhbFllYXJCYWNrKX1gLFxuICAgICAgICAgICAgICAgIEZPUkVDQVNUX0RFRkFVTFRfREFURV9GT1JNQVQsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAudW5peCgpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlTG9ja2VkRGF0ZSgpO1xuXG4gICAgICAgIGlmICghdGhpcy5pbml0RGF0ZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmluaXREYXRlVmFsdWUgPSBfY2xvbmVEZWVwKHRoaXMuZGF0ZU9iai5kYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUxvY2tlZERhdGUoKSB7XG4gICAgICAgIGNvbnN0IHllYXIgPSBtb21lbnQudW5peCh0aGlzLmZvcmVjYXN0WWVhcikueWVhcigpO1xuXG4gICAgICAgIHRoaXMuZm9yZWNhc3RUYWdzID0gdGhpcy5mb3JlY2FzdFRhZ3MubWFwKGZvcmVjYXN0VGFnID0+IHtcbiAgICAgICAgICAgIGZvcmVjYXN0VGFnLmRpc2FibGVkID0gdGhpcy5sb2NrZWREYXRlLnNvbWUoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2tlZCA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvY2tlZC5tb250aCgpID09PSBmb3JlY2FzdFRhZy52YWx1ZSAmJiArbG9ja2VkLnllYXIoKSA9PT0gK3llYXI7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIGZvcmVjYXN0VGFnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbml0TmFtZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9ICdGb3JlY2FzdCAoTmV3KSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGaXNjYWxNb250aEZyb21EYXRlKGRhdGVPYmosIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tKSB7XG4gICAgICAgIGNvbnN0IGFsbF9tb250aHMgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gZmlzY2FsX3llYXJfc3RhcnRzX2Zyb207IGkgPCAxMzsgaSsrKSB7XG4gICAgICAgICAgICBhbGxfbW9udGhzLnB1c2goaSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tOyBpKyspIHtcbiAgICAgICAgICAgIGFsbF9tb250aHMucHVzaChpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhbGxfbW9udGhzLmluZGV4T2YoZGF0ZU9iai5tb250aCgpICsgMSkgKyAxO1xuICAgIH1cblxuICAgIGdldEZpc2NhbFllYXJGcm9tRGF0ZShkYXRlT2JqLCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSwgZmlzY2FsX3llYXJfYmFjaykge1xuICAgICAgICBsZXQgZmlzY2FsX3llYXIgPSBkYXRlT2JqLnllYXIoKTtcbiAgICAgICAgaWYgKCFmaXNjYWxfeWVhcl9iYWNrKSB7XG4gICAgICAgICAgICBpZiAoZGF0ZU9iai5tb250aCgpICsgMSA+PSBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAmJiBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAhPT0gMSkge1xuICAgICAgICAgICAgICAgIGZpc2NhbF95ZWFyICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZGF0ZU9iai5tb250aCgpICsgMSA8IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICYmIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgZmlzY2FsX3llYXIgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlzY2FsX3llYXI7XG4gICAgfVxuXG4gICAgY2hhbmdlVGFnSW5wdXRIYW5kbGVyKCkge1xuICAgICAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIoKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VZZWFySW5wdXRIYW5kbGVyKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUxvY2tlZERhdGUoKTtcbiAgICAgICAgdGhpcy5pbml0RGF0ZVZhbHVlID0gX2Nsb25lRGVlcCh0aGlzLmRhdGVPYmouZGF0ZSk7XG4gICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcigpO1xuICAgIH1cblxuICAgIGNob3NlblRhZ0hhbmRsZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzRGF0ZUV2ZW50SGFwcGVuZWQpIHJldHVybjtcblxuICAgICAgICBjb25zdCBtb250aCA9IHRoaXMuZm9yZWNhc3RWYWx1ZTtcbiAgICAgICAgY29uc3QgeWVhciA9IG1vbWVudC51bml4KHRoaXMuZm9yZWNhc3RZZWFyKTtcbiAgICAgICAgY29uc3QgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20gPSB0aGlzLmZpc2NhbFllYXJTdGFydHNGcm9tIHx8IDE7XG4gICAgICAgIGNvbnN0IGZpc2NhbF95ZWFyX2JhY2sgPSB0aGlzLmZpc2NhbFllYXJCYWNrIHx8IGZhbHNlO1xuXG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG1vbnRoKSAmJiAhTnVtYmVyLmlzTmFOKHllYXIpKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhci55ZWFyKCksIG1vbnRoLCAxLCAxMiwgMCwgMCwgMCk7XG5cbiAgICAgICAgICAgIGlmIChmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAhPT0gMSkge1xuICAgICAgICAgICAgICAgIGlmICghZmlzY2FsX3llYXJfYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSAtIDEzICsgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpIC0gMSArIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gbW9tZW50KGRhdGUpLnVuaXgoKTtcblxuICAgICAgICAgICAgdGhpcy5pc0RhdGVFdmVudEhhcHBlbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRlRXZlbnRIYXBwZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZGF0ZU9iai5kYXRlLFxuICAgICAgICAgICAgbGFiZWw6IGAkeyBfZmluZCh0aGlzLmZvcmVjYXN0VGFncywgeyB2YWx1ZTogdGhpcy5mb3JlY2FzdFZhbHVlIH0pPy5sYWJlbCB9ICgkeyB5ZWFyLnllYXIoKSB9KWAsXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIobW9tZW50LnVuaXgodGhpcy5kYXRlT2JqLmRhdGUpKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyKGRhdGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLmZvcmVjYXN0VmFsdWU7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLnllYXIoKTtcblxuICAgICAgICByZXR1cm4gIXRoaXMubG9ja2VkRGF0ZS5zb21lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcbiAgICAgICAgICAgIHJldHVybiBsb2NrRGF0ZS5tb250aCgpID09PSBtb250aCAmJiBsb2NrRGF0ZS55ZWFyKCkgPT09IHllYXI7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG4iXX0=
@@ -1,7 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';
3
- import { TagsConfigSubType } from '../models/serverTags';
4
- import { ForecastTagService } from '../date-tags/forecast-tag/forecast-tag.service';
5
3
  // @ts-ignore
6
4
  const moment = require('moment');
7
5
  export class DrDynamicTagComponent {
@@ -76,9 +74,7 @@ export class DrDynamicTagComponent {
76
74
  if (_isNumber(connectedTag.value)) {
77
75
  const momentData = moment.unix(connectedTag.value);
78
76
  // TODO: add input prop (selectedTimeDimension) or Format
79
- const convertedParentValue = this.tagConfig.options.sub_type === TagsConfigSubType.FORECAST_CYCLE
80
- ? this.getConvertedForecastPeriodValue(momentData)
81
- : momentData.get('year');
77
+ const convertedParentValue = momentData.get('year');
82
78
  if (momentData.isValid() && convertedParentValue) {
83
79
  return convertedParentValue;
84
80
  }
@@ -86,11 +82,6 @@ export class DrDynamicTagComponent {
86
82
  return connectedTag.value;
87
83
  }).join('__');
88
84
  }
89
- getConvertedForecastPeriodValue(momentData) {
90
- const month = ForecastTagService.getFiscalMonthFromDate(momentData, this.fiscalYearStartsFrom);
91
- const year = ForecastTagService.getFiscalYearFromDate(momentData, this.fiscalYearStartsFrom, this.fiscalYearBack);
92
- return `${ForecastTagService.getForecastLabel(month)} (${year})`;
93
- }
94
85
  }
95
86
  DrDynamicTagComponent.decorators = [
96
87
  { type: Component, args: [{
@@ -114,4 +105,4 @@ DrDynamicTagComponent.propDecorators = {
114
105
  tagChange: [{ type: Output }],
115
106
  tagAdd: [{ type: Output }]
116
107
  };
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsUUFBUSxJQUFJLFNBQVMsRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuSCxPQUFPLEVBSUgsaUJBQWlCLEVBR3BCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFcEYsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU9qQyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBVW9CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFXN0IsY0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUMzRSxXQUFNLEdBQW1DLElBQUksWUFBWSxFQUFvQixDQUFDO0lBcUc1RixDQUFDO0lBL0ZHLElBQVcscUJBQXFCO1FBQzVCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7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QkFBK0IsQ0FBQyxVQUF5QjtRQUM3RCxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDL0YsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEgsT0FBTyxHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDO0lBQ3JFLENBQUM7OztZQTFISixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsNG1EQUE4Qzs7YUFFakQ7OztxQkFFSSxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFFTCxLQUFLOzRCQUNMLEtBQUs7cUNBQ0wsS0FBSzt1QkFDTCxLQUFLO21DQUVMLEtBQUs7NkJBQ0wsS0FBSzsrQkFFTCxLQUFLOzhCQUNMLEtBQUs7d0JBRUwsTUFBTTtxQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbmQgYXMgX2ZpbmQsIGlzTnVtYmVyIGFzIF9pc051bWJlciwgaXNPYmplY3QgYXMgX2lzT2JqZWN0LCBpc05pbCBhcyBfaXNOaWwsIG1hcCBhcyBfbWFwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gICAgSUR5bmFtaWNUYWcsXG4gICAgSVRhZyxcbiAgICBJVGFnRm9yU2VydmVyLFxuICAgIFRhZ3NDb25maWdTdWJUeXBlLFxuICAgIFREeW5hbWljVGFnLFxuICAgIFREeW5hbWljVGFnVmFsdWVcbn0gZnJvbSAnLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgRm9yZWNhc3RUYWdTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0ZS10YWdzL2ZvcmVjYXN0LXRhZy9mb3JlY2FzdC10YWcuc2VydmljZSc7XG5cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWR5bmFtaWMtdGFnJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZHluYW1pYy10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWR5bmFtaWMtdGFnLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHJEeW5hbWljVGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVzOiBURHluYW1pY1RhZztcbiAgICBASW5wdXQoKSBwdWJsaWMgdGFnQ29uZmlnOiBJVGFnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFRhZzogSVRhZ0ZvclNlcnZlcjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2NrZWRUYWdzOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb25uZWN0ZWRUYWdzOiBJVGFnRm9yU2VydmVyW107XG4gICAgQElucHV0KCkgcHVibGljIGlzRHluYW1pY1RhZ0FkZEVuYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb206IG51bWJlcjtcbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyQmFjazogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGhpZGVGYXZvcml0ZVN0YXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd1NwbGl0SW5wdXRzOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHRhZ0NoYW5nZTogRXZlbnRFbWl0dGVyPElUYWdGb3JTZXJ2ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPigpO1xuICAgIEBPdXRwdXQoKSB0YWdBZGQ6IEV2ZW50RW1pdHRlcjxURHluYW1pY1RhZ1ZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4oKTtcblxuICAgIHB1YmxpYyBzZWxlY3RlZER5bmFtaWNUYWc6IFREeW5hbWljVGFnVmFsdWU7XG4gICAgcHVibGljIGN1cnJlbnRWYWx1ZXM6IFREeW5hbWljVGFnVmFsdWVbXTtcbiAgICBwdWJsaWMgaXNMb2NrZWRUYWdTZWxlY3RlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBnZXQgaXNQcmltaXRpdmVEYXRhU291cmNlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBPYmplY3QudmFsdWVzKHRoaXMudmFsdWVzKSB8fCBbXTtcbiAgICAgICAgcmV0dXJuICFfaXNPYmplY3QodmFsdWVzWzBdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUR5bmFtaWNUYWdWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWdDaGFuZ2VkKCRldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc3VsdEV2ZW50OiBJVGFnRm9yU2VydmVyID0ge1xuICAgICAgICAgICAgaWQ6IHRoaXMudGFnQ29uZmlnLmlkLFxuICAgICAgICAgICAgbmFtZTogdGhpcy50YWdDb25maWcubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiAkZXZlbnQsXG4gICAgICAgICAgICBsb2NrZWQ6IHRoaXMubG9ja2VkVGFncy5pbmNsdWRlcygkZXZlbnQpXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCFfaXNOaWwodGhpcy5zZWxlY3RlZFRhZz8ubG9ja2VkKSkge1xuICAgICAgICAgICAgcmVzdWx0RXZlbnQubG9ja2VkID0gdGhpcy5zZWxlY3RlZFRhZy5sb2NrZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIV9pc05pbCh0aGlzLnNlbGVjdGVkVGFnPy5sYWJlbCkpIHtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxhYmVsID0gdGhpcy5zZWxlY3RlZFRhZy5sYWJlbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNMb2NrZWRUYWdTZWxlY3RlZCA9IHJlc3VsdEV2ZW50LmxvY2tlZDtcbiAgICAgICAgdGhpcy50YWdDaGFuZ2UuZW1pdChyZXN1bHRFdmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uT3B0aW9uQ2xpY2soJGV2ZW50OiBFdmVudCwgdGFnVmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sb2NrZWRUYWdzLmluY2x1ZGVzKHRhZ1ZhbHVlKSkge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRHluYW1pY1ZhbHVlQWRkKCRldmVudDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFZhbHVlS2V5ID0gdGhpcy5nZXRQYXJlbnRWYWx1ZUtleSgpO1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZXMgPSB0aGlzLnZhbHVlc1twYXJlbnRWYWx1ZUtleV0gfHwgW107XG5cbiAgICAgICAgaWYgKHRoaXMuaXNQcmltaXRpdmVEYXRhU291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlc1twYXJlbnRWYWx1ZUtleV0gPSBbJGV2ZW50LCAuLi5wYXJlbnRWYWx1ZXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldID0gW3sgdmFsdWU6ICRldmVudCB9LCAuLi5wYXJlbnRWYWx1ZXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZER5bmFtaWNUYWcgPSAkZXZlbnQ7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWVzID0gdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldO1xuICAgICAgICB0aGlzLm9uVGFnQ2hhbmdlZCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRhZ0FkZC5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEeW5hbWljVGFnVmFsdWVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZUtleSA9IHRoaXMuZ2V0UGFyZW50VmFsdWVLZXkoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWVzID0gdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRHluYW1pY1RhZyA9IHRoaXMuZ2V0U2VsZWN0ZWREeW5hbWljVGFnKHRoaXMuY3VycmVudFZhbHVlcywgdGhpcy5zZWxlY3RlZFRhZz8udmFsdWUpO1xuICAgICAgICB0aGlzLm9uVGFnQ2hhbmdlZCh0aGlzLnNlbGVjdGVkRHluYW1pY1RhZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZER5bmFtaWNUYWcoY3VycmVudFZhbHVlczogVER5bmFtaWNUYWdWYWx1ZVtdLCBzZWxlY3RlZFZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWN1cnJlbnRWYWx1ZXM/Lmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgaWYgKF9pc09iamVjdChjdXJyZW50VmFsdWVzWzBdKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVGcm9tQ29uZmlnID0gX2ZpbmQoY3VycmVudFZhbHVlcywgeyB2YWx1ZTogc2VsZWN0ZWRWYWx1ZSB9KSBhcyBJRHluYW1pY1RhZztcbiAgICAgICAgICAgIGNvbnN0IGZhdm9yaXRlVmFsdWUgPSBfZmluZChjdXJyZW50VmFsdWVzLCB7IGlzX2Zhdm9yaXRlOiB0cnVlIH0pIGFzIElEeW5hbWljVGFnO1xuICAgICAgICAgICAgcmV0dXJuICh2YWx1ZUZyb21Db25maWcgfHwgZmF2b3JpdGVWYWx1ZSB8fCBjdXJyZW50VmFsdWVzWzBdKS52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlRnJvbUNvbmZpZyA9IF9maW5kKGN1cnJlbnRWYWx1ZXMsICh2YWx1ZSkgPT4gdmFsdWUgPT09IHNlbGVjdGVkVmFsdWUpO1xuICAgICAgICByZXR1cm4gKHZhbHVlRnJvbUNvbmZpZyB8fCBjdXJyZW50VmFsdWVzWzBdKSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXJlbnRWYWx1ZUtleSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gX21hcCh0aGlzLmNvbm5lY3RlZFRhZ3MsIChjb25uZWN0ZWRUYWcpID0+IHtcbiAgICAgICAgICAgIGlmIChfaXNOdW1iZXIoY29ubmVjdGVkVGFnLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbWVudERhdGEgPSBtb21lbnQudW5peChjb25uZWN0ZWRUYWcudmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGFkZCBpbnB1dCBwcm9wIChzZWxlY3RlZFRpbWVEaW1lbnNpb24pIG9yIEZvcm1hdFxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZFBhcmVudFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSA9PT0gVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfQ1lDTEVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXRDb252ZXJ0ZWRGb3JlY2FzdFBlcmlvZFZhbHVlKG1vbWVudERhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG1vbWVudERhdGEuZ2V0KCd5ZWFyJyk7XG4gICAgICAgICAgICAgICAgaWYgKG1vbWVudERhdGEuaXNWYWxpZCgpICYmIGNvbnZlcnRlZFBhcmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRQYXJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb25uZWN0ZWRUYWcudmFsdWU7XG4gICAgICAgIH0pLmpvaW4oJ19fJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb252ZXJ0ZWRGb3JlY2FzdFBlcmlvZFZhbHVlKG1vbWVudERhdGE6IG1vbWVudC5Nb21lbnQpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBtb250aCA9IEZvcmVjYXN0VGFnU2VydmljZS5nZXRGaXNjYWxNb250aEZyb21EYXRlKG1vbWVudERhdGEsIHRoaXMuZmlzY2FsWWVhclN0YXJ0c0Zyb20pO1xuICAgICAgICBjb25zdCB5ZWFyID0gRm9yZWNhc3RUYWdTZXJ2aWNlLmdldEZpc2NhbFllYXJGcm9tRGF0ZShtb21lbnREYXRhLCB0aGlzLmZpc2NhbFllYXJTdGFydHNGcm9tLCB0aGlzLmZpc2NhbFllYXJCYWNrKTtcbiAgICAgICAgcmV0dXJuIGAke0ZvcmVjYXN0VGFnU2VydmljZS5nZXRGb3JlY2FzdExhYmVsKG1vbnRoKX0gKCR7eWVhcn0pYDtcbiAgICB9XG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsUUFBUSxJQUFJLFNBQVMsRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVduSCxhQUFhO0FBQ2IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT2pDLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFVb0IsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQVc3QixjQUFTLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQzNFLFdBQU0sR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7SUE0RjVGLENBQUM7SUF0RkcsSUFBVyxxQkFBcUI7UUFDNUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWM7O1FBQzlCLE1BQU0sV0FBVyxHQUFrQjtZQUMvQixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxF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ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kLCBpc051bWJlciBhcyBfaXNOdW1iZXIsIGlzT2JqZWN0IGFzIF9pc09iamVjdCwgaXNOaWwgYXMgX2lzTmlsLCBtYXAgYXMgX21hcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICAgIElEeW5hbWljVGFnLFxuICAgIElUYWcsXG4gICAgSVRhZ0ZvclNlcnZlcixcbiAgICBUYWdzQ29uZmlnU3ViVHlwZSxcbiAgICBURHluYW1pY1RhZyxcbiAgICBURHluYW1pY1RhZ1ZhbHVlXG59IGZyb20gJy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IEZvcmVjYXN0VGFnU2VydmljZSB9IGZyb20gJy4uL2RhdGUtdGFncy9mb3JlY2FzdC10YWcvZm9yZWNhc3QtdGFnLnNlcnZpY2UnO1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1keW5hbWljLXRhZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWR5bmFtaWMtdGFnLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1keW5hbWljLXRhZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERyRHluYW1pY1RhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIHZhbHVlczogVER5bmFtaWNUYWc7XG4gICAgQElucHV0KCkgcHVibGljIHRhZ0NvbmZpZzogSVRhZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRUYWc6IElUYWdGb3JTZXJ2ZXI7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgbG9ja2VkVGFnczogYW55W10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29ubmVjdGVkVGFnczogSVRhZ0ZvclNlcnZlcltdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0R5bmFtaWNUYWdBZGRFbmFibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGZpc2NhbFllYXJTdGFydHNGcm9tOiBudW1iZXI7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhckJhY2s6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBoaWRlRmF2b3JpdGVTdGFyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dTcGxpdElucHV0czogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB0YWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4oKTtcbiAgICBAT3V0cHV0KCkgdGFnQWRkOiBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFREeW5hbWljVGFnVmFsdWU+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWREeW5hbWljVGFnOiBURHluYW1pY1RhZ1ZhbHVlO1xuICAgIHB1YmxpYyBjdXJyZW50VmFsdWVzOiBURHluYW1pY1RhZ1ZhbHVlW107XG4gICAgcHVibGljIGlzTG9ja2VkVGFnU2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IGlzUHJpbWl0aXZlRGF0YVNvdXJjZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnZhbHVlcykgfHwgW107XG4gICAgICAgIHJldHVybiAhX2lzT2JqZWN0KHZhbHVlc1swXSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVEeW5hbWljVGFnVmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFnQ2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogJGV2ZW50LFxuICAgICAgICAgICAgbG9ja2VkOiB0aGlzLmxvY2tlZFRhZ3MuaW5jbHVkZXMoJGV2ZW50KVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghX2lzTmlsKHRoaXMuc2VsZWN0ZWRUYWc/LmxvY2tlZCkpIHtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxvY2tlZCA9IHRoaXMuc2VsZWN0ZWRUYWcubG9ja2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFfaXNOaWwodGhpcy5zZWxlY3RlZFRhZz8ubGFiZWwpKSB7XG4gICAgICAgICAgICByZXN1bHRFdmVudC5sYWJlbCA9IHRoaXMuc2VsZWN0ZWRUYWcubGFiZWw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzTG9ja2VkVGFnU2VsZWN0ZWQgPSByZXN1bHRFdmVudC5sb2NrZWQ7XG4gICAgICAgIHRoaXMudGFnQ2hhbmdlLmVtaXQocmVzdWx0RXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9wdGlvbkNsaWNrKCRldmVudDogRXZlbnQsIHRhZ1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9ja2VkVGFncy5pbmNsdWRlcyh0YWdWYWx1ZSkpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkR5bmFtaWNWYWx1ZUFkZCgkZXZlbnQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZUtleSA9IHRoaXMuZ2V0UGFyZW50VmFsdWVLZXkoKTtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWVzID0gdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldIHx8IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUHJpbWl0aXZlRGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldID0gWyRldmVudCwgLi4ucGFyZW50VmFsdWVzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XSA9IFt7IHZhbHVlOiAkZXZlbnQgfSwgLi4ucGFyZW50VmFsdWVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREeW5hbWljVGFnID0gJGV2ZW50O1xuXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlcyA9IHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XTtcbiAgICAgICAgdGhpcy5vblRhZ0NoYW5nZWQoJGV2ZW50KTtcbiAgICAgICAgdGhpcy50YWdBZGQuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRHluYW1pY1RhZ1ZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWVLZXkgPSB0aGlzLmdldFBhcmVudFZhbHVlS2V5KCk7XG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlcyA9IHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZER5bmFtaWNUYWcgPSB0aGlzLmdldFNlbGVjdGVkRHluYW1pY1RhZyh0aGlzLmN1cnJlbnRWYWx1ZXMsIHRoaXMuc2VsZWN0ZWRUYWc/LnZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRhZ0NoYW5nZWQodGhpcy5zZWxlY3RlZER5bmFtaWNUYWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWREeW5hbWljVGFnKGN1cnJlbnRWYWx1ZXM6IFREeW5hbWljVGFnVmFsdWVbXSwgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjdXJyZW50VmFsdWVzPy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmIChfaXNPYmplY3QoY3VycmVudFZhbHVlc1swXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlRnJvbUNvbmZpZyA9IF9maW5kKGN1cnJlbnRWYWx1ZXMsIHsgdmFsdWU6IHNlbGVjdGVkVmFsdWUgfSkgYXMgSUR5bmFtaWNUYWc7XG4gICAgICAgICAgICBjb25zdCBmYXZvcml0ZVZhbHVlID0gX2ZpbmQoY3VycmVudFZhbHVlcywgeyBpc19mYXZvcml0ZTogdHJ1ZSB9KSBhcyBJRHluYW1pY1RhZztcbiAgICAgICAgICAgIHJldHVybiAodmFsdWVGcm9tQ29uZmlnIHx8IGZhdm9yaXRlVmFsdWUgfHwgY3VycmVudFZhbHVlc1swXSkudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZUZyb21Db25maWcgPSBfZmluZChjdXJyZW50VmFsdWVzLCAodmFsdWUpID0+IHZhbHVlID09PSBzZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgcmV0dXJuICh2YWx1ZUZyb21Db25maWcgfHwgY3VycmVudFZhbHVlc1swXSkgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGFyZW50VmFsdWVLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIF9tYXAodGhpcy5jb25uZWN0ZWRUYWdzLCAoY29ubmVjdGVkVGFnKSA9PiB7XG4gICAgICAgICAgICBpZiAoX2lzTnVtYmVyKGNvbm5lY3RlZFRhZy52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb21lbnREYXRhID0gbW9tZW50LnVuaXgoY29ubmVjdGVkVGFnLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBhZGQgaW5wdXQgcHJvcCAoc2VsZWN0ZWRUaW1lRGltZW5zaW9uKSBvciBGb3JtYXRcbiAgICAgICAgICAgICAgICBjb25zdCBjb252ZXJ0ZWRQYXJlbnRWYWx1ZSA9IG1vbWVudERhdGEuZ2V0KCd5ZWFyJylcbiAgICAgICAgICAgICAgICBpZiAobW9tZW50RGF0YS5pc1ZhbGlkKCkgJiYgY29udmVydGVkUGFyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZFBhcmVudFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvbm5lY3RlZFRhZy52YWx1ZTtcbiAgICAgICAgfSkuam9pbignX18nKTtcbiAgICB9XG59XG4iXX0=
@@ -64,8 +64,6 @@ export class DrTagComponent {
64
64
  id: this.tagConfig.id,
65
65
  name: event.name,
66
66
  value: event.value,
67
- calculatedValue: event.calculatedValue,
68
- chosenValue: event.chosenValue,
69
67
  label: event.label,
70
68
  locked: event.locked
71
69
  };
@@ -180,4 +178,4 @@ DrTagComponent.propDecorators = {
180
178
  dynamicTagChange: [{ type: Output }],
181
179
  dynamicTagAdd: [{ type: Output }]
182
180
  };
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXRhZ3MvZHItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUtILGlCQUFpQixFQUNqQixRQUFRLEVBR1gsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBU3pHLE1BQU0sT0FBTyxjQUFjO0lBaUR2QjtRQTdDUyxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBS3ZCLHFCQUFnQixHQUFnQixFQUFFLENBQUM7UUFXNUMsK0RBQStEO1FBQ3RELDBCQUFxQixHQUEyQixFQUFFLENBQUM7UUFFbEQsY0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQyxDQUFDLGlDQUFpQztRQUM3RyxxQkFBZ0IsR0FBa0MsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDdEYsa0JBQWEsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFJeEYsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFLVixvQkFBZSxHQUFHLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBGLHdCQUFtQixHQUFvQixFQUFFLENBQUM7UUFFMUMsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBV3pDLElBQUksQ0FBQyxXQUFXLEdB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QUUsUUFBUTtnQkFFbEIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3hDOzs7O3dCQUVJLEtBQUs7MEJBRUwsS0FBSzt5QkFDTCxLQUFLO21DQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFFTCxLQUFLOytCQUNMLEtBQUs7NEJBRUwsS0FBSztxQ0FLTCxLQUFLO3VCQUVMLEtBQUs7b0NBR0wsS0FBSzt3QkFFTCxNQUFNOytCQUNOLE1BQU07NEJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgSURhdGVUYWcsXG4gICAgSUxpc3RUYWcsXG4gICAgSVRhZyxcbiAgICBJVGFnRm9yU2VydmVyLFxuICAgIFRhZ3NDb25maWdTdWJUeXBlLFxuICAgIFRhZ1R5cGVzLFxuICAgIFREeW5hbWljVGFnLFxuICAgIFREeW5hbWljVGFnVmFsdWVcbn0gZnJvbSAnLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgZmluZCBhcyBfZmluZCwgZm9yRWFjaCBhcyBfZm9yRWFjaCwgbWFwIGFzIF9tYXAsIG1lcmdlIGFzIF9tZXJnZSwgc29tZSBhcyBfc29tZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJVGFnQWRkaXRpb25hbFNldHRpbmdzIH0gZnJvbSAnLi9kci10YWcudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJ2RyLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdkci10YWcnLFxuICAgIHN0eWxlVXJsczogWydkci10YWcuY29tcG9uZW50LnNjc3MnLCAnLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL3ByZWJ1aWx0LXRoZW1lcy9pbmRpZ28tcGluay5jc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIERyVGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHRhZ0NvbmZpZzogSVRhZztcbiAgICAvLyBzZWxlY3RlZFRhZ1ZhbHVlXG4gICAgQElucHV0KCkgc2VsZWN0ZWRUYWc6IElUYWdGb3JTZXJ2ZXI7XG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyU3RhcnRzRnJvbT86IG51bWJlcjtcbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyQmFjaz86IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSB0YWdzQ29uZmlnOiBJVGFnW107XG4gICAgQElucHV0KCkgZHluYW1pY1RhZ1ZhbHVlczogVER5bmFtaWNUYWcgPSB7fTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjb25uZWN0ZWRUYWdzKHRhZ3M6IElUYWdGb3JTZXJ2ZXJbXSkge1xuICAgICAgICB0aGlzLl9jb25uZWN0ZWRUYWdzID0gdGFncyB8fCBbXTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpc0R5bmFtaWNUYWdBZGRFbmFibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvLyBBbiBvYmplY3QgY29udGFpbmluZyBhZGRpdGlvbmFsIHByb3BzIGZvciB0YWdzIGNvbmZpZ3VyYXRpb25cbiAgICBASW5wdXQoKSB0YWdBZGRpdGlvbmFsU2V0dGluZ3M6IElUYWdBZGRpdGlvbmFsU2V0dGluZ3MgPSB7fTtcblxuICAgIEBPdXRwdXQoKSB0YWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4oKTsgLy8gTm90IGVtaXQgdmFsdWUgZm9yIGR5bmFtaWMgdGFnXG4gICAgQE91dHB1dCgpIGR5bmFtaWNUYWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyW10+KCk7XG4gICAgQE91dHB1dCgpIGR5bmFtaWNUYWdBZGQ6IEV2ZW50RW1pdHRlcjxURHluYW1pY1RhZ1ZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4oKTtcblxuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBwdWJsaWMgY3VycmVudFRhZ0R5bmFtaWM6IGJvb2xlYW47XG4gICAgcHVibGljIGN1cnJlbnRUYWdDb25uZWN0ZWRUb0R5bmFtaWMgPSBmYWxzZTtcbiAgICBwdWJsaWMgdGFnVHlwZXMgPSBUYWdUeXBlcztcblxuICAgIHB1YmxpYyBkYXRlVGFnOiBhbnk7XG4gICAgcHVibGljIGxpc3RUYWc6IGFueTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdGFibGVUYWdzID0gW1RhZ3NDb25maWdTdWJUeXBlLkZPUkVDQVNUX05FVywgVGFnc0NvbmZpZ1N1YlR5cGUuWUVBUl07XG5cbiAgICBwcml2YXRlIGNvbm5lY3RlZFRhZ3NWYWx1ZXM6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgZHluYW1pY1RhZ1ZhbHVlOiBJVGFnRm9yU2VydmVyO1xuICAgIHByaXZhdGUgX2Nvbm5lY3RlZFRhZ3M6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGdldCBjb25uZWN0ZWRUYWdzKCk6IElUYWdGb3JTZXJ2ZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25uZWN0ZWRUYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNEeW5hbWljVGFnTXVsdGlwbGVMaW5lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFnRHluYW1pYyAmJiB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9DWUNMRTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhZyA9IHtcbiAgICAgICAgICAgIGlkOiAwLFxuICAgICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5hbWU6ICcnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlcy50YWdzQ29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUR5bmFtaWNUYWcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRhdGVUYWcgPSB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLnRhZ0NvbmZpZy50eXBlLFxuICAgICAgICAgICAgc3ViX3R5cGU6IHRoaXMudGFnQ29uZmlnLm9wdGlvbnMuc3ViX3R5cGUsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFRhZz8udmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5saXN0VGFnID0ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy50YWdDb25maWcubmFtZSxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudGFnQ29uZmlnLnR5cGUsXG4gICAgICAgICAgICB2YWx1ZXM6IHRoaXMudGFnQ29uZmlnLnZhbHVlcyxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNlbGVjdGVkVGFnPy52YWx1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy50YWdzQ29uZmlnICYmIHRoaXMuY3VycmVudFRhZ0R5bmFtaWMpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJlVGFnSXRlbXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRhZ0NvbmZpZyAmJiB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zICYmIHRoaXMudGFnQ29uZmlnLm9wdGlvbnMuZGVmYXVsdF92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zLmRlZmF1bHRfdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRhdGVIYW5kbGVyKGV2ZW50OiBJRGF0ZVRhZykge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFnRHluYW1pYykge1xuICAgICAgICAgICAgdGhpcy5vbkR5bmFtaWNIYW5kbGVyKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdEV2ZW50OiBJVGFnRm9yU2VydmVyID0ge1xuICAgICAgICAgICAgaWQ6IHRoaXMudGFnQ29uZmlnLmlkLFxuICAgICAgICAgICAgbmFtZTogZXZlbnQubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBldmVudC52YWx1ZSxcbiAgICAgICAgICAgIGNhbGN1bGF0ZWRWYWx1ZTogZXZlbnQuY2FsY3VsYXRlZFZhbHVlLFxuICAgICAgICAgICAgY2hvc2VuVmFsdWU6IGV2ZW50LmNob3NlblZhbHVlLFxuICAgICAgICAgICAgbGFiZWw6IGV2ZW50LmxhYmVsLFxuICAgICAgICAgICAgbG9ja2VkOiBldmVudC5sb2NrZWRcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRFdmVudCk7XG4gICAgICAgIHRoaXMudGFnQ2hhbmdlLmVtaXQocmVzdWx0RXZlbnQpO1xuICAgIH1cblxuICAgIG9uTGlzdEhhbmRsZXIoZXZlbnQ6IElMaXN0VGFnKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRUYWdEeW5hbWljKSB7XG4gICAgICAgICAgICB0aGlzLm9uRHluYW1pY0hhbmRsZXIoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQ6IElUYWdGb3JTZXJ2ZXIgPSB7XG4gICAgICAgICAgICBpZDogdGhpcy50YWdDb25maWcuaWQsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLnRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGV2ZW50LnZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdEV2ZW50KTtcbiAgICAgICAgdGhpcy50YWdDaGFuZ2UuZW1pdChyZXN1bHRFdmVudCk7XG4gICAgfVxuXG4gICAgb25EeW5hbWljVGFnQ2hhbmdlKHRhZz86IElUYWdGb3JTZXJ2ZXIpIHtcbiAgICAgICAgaWYgKHRhZykge1xuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFnVmFsdWUgPSB0YWc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmR5bmFtaWNUYWdDaGFuZ2UuZW1pdChbLi4udGhpcy5jb25uZWN0ZWRUYWdzVmFsdWVzLCB0aGlzLmR5bmFtaWNUYWdWYWx1ZV0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25EeW5hbWljSGFuZGxlcihldmVudCkge1xuICAgICAgICBjb25zdCBjb25uZWN0ZWREYXRlVGFnQ29uZmlnID0gX2ZpbmQodGhpcy50YWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PiB0YWdDb25maWcubmFtZSA9PT0gZXZlbnQubmFtZSk7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkVGFncyA9IF9tYXAodGhpcy5jb25uZWN0ZWRUYWdzLCB0YWcgPT4ge1xuICAgICAgICAgICAgaWYgKHRhZy5pZCA9PT0gY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy5pZCkge1xuICAgICAgICAgICAgICAgIHRhZy52YWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgICAgICAgICAgICAgIHRhZy5sb2NrZWQgPSBldmVudC5sb2NrZWQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy50eXBlID09PSBUYWdUeXBlcy5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhZy5sYWJlbCA9IGV2ZW50LmxhYmVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRhZztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQ6IElUYWdGb3JTZXJ2ZXIgPSB7XG4gICAgICAgICAgICBpZDogY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IGNvbm5lY3RlZERhdGVUYWdDb25maWcubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBldmVudC52YWx1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChjb25uZWN0ZWREYXRlVGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUpIHtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxhYmVsID0gZXZlbnQubGFiZWw7XG4gICAgICAgICAgICByZXN1bHRFdmVudC5sb2NrZWQgPSBldmVudC5sb2NrZWQ7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGNvbnN0IHNhdmVkVGFnID0gX2ZpbmQodGhpcy5jb25uZWN0ZWRUYWdzVmFsdWVzLCB7IGlkOiByZXN1bHRFdmVudC5pZCB9KTtcblxuICAgICAgICBpZiAoc2F2ZWRUYWcpIHtcbiAgICAgICAgICAgIF9tZXJnZShzYXZlZFRhZywgcmVzdWx0RXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRUYWdzVmFsdWVzLnB1c2gocmVzdWx0RXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkR5bmFtaWNUYWdDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpZ3VyZVRhZ0l0ZW1zKCkge1xuICAgICAgICBfZm9yRWFjaCh0aGlzLnRhZ3NDb25maWcsICh0YWdDb25maWcpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25uZWN0YWJsZVRhZ3MuaW5jbHVkZXModGFnQ29uZmlnLm9wdGlvbnMuc3ViX3R5cGUpKSByZXR1cm47XG4gICAgICAgICAgICBpZiAodGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUYWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHRhZ0NvbmZpZy50eXBlLFxuICAgICAgICAgICAgICAgICAgICBzdWJfdHlwZTogdGFnQ29uZmlnLm9wdGlvbnMuc3ViX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAoX2ZpbmQodGhpcy5jb25uZWN0ZWRUYWdzLCB7IGlkOiB0YWdDb25maWcuaWQgfSkgfHwge30pLnZhbHVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0YWdDb25maWcudHlwZSA9PT0gVGFnVHlwZXMuTElTVCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdFRhZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHRhZ0NvbmZpZy50eXBlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IHRhZ0NvbmZpZy52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0YWdDb25maWc/Lm9wdGlvbnM/LmRlZmF1bHRfdmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFfZmluZCh0aGlzLmNvbm5lY3RlZFRhZ3MsIHsgaWQ6IHRhZ0NvbmZpZy5pZCB9KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkVGFncy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlRHluYW1pY1RhZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnRHluYW1pYyA9IHRoaXMudGFnQ29uZmlnLm9wdGlvbnMuaXNfY3VzdG9tO1xuXG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0Nvbm5lY3RlZFRvRHluYW1pYyA9IF9zb21lKFxuICAgICAgICAgICAgdGhpcy50YWdzQ29uZmlnLFxuICAgICAgICAgICAgKHRhZ0NvbmZpZykgPT4gdGFnQ29uZmlnLm9wdGlvbnMuaXNfY3VzdG9tICYmIHRoaXMuY29ubmVjdGFibGVUYWdzLmluY2x1ZGVzKHRoaXMudGFnQ29uZmlnLm9wdGlvbnMuc3ViX3R5cGUpLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXRhZ3MvZHItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUtILGlCQUFpQixFQUNqQixRQUFRLEVBR1gsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBU3pHLE1BQU0sT0FBTyxjQUFjO0lBaUR2QjtRQTdDUyxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBS3ZCLHFCQUFnQixHQUFnQixFQUFFLENBQUM7UUFXNUMsK0RBQStEO1FBQ3RELDBCQUFxQixHQUEyQixFQUFFLENBQUM7UUFFbEQsY0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQyxDQUFDLGlDQUFpQztRQUM3RyxxQkFBZ0IsR0FBa0MsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDdEYsa0JBQWEsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFJeEYsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFLVixvQkFBZSxHQUFHLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBGLHdCQUFtQixHQUFvQixFQUFFLENBQUM7UUFFMUMsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBV3pDLElBQUksQ0FBQyxXQUFXLEdB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OzBCQUVMLEtBQUs7eUJBQ0wsS0FBSzttQ0FDTCxLQUFLOzZCQUNMLEtBQUs7eUJBRUwsS0FBSzsrQkFDTCxLQUFLOzRCQUVMLEtBQUs7cUNBS0wsS0FBSzt1QkFFTCxLQUFLO29DQUdMLEtBQUs7d0JBRUwsTUFBTTsrQkFDTixNQUFNOzRCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIElEYXRlVGFnLFxuICAgIElMaXN0VGFnLFxuICAgIElUYWcsXG4gICAgSVRhZ0ZvclNlcnZlcixcbiAgICBUYWdzQ29uZmlnU3ViVHlwZSxcbiAgICBUYWdUeXBlcyxcbiAgICBURHluYW1pY1RhZyxcbiAgICBURHluYW1pY1RhZ1ZhbHVlXG59IGZyb20gJy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IGZpbmQgYXMgX2ZpbmQsIGZvckVhY2ggYXMgX2ZvckVhY2gsIG1hcCBhcyBfbWFwLCBtZXJnZSBhcyBfbWVyZ2UsIHNvbWUgYXMgX3NvbWUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSVRhZ0FkZGl0aW9uYWxTZXR0aW5ncyB9IGZyb20gJy4vZHItdGFnLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdkci10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAnZHItdGFnJyxcbiAgICBzdHlsZVVybHM6IFsnZHItdGFnLmNvbXBvbmVudC5zY3NzJywgJy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9wcmVidWlsdC10aGVtZXMvaW5kaWdvLXBpbmsuY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEclRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSB0YWdDb25maWc6IElUYWc7XG4gICAgLy8gc2VsZWN0ZWRUYWdWYWx1ZVxuICAgIEBJbnB1dCgpIHNlbGVjdGVkVGFnOiBJVGFnRm9yU2VydmVyO1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb20/OiBudW1iZXI7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhckJhY2s/OiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIEBJbnB1dCgpIGR5bmFtaWNUYWdWYWx1ZXM6IFREeW5hbWljVGFnID0ge307XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgY29ubmVjdGVkVGFncyh0YWdzOiBJVGFnRm9yU2VydmVyW10pIHtcbiAgICAgICAgdGhpcy5fY29ubmVjdGVkVGFncyA9IHRhZ3MgfHwgW107XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNEeW5hbWljVGFnQWRkRW5hYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLy8gQW4gb2JqZWN0IGNvbnRhaW5pbmcgYWRkaXRpb25hbCBwcm9wcyBmb3IgdGFncyBjb25maWd1cmF0aW9uXG4gICAgQElucHV0KCkgdGFnQWRkaXRpb25hbFNldHRpbmdzOiBJVGFnQWRkaXRpb25hbFNldHRpbmdzID0ge307XG5cbiAgICBAT3V0cHV0KCkgdGFnQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPElUYWdGb3JTZXJ2ZXI+KCk7IC8vIE5vdCBlbWl0IHZhbHVlIGZvciBkeW5hbWljIHRhZ1xuICAgIEBPdXRwdXQoKSBkeW5hbWljVGFnQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcltdPigpO1xuICAgIEBPdXRwdXQoKSBkeW5hbWljVGFnQWRkOiBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFREeW5hbWljVGFnVmFsdWU+KCk7XG5cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHVibGljIGN1cnJlbnRUYWdEeW5hbWljOiBib29sZWFuO1xuICAgIHB1YmxpYyBjdXJyZW50VGFnQ29ubmVjdGVkVG9EeW5hbWljID0gZmFsc2U7XG4gICAgcHVibGljIHRhZ1R5cGVzID0gVGFnVHlwZXM7XG5cbiAgICBwdWJsaWMgZGF0ZVRhZzogYW55O1xuICAgIHB1YmxpYyBsaXN0VGFnOiBhbnk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbm5lY3RhYmxlVGFncyA9IFtUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcsIFRhZ3NDb25maWdTdWJUeXBlLllFQVJdO1xuXG4gICAgcHJpdmF0ZSBjb25uZWN0ZWRUYWdzVmFsdWVzOiBJVGFnRm9yU2VydmVyW10gPSBbXTtcbiAgICBwcml2YXRlIGR5bmFtaWNUYWdWYWx1ZTogSVRhZ0ZvclNlcnZlcjtcbiAgICBwcml2YXRlIF9jb25uZWN0ZWRUYWdzOiBJVGFnRm9yU2VydmVyW10gPSBbXTtcblxuICAgIHB1YmxpYyBnZXQgY29ubmVjdGVkVGFncygpOiBJVGFnRm9yU2VydmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29ubmVjdGVkVGFncztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRHluYW1pY1RhZ011bHRpcGxlTGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ0R5bmFtaWMgJiYgdGhpcy50YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSA9PT0gVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfQ1lDTEU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWcgPSB7XG4gICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiAnJ1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMudGFnc0NvbmZpZykge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVEeW5hbWljVGFnKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kYXRlVGFnID0ge1xuICAgICAgICAgICAgdHlwZTogdGhpcy50YWdDb25maWcudHlwZSxcbiAgICAgICAgICAgIHN1Yl90eXBlOiB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRUYWc/LnZhbHVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubGlzdFRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnRhZ0NvbmZpZy50eXBlLFxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnRhZ0NvbmZpZy52YWx1ZXMsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFRhZz8udmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMudGFnc0NvbmZpZyAmJiB0aGlzLmN1cnJlbnRUYWdEeW5hbWljKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZVRhZ0l0ZW1zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YWdDb25maWcgJiYgdGhpcy50YWdDb25maWcub3B0aW9ucyAmJiB0aGlzLnRhZ0NvbmZpZy5vcHRpb25zLmRlZmF1bHRfdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy50YWdDb25maWcub3B0aW9ucy5kZWZhdWx0X3ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EYXRlSGFuZGxlcihldmVudDogSURhdGVUYWcpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFRhZ0R5bmFtaWMpIHtcbiAgICAgICAgICAgIHRoaXMub25EeW5hbWljSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IGV2ZW50Lm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogZXZlbnQudmFsdWUsXG4gICAgICAgICAgICBsYWJlbDogZXZlbnQubGFiZWwsXG4gICAgICAgICAgICBsb2NrZWQ6IGV2ZW50LmxvY2tlZFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdEV2ZW50KTtcbiAgICAgICAgdGhpcy50YWdDaGFuZ2UuZW1pdChyZXN1bHRFdmVudCk7XG4gICAgfVxuXG4gICAgb25MaXN0SGFuZGxlcihldmVudDogSUxpc3RUYWcpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFRhZ0R5bmFtaWMpIHtcbiAgICAgICAgICAgIHRoaXMub25EeW5hbWljSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogZXZlbnQudmFsdWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2cocmVzdWx0RXZlbnQpO1xuICAgICAgICB0aGlzLnRhZ0NoYW5nZS5lbWl0KHJlc3VsdEV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkR5bmFtaWNUYWdDaGFuZ2UodGFnPzogSVRhZ0ZvclNlcnZlcikge1xuICAgICAgICBpZiAodGFnKSB7XG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYWdWYWx1ZSA9IHRhZztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZHluYW1pY1RhZ0NoYW5nZS5lbWl0KFsuLi50aGlzLmNvbm5lY3RlZFRhZ3NWYWx1ZXMsIHRoaXMuZHluYW1pY1RhZ1ZhbHVlXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkR5bmFtaWNIYW5kbGVyKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3RlZERhdGVUYWdDb25maWcgPSBfZmluZCh0aGlzLnRhZ3NDb25maWcsICh0YWdDb25maWcpID0+IHRhZ0NvbmZpZy5uYW1lID09PSBldmVudC5uYW1lKTtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRUYWdzID0gX21hcCh0aGlzLmNvbm5lY3RlZFRhZ3MsIHRhZyA9PiB7XG4gICAgICAgICAgICBpZiAodGFnLmlkID09PSBjb25uZWN0ZWREYXRlVGFnQ29uZmlnLmlkKSB7XG4gICAgICAgICAgICAgICAgdGFnLnZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGFnLmxvY2tlZCA9IGV2ZW50LmxvY2tlZDtcblxuICAgICAgICAgICAgICAgIGlmIChjb25uZWN0ZWREYXRlVGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFnLmxhYmVsID0gZXZlbnQubGFiZWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGFnO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiBjb25uZWN0ZWREYXRlVGFnQ29uZmlnLmlkLFxuICAgICAgICAgICAgbmFtZTogY29ubmVjdGVkRGF0ZVRhZ0NvbmZpZy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGV2ZW50LnZhbHVlXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNvbm5lY3RlZERhdGVUYWdDb25maWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSkge1xuICAgICAgICAgICAgcmVzdWx0RXZlbnQubGFiZWwgPSBldmVudC5sYWJlbDtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxvY2tlZCA9IGV2ZW50LmxvY2tlZDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgY29uc3Qgc2F2ZWRUYWcgPSBfZmluZCh0aGlzLmNvbm5lY3RlZFRhZ3NWYWx1ZXMsIHsgaWQ6IHJlc3VsdEV2ZW50LmlkIH0pO1xuXG4gICAgICAgIGlmIChzYXZlZFRhZykge1xuICAgICAgICAgICAgX21lcmdlKHNhdmVkVGFnLCByZXN1bHRFdmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3RlZFRhZ3NWYWx1ZXMucHVzaChyZXN1bHRFdmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uRHluYW1pY1RhZ0NoYW5nZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uZmlndXJlVGFnSXRlbXMoKSB7XG4gICAgICAgIF9mb3JFYWNoKHRoaXMudGFnc0NvbmZpZywgKHRhZ0NvbmZpZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RhYmxlVGFncy5pbmNsdWRlcyh0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSkpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0YWdDb25maWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRhZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdGFnQ29uZmlnLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHN1Yl90eXBlOiB0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IChfZmluZCh0aGlzLmNvbm5lY3RlZFRhZ3MsIHsgaWQ6IHRhZ0NvbmZpZy5pZCB9KSB8fCB7fSkudmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRhZ0NvbmZpZy50eXBlID09PSBUYWdUeXBlcy5MSVNUKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0VGFnID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0YWdDb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdGFnQ29uZmlnLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlczogdGFnQ29uZmlnLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRhZ0NvbmZpZz8ub3B0aW9ucz8uZGVmYXVsdF92YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIV9maW5kKHRoaXMuY29ubmVjdGVkVGFncywgeyBpZDogdGFnQ29uZmlnLmlkIH0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRUYWdzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDogdGFnQ29uZmlnLmlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0YWdDb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVEeW5hbWljVGFnKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdEeW5hbWljID0gdGhpcy50YWdDb25maWcub3B0aW9ucy5pc19jdXN0b207XG5cbiAgICAgICAgdGhpcy5jdXJyZW50VGFnQ29ubmVjdGVkVG9EeW5hbWljID0gX3NvbWUoXG4gICAgICAgICAgICB0aGlzLnRhZ3NDb25maWcsXG4gICAgICAgICAgICAodGFnQ29uZmlnKSA9PiB0YWdDb25maWcub3B0aW9ucy5pc19jdXN0b20gJiYgdGhpcy5jb25uZWN0YWJsZVRhZ3MuaW5jbHVkZXModGhpcy50YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSksXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -18,4 +18,4 @@ export var TagsConfigSubType;
18
18
  TagsConfigSubType["QUARTER"] = "quarter";
19
19
  TagsConfigSubType["FILE_STATUS"] = "file_status";
20
20
  })(TagsConfigSubType || (TagsConfigSubType = {}));
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyVGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL21vZGVscy9zZXJ2ZXJUYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNoQix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxpQkFXWDtBQVhELFdBQVksaUJBQWlCO0lBQ3pCLGtDQUFhLENBQUE7SUFDYixrQ0FBYSxDQUFBO0lBQ2Isa0RBQTZCLENBQUE7SUFDN0Isc0RBQWlDLENBQUE7SUFDakMsb0NBQWUsQ0FBQTtJQUNmLGtDQUFhLENBQUE7SUFDYixnQ0FBVyxDQUFBO0lBQ1gsa0RBQTZCLENBQUE7SUFDN0Isd0NBQW1CLENBQUE7SUFDbkIsZ0RBQTJCLENBQUE7QUFDL0IsQ0FBQyxFQVhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFXNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbnN0ZWFkIG9mIGdldHRpbmcgdGhpcyBmcm9tIHRoZSBzZXJ2ZXIgZWFjaCB0aW1lXG4vLyB0aGlzIGlzIG5vdCBnb2luZyB0byBjaGFuZ2UgbXVjaFxuZXhwb3J0IGVudW0gVGFnVHlwZXMge1xuICAgIExJU1QgPSAnTElTVCcsXG4gICAgREFURSA9ICdEQVRFJ1xufVxuXG5leHBvcnQgZW51bSBUYWdzQ29uZmlnU3ViVHlwZSB7XG4gICAgWUVBUiA9ICd5ZWFyJyxcbiAgICBQTEFOID0gJ3BsYW4nLFxuICAgIEJVREdFVF9DWUNMRSA9ICdidWRnZXQgY3ljbGUnLFxuICAgIEZPUkVDQVNUX0NZQ0xFID0gJ2ZvcmVjYXN0IGN5Y2xlJyxcbiAgICBNT05USCA9ICdtb250aCcsXG4gICAgV0VFSyA9ICd3ZWVrJyxcbiAgICBEQVkgPSAnZGF5JyxcbiAgICBGT1JFQ0FTVF9ORVcgPSAnZm9yZWNhc3RfbmV3JyxcbiAgICBRVUFSVEVSID0gJ3F1YXJ0ZXInLFxuICAgIEZJTEVfU1RBVFVTID0gJ2ZpbGVfc3RhdHVzJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWcge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IFRBR19UWVBFUztcbiAgICBvcHRpb25zOiBhbnk7XG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IG51bGw7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBsb2NrZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWdGb3JTZXJ2ZXIge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGNhbGN1bGF0ZWRWYWx1ZT86IG51bWJlciB8IHN0cmluZztcbiAgICBjaG9zZW5WYWx1ZT86IG51bWJlciB8IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBsb2NrZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlVGFnIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU/OiBudW1iZXI7XG4gICAgY2FsY3VsYXRlZFZhbHVlPzogbnVtYmVyO1xuICAgIGNob3NlblZhbHVlPzogbnVtYmVyO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGxvY2tlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RUYWcge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IG51bWJlcjtcbiAgICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY1RhZyB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBpc19mYXZvcml0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFREeW5hbWljVGFnVmFsdWUgPSBJRHluYW1pY1RhZyB8IHN0cmluZyB8IG51bWJlcjtcbmV4cG9ydCB0eXBlIFREeW5hbWljVGFnID0geyBbcGFyZW50VmFsdWU6IHN0cmluZ106IFREeW5hbWljVGFnVmFsdWVbXSB9O1xuZXhwb3J0IHR5cGUgVENvbm5lY3RlZFRhZ3MgPSB7IFt0YWdJZDogbnVtYmVyXTogSVRhZ0ZvclNlcnZlcltdIH07XG5leHBvcnQgdHlwZSBUQUdfVFlQRVMgPSBUYWdUeXBlcztcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyVGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL21vZGVscy9zZXJ2ZXJUYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNoQix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxpQkFXWDtBQVhELFdBQVksaUJBQWlCO0lBQ3pCLGtDQUFhLENBQUE7SUFDYixrQ0FBYSxDQUFBO0lBQ2Isa0RBQTZCLENBQUE7SUFDN0Isc0RBQWlDLENBQUE7SUFDakMsb0NBQWUsQ0FBQTtJQUNmLGtDQUFhLENBQUE7SUFDYixnQ0FBVyxDQUFBO0lBQ1gsa0RBQTZCLENBQUE7SUFDN0Isd0NBQW1CLENBQUE7SUFDbkIsZ0RBQTJCLENBQUE7QUFDL0IsQ0FBQyxFQVhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFXNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbnN0ZWFkIG9mIGdldHRpbmcgdGhpcyBmcm9tIHRoZSBzZXJ2ZXIgZWFjaCB0aW1lXG4vLyB0aGlzIGlzIG5vdCBnb2luZyB0byBjaGFuZ2UgbXVjaFxuZXhwb3J0IGVudW0gVGFnVHlwZXMge1xuICAgIExJU1QgPSAnTElTVCcsXG4gICAgREFURSA9ICdEQVRFJ1xufVxuXG5leHBvcnQgZW51bSBUYWdzQ29uZmlnU3ViVHlwZSB7XG4gICAgWUVBUiA9ICd5ZWFyJyxcbiAgICBQTEFOID0gJ3BsYW4nLFxuICAgIEJVREdFVF9DWUNMRSA9ICdidWRnZXQgY3ljbGUnLFxuICAgIEZPUkVDQVNUX0NZQ0xFID0gJ2ZvcmVjYXN0IGN5Y2xlJyxcbiAgICBNT05USCA9ICdtb250aCcsXG4gICAgV0VFSyA9ICd3ZWVrJyxcbiAgICBEQVkgPSAnZGF5JyxcbiAgICBGT1JFQ0FTVF9ORVcgPSAnZm9yZWNhc3RfbmV3JyxcbiAgICBRVUFSVEVSID0gJ3F1YXJ0ZXInLFxuICAgIEZJTEVfU1RBVFVTID0gJ2ZpbGVfc3RhdHVzJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWcge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IFRBR19UWVBFUztcbiAgICBvcHRpb25zOiBhbnk7XG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IG51bGw7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBsb2NrZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWdGb3JTZXJ2ZXIge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGxvY2tlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVUYWcge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IG51bWJlcjtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBsb2NrZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaXN0VGFnIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU/OiBudW1iZXI7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNUYWcge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgaXNfZmF2b3JpdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBURHluYW1pY1RhZ1ZhbHVlID0gSUR5bmFtaWNUYWcgfCBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgdHlwZSBURHluYW1pY1RhZyA9IHsgW3BhcmVudFZhbHVlOiBzdHJpbmddOiBURHluYW1pY1RhZ1ZhbHVlW10gfTtcbmV4cG9ydCB0eXBlIFRDb25uZWN0ZWRUYWdzID0geyBbdGFnSWQ6IG51bWJlcl06IElUYWdGb3JTZXJ2ZXJbXSB9O1xuZXhwb3J0IHR5cGUgVEFHX1RZUEVTID0gVGFnVHlwZXM7XG4iXX0=
@@ -97,6 +97,7 @@ AnyTagComponent.propDecorators = {
97
97
  /* BEFORE MERGE INTO MASTER YOU MUST CONSULT WITH ARTEM LAZIUK !!!*/
98
98
  // @ts-ignore
99
99
  const moment$9 = require('moment');
100
+ const FORECAST_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';
100
101
  class ForecastTagComponent extends AnyTagComponent {
101
102
  constructor() {
102
103
  super();
@@ -119,6 +120,7 @@ class ForecastTagComponent extends AnyTagComponent {
119
120
  { value: 11, label: '11+1', disabled: false }
120
121
  ];
121
122
  this.initDateValue = null;
123
+ this.firstDayMonthOfYear = '01';
122
124
  }
123
125
  ngOnChanges(changes) {
124
126
  if (changes.lockedDate) {
@@ -129,21 +131,16 @@ class ForecastTagComponent extends AnyTagComponent {
129
131
  const dateVal = this.defaultValue ? moment$9.unix(this.defaultValue) : moment$9();
130
132
  const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
131
133
  this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;
132
- this.updateYear(dateVal.year(), this.forecastValue);
134
+ this.forecastYear = moment$9
135
+ .utc(`${this.firstDayMonthOfYear}/${this.firstDayMonthOfYear}/${this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, this.fiscalYearBack)}`, FORECAST_DEFAULT_DATE_FORMAT)
136
+ .unix();
133
137
  this.updateLockedDate();
134
138
  if (!this.initDateValue) {
135
139
  this.initDateValue = cloneDeep(this.dateObj.date);
136
140
  }
137
141
  }
138
- updateYear(fiscalYear, month) {
139
- const DATE_TIME = '12:00:00';
140
- const MONTH_DIFF = 1;
141
- this.dateObj.date = fiscalYear
142
- ? moment$9.utc(`${month + MONTH_DIFF || '01'}/01/${fiscalYear} ${DATE_TIME}`, 'MM/DD/YYYY hh:mm:ss').unix()
143
- : moment$9.utc().unix();
144
- }
145
142
  updateLockedDate() {
146
- const year = moment$9.unix(this.dateObj.date).year();
143
+ const year = moment$9.unix(this.forecastYear).year();
147
144
  this.forecastTags = this.forecastTags.map(forecastTag => {
148
145
  forecastTag.disabled = this.lockedDate.some((timestamp) => {
149
146
  const locked = moment$9.unix(timestamp);
@@ -194,12 +191,11 @@ class ForecastTagComponent extends AnyTagComponent {
194
191
  if (this.isDateEventHappened)
195
192
  return;
196
193
  const month = this.forecastValue;
197
- const year = moment$9.unix(this.dateObj.date).year();
194
+ const year = moment$9.unix(this.forecastYear);
198
195
  const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
199
196
  const fiscal_year_back = this.fiscalYearBack || false;
200
- const chosenDate = moment$9.unix(this.dateObj.date).unix();
201
197
  if (!Number.isNaN(month) && !Number.isNaN(year)) {
202
- const date = new Date(year, month, 1, 12, 0, 0, 0);
198
+ const date = new Date(year.year(), month, 1, 12, 0, 0, 0);
203
199
  if (fiscal_year_starts_from !== 1) {
204
200
  if (!fiscal_year_back) {
205
201
  date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);
@@ -208,19 +204,16 @@ class ForecastTagComponent extends AnyTagComponent {
208
204
  date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);
209
205
  }
210
206
  }
211
- this.updateYear(year, date.getMonth());
207
+ this.dateObj.date = moment$9(date).unix();
212
208
  this.isDateEventHappened = true;
213
209
  setTimeout(() => {
214
210
  this.isDateEventHappened = false;
215
211
  });
216
212
  }
217
- const calculatedDate = moment$9.unix(this.dateObj.date).year(this.getFiscalYearFromDate(moment$9.unix(this.dateObj.date), fiscal_year_starts_from, fiscal_year_back));
218
213
  const resultTag = {
219
214
  name: this.name,
220
215
  value: this.dateObj.date,
221
- calculatedValue: calculatedDate.unix(),
222
- chosenValue: chosenDate,
223
- label: `${(_a = find(this.forecastTags, { value: this.forecastValue })) === null || _a === void 0 ? void 0 : _a.label} (${year})`,
216
+ label: `${(_a = find(this.forecastTags, { value: this.forecastValue })) === null || _a === void 0 ? void 0 : _a.label} (${year.year()})`,
224
217
  locked: !this.dateFilter(moment$9.unix(this.dateObj.date)),
225
218
  };
226
219
  this.dateChange.emit(resultTag);
@@ -237,7 +230,7 @@ class ForecastTagComponent extends AnyTagComponent {
237
230
  }
238
231
  ForecastTagComponent.decorators = [
239
232
  { type: Component, args: [{
240
- template: "<ng-container *ngIf=\"!tagAdditionalSettings?.showSplitInputs; else splitInputsTpl\">\n <div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n </div>\n </div>\n</ng-container>\n\n<ng-template #splitInputsTpl>\n <div class=\"forecast-tag__split-container\">\n <p class=\"tag__label\">Period</p>\n <div class=\"forecast-tag__split-dropdowns\">\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n class=\"no-right-border-radius no-right-border\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n no-left-border-radius\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n </div>\n</ng-template>\n",
233
+ template: "<ng-container *ngIf=\"!tagAdditionalSettings?.showSplitInputs; else splitInputsTpl\">\n <div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"forecastYear\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n </div>\n </div>\n</ng-container>\n\n<ng-template #splitInputsTpl>\n <div class=\"forecast-tag__split-container\">\n <p class=\"tag__label\">Period</p>\n <div class=\"forecast-tag__split-dropdowns\">\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"forecastYear\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n class=\"no-right-border-radius no-right-border\"\n (ngModelChange)=\"changeYearInputHandler()\"></dr-date-picker>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n no-left-border-radius\n (ngModelChange)=\"changeTagInputHandler()\"></dr-select>\n </div>\n </div>\n</ng-template>\n",
241
234
  selector: 'forecast-tag',
242
235
  providers: [
243
236
  {
@@ -761,8 +754,6 @@ class DrTagComponent {
761
754
  id: this.tagConfig.id,
762
755
  name: event.name,
763
756
  value: event.value,
764
- calculatedValue: event.calculatedValue,
765
- chosenValue: event.chosenValue,
766
757
  label: event.label,
767
758
  locked: event.locked
768
759
  };
@@ -6393,9 +6384,7 @@ class DrDynamicTagComponent {
6393
6384
  if (isNumber(connectedTag.value)) {
6394
6385
  const momentData = moment.unix(connectedTag.value);
6395
6386
  // TODO: add input prop (selectedTimeDimension) or Format
6396
- const convertedParentValue = this.tagConfig.options.sub_type === TagsConfigSubType.FORECAST_CYCLE
6397
- ? this.getConvertedForecastPeriodValue(momentData)
6398
- : momentData.get('year');
6387
+ const convertedParentValue = momentData.get('year');
6399
6388
  if (momentData.isValid() && convertedParentValue) {
6400
6389
  return convertedParentValue;
6401
6390
  }
@@ -6403,11 +6392,6 @@ class DrDynamicTagComponent {
6403
6392
  return connectedTag.value;
6404
6393
  }).join('__');
6405
6394
  }
6406
- getConvertedForecastPeriodValue(momentData) {
6407
- const month = ForecastTagService.getFiscalMonthFromDate(momentData, this.fiscalYearStartsFrom);
6408
- const year = ForecastTagService.getFiscalYearFromDate(momentData, this.fiscalYearStartsFrom, this.fiscalYearBack);
6409
- return `${ForecastTagService.getForecastLabel(month)} (${year})`;
6410
- }
6411
6395
  }
6412
6396
  DrDynamicTagComponent.decorators = [
6413
6397
  { type: Component, args: [{