@smartbit4all/ng-client 4.2.70 → 4.2.72
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/esm2022/lib/smart-client/smart-component-api-client.mjs +15 -1
- package/esm2022/lib/smart-client/smart.component.mjs +9 -2
- package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +2 -1
- package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +2 -0
- package/esm2022/lib/smart-component-layout/api/model/models.mjs +2 -1
- package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +1 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +18 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +33 -3
- package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +7 -3
- package/esm2022/lib/smart-diagram/api/api/api.mjs +4 -0
- package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +141 -0
- package/esm2022/lib/smart-diagram/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-diagram/api/configuration.mjs +91 -0
- package/esm2022/lib/smart-diagram/api/encoder.mjs +19 -0
- package/esm2022/lib/smart-diagram/api/index.mjs +7 -0
- package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +13 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +13 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +18 -0
- package/esm2022/lib/smart-diagram/api/model/labelText.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/model/models.mjs +10 -0
- package/esm2022/lib/smart-diagram/api/param.mjs +2 -0
- package/esm2022/lib/smart-diagram/api/variables.mjs +9 -0
- package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +289 -0
- package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +341 -0
- package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +39 -0
- package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +10 -0
- package/esm2022/lib/smart-diagram/projects.mjs +5 -0
- package/esm2022/lib/smart-form/services/smartform.service.mjs +4 -1
- package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +3 -3
- package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +1 -12
- package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +4 -3
- package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +3 -3
- package/esm2022/lib/smart-table/tables/table.mjs +1 -1
- package/esm2022/projects.mjs +2 -1
- package/fesm2022/smartbit4all-ng-client.mjs +1233 -179
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-client/smart-component-api-client.d.ts +4 -1
- package/lib/smart-client/smart.component.d.ts +3 -0
- package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +2 -1
- package/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.d.ts +19 -0
- package/lib/smart-component-layout/api/model/models.d.ts +1 -0
- package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +2 -0
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +2 -0
- package/lib/smart-component-layout/smart-component-layout.component.d.ts +7 -0
- package/lib/smart-component-layout/smart-component-layout.module.d.ts +2 -1
- package/lib/smart-diagram/api/api/api.d.ts +3 -0
- package/lib/smart-diagram/api/api/diagramService.service.d.ts +36 -0
- package/lib/smart-diagram/api/encoder.d.ts +11 -0
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramColor.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataContainer.d.ts +2 -3
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataItem.d.ts +3 -3
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataSet.d.ts +4 -4
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDescriptor.d.ts +10 -9
- package/{src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramUiModel.d.ts → lib/smart-diagram/api/model/diagramModel.d.ts} +5 -4
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramShape.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/drawTime.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/labelText.d.ts +2 -2
- package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/models.d.ts +1 -2
- package/lib/smart-diagram/component/default-smart-diagram-options.provider.d.ts +32 -0
- package/lib/smart-diagram/component/smart-diagram.component.d.ts +40 -0
- package/lib/smart-diagram/component/smart-diagram.module.d.ts +11 -0
- package/lib/smart-diagram/component/smart-diagram.util.d.ts +1 -0
- package/lib/smart-diagram/projects.d.ts +4 -0
- package/lib/smart-grid/api/grid-api/model/gridExportDescriptor.d.ts +2 -2
- package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +1 -0
- package/lib/smart-table/tables/table.d.ts +1 -1
- package/package.json +1 -7
- package/projects.d.ts +1 -0
- package/smartbit4all-ng-client-4.2.72.tgz +0 -0
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartData.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartDescriptor.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartOrientation.mjs +0 -16
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartType.mjs +0 -21
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/chartValue.mjs +0 -13
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/models.mjs +0 -7
- package/esm2022/src/lib/smart-chart/smart-chart/api/model/pieChartLegendPosition.mjs +0 -16
- package/esm2022/src/lib/smart-chart/smart-chart/default-chart-options.provider.mjs +0 -233
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart.component.mjs +0 -285
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart.module.mjs +0 -39
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/api/api.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/api.module.mjs +0 -40
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/configuration.mjs +0 -91
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/index.mjs +0 -7
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramColor.mjs +0 -13
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataContainer.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataItem.mjs +0 -13
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSet.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.mjs +0 -13
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDescriptor.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramShape.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramUiModel.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/drawTime.mjs +0 -18
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/labelText.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/model/models.mjs +0 -11
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/param.mjs +0 -2
- package/esm2022/src/lib/smart-chart/smart-chart/smart-chart2/api/variables.mjs +0 -9
- package/esm2022/src/lib/smart-chart/smart-chart-projects.mjs +0 -9
- package/esm2022/src/lib/smart-chart/smartbit4all-ng-client-src-lib-smart-chart.mjs +0 -5
- package/esm2022/src/lib/smart-chart/view-context/utility/componentLibrary.mjs +0 -9
- package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs +0 -686
- package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs.map +0 -1
- package/smartbit4all-ng-client-4.2.70.tgz +0 -0
- package/src/lib/smart-chart/index.d.ts +0 -5
- package/src/lib/smart-chart/smart-chart/api/model/chartData.d.ts +0 -16
- package/src/lib/smart-chart/smart-chart/api/model/chartDescriptor.d.ts +0 -37
- package/src/lib/smart-chart/smart-chart/api/model/chartOrientation.d.ts +0 -16
- package/src/lib/smart-chart/smart-chart/api/model/chartType.d.ts +0 -21
- package/src/lib/smart-chart/smart-chart/api/model/chartValue.d.ts +0 -16
- package/src/lib/smart-chart/smart-chart/api/model/models.d.ts +0 -6
- package/src/lib/smart-chart/smart-chart/api/model/pieChartLegendPosition.d.ts +0 -16
- package/src/lib/smart-chart/smart-chart/default-chart-options.provider.d.ts +0 -31
- package/src/lib/smart-chart/smart-chart/smart-chart.component.d.ts +0 -33
- package/src/lib/smart-chart/smart-chart/smart-chart.module.d.ts +0 -11
- package/src/lib/smart-chart/smart-chart/smart-chart2/api/api/api.d.ts +0 -1
- package/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.d.ts +0 -21
- package/src/lib/smart-chart/smart-chart-projects.d.ts +0 -5
- package/src/lib/smart-chart/view-context/utility/componentLibrary.d.ts +0 -6
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/api.module.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/configuration.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/index.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/param.d.ts +0 -0
- /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/variables.d.ts +0 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { Injectable, InjectionToken, Optional, Inject } from '@angular/core';
|
|
2
|
+
import { deepMerge } from './smart-diagram.util';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export const CUSTOM_DIAGRAM_OPTIONS = new InjectionToken('CUSTOM_DIAGRAM_OPTIONS');
|
|
5
|
+
export function transformDataToBasicDataSets(chartData) {
|
|
6
|
+
return {
|
|
7
|
+
labels: chartData.labels,
|
|
8
|
+
datasets: chartData.items.map((dataset) => {
|
|
9
|
+
const color = dataset.color || generateRandomColor();
|
|
10
|
+
return {
|
|
11
|
+
data: dataset.items.map((item) => item.xValue),
|
|
12
|
+
label: dataset.label,
|
|
13
|
+
backgroundColor: color,
|
|
14
|
+
borderColor: color,
|
|
15
|
+
};
|
|
16
|
+
}),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function transformDataToBarLikeDataSet(chartData) {
|
|
20
|
+
return {
|
|
21
|
+
labels: chartData.labels,
|
|
22
|
+
datasets: chartData.items.map((dataset) => {
|
|
23
|
+
return {
|
|
24
|
+
data: dataset.items.map((item) => item.xValue),
|
|
25
|
+
label: dataset.label,
|
|
26
|
+
backgroundColor: dataset.items.map((item) => item.itemColor || generateRandomColor()),
|
|
27
|
+
borderColor: dataset.items.map((item) => item.itemColor || generateRandomColor()),
|
|
28
|
+
};
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function transformDataToScatter(chartData) {
|
|
33
|
+
return {
|
|
34
|
+
datasets: chartData.items.map((dataset) => {
|
|
35
|
+
const color = dataset.color || generateRandomColor();
|
|
36
|
+
return {
|
|
37
|
+
label: dataset.label,
|
|
38
|
+
data: dataset.items.map((item) => ({
|
|
39
|
+
x: item.xValue,
|
|
40
|
+
y: item.yValue,
|
|
41
|
+
})),
|
|
42
|
+
backgroundColor: color,
|
|
43
|
+
borderColor: color,
|
|
44
|
+
};
|
|
45
|
+
}),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function transformDataToBubble(chartData) {
|
|
49
|
+
return {
|
|
50
|
+
datasets: chartData.items.map((dataset) => {
|
|
51
|
+
const color = dataset.color || generateRandomColor();
|
|
52
|
+
return {
|
|
53
|
+
label: dataset.label,
|
|
54
|
+
data: dataset.items.map((item) => ({
|
|
55
|
+
x: item.xValue,
|
|
56
|
+
y: item.yValue,
|
|
57
|
+
r: item.rValue ?? 5,
|
|
58
|
+
})),
|
|
59
|
+
backgroundColor: color,
|
|
60
|
+
borderColor: color,
|
|
61
|
+
};
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function createBasicOptions() {
|
|
66
|
+
return {
|
|
67
|
+
scales: {
|
|
68
|
+
y: {
|
|
69
|
+
beginAtZero: true,
|
|
70
|
+
grace: '5%',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
aspectRatio: 1.78,
|
|
74
|
+
responsive: true,
|
|
75
|
+
maintainAspectRatio: true,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export const barChart = {
|
|
79
|
+
chartType: 'bar',
|
|
80
|
+
chartJsType: 'bar',
|
|
81
|
+
createOptions: createBasicOptions,
|
|
82
|
+
transformData: transformDataToBarLikeDataSet,
|
|
83
|
+
};
|
|
84
|
+
export const horizontalBarChart = {
|
|
85
|
+
chartType: 'horizontalBar',
|
|
86
|
+
chartJsType: 'bar',
|
|
87
|
+
createOptions: () => deepMerge(createBasicOptions(), {
|
|
88
|
+
indexAxis: 'y',
|
|
89
|
+
layout: {
|
|
90
|
+
padding: {
|
|
91
|
+
right: 5,
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
}),
|
|
95
|
+
transformData: transformDataToBarLikeDataSet,
|
|
96
|
+
};
|
|
97
|
+
export const stackedBarChart = {
|
|
98
|
+
chartType: 'stackedBar',
|
|
99
|
+
chartJsType: 'bar',
|
|
100
|
+
createOptions: () => deepMerge(createBasicOptions(), {
|
|
101
|
+
scales: {
|
|
102
|
+
x: { stacked: true },
|
|
103
|
+
y: { stacked: true },
|
|
104
|
+
},
|
|
105
|
+
}),
|
|
106
|
+
transformData: transformDataToBasicDataSets,
|
|
107
|
+
};
|
|
108
|
+
export const pieChart = {
|
|
109
|
+
chartType: 'pie',
|
|
110
|
+
chartJsType: 'pie',
|
|
111
|
+
createOptions: () => {
|
|
112
|
+
return {
|
|
113
|
+
radius: '95%',
|
|
114
|
+
layout: {
|
|
115
|
+
padding: 0,
|
|
116
|
+
},
|
|
117
|
+
aspectRatio: 1,
|
|
118
|
+
responsive: true,
|
|
119
|
+
maintainAspectRatio: true,
|
|
120
|
+
};
|
|
121
|
+
},
|
|
122
|
+
transformData: transformDataToBarLikeDataSet,
|
|
123
|
+
};
|
|
124
|
+
export const doughnutChart = {
|
|
125
|
+
chartType: 'doughnut',
|
|
126
|
+
chartJsType: 'doughnut',
|
|
127
|
+
createOptions: () => {
|
|
128
|
+
return {
|
|
129
|
+
radius: '95%',
|
|
130
|
+
layout: {
|
|
131
|
+
padding: 0,
|
|
132
|
+
},
|
|
133
|
+
aspectRatio: 1,
|
|
134
|
+
responsive: true,
|
|
135
|
+
maintainAspectRatio: true,
|
|
136
|
+
};
|
|
137
|
+
},
|
|
138
|
+
transformData: transformDataToBarLikeDataSet,
|
|
139
|
+
};
|
|
140
|
+
export const polarAreaChart = {
|
|
141
|
+
chartType: 'polarArea',
|
|
142
|
+
chartJsType: 'polarArea',
|
|
143
|
+
createOptions: () => {
|
|
144
|
+
return {
|
|
145
|
+
radius: '95%',
|
|
146
|
+
layout: {
|
|
147
|
+
padding: 0,
|
|
148
|
+
},
|
|
149
|
+
aspectRatio: 1,
|
|
150
|
+
responsive: true,
|
|
151
|
+
maintainAspectRatio: true,
|
|
152
|
+
};
|
|
153
|
+
},
|
|
154
|
+
transformData: (chartData) => {
|
|
155
|
+
return {
|
|
156
|
+
labels: chartData.labels,
|
|
157
|
+
datasets: chartData.items.map((dataset) => ({
|
|
158
|
+
data: dataset.items.map((item) => item.xValue),
|
|
159
|
+
label: dataset.label,
|
|
160
|
+
borderColor: dataset.items.map((item) => item.itemColor),
|
|
161
|
+
backgroundColor: dataset.items.map((item) => item.itemColor),
|
|
162
|
+
})),
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
export const radarChart = {
|
|
167
|
+
chartType: 'radar',
|
|
168
|
+
chartJsType: 'radar',
|
|
169
|
+
createOptions: () => {
|
|
170
|
+
return {
|
|
171
|
+
aspectRatio: 1,
|
|
172
|
+
responsive: true,
|
|
173
|
+
maintainAspectRatio: true,
|
|
174
|
+
};
|
|
175
|
+
},
|
|
176
|
+
transformData: (chartData) => {
|
|
177
|
+
return {
|
|
178
|
+
labels: chartData.labels,
|
|
179
|
+
datasets: chartData.items.map((dataset) => ({
|
|
180
|
+
data: dataset.items.map((item) => item.xValue),
|
|
181
|
+
label: dataset.label,
|
|
182
|
+
borderColor: dataset.color,
|
|
183
|
+
pointBackgroundColor: dataset.color,
|
|
184
|
+
pointBorderColor: dataset.color,
|
|
185
|
+
pointHoverBackgroundColor: '#000000',
|
|
186
|
+
pointHoverBorderColor: dataset.color,
|
|
187
|
+
})),
|
|
188
|
+
};
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
export const scatterChart = {
|
|
192
|
+
chartType: 'scatter',
|
|
193
|
+
chartJsType: 'scatter',
|
|
194
|
+
createOptions: () => deepMerge(createBasicOptions(), {
|
|
195
|
+
scales: {
|
|
196
|
+
y: {
|
|
197
|
+
beginAtZero: true,
|
|
198
|
+
grace: '5%',
|
|
199
|
+
},
|
|
200
|
+
x: {
|
|
201
|
+
beginAtZero: true,
|
|
202
|
+
grace: '5%',
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
}),
|
|
206
|
+
transformData: transformDataToScatter,
|
|
207
|
+
};
|
|
208
|
+
export const bubbleChart = {
|
|
209
|
+
chartType: 'bubble',
|
|
210
|
+
chartJsType: 'bubble',
|
|
211
|
+
createOptions: () => deepMerge(createBasicOptions(), {
|
|
212
|
+
scales: {
|
|
213
|
+
y: {
|
|
214
|
+
beginAtZero: true,
|
|
215
|
+
grace: '5%',
|
|
216
|
+
},
|
|
217
|
+
x: {
|
|
218
|
+
beginAtZero: true,
|
|
219
|
+
grace: '5%',
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
}),
|
|
223
|
+
transformData: transformDataToBubble,
|
|
224
|
+
};
|
|
225
|
+
export const multiAxisLineChart = {
|
|
226
|
+
chartType: 'multiAxisLine',
|
|
227
|
+
chartJsType: 'line',
|
|
228
|
+
createOptions: (chartData) => {
|
|
229
|
+
const yAxes = chartData.items.map((dataset, index) => ({
|
|
230
|
+
id: `y${index == 1 ? '' : index}`,
|
|
231
|
+
type: 'linear',
|
|
232
|
+
position: index % 2 === 0 ? 'left' : 'right',
|
|
233
|
+
}));
|
|
234
|
+
return {
|
|
235
|
+
scales: {
|
|
236
|
+
...yAxes.reduce((acc, axis) => {
|
|
237
|
+
acc[axis.id] = axis;
|
|
238
|
+
return acc;
|
|
239
|
+
}, {}),
|
|
240
|
+
},
|
|
241
|
+
aspectRatio: 1.78,
|
|
242
|
+
responsive: true,
|
|
243
|
+
maintainAspectRatio: true,
|
|
244
|
+
};
|
|
245
|
+
},
|
|
246
|
+
transformData: (chartData) => {
|
|
247
|
+
return {
|
|
248
|
+
labels: chartData.labels,
|
|
249
|
+
datasets: chartData.items.map((dataset, index) => ({
|
|
250
|
+
data: dataset.items.map((item) => item.xValue),
|
|
251
|
+
label: dataset.label,
|
|
252
|
+
yAxisID: `y${index == 1 ? '' : index}`,
|
|
253
|
+
backgroundColor: dataset.color,
|
|
254
|
+
borderColor: dataset.color,
|
|
255
|
+
})),
|
|
256
|
+
};
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
export class DefaultChartOptionsProvider {
|
|
260
|
+
constructor(factories) {
|
|
261
|
+
this.factoriesByType = new Map(factories?.map((f) => [f.chartType, f]) ?? []);
|
|
262
|
+
}
|
|
263
|
+
getFactory(chartType) {
|
|
264
|
+
return (this.factoriesByType.get(chartType) ?? {
|
|
265
|
+
chartType: chartType,
|
|
266
|
+
chartJsType: chartType,
|
|
267
|
+
transformData: transformDataToBasicDataSets,
|
|
268
|
+
createOptions: createBasicOptions,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultChartOptionsProvider, deps: [{ token: CUSTOM_DIAGRAM_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
272
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultChartOptionsProvider, providedIn: 'root' }); }
|
|
273
|
+
}
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultChartOptionsProvider, decorators: [{
|
|
275
|
+
type: Injectable,
|
|
276
|
+
args: [{
|
|
277
|
+
providedIn: 'root',
|
|
278
|
+
}]
|
|
279
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
280
|
+
type: Inject,
|
|
281
|
+
args: [CUSTOM_DIAGRAM_OPTIONS]
|
|
282
|
+
}, {
|
|
283
|
+
type: Optional
|
|
284
|
+
}] }] });
|
|
285
|
+
function generateRandomColor() {
|
|
286
|
+
const random = Math.floor(Math.random() * 16777215).toString(16);
|
|
287
|
+
return `#${'000000'.substring(0, 6 - random.length) + random}`;
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zbWFydC1kaWFncmFtLW9wdGlvbnMucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1kaWFncmFtL2NvbXBvbmVudC9kZWZhdWx0LXNtYXJ0LWRpYWdyYW0tb3B0aW9ucy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJakQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQWlCLHdCQUF3QixDQUFDLENBQUM7QUFTbkcsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFNBQStCO0lBQzFFLE9BQU87UUFDTCxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDeEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3JELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ3BCLGVBQWUsRUFBRSxLQUFLO2dCQUN0QixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDO1FBQ0osQ0FBQyxDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsU0FBK0I7SUFDM0UsT0FBTztRQUNMLE1BQU0sRUFBRSxTQUFT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RixDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWlCO1FBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSTtZQUNyQyxTQUFTLEVBQUUsU0FBUztZQUNwQixXQUFXLEVBQUUsU0FBUztZQUN0QixhQUFhLEVBQUUsNEJBQTRCO1lBQzNDLGFBQWEsRUFBRSxrQkFBa0I7U0FDbEMsQ0FDRixDQUFDO0lBQ0osQ0FBQzsrR0FuQlUsMkJBQTJCLGtCQUc1QixzQkFBc0I7bUhBSHJCLDJCQUEyQixjQUYxQixNQUFNOzs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJSSxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLFFBQVE7O0FBa0JiLFNBQVMsbUJBQW1CO0lBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRSxPQUFPLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhZ3JhbURhdGFDb250YWluZXIgfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICcuL3NtYXJ0LWRpYWdyYW0udXRpbCc7XHJcbmltcG9ydCB7IFggfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBsYXlvdXRzIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENVU1RPTV9ESUFHUkFNX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGlhZ3JhbUZhY3Rvcnk+KCdDVVNUT01fRElBR1JBTV9PUFRJT05TJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpYWdyYW1GYWN0b3J5IHtcclxuICByZWFkb25seSBjaGFydFR5cGU6IHN0cmluZztcclxuICByZWFkb25seSBjaGFydEpzVHlwZTogc3RyaW5nO1xyXG4gIGNyZWF0ZU9wdGlvbnMoY2hhcnREYXRhOiBEaWFncmFtRGF0YUNvbnRhaW5lcik6IGFueTtcclxuICB0cmFuc2Zvcm1EYXRhKGNoYXJ0RGF0YTogRGlhZ3JhbURhdGFDb250YWluZXIpOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRhVG9CYXNpY0RhdGFTZXRzKGNoYXJ0RGF0YTogRGlhZ3JhbURhdGFDb250YWluZXIpOiBhbnkge1xyXG4gIHJldHVybiB7XHJcbiAgICBsYWJlbHM6IGNoYXJ0RGF0YS5sYWJlbHMsXHJcbiAgICBkYXRhc2V0czogY2hhcnREYXRhLml0ZW1zLm1hcCgoZGF0YXNldCkgPT4ge1xyXG4gICAgICBjb25zdCBjb2xvciA9IGRhdGFzZXQuY29sb3IgfHwgZ2VuZXJhdGVSYW5kb21Db2xvcigpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGE6IGRhdGFzZXQuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnhWYWx1ZSksXHJcbiAgICAgICAgbGFiZWw6IGRhdGFzZXQubGFiZWwsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcclxuICAgICAgICBib3JkZXJDb2xvcjogY29sb3IsXHJcbiAgICAgIH07XHJcbiAgICB9KSxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRGF0YVRvQmFyTGlrZURhdGFTZXQoY2hhcnREYXRhOiBEaWFncmFtRGF0YUNvbnRhaW5lcik6IGFueSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGxhYmVsczogY2hhcnREYXRhLmxhYmVscyxcclxuICAgIGRhdGFzZXRzOiBjaGFydERhdGEuaXRlbXMubWFwKChkYXRhc2V0KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YTogZGF0YXNldC5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ueFZhbHVlKSxcclxuICAgICAgICBsYWJlbDogZGF0YXNldC5sYWJlbCxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGRhdGFzZXQuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLml0ZW1Db2xvciB8fCBnZW5lcmF0ZVJhbmRvbUNvbG9yKCkpLFxyXG4gICAgICAgIGJvcmRlckNvbG9yOiBkYXRhc2V0Lml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5pdGVtQ29sb3IgfHwgZ2VuZXJhdGVSYW5kb21Db2xvcigpKSxcclxuICAgICAgfTtcclxuICAgIH0pLFxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRhVG9TY2F0dGVyKGNoYXJ0RGF0YTogRGlhZ3JhbURhdGFDb250YWluZXIpOiBhbnkge1xyXG4gIHJldHVybiB7XHJcbiAgICBkYXRhc2V0czogY2hhcnREYXRhLml0ZW1zLm1hcCgoZGF0YXNldCkgPT4ge1xyXG4gICAgICBjb25zdCBjb2xvciA9IGRhdGFzZXQuY29sb3IgfHwgZ2VuZXJhdGVSYW5kb21Db2xvcigpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhYmVsOiBkYXRhc2V0LmxhYmVsLFxyXG4gICAgICAgIGRhdGE6IGRhdGFzZXQuaXRlbXMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgICAgeDogaXRlbS54VmFsdWUsXHJcbiAgICAgICAgICB5OiBpdGVtLnlWYWx1ZSxcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcclxuICAgICAgICBib3JkZXJDb2xvcjogY29sb3IsXHJcbiAgICAgIH07XHJcbiAgICB9KSxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRGF0YVRvQnViYmxlKGNoYXJ0RGF0YTogRGlhZ3JhbURhdGFDb250YWluZXIpOiBhbnkge1xyXG4gIHJldHVybiB7XHJcbiAgICBkYXRhc2V0czogY2hhcnREYXRhLml0ZW1zLm1hcCgoZGF0YXNldCkgPT4ge1xyXG4gICAgICBjb25zdCBjb2xvciA9IGRhdGFzZXQuY29sb3IgfHwgZ2VuZXJhdGVSYW5kb21Db2xvcigpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhYmVsOiBkYXRhc2V0LmxhYmVsLFxyXG4gICAgICAgIGRhdGE6IGRhdGFzZXQuaXRlbXMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgICAgeDogaXRlbS54VmFsdWUsXHJcbiAgICAgICAgICB5OiBpdGVtLnlWYWx1ZSxcclxuICAgICAgICAgIHI6IGl0ZW0uclZhbHVlID8/IDUsXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXHJcbiAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLFxyXG4gICAgICB9O1xyXG4gICAgfSksXHJcbiAgfTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFzaWNPcHRpb25zKCk6IGFueSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHNjYWxlczoge1xyXG4gICAgICB5OiB7XHJcbiAgICAgICAgYmVnaW5BdFplcm86IHRydWUsXHJcbiAgICAgICAgZ3JhY2U6ICc1JScsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgYXNwZWN0UmF0aW86IDEuNzgsXHJcbiAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgYmFyQ2hhcnQ6IERpYWdyYW1GYWN0b3J5ID0ge1xyXG4gIGNoYXJ0VHlwZTogJ2JhcicsXHJcbiAgY2hhcnRKc1R5cGU6ICdiYXInLFxyXG4gIGNyZWF0ZU9wdGlvbnM6IGNyZWF0ZUJhc2ljT3B0aW9ucyxcclxuICB0cmFuc2Zvcm1EYXRhOiB0cmFuc2Zvcm1EYXRhVG9CYXJMaWtlRGF0YVNldCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBob3Jpem9udGFsQmFyQ2hhcnQ6IERpYWdyYW1GYWN0b3J5ID0ge1xyXG4gIGNoYXJ0VHlwZTogJ2hvcml6b250YWxCYXInLFxyXG4gIGNoYXJ0SnNUeXBlOiAnYmFyJyxcclxuICBjcmVhdGVPcHRpb25zOiAoKSA9PlxyXG4gICAgZGVlcE1lcmdlKGNyZWF0ZUJhc2ljT3B0aW9ucygpLCB7XHJcbiAgICAgIGluZGV4QXhpczogJ3knLFxyXG4gICAgICBsYXlvdXQ6IHtcclxuICAgICAgICBwYWRkaW5nOiB7XHJcbiAgICAgICAgICByaWdodDogNSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSksXHJcbiAgdHJhbnNmb3JtRGF0YTogdHJhbnNmb3JtRGF0YVRvQmFyTGlrZURhdGFTZXQsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc3RhY2tlZEJhckNoYXJ0OiBEaWFncmFtRmFjdG9yeSA9IHtcclxuICBjaGFydFR5cGU6ICdzdGFja2VkQmFyJyxcclxuICBjaGFydEpzVHlwZTogJ2JhcicsXHJcbiAgY3JlYXRlT3B0aW9uczogKCkgPT5cclxuICAgIGRlZXBNZXJnZShjcmVhdGVCYXNpY09wdGlvbnMoKSwge1xyXG4gICAgICBzY2FsZXM6IHtcclxuICAgICAgICB4OiB7IHN0YWNrZWQ6IHRydWUgfSxcclxuICAgICAgICB5OiB7IHN0YWNrZWQ6IHRydWUgfSxcclxuICAgICAgfSxcclxuICAgIH0pLFxyXG4gIHRyYW5zZm9ybURhdGE6IHRyYW5zZm9ybURhdGFUb0Jhc2ljRGF0YVNldHMsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcGllQ2hhcnQ6IERpYWdyYW1GYWN0b3J5ID0ge1xyXG4gIGNoYXJ0VHlwZTogJ3BpZScsXHJcbiAgY2hhcnRKc1R5cGU6ICdwaWUnLFxyXG4gIGNyZWF0ZU9wdGlvbnM6ICgpID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJhZGl1czogJzk1JScsXHJcbiAgICAgIGxheW91dDoge1xyXG4gICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgIH0sXHJcbiAgICAgIGFzcGVjdFJhdGlvOiAxLFxyXG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiB0cnVlLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIHRyYW5zZm9ybURhdGE6IHRyYW5zZm9ybURhdGFUb0Jhckxpa2VEYXRhU2V0LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvdWdobnV0Q2hhcnQ6IERpYWdyYW1GYWN0b3J5ID0ge1xyXG4gIGNoYXJ0VHlwZTogJ2RvdWdobnV0JyxcclxuICBjaGFydEpzVHlwZTogJ2RvdWdobnV0JyxcclxuICBjcmVhdGVPcHRpb25zOiAoKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICByYWRpdXM6ICc5NSUnLFxyXG4gICAgICBsYXlvdXQ6IHtcclxuICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICB9LFxyXG4gICAgICBhc3BlY3RSYXRpbzogMSxcclxuICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcclxuICAgIH07XHJcbiAgfSxcclxuICB0cmFuc2Zvcm1EYXRhOiB0cmFuc2Zvcm1EYXRhVG9CYXJMaWtlRGF0YVNldCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBwb2xhckFyZWFDaGFydDogRGlhZ3JhbUZhY3RvcnkgPSB7XHJcbiAgY2hhcnRUeXBlOiAncG9sYXJBcmVhJyxcclxuICBjaGFydEpzVHlwZTogJ3BvbGFyQXJlYScsXHJcbiAgY3JlYXRlT3B0aW9uczogKCkgPT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmFkaXVzOiAnOTUlJyxcclxuICAgICAgbGF5b3V0OiB7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgfSxcclxuICAgICAgYXNwZWN0UmF0aW86IDEsXHJcbiAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IHRydWUsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgdHJhbnNmb3JtRGF0YTogKGNoYXJ0RGF0YTogRGlhZ3JhbURhdGFDb250YWluZXIpOiBhbnkgPT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGFiZWxzOiBjaGFydERhdGEubGFiZWxzLFxyXG4gICAgICBkYXRhc2V0czogY2hhcnREYXRhLml0ZW1zLm1hcCgoZGF0YXNldCkgPT4gKHtcclxuICAgICAgICBkYXRhOiBkYXRhc2V0Lml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS54VmFsdWUpLFxyXG4gICAgICAgIGxhYmVsOiBkYXRhc2V0LmxhYmVsLFxyXG4gICAgICAgIGJvcmRlckNvbG9yOiBkYXRhc2V0Lml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5pdGVtQ29sb3IpLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogZGF0YXNldC5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uaXRlbUNvbG9yKSxcclxuICAgICAgfSkpLFxyXG4gICAgfTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHJhZGFyQ2hhcnQ6IERpYWdyYW1GYWN0b3J5ID0ge1xyXG4gIGNoYXJ0VHlwZTogJ3JhZGFyJyxcclxuICBjaGFydEpzVHlwZTogJ3JhZGFyJyxcclxuICBjcmVhdGVPcHRpb25zOiAoKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhc3BlY3RSYXRpbzogMSxcclxuICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcclxuICAgIH07XHJcbiAgfSxcclxuICB0cmFuc2Zvcm1EYXRhOiAoY2hhcnREYXRhOiBEaWFncmFtRGF0YUNvbnRhaW5lcik6IGFueSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBsYWJlbHM6IGNoYXJ0RGF0YS5sYWJlbHMsXHJcbiAgICAgIGRhdGFzZXRzOiBjaGFydERhdGEuaXRlbXMubWFwKChkYXRhc2V0KSA9PiAoe1xyXG4gICAgICAgIGRhdGE6IGRhdGFzZXQuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnhWYWx1ZSksXHJcbiAgICAgICAgbGFiZWw6IGRhdGFzZXQubGFiZWwsXHJcbiAgICAgICAgYm9yZGVyQ29sb3I6IGRhdGFzZXQuY29sb3IsXHJcbiAgICAgICAgcG9pbnRCYWNrZ3JvdW5kQ29sb3I6IGRhdGFzZXQuY29sb3IsXHJcbiAgICAgICAgcG9pbnRCb3JkZXJDb2xvcjogZGF0YXNldC5jb2xvcixcclxuICAgICAgICBwb2ludEhvdmVyQmFja2dyb3VuZENvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICAgICAgcG9pbnRIb3ZlckJvcmRlckNvbG9yOiBkYXRhc2V0LmNvbG9yLFxyXG4gICAgICB9KSksXHJcbiAgICB9O1xyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc2NhdHRlckNoYXJ0OiBEaWFncmFtRmFjdG9yeSA9IHtcclxuICBjaGFydFR5cGU6ICdzY2F0dGVyJyxcclxuICBjaGFydEpzVHlwZTogJ3NjYXR0ZXInLFxyXG4gIGNyZWF0ZU9wdGlvbnM6ICgpID0+XHJcbiAgICBkZWVwTWVyZ2UoY3JlYXRlQmFzaWNPcHRpb25zKCksIHtcclxuICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgeToge1xyXG4gICAgICAgICAgYmVnaW5BdFplcm86IHRydWUsXHJcbiAgICAgICAgICBncmFjZTogJzUlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHg6IHtcclxuICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlLFxyXG4gICAgICAgICAgZ3JhY2U6ICc1JScsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pLFxyXG4gIHRyYW5zZm9ybURhdGE6IHRyYW5zZm9ybURhdGFUb1NjYXR0ZXIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYnViYmxlQ2hhcnQ6IERpYWdyYW1GYWN0b3J5ID0ge1xyXG4gIGNoYXJ0VHlwZTogJ2J1YmJsZScsXHJcbiAgY2hhcnRKc1R5cGU6ICdidWJibGUnLFxyXG4gIGNyZWF0ZU9wdGlvbnM6ICgpID0+XHJcbiAgICBkZWVwTWVyZ2UoY3JlYXRlQmFzaWNPcHRpb25zKCksIHtcclxuICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgeToge1xyXG4gICAgICAgICAgYmVnaW5BdFplcm86IHRydWUsXHJcbiAgICAgICAgICBncmFjZTogJzUlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHg6IHtcclxuICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlLFxyXG4gICAgICAgICAgZ3JhY2U6ICc1JScsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pLFxyXG4gIHRyYW5zZm9ybURhdGE6IHRyYW5zZm9ybURhdGFUb0J1YmJsZSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBtdWx0aUF4aXNMaW5lQ2hhcnQ6IERpYWdyYW1GYWN0b3J5ID0ge1xyXG4gIGNoYXJ0VHlwZTogJ211bHRpQXhpc0xpbmUnLFxyXG4gIGNoYXJ0SnNUeXBlOiAnbGluZScsXHJcbiAgY3JlYXRlT3B0aW9uczogKGNoYXJ0RGF0YTogRGlhZ3JhbURhdGFDb250YWluZXIpOiBhbnkgPT4ge1xyXG4gICAgY29uc3QgeUF4ZXMgPSBjaGFydERhdGEuaXRlbXMubWFwKChkYXRhc2V0LCBpbmRleCkgPT4gKHtcclxuICAgICAgaWQ6IGB5JHtpbmRleCA9PSAxID8gJycgOiBpbmRleH1gLFxyXG4gICAgICB0eXBlOiAnbGluZWFyJyxcclxuICAgICAgcG9zaXRpb246IGluZGV4ICUgMiA9PT0gMCA/ICdsZWZ0JyA6ICdyaWdodCcsXHJcbiAgICB9KSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzY2FsZXM6IHtcclxuICAgICAgICAuLi55QXhlcy5yZWR1Y2UoKGFjYzogYW55LCBheGlzKSA9PiB7XHJcbiAgICAgICAgICBhY2NbYXhpcy5pZF0gPSBheGlzO1xyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LCB7fSksXHJcbiAgICAgIH0sXHJcbiAgICAgIGFzcGVjdFJhdGlvOiAxLjc4LFxyXG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiB0cnVlLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIHRyYW5zZm9ybURhdGE6IChjaGFydERhdGE6IERpYWdyYW1EYXRhQ29udGFpbmVyKTogYW55ID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxhYmVsczogY2hhcnREYXRhLmxhYmVscyxcclxuICAgICAgZGF0YXNldHM6IGNoYXJ0RGF0YS5pdGVtcy5tYXAoKGRhdGFzZXQsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgIGRhdGE6IGRhdGFzZXQuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnhWYWx1ZSksXHJcbiAgICAgICAgbGFiZWw6IGRhdGFzZXQubGFiZWwsXHJcbiAgICAgICAgeUF4aXNJRDogYHkke2luZGV4ID09IDEgPyAnJyA6IGluZGV4fWAsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBkYXRhc2V0LmNvbG9yLFxyXG4gICAgICAgIGJvcmRlckNvbG9yOiBkYXRhc2V0LmNvbG9yLFxyXG4gICAgICB9KSksXHJcbiAgICB9O1xyXG4gIH0sXHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdENoYXJ0T3B0aW9uc1Byb3ZpZGVyIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGZhY3Rvcmllc0J5VHlwZTogTWFwPHN0cmluZywgRGlhZ3JhbUZhY3Rvcnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChDVVNUT01fRElBR1JBTV9PUFRJT05TKVxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIGZhY3RvcmllczogRGlhZ3JhbUZhY3RvcnlbXSB8IHVuZGVmaW5lZFxyXG4gICkge1xyXG4gICAgdGhpcy5mYWN0b3JpZXNCeVR5cGUgPSBuZXcgTWFwKGZhY3Rvcmllcz8ubWFwKChmKSA9PiBbZi5jaGFydFR5cGUsIGZdKSA/PyBbXSk7XHJcbiAgfVxyXG5cclxuICBnZXRGYWN0b3J5KGNoYXJ0VHlwZTogc3RyaW5nKTogRGlhZ3JhbUZhY3Rvcnkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5mYWN0b3JpZXNCeVR5cGUuZ2V0KGNoYXJ0VHlwZSkgPz8ge1xyXG4gICAgICAgIGNoYXJ0VHlwZTogY2hhcnRUeXBlLFxyXG4gICAgICAgIGNoYXJ0SnNUeXBlOiBjaGFydFR5cGUsXHJcbiAgICAgICAgdHJhbnNmb3JtRGF0YTogdHJhbnNmb3JtRGF0YVRvQmFzaWNEYXRhU2V0cyxcclxuICAgICAgICBjcmVhdGVPcHRpb25zOiBjcmVhdGVCYXNpY09wdGlvbnMsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbUNvbG9yKCk6IHN0cmluZyB7XHJcbiAgY29uc3QgcmFuZG9tID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTY3NzcyMTUpLnRvU3RyaW5nKDE2KTtcclxuICByZXR1cm4gYCMkeycwMDAwMDAnLnN1YnN0cmluZygwLCA2IC0gcmFuZG9tLmxlbmd0aCkgKyByYW5kb219YDtcclxufVxyXG4iXX0=
|