@datarailsshared/datarailsshared 1.4.156-rocket → 1.4.157
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/datarailsshared-datarailsshared.umd.js +139 -516
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.4.157.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +13 -14
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +14 -15
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +8 -3
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +8 -3
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +8 -3
- package/esm2015/lib/dr-details-list/dr-details-list.component.js +65 -0
- package/esm2015/lib/dr-details-list/dr-details-list.module.js +16 -0
- package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +3 -3
- package/esm2015/lib/dr-dialog/dialog.module.js +4 -2
- package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +1 -1
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +1 -1
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +3 -3
- package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +2 -5
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +2 -3
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +3 -8
- package/esm2015/lib/dr-tags/dr-tag.component.js +5 -17
- package/esm2015/lib/dr-tags/dr-tag.module.js +2 -2
- package/esm2015/lib/models/serverTags.js +1 -13
- package/esm2015/public-api.js +3 -7
- package/fesm2015/datarailsshared-datarailsshared.js +112 -466
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/dr-details-list/dr-details-list.component.d.ts +12 -0
- package/lib/dr-details-list/dr-details-list.module.d.ts +2 -0
- package/lib/dr-dialog/interfaces/dialog-data.d.ts +8 -0
- package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +12 -11
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +0 -3
- package/lib/dr-tags/dr-tag.component.d.ts +3 -7
- package/lib/models/serverTags.d.ts +1 -15
- package/package.json +1 -1
- package/public-api.d.ts +3 -6
- package/datarailsshared-datarailsshared-1.4.156-rocket.tgz +0 -0
- package/esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-theme.js +0 -6
- package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +0 -87
- package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +0 -74
- package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +0 -73
- package/esm2015/lib/dr-scenario/dr-scenario.module.js +0 -28
- package/esm2015/lib/dr-scenario/interfaces/scenario.js +0 -8
- package/esm2015/lib/dr-scenario/services/scenario.service.js +0 -160
- package/lib/dr-inputs/dr-toggle-button/toggle-button-theme.d.ts +0 -4
- package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +0 -25
- package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +0 -26
- package/lib/dr-scenario/consts/scenario-tags-config.d.ts +0 -24
- package/lib/dr-scenario/dr-scenario.module.d.ts +0 -2
- package/lib/dr-scenario/interfaces/scenario.d.ts +0 -43
- package/lib/dr-scenario/services/scenario.service.d.ts +0 -21
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { TagsConfigSubType, TagTypes } from '../../models/serverTags';
|
|
3
|
-
import { Scenario } from '../interfaces/scenario';
|
|
4
|
-
import { cloneDeep as _cloneDeep, filter as _filter, find as _find, forEach as _forEach, orderBy as _orderBy, reduce as _reduce, some as _some, } from 'lodash';
|
|
5
|
-
import { getScenarioTagDataConfig } from '../consts/scenario-tags-config';
|
|
6
|
-
export class ScenarioService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.DEFAULT_FORECAST_DATE_TAG = 'Month';
|
|
9
|
-
}
|
|
10
|
-
get scenarios() {
|
|
11
|
-
return _orderBy(Object.values(Scenario), (scenario) => scenario === Scenario.NONE ? 1 : 0);
|
|
12
|
-
}
|
|
13
|
-
get areExistingTagsConfig() {
|
|
14
|
-
return !!this.currentTagsConfig;
|
|
15
|
-
}
|
|
16
|
-
initScenarioTags(scenario, wholeTagsConfig, currentTagsConfig, isMultipleDimension = true) {
|
|
17
|
-
if (!(wholeTagsConfig === null || wholeTagsConfig === void 0 ? void 0 : wholeTagsConfig.length) || !scenario)
|
|
18
|
-
return;
|
|
19
|
-
this.wholeTagsConfig = wholeTagsConfig;
|
|
20
|
-
this.currentTagsConfig = currentTagsConfig;
|
|
21
|
-
this.isMultipleDimension = isMultipleDimension;
|
|
22
|
-
}
|
|
23
|
-
getTagsConfigByScenarioTags(scenarioTags, tagsConfig) {
|
|
24
|
-
const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) => _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));
|
|
25
|
-
return this.sortScenarioTags(scenarioTagsConfig);
|
|
26
|
-
}
|
|
27
|
-
getScenarioTagsByScenario(scenario) {
|
|
28
|
-
const scenarioTagsConfig = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);
|
|
29
|
-
const scenarioTagsUi = [];
|
|
30
|
-
_forEach(scenarioTagsConfig, (scenarioTag) => {
|
|
31
|
-
const isDateTag = scenarioTag.type === TagTypes.DATE;
|
|
32
|
-
const dateTag = isDateTag && _find(scenarioTagsUi, { type: TagTypes.DATE });
|
|
33
|
-
const tag = dateTag || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isDateTag);
|
|
34
|
-
if (isDateTag) {
|
|
35
|
-
this.updateScenarioDateTag(tag, scenarioTag);
|
|
36
|
-
}
|
|
37
|
-
if (dateTag)
|
|
38
|
-
return;
|
|
39
|
-
scenarioTagsUi.push(tag);
|
|
40
|
-
});
|
|
41
|
-
if (this.areExistingTagsConfig) {
|
|
42
|
-
this.initExistingTagsConfig(scenario, scenarioTagsUi);
|
|
43
|
-
}
|
|
44
|
-
const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });
|
|
45
|
-
if (isTagNotSupportingDates) {
|
|
46
|
-
this.turnOffDateTag(scenarioTagsUi);
|
|
47
|
-
}
|
|
48
|
-
const tagWithSpecificDateTags = _find(scenarioTagsUi, (tag) => { var _a; return tag.toggle && !!((_a = tag.acceptableDateTags) === null || _a === void 0 ? void 0 : _a.length); });
|
|
49
|
-
if (tagWithSpecificDateTags) {
|
|
50
|
-
this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);
|
|
51
|
-
}
|
|
52
|
-
return this.sortScenarioTags(scenarioTagsUi);
|
|
53
|
-
}
|
|
54
|
-
sortScenarioTags(scenarioTagsUi) {
|
|
55
|
-
return _orderBy(scenarioTagsUi, [
|
|
56
|
-
(tag) => (tag.type === TagTypes.DATE ? 0 : 1),
|
|
57
|
-
(tag) => (tag.name === 'File Status')
|
|
58
|
-
]);
|
|
59
|
-
}
|
|
60
|
-
initExistingTagsConfig(scenario, scenarioTagsUi) {
|
|
61
|
-
_forEach(this.currentTagsConfig, (tagConfig) => {
|
|
62
|
-
var _a, _b;
|
|
63
|
-
const tagSubType = (_a = tagConfig === null || tagConfig === void 0 ? void 0 : tagConfig.options) === null || _a === void 0 ? void 0 : _a.sub_type;
|
|
64
|
-
const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);
|
|
65
|
-
if (!((_b = scenarioTagDataConfig === null || scenarioTagDataConfig === void 0 ? void 0 : scenarioTagDataConfig[scenario]) === null || _b === void 0 ? void 0 : _b[tagSubType]))
|
|
66
|
-
return;
|
|
67
|
-
const scenarioTagUi = tagConfig.type === TagTypes.DATE
|
|
68
|
-
? _find(scenarioTagsUi, { type: tagConfig.type })
|
|
69
|
-
: _find(scenarioTagsUi, { selectedTagSubType: tagSubType });
|
|
70
|
-
scenarioTagUi.toggle = true;
|
|
71
|
-
scenarioTagUi.selectedTagSubType = tagSubType;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isDateTag) {
|
|
75
|
-
const toggleStatus = isDateTag
|
|
76
|
-
? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)
|
|
77
|
-
: scenarioTag.scenarioData.toggle;
|
|
78
|
-
const selectedTagSubType = isDateTag
|
|
79
|
-
? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)
|
|
80
|
-
: scenarioTag.options.sub_type;
|
|
81
|
-
const tag = {
|
|
82
|
-
toggle: this.areExistingTagsConfig ? false : toggleStatus,
|
|
83
|
-
name: scenarioTag.scenarioData.name || scenarioTag.name,
|
|
84
|
-
description: scenarioTag.scenarioData.description || scenarioTag.description,
|
|
85
|
-
type: scenarioTag.type,
|
|
86
|
-
selectedTagSubType,
|
|
87
|
-
};
|
|
88
|
-
if (scenarioTag.scenarioData.turnOffDateTags) {
|
|
89
|
-
tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;
|
|
90
|
-
}
|
|
91
|
-
if (scenarioTag.scenarioData.acceptableDateTags) {
|
|
92
|
-
tag.acceptableDateTags = scenarioTag.scenarioData.acceptableDateTags;
|
|
93
|
-
}
|
|
94
|
-
return tag;
|
|
95
|
-
}
|
|
96
|
-
updateScenarioDateTag(dateTag, scenarioTag) {
|
|
97
|
-
if (!dateTag.subTags) {
|
|
98
|
-
dateTag.subTags = [];
|
|
99
|
-
}
|
|
100
|
-
const tagSubType = scenarioTag.options.sub_type;
|
|
101
|
-
dateTag.subTags.push({
|
|
102
|
-
subType: tagSubType,
|
|
103
|
-
name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
turnOffDateTag(scenarioTags) {
|
|
107
|
-
const dateTag = _find(scenarioTags, { type: TagTypes.DATE });
|
|
108
|
-
if (!dateTag)
|
|
109
|
-
return;
|
|
110
|
-
dateTag.toggle = false;
|
|
111
|
-
}
|
|
112
|
-
hideNotAvailableTags(tagWithSpecificDateTags, scenarioTags) {
|
|
113
|
-
var _a;
|
|
114
|
-
const subTags = (_a = _find(scenarioTags, { type: TagTypes.DATE })) === null || _a === void 0 ? void 0 : _a.subTags;
|
|
115
|
-
if (!subTags.length)
|
|
116
|
-
return;
|
|
117
|
-
_forEach(scenarioTags, (tag) => {
|
|
118
|
-
var _a;
|
|
119
|
-
if (!((_a = tag.acceptableDateTags) === null || _a === void 0 ? void 0 : _a.length))
|
|
120
|
-
return;
|
|
121
|
-
if (tag !== tagWithSpecificDateTags) {
|
|
122
|
-
tag.toggle = false;
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
_forEach(subTags, (subTag) => {
|
|
126
|
-
subTag.hidden = !tagWithSpecificDateTags.acceptableDateTags.includes(subTag.subType);
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
getScenarioSelectedDateTag(scenario, dateTags) {
|
|
130
|
-
var _a, _b;
|
|
131
|
-
const monthSubType = (_b = (_a = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.MONTH)) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.sub_type;
|
|
132
|
-
const scenarioSelectedDateTag = {
|
|
133
|
-
[Scenario.ACTUALS]: () => monthSubType,
|
|
134
|
-
[Scenario.BUDGET]: () => { var _a, _b; return (_b = (_a = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.YEAR)) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.sub_type; },
|
|
135
|
-
[Scenario.FORECAST]: () => { var _a, _b; return (_b = (_a = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.sub_type; },
|
|
136
|
-
[Scenario.NONE]: () => monthSubType,
|
|
137
|
-
};
|
|
138
|
-
if (!scenarioSelectedDateTag[scenario])
|
|
139
|
-
return;
|
|
140
|
-
return scenarioSelectedDateTag[scenario]();
|
|
141
|
-
}
|
|
142
|
-
getScenarioTagsConfig(scenario, tagsConfig) {
|
|
143
|
-
return _reduce(tagsConfig, (acc, tagConfig) => {
|
|
144
|
-
var _a, _b;
|
|
145
|
-
const tagSubType = (_a = tagConfig === null || tagConfig === void 0 ? void 0 : tagConfig.options) === null || _a === void 0 ? void 0 : _a.sub_type;
|
|
146
|
-
const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);
|
|
147
|
-
const scenarioTagConfig = (_b = scenarioTagDataConfig === null || scenarioTagDataConfig === void 0 ? void 0 : scenarioTagDataConfig[scenario]) === null || _b === void 0 ? void 0 : _b[tagSubType];
|
|
148
|
-
if (!scenarioTagConfig || scenarioTagConfig.hidden)
|
|
149
|
-
return acc;
|
|
150
|
-
const clonedTagConfig = _cloneDeep(tagConfig);
|
|
151
|
-
const scenarioTag = Object.assign(Object.assign({}, clonedTagConfig), { scenarioData: scenarioTagConfig });
|
|
152
|
-
acc.push(scenarioTag);
|
|
153
|
-
return acc;
|
|
154
|
-
}, []);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
ScenarioService.decorators = [
|
|
158
|
-
{ type: Injectable }
|
|
159
|
-
];
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXNjZW5hcmlvL3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVEsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUlILFFBQVEsRUFDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDSCxTQUFTLElBQUksVUFBVSxFQUN2QixNQUFNLElBQUksT0FBTyxFQUNqQixJQUFJLElBQUksS0FBSyxFQUNiLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE1BQU0sSUFBSSxPQUFPLEVBQ2pCLElBQUksSUFBSSxLQUFLLEdBQ2hCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzFFLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVksOEJBQXlCLEdBQUcsT0FBTyxDQUFDO0lBbUxoRCxDQUFDO0lBN0tHLElBQVcsU0FBUztRQUNoQixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsSUFBWSxxQkFBcUI7UUFDN0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3BDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFLGVBQXVC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QU87UUFDL0MsT0FBTyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxRQUFrQixFQUFFLFVBQWtCO1FBQ2hFLE9BQU8sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQW1CLEVBQUUsU0FBZSxFQUFFLEVBQUU7O1lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE9BQU8sMENBQUUsUUFBUSxDQUFDO1lBRWhELE1BQU0scUJBQXFCLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDakYsTUFBTSxpQkFBaUIsR0FBYyxNQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFHLFFBQVEsQ0FBQywwQ0FBRyxVQUFVLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMsaUJBQWlCLElBQUksaUJBQWlCLENBQUMsTUFBTTtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUUvRCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUMsTUFBTSxXQUFXLG1DQUFzQixlQUFlLEtBQUUsWUFBWSxFQUFFLGlCQUFpQixHQUFFLENBQUM7WUFFMUYsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0QixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7OztZQXBMSixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhZywgVGFnc0NvbmZpZ1N1YlR5cGUsIFRhZ1R5cGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHtcbiAgICBJU2NlbmFyaW8sXG4gICAgSVNjZW5hcmlvVGFnLFxuICAgIElTY2VuYXJpb1RhZ1VpLFxuICAgIFNjZW5hcmlvXG59IGZyb20gJy4uL2ludGVyZmFjZXMvc2NlbmFyaW8nO1xuaW1wb3J0IHtcbiAgICBjbG9uZURlZXAgYXMgX2Nsb25lRGVlcCxcbiAgICBmaWx0ZXIgYXMgX2ZpbHRlcixcbiAgICBmaW5kIGFzIF9maW5kLFxuICAgIGZvckVhY2ggYXMgX2ZvckVhY2gsXG4gICAgb3JkZXJCeSBhcyBfb3JkZXJCeSxcbiAgICByZWR1Y2UgYXMgX3JlZHVjZSxcbiAgICBzb21lIGFzIF9zb21lLFxufSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnIH0gZnJvbSAnLi4vY29uc3RzL3NjZW5hcmlvLXRhZ3MtY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjZW5hcmlvU2VydmljZSB7XG4gICAgcHJpdmF0ZSBERUZBVUxUX0ZPUkVDQVNUX0RBVEVfVEFHID0gJ01vbnRoJztcblxuICAgIHByaXZhdGUgd2hvbGVUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgcHJpdmF0ZSBjdXJyZW50VGFnc0NvbmZpZzogSVRhZ1tdO1xuICAgIHByaXZhdGUgaXNNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBnZXQgc2NlbmFyaW9zKCk6IFNjZW5hcmlvW10ge1xuICAgICAgICByZXR1cm4gX29yZGVyQnkoT2JqZWN0LnZhbHVlcyhTY2VuYXJpbyksIChzY2VuYXJpbykgPT4gc2NlbmFyaW8gPT09IFNjZW5hcmlvLk5PTkUgPyAxIDogMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYXJlRXhpc3RpbmdUYWdzQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmN1cnJlbnRUYWdzQ29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0U2NlbmFyaW9UYWdzKHNjZW5hcmlvOiBTY2VuYXJpbywgd2hvbGVUYWdzQ29uZmlnOiBJVGFnW10sIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW10sIGlzTXVsdGlwbGVEaW1lbnNpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICghd2hvbGVUYWdzQ29uZmlnPy5sZW5ndGggfHwgIXNjZW5hcmlvKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy53aG9sZVRhZ3NDb25maWcgPSB3aG9sZVRhZ3NDb25maWc7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ3NDb25maWcgPSBjdXJyZW50VGFnc0NvbmZpZztcbiAgICAgICAgdGhpcy5pc011bHRpcGxlRGltZW5zaW9uID0gaXNNdWx0aXBsZURpbWVuc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VGFnc0NvbmZpZ0J5U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSwgdGFnc0NvbmZpZzogSVRhZ1tdKTogSVRhZ1tdIHtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzQ29uZmlnID0gX2ZpbHRlcih0YWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PlxuICAgICAgICAgICAgX3NvbWUoc2NlbmFyaW9UYWdzLCAoc2NlbmFyaW9UYWcpID0+IHNjZW5hcmlvVGFnLnRvZ2dsZSAmJiBzY2VuYXJpb1RhZy5zZWxlY3RlZFRhZ1N1YlR5cGUgPT09IHRhZ0NvbmZpZy5vcHRpb25zLnN1Yl90eXBlKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NDb25maWcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTY2VuYXJpb1RhZ3NCeVNjZW5hcmlvKHNjZW5hcmlvOiBTY2VuYXJpbykge1xuICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ3NDb25maWc6IElTY2VuYXJpb1RhZ1tdID0gdGhpcy5nZXRTY2VuYXJpb1RhZ3NDb25maWcoc2NlbmFyaW8sIHRoaXMud2hvbGVUYWdzQ29uZmlnKTtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzVWk6IElTY2VuYXJpb1RhZ1VpW10gPSBbXTtcblxuICAgICAgICBfZm9yRWFjaChzY2VuYXJpb1RhZ3NDb25maWcsIChzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0RhdGVUYWcgPSBzY2VuYXJpb1RhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFO1xuICAgICAgICAgICAgY29uc3QgZGF0ZVRhZyA9IGlzRGF0ZVRhZyAmJiBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuXG4gICAgICAgICAgICBjb25zdCB0YWc6IElTY2VuYXJpb1RhZ1VpID0gZGF0ZVRhZyB8fCB0aGlzLnByZXBhcmVTY2VuYXJpb1RhZyhzY2VuYXJpb1RhZ3NDb25maWcsIHNjZW5hcmlvVGFnLCBzY2VuYXJpbywgaXNEYXRlVGFnKTtcblxuICAgICAgICAgICAgaWYgKGlzRGF0ZVRhZykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2NlbmFyaW9EYXRlVGFnKHRhZywgc2NlbmFyaW9UYWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0ZVRhZykgcmV0dXJuO1xuICAgICAgICAgICAgc2NlbmFyaW9UYWdzVWkucHVzaCh0YWcpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEV4aXN0aW5nVGFnc0NvbmZpZyhzY2VuYXJpbywgc2NlbmFyaW9UYWdzVWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNUYWdOb3RTdXBwb3J0aW5nRGF0ZXMgPSBfc29tZShzY2VuYXJpb1RhZ3NVaSwgeyB0dXJuT2ZmRGF0ZVRhZ3M6IHRydWUsIHRvZ2dsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKGlzVGFnTm90U3VwcG9ydGluZ0RhdGVzKSB7XG4gICAgICAgICAgICB0aGlzLnR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnc1VpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSA9IF9maW5kKHNjZW5hcmlvVGFnc1VpLCAodGFnKSA9PiB0YWcudG9nZ2xlICYmICEhdGFnLmFjY2VwdGFibGVEYXRlVGFncz8ubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLCBzY2VuYXJpb1RhZ3NVaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnc1VpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NVaTogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBfb3JkZXJCeShzY2VuYXJpb1RhZ3NVaSwgW1xuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFID8gMCA6IDEpLFxuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy5uYW1lID09PSAnRmlsZSBTdGF0dXMnKVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFeGlzdGluZ1RhZ3NDb25maWcoc2NlbmFyaW86IFNjZW5hcmlvLCBzY2VuYXJpb1RhZ3NVaTogSVNjZW5hcmlvVGFnVWlbXSkge1xuICAgICAgICBfZm9yRWFjaCh0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcbiAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnRGF0YUNvbmZpZyA9IGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyh0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICAgICAgaWYgKCFzY2VuYXJpb1RhZ0RhdGFDb25maWc/LltzY2VuYXJpb10/Llt0YWdTdWJUeXBlXSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ1VpID0gdGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEVcbiAgICAgICAgICAgICAgICA/IF9maW5kKHNjZW5hcmlvVGFnc1VpLCB7IHR5cGU6IHRhZ0NvbmZpZy50eXBlIH0pXG4gICAgICAgICAgICAgICAgOiBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyBzZWxlY3RlZFRhZ1N1YlR5cGU6IHRhZ1N1YlR5cGUgfSk7XG5cbiAgICAgICAgICAgIHNjZW5hcmlvVGFnVWkudG9nZ2xlID0gdHJ1ZTtcbiAgICAgICAgICAgIHNjZW5hcmlvVGFnVWkuc2VsZWN0ZWRUYWdTdWJUeXBlID0gdGFnU3ViVHlwZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcmVwYXJlU2NlbmFyaW9UYWcoc2NlbmFyaW9UYWdzQ29uZmlnOiBJU2NlbmFyaW9UYWdbXSwgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZywgc2NlbmFyaW86IFNjZW5hcmlvLCBpc0RhdGVUYWc6IGJvb2xlYW4pOiBJU2NlbmFyaW9UYWdVaSB7XG4gICAgICAgIGNvbnN0IHRvZ2dsZVN0YXR1cyA9IGlzRGF0ZVRhZ1xuICAgICAgICAgICAgPyBfc29tZShzY2VuYXJpb1RhZ3NDb25maWcsICh0YWcpID0+IHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFICYmIHRhZy5zY2VuYXJpb0RhdGEudG9nZ2xlKVxuICAgICAgICAgICAgOiBzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEudG9nZ2xlO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGFnU3ViVHlwZSA9ICBpc0RhdGVUYWdcbiAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW8sIHNjZW5hcmlvVGFnc0NvbmZpZylcbiAgICAgICAgICAgICAgICA6IHNjZW5hcmlvVGFnLm9wdGlvbnMuc3ViX3R5cGU7XG5cbiAgICAgICAgY29uc3QgdGFnOiBJU2NlbmFyaW9UYWdVaSA9IHtcbiAgICAgICAgICAgIHRvZ2dsZTogdGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcgPyBmYWxzZSA6IHRvZ2dsZVN0YXR1cyxcbiAgICAgICAgICAgIG5hbWU6IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5uYW1lIHx8IHNjZW5hcmlvVGFnLm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmRlc2NyaXB0aW9uIHx8IHNjZW5hcmlvVGFnLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgdHlwZTogc2NlbmFyaW9UYWcudHlwZSxcbiAgICAgICAgICAgIHNlbGVjdGVkVGFnU3ViVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLnR1cm5PZmZEYXRlVGFncykge1xuICAgICAgICAgICAgdGFnLnR1cm5PZmZEYXRlVGFncyA9IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS50dXJuT2ZmRGF0ZVRhZ3M7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmFjY2VwdGFibGVEYXRlVGFncykge1xuICAgICAgICAgICAgdGFnLmFjY2VwdGFibGVEYXRlVGFncyA9IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5hY2NlcHRhYmxlRGF0ZVRhZ3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFnO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2NlbmFyaW9EYXRlVGFnKGRhdGVUYWc6IElTY2VuYXJpb1RhZ1VpLCBzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnKTogdm9pZCB7XG4gICAgICAgIGlmICghZGF0ZVRhZy5zdWJUYWdzKSB7XG4gICAgICAgICAgICBkYXRlVGFnLnN1YlRhZ3MgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1N1YlR5cGUgPSBzY2VuYXJpb1RhZy5vcHRpb25zLnN1Yl90eXBlO1xuXG4gICAgICAgIGRhdGVUYWcuc3ViVGFncy5wdXNoKHtcbiAgICAgICAgICAgIHN1YlR5cGU6IHRhZ1N1YlR5cGUsXG4gICAgICAgICAgICBuYW1lOiB0YWdTdWJUeXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcgPyB0aGlzLkRFRkFVTFRfRk9SRUNBU1RfREFURV9UQUcgOiBzY2VuYXJpb1RhZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXRlVGFnID0gX2ZpbmQoc2NlbmFyaW9UYWdzLCB7IHR5cGU6IFRhZ1R5cGVzLkRBVEUgfSk7XG5cbiAgICAgICAgaWYgKCFkYXRlVGFnKSByZXR1cm47XG4gICAgICAgIGRhdGVUYWcudG9nZ2xlPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSwgc2NlbmFyaW9UYWdzOiBJU2NlbmFyaW9UYWdVaVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN1YlRhZ3MgPSBfZmluZChzY2VuYXJpb1RhZ3MsIHsgdHlwZTogVGFnVHlwZXMuREFURSB9KT8uc3ViVGFncztcbiAgICAgICAgaWYgKCFzdWJUYWdzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIF9mb3JFYWNoKHNjZW5hcmlvVGFncywgKHRhZykgPT4ge1xuICAgICAgICAgICAgaWYgKCF0YWcuYWNjZXB0YWJsZURhdGVUYWdzPy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0YWcgIT09IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICAgICAgdGFnLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfZm9yRWFjaChzdWJUYWdzLCAoc3ViVGFnKSA9PiB7XG4gICAgICAgICAgICBzdWJUYWcuaGlkZGVuID0gIXRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLmFjY2VwdGFibGVEYXRlVGFncy5pbmNsdWRlcyhzdWJUYWcuc3ViVHlwZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NlbmFyaW9TZWxlY3RlZERhdGVUYWcoc2NlbmFyaW86IFNjZW5hcmlvLCBkYXRlVGFnczogSVNjZW5hcmlvVGFnW10pOiBUYWdzQ29uZmlnU3ViVHlwZSB7XG4gICAgICAgIGNvbnN0IG1vbnRoU3ViVHlwZSA9IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5NT05USCk/Lm9wdGlvbnM/LnN1Yl90eXBlO1xuXG4gICAgICAgIGNvbnN0IHNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnID0ge1xuICAgICAgICAgICAgW1NjZW5hcmlvLkFDVFVBTFNdOiAoKSA9PiBtb250aFN1YlR5cGUsXG4gICAgICAgICAgICBbU2NlbmFyaW8uQlVER0VUXTogKCkgPT4gX2ZpbmQoZGF0ZVRhZ3MsICh0YWc6IElTY2VuYXJpb1RhZykgPT4gdGFnLm9wdGlvbnMuc3ViX3R5cGUgPT09IFRhZ3NDb25maWdTdWJUeXBlLllFQVIpPy5vcHRpb25zPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5GT1JFQ0FTVF06ICgpID0+IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcpPy5vcHRpb25zPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5OT05FXTogKCkgPT4gbW9udGhTdWJUeXBlLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZ1tzY2VuYXJpb10pIHJldHVybjtcbiAgICAgICAgcmV0dXJuIHNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnW3NjZW5hcmlvXSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NlbmFyaW9UYWdzQ29uZmlnKHNjZW5hcmlvOiBTY2VuYXJpbywgdGFnc0NvbmZpZzogSVRhZ1tdKTogSVNjZW5hcmlvVGFnW10ge1xuICAgICAgICByZXR1cm4gX3JlZHVjZSh0YWdzQ29uZmlnLCAoYWNjOiBJU2NlbmFyaW9UYWdbXSwgdGFnQ29uZmlnOiBJVGFnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcblxuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdEYXRhQ29uZmlnID0gZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnKHRoaXMuaXNNdWx0aXBsZURpbWVuc2lvbik7XG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ0NvbmZpZzogSVNjZW5hcmlvID0gc2NlbmFyaW9UYWdEYXRhQ29uZmlnPy5bc2NlbmFyaW9dPy5bdGFnU3ViVHlwZV07XG4gICAgICAgICAgICBpZiAoIXNjZW5hcmlvVGFnQ29uZmlnIHx8IHNjZW5hcmlvVGFnQ29uZmlnLmhpZGRlbikgcmV0dXJuIGFjYztcblxuICAgICAgICAgICAgY29uc3QgY2xvbmVkVGFnQ29uZmlnID0gX2Nsb25lRGVlcCh0YWdDb25maWcpO1xuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZyA9IHsgLi4uY2xvbmVkVGFnQ29uZmlnLCBzY2VuYXJpb0RhdGE6IHNjZW5hcmlvVGFnQ29uZmlnIH07XG5cbiAgICAgICAgICAgIGFjYy5wdXNoKHNjZW5hcmlvVGFnKTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
-
import { IScenarioTagUi, Scenario, TScenarioDataChanged } from '../../interfaces/scenario';
|
|
3
|
-
import { ScenarioService } from '../../services/scenario.service';
|
|
4
|
-
import { ITag } from '../../../models/serverTags';
|
|
5
|
-
import { ToggleButtonTheme } from '../../../dr-inputs/dr-toggle-button/toggle-button-theme';
|
|
6
|
-
export declare class DrScenarioConfigurationComponent implements OnInit {
|
|
7
|
-
private scenarioService;
|
|
8
|
-
toggleButtonTheme: typeof ToggleButtonTheme;
|
|
9
|
-
scenarios: Scenario[];
|
|
10
|
-
private _scenarioTags;
|
|
11
|
-
private tagNotSupportingDates;
|
|
12
|
-
currentTagsConfig: ITag[];
|
|
13
|
-
wholeTagsConfig: ITag[];
|
|
14
|
-
selectedScenario: Scenario;
|
|
15
|
-
scenarioDataChanged: EventEmitter<TScenarioDataChanged>;
|
|
16
|
-
get scenarioTags(): IScenarioTagUi[];
|
|
17
|
-
set scenarioTags(tags: IScenarioTagUi[]);
|
|
18
|
-
constructor(scenarioService: ScenarioService);
|
|
19
|
-
ngOnInit(): void;
|
|
20
|
-
onScenarioChange(scenario: Scenario): void;
|
|
21
|
-
onScenarioTagToggle(tag: IScenarioTagUi): void;
|
|
22
|
-
onScenarioDataChange(): void;
|
|
23
|
-
private tagNotSupportingDatesHandler;
|
|
24
|
-
private tagAcceptableDateHandler;
|
|
25
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { ITag, ITagForServer, TConnectedTags, TDynamicTag } from '../../../models/serverTags';
|
|
3
|
-
import { Scenario, TScenarioDataChanged } from '../../interfaces/scenario';
|
|
4
|
-
export declare class DrScenarioTagConfigurationComponent implements OnChanges {
|
|
5
|
-
tagsConfig: ITag[];
|
|
6
|
-
set currentTags(tags: ITagForServer[]);
|
|
7
|
-
scenario: Scenario;
|
|
8
|
-
connectedTags: TConnectedTags;
|
|
9
|
-
dynamicTagValues: TDynamicTag;
|
|
10
|
-
lockedDates: string[] | number[];
|
|
11
|
-
fiscalYearStartsFrom: number;
|
|
12
|
-
fiscalYearBack: boolean;
|
|
13
|
-
isDynamicAddEnabled: boolean;
|
|
14
|
-
scenarioTagDataChanged: EventEmitter<TScenarioDataChanged>;
|
|
15
|
-
currentTagsMap: {
|
|
16
|
-
[tagId: number]: ITagForServer;
|
|
17
|
-
};
|
|
18
|
-
private _currentTags;
|
|
19
|
-
private dynamicTagsToSave;
|
|
20
|
-
private tagsToSave;
|
|
21
|
-
get currentTags(): ITagForServer[];
|
|
22
|
-
ngOnChanges(simpleChanges: SimpleChanges): void;
|
|
23
|
-
onTagChange($event: ITagForServer): void;
|
|
24
|
-
onDynamicTagsChange($event: ITagForServer[]): void;
|
|
25
|
-
onScenarioTagDataChanged(): void;
|
|
26
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { TScenarioTagConfigData, TScenarioTagData } from '../interfaces/scenario';
|
|
2
|
-
export declare const allDateTags: {
|
|
3
|
-
year: {
|
|
4
|
-
name: string;
|
|
5
|
-
toggle: boolean;
|
|
6
|
-
};
|
|
7
|
-
quarter: {
|
|
8
|
-
name: string;
|
|
9
|
-
toggle: boolean;
|
|
10
|
-
};
|
|
11
|
-
month: {
|
|
12
|
-
name: string;
|
|
13
|
-
toggle: boolean;
|
|
14
|
-
};
|
|
15
|
-
day: {
|
|
16
|
-
name: string;
|
|
17
|
-
toggle: boolean;
|
|
18
|
-
};
|
|
19
|
-
week: {
|
|
20
|
-
name: string;
|
|
21
|
-
toggle: boolean;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
export declare function getScenarioTagDataConfig(isMultipleDimension: boolean): TScenarioTagData<TScenarioTagConfigData>;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ITag, ITagForServer, TagsConfigSubType, TagTypes } from '../../models/serverTags';
|
|
2
|
-
export declare enum Scenario {
|
|
3
|
-
ACTUALS = "Actuals",
|
|
4
|
-
FORECAST = "Forecast",
|
|
5
|
-
BUDGET = "Budget",
|
|
6
|
-
NONE = "None"
|
|
7
|
-
}
|
|
8
|
-
export interface IScenarioTag extends ITag {
|
|
9
|
-
scenarioData: IScenario;
|
|
10
|
-
}
|
|
11
|
-
export interface IScenarioCommon {
|
|
12
|
-
toggle: boolean;
|
|
13
|
-
name: string;
|
|
14
|
-
description: string;
|
|
15
|
-
acceptableDateTags?: TagsConfigSubType[];
|
|
16
|
-
turnOffDateTags?: boolean;
|
|
17
|
-
}
|
|
18
|
-
export interface IScenario extends Omit<IScenarioCommon, 'name' | 'description'> {
|
|
19
|
-
name?: string;
|
|
20
|
-
description?: string;
|
|
21
|
-
hidden?: boolean;
|
|
22
|
-
}
|
|
23
|
-
export interface IScenarioTagUi extends IScenarioCommon {
|
|
24
|
-
selectedTagSubType: TagsConfigSubType;
|
|
25
|
-
type: TagTypes;
|
|
26
|
-
subTags?: IScenarioSubTag[];
|
|
27
|
-
}
|
|
28
|
-
export interface IScenarioSubTag {
|
|
29
|
-
name: string;
|
|
30
|
-
subType: TagsConfigSubType;
|
|
31
|
-
hidden?: boolean;
|
|
32
|
-
}
|
|
33
|
-
export declare type TScenarioTagConfigData = {
|
|
34
|
-
[key in TagsConfigSubType]?: IScenario;
|
|
35
|
-
};
|
|
36
|
-
export declare type TScenarioTagData<T> = {
|
|
37
|
-
[key in Scenario]?: T;
|
|
38
|
-
};
|
|
39
|
-
export declare type TScenarioDataChanged = {
|
|
40
|
-
scenario: Scenario;
|
|
41
|
-
tags?: ITagForServer[];
|
|
42
|
-
tagsConfig?: ITag[];
|
|
43
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ITag } from '../../models/serverTags';
|
|
2
|
-
import { IScenarioTagUi, Scenario } from '../interfaces/scenario';
|
|
3
|
-
export declare class ScenarioService {
|
|
4
|
-
private DEFAULT_FORECAST_DATE_TAG;
|
|
5
|
-
private wholeTagsConfig;
|
|
6
|
-
private currentTagsConfig;
|
|
7
|
-
private isMultipleDimension;
|
|
8
|
-
get scenarios(): Scenario[];
|
|
9
|
-
private get areExistingTagsConfig();
|
|
10
|
-
initScenarioTags(scenario: Scenario, wholeTagsConfig: ITag[], currentTagsConfig: ITag[], isMultipleDimension?: boolean): void;
|
|
11
|
-
getTagsConfigByScenarioTags(scenarioTags: IScenarioTagUi[], tagsConfig: ITag[]): ITag[];
|
|
12
|
-
getScenarioTagsByScenario(scenario: Scenario): any[];
|
|
13
|
-
sortScenarioTags(scenarioTagsUi: any[]): any[];
|
|
14
|
-
private initExistingTagsConfig;
|
|
15
|
-
private prepareScenarioTag;
|
|
16
|
-
private updateScenarioDateTag;
|
|
17
|
-
private turnOffDateTag;
|
|
18
|
-
private hideNotAvailableTags;
|
|
19
|
-
private getScenarioSelectedDateTag;
|
|
20
|
-
private getScenarioTagsConfig;
|
|
21
|
-
}
|