@plumile/backoffice-core 0.1.167 → 0.1.169
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/lib/esm/builders.d.ts +9 -4
- package/lib/esm/builders.d.ts.map +1 -1
- package/lib/esm/builders.js +24 -1
- package/lib/esm/filters/schema.d.ts.map +1 -1
- package/lib/esm/filters/schema.js +26 -2
- package/lib/esm/state/buildListHref.d.ts.map +1 -1
- package/lib/esm/state/buildListHref.js +1 -1
- package/lib/esm/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
- package/lib/esm/type-tests/operation-bound-config.test-d.js +202 -3
- package/lib/esm/types.d.ts +197 -13
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/builders.d.ts +9 -4
- package/lib/types/builders.d.ts.map +1 -1
- package/lib/types/filters/schema.d.ts.map +1 -1
- package/lib/types/state/buildListHref.d.ts.map +1 -1
- package/lib/types/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
- package/lib/types/types.d.ts +197 -13
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineBackofficeConnectionList, defineBackofficeDashboardConfig, defineBackofficeDashboardQueryWidget, defineBackofficeDashboardStaticWidget, defineBackofficeFilters, defineBackofficePicker, defineBackofficeRelationFilter, defineBackofficeSorts, datetimeFilter, entityIdFilter, enumFilter, numberFilter, } from '../builders.js';
|
|
1
|
+
import { defineBackofficeConnectionList, defineBackofficeDashboardConfig, defineBackofficeDashboardHrefTarget, defineBackofficeDashboardListTarget, defineBackofficeDashboardQueryWidget, defineBackofficeDashboardStaticWidget, defineBackofficeFilters, defineBackofficePicker, defineBackofficeRelationFilter, defineBackofficeSorts, datetimeFilter, entityIdFilter, enumFilter, numberFilter, } from '../builders.js';
|
|
2
2
|
const label = (t) => {
|
|
3
3
|
return t('common.label');
|
|
4
4
|
};
|
|
@@ -108,6 +108,177 @@ defineBackofficeDashboardConfig({
|
|
|
108
108
|
id: 'users',
|
|
109
109
|
label,
|
|
110
110
|
value: data.users.totalCount,
|
|
111
|
+
target: defineBackofficeDashboardListTarget()({
|
|
112
|
+
entityId: 'tasks',
|
|
113
|
+
state: {
|
|
114
|
+
where: { kind: 'A' },
|
|
115
|
+
sort: 'CREATED_AT_DESC',
|
|
116
|
+
},
|
|
117
|
+
}),
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
},
|
|
121
|
+
}),
|
|
122
|
+
defineBackofficeDashboardStaticWidget({
|
|
123
|
+
id: 'window',
|
|
124
|
+
kind: 'windowControl',
|
|
125
|
+
title: label,
|
|
126
|
+
}),
|
|
127
|
+
defineBackofficeDashboardQueryWidget()({
|
|
128
|
+
id: 'throughput',
|
|
129
|
+
kind: 'trendMetric',
|
|
130
|
+
query: {},
|
|
131
|
+
variables: ({ window }) => {
|
|
132
|
+
return {
|
|
133
|
+
from: window.from,
|
|
134
|
+
to: window.to,
|
|
135
|
+
severity: 'A',
|
|
136
|
+
};
|
|
137
|
+
},
|
|
138
|
+
resolve: (data, context) => {
|
|
139
|
+
return {
|
|
140
|
+
label,
|
|
141
|
+
value: data.throughputCount,
|
|
142
|
+
delta: {
|
|
143
|
+
value: 12,
|
|
144
|
+
direction: 'up',
|
|
145
|
+
tone: 'success',
|
|
146
|
+
label,
|
|
147
|
+
},
|
|
148
|
+
sparkline: [{ x: '2026-01-01T00:00:00.000Z', y: 1 }],
|
|
149
|
+
target: defineBackofficeDashboardListTarget()({
|
|
150
|
+
entityId: 'tasks',
|
|
151
|
+
state: {
|
|
152
|
+
where: { kind: 'A' },
|
|
153
|
+
sort: 'CREATED_AT_DESC',
|
|
154
|
+
filters: [
|
|
155
|
+
{ id: 'createdFrom', value: context.window.from },
|
|
156
|
+
{ id: 'createdTo', value: context.window.to },
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
}),
|
|
160
|
+
};
|
|
161
|
+
},
|
|
162
|
+
}),
|
|
163
|
+
defineBackofficeDashboardQueryWidget()({
|
|
164
|
+
id: 'failure-rate',
|
|
165
|
+
kind: 'slaGauge',
|
|
166
|
+
query: {},
|
|
167
|
+
variables: ({ window }) => {
|
|
168
|
+
return { from: window.from, to: window.to };
|
|
169
|
+
},
|
|
170
|
+
resolve: (data) => {
|
|
171
|
+
return {
|
|
172
|
+
label,
|
|
173
|
+
value: data.failureRate,
|
|
174
|
+
max: 1,
|
|
175
|
+
threshold: 0.05,
|
|
176
|
+
unit: '%',
|
|
177
|
+
tone: 'warning',
|
|
178
|
+
};
|
|
179
|
+
},
|
|
180
|
+
}),
|
|
181
|
+
defineBackofficeDashboardQueryWidget()({
|
|
182
|
+
id: 'top-failures',
|
|
183
|
+
kind: 'breakdownList',
|
|
184
|
+
query: {},
|
|
185
|
+
variables: ({ window }) => {
|
|
186
|
+
return { from: window.from, to: window.to };
|
|
187
|
+
},
|
|
188
|
+
resolve: (data) => {
|
|
189
|
+
return data.topFailures.map((failure) => {
|
|
190
|
+
return {
|
|
191
|
+
id: failure.id,
|
|
192
|
+
label: () => {
|
|
193
|
+
return failure.label;
|
|
194
|
+
},
|
|
195
|
+
value: failure.count,
|
|
196
|
+
tone: 'danger',
|
|
197
|
+
};
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
}),
|
|
201
|
+
defineBackofficeDashboardQueryWidget()({
|
|
202
|
+
id: 'timeline',
|
|
203
|
+
kind: 'timelineChart',
|
|
204
|
+
query: {},
|
|
205
|
+
variables: ({ window }) => {
|
|
206
|
+
return { from: window.from, to: window.to };
|
|
207
|
+
},
|
|
208
|
+
ariaLabel: label,
|
|
209
|
+
chart: 'bar',
|
|
210
|
+
resolve: (data) => {
|
|
211
|
+
return {
|
|
212
|
+
series: [
|
|
213
|
+
{
|
|
214
|
+
id: 'throughput',
|
|
215
|
+
label,
|
|
216
|
+
color: '#2563eb',
|
|
217
|
+
data: data.buckets.map((bucket) => {
|
|
218
|
+
return {
|
|
219
|
+
x: bucket.bucket,
|
|
220
|
+
y: bucket.count,
|
|
221
|
+
};
|
|
222
|
+
}),
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
};
|
|
226
|
+
},
|
|
227
|
+
}),
|
|
228
|
+
defineBackofficeDashboardQueryWidget()({
|
|
229
|
+
id: 'risk-queue',
|
|
230
|
+
kind: 'riskQueue',
|
|
231
|
+
query: {},
|
|
232
|
+
variables: ({ window }) => {
|
|
233
|
+
return { from: window.from, to: window.to };
|
|
234
|
+
},
|
|
235
|
+
resolve: () => {
|
|
236
|
+
return [
|
|
237
|
+
{
|
|
238
|
+
id: 'dead-outbox',
|
|
239
|
+
label,
|
|
240
|
+
severity: 'danger',
|
|
241
|
+
value: 4,
|
|
242
|
+
},
|
|
243
|
+
];
|
|
244
|
+
},
|
|
245
|
+
}),
|
|
246
|
+
defineBackofficeDashboardQueryWidget()({
|
|
247
|
+
id: 'spotlight',
|
|
248
|
+
kind: 'entitySpotlight',
|
|
249
|
+
query: {},
|
|
250
|
+
variables: ({ window }) => {
|
|
251
|
+
return { from: window.from, to: window.to };
|
|
252
|
+
},
|
|
253
|
+
resolve: () => {
|
|
254
|
+
return {
|
|
255
|
+
label,
|
|
256
|
+
title: label,
|
|
257
|
+
tone: 'info',
|
|
258
|
+
meta: [{ id: 'age', label, value: '45 min' }],
|
|
259
|
+
};
|
|
260
|
+
},
|
|
261
|
+
}),
|
|
262
|
+
defineBackofficeDashboardQueryWidget()({
|
|
263
|
+
id: 'health',
|
|
264
|
+
kind: 'healthMatrix',
|
|
265
|
+
query: {},
|
|
266
|
+
variables: ({ window }) => {
|
|
267
|
+
return { from: window.from, to: window.to };
|
|
268
|
+
},
|
|
269
|
+
resolve: () => {
|
|
270
|
+
return [
|
|
271
|
+
{
|
|
272
|
+
id: 'work',
|
|
273
|
+
label,
|
|
274
|
+
cells: [
|
|
275
|
+
{
|
|
276
|
+
id: 'tasks',
|
|
277
|
+
label,
|
|
278
|
+
value: 2,
|
|
279
|
+
tone: 'warning',
|
|
280
|
+
},
|
|
281
|
+
],
|
|
111
282
|
},
|
|
112
283
|
];
|
|
113
284
|
},
|
|
@@ -119,7 +290,7 @@ defineBackofficeDashboardConfig({
|
|
|
119
290
|
{
|
|
120
291
|
id: 'users',
|
|
121
292
|
label,
|
|
122
|
-
|
|
293
|
+
target: defineBackofficeDashboardHrefTarget('/users'),
|
|
123
294
|
},
|
|
124
295
|
],
|
|
125
296
|
}),
|
|
@@ -140,6 +311,34 @@ defineBackofficeDashboardQueryWidget()({
|
|
|
140
311
|
];
|
|
141
312
|
},
|
|
142
313
|
});
|
|
314
|
+
defineBackofficeDashboardQueryWidget()({
|
|
315
|
+
id: 'invalid-window-variables',
|
|
316
|
+
kind: 'trendMetric',
|
|
317
|
+
query: {},
|
|
318
|
+
variables: ({ window }) => {
|
|
319
|
+
return {
|
|
320
|
+
from: window.from,
|
|
321
|
+
};
|
|
322
|
+
},
|
|
323
|
+
resolve: (data) => {
|
|
324
|
+
return {
|
|
325
|
+
label,
|
|
326
|
+
value: data.throughputCount,
|
|
327
|
+
};
|
|
328
|
+
},
|
|
329
|
+
});
|
|
330
|
+
defineBackofficeDashboardListTarget()({
|
|
331
|
+
entityId: 'tasks',
|
|
332
|
+
state: {
|
|
333
|
+
where: { organizationId: 'org-1' },
|
|
334
|
+
},
|
|
335
|
+
});
|
|
336
|
+
defineBackofficeDashboardListTarget()({
|
|
337
|
+
entityId: 'tasks',
|
|
338
|
+
state: {
|
|
339
|
+
sort: 'UPDATED_AT_DESC',
|
|
340
|
+
},
|
|
341
|
+
});
|
|
143
342
|
export const invalidDashboardConfig = {
|
|
144
343
|
title: label,
|
|
145
344
|
query: {},
|
|
@@ -249,4 +448,4 @@ defineBackofficePicker()({
|
|
|
249
448
|
};
|
|
250
449
|
},
|
|
251
450
|
});
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWJvdW5kLWNvbmZpZy50ZXN0LWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS10ZXN0cy9vcGVyYXRpb24tYm91bmQtY29uZmlnLnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQixvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsOEJBQThCLEVBQzlCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsY0FBYyxFQUNkLFVBQVUsRUFDVixZQUFZLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQTREeEIsTUFBTSxLQUFLLEdBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUM3QixPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXFDO0lBQzlELEVBQUUsRUFBRSxPQUFPO0lBQ1gsS0FBSztJQUNMLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFxQztJQUNyRSxFQUFFLEVBQUUsT0FBTztJQUVYLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFrQztJQUN0RCxFQUFFLEVBQUUsT0FBTztJQUNYLEtBQUs7SUFDTCxLQUFLLEVBQUUsT0FBTztDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBa0M7SUFDN0QsRUFBRSxFQUFFLE9BQU87SUFFWCxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHLHVCQUF1QixFQUFxQixDQUFDO0lBQzNELGNBQWMsQ0FDWixXQUFXLEVBQ1g7UUFDRSxNQUFNLEVBQUUsVUFBVTtRQUNsQixLQUFLO0tBQ04sQ0FDRjtJQUNELFVBQVUsQ0FBc0QsTUFBTSxFQUFFO1FBQ3RFLEtBQUs7UUFDTCxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0tBQ3BCLENBQUM7SUFDRixZQUFZLENBQ1YsU0FBUyxFQUNUO1FBQ0UsS0FBSztLQUNOLENBQ0Y7SUFDRCxjQUFjLENBQ1osYUFBYSxFQUNiO1FBQ0UsS0FBSztRQUNMLElBQUksRUFBRSxNQUFNO0tBQ2IsQ0FDRjtDQUNGLENBQUMsQ0FBQztBQUVILHFCQUFxQixFQUFxQixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9FLDhCQUE4QixFQUF5QyxDQUFDO0lBQ3RFLEtBQUssRUFBRSxLQUFLO0lBQ1osS0FBSyxFQUFFLEVBQVc7SUFDbEIsUUFBUSxFQUFFLEVBQVc7SUFDckIsS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEVBQVc7UUFDbEIsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakIsT0FBUSxJQUF1QyxDQUFDLFNBQVMsQ0FBQztRQUM1RCxDQUFDO0tBQ0Y7SUFDRCxPQUFPO0lBQ1AsS0FBSyxFQUFFLHFCQUFxQixFQUFxQixDQUFDO1FBQ2hELEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRTtLQUNoQyxDQUFDO0lBQ0YsWUFBWSxFQUFFO1FBQ1osS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRTtRQUNqQyxJQUFJLEVBQUUsaUJBQWlCO0tBQ3hCO0lBQ0QsYUFBYSxFQUFFLEdBQUcsRUFBRTtRQUNsQixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDYixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLEVBQUUsRUFBRTtDQUNaLENBQUMsQ0FBQztBQUVILHNCQUFzQixFQUF1QixDQUFDO0lBQzVDLEtBQUssRUFBRSxFQUFXO0lBQ2xCLFFBQVEsRUFBRSxFQUFXO0lBQ3JCLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDbEIsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDaEIsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNqQyxPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLGNBQWMsRUFBRSxLQUFLLEVBQUUsY0FBYzthQUN0QztZQUNELEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILCtCQUErQixDQUFDO0lBQzlCLEtBQUssRUFBRSxLQUFLO0lBQ1osT0FBTyxFQUFFO1FBQ1Asb0NBQW9DLEVBQTBCLENBQUM7WUFDN0QsRUFBRSxFQUFFLE9BQU87WUFDWCxJQUFJLEVBQUUsYUFBYTtZQUNuQixLQUFLLEVBQUUsRUFBVztZQUNsQixTQUFTLEVBQUUsRUFBRTtZQUNiLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNoQixPQUFPO29CQUNMO3dCQUNFLEVBQUUsRUFBRSxPQUFPO3dCQUNYLEtBQUs7d0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtxQkFDN0I7aUJBQ0YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDO1FBQ0YscUNBQXFDLENBQUM7WUFDcEMsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsRUFBRSxFQUFFLE9BQU87b0JBQ1gsS0FBSztvQkFDTCxJQUFJLEVBQUUsUUFBUTtpQkFDZjthQUNGO1NBQ0YsQ0FBQztLQUNIO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsb0NBQW9DLEVBQTBCLENBQUM7SUFDN0QsRUFBRSxFQUFFLGVBQWU7SUFDbkIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsS0FBSyxFQUFFLEVBQVc7SUFDbEIsU0FBUyxFQUFFLEVBQUU7SUFDYixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNoQixPQUFPO1lBQ0w7Z0JBQ0UsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsS0FBSztnQkFHTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2FBQ2hDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEI7SUFDL0QsS0FBSyxFQUFFLEtBQUs7SUFFWixLQUFLLEVBQUUsRUFBVztJQUNsQixPQUFPLEVBQUUsRUFBRTtDQUNaLENBQUM7QUFHRixvQ0FBb0MsRUFBMEIsQ0FBQztJQUM3RCxFQUFFLEVBQUUsZUFBZTtJQUNuQixJQUFJLEVBQUUsYUFBYTtJQUNuQixTQUFTLEVBQUUsRUFBRTtJQUNiLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLE9BQU87WUFDTDtnQkFDRSxFQUFFLEVBQUUsT0FBTztnQkFDWCxLQUFLO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7YUFDN0I7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILDhCQUE4QixFQUFxQixDQUFDO0lBQ2xELE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFFBQVEsRUFBRSxXQUFXO0NBQ3RCLENBQUMsQ0FBQztBQUVILDhCQUE4QixFQUFxQixDQUFDO0lBQ2xELE1BQU0sRUFBRSxVQUFVO0lBRWxCLFFBQVEsRUFBRSxnQkFBZ0I7Q0FDM0IsQ0FBQyxDQUFDO0FBRUgsdUJBQXVCLEVBQXFCLENBQUM7SUFFM0MsY0FBYyxDQUNaLGNBQWMsRUFDZDtRQUNFLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLEtBQUs7S0FDTixDQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsdUJBQXVCLEVBQXFCLENBQUM7SUFDM0MsVUFBVSxDQUFzRCxNQUFNLEVBQUU7UUFDdEUsS0FBSztRQUNMLE9BQU8sRUFBRTtZQUNQLEdBQUc7WUFFSCxHQUFHO1NBQ0o7S0FDRixDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRUgsdUJBQXVCLEVBQXFCLENBQUM7SUFFM0MsWUFBWSxDQUFzRCxNQUFNLEVBQUU7UUFDeEUsS0FBSztLQUNOLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCx1QkFBdUIsRUFBcUIsQ0FBQztJQUUzQyxjQUFjLENBQ1osU0FBUyxFQUNUO1FBQ0UsS0FBSztLQUNOLENBQ0Y7Q0FDRixDQUFDLENBQUM7QUFFSCxxQkFBcUIsRUFBcUIsQ0FBQztJQUV6QyxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUU7Q0FDakMsQ0FBQyxDQUFDO0FBRUgsOEJBQThCLEVBQXlDLENBQUM7SUFDdEUsS0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsRUFBVztJQUNsQixRQUFRLEVBQUUsRUFBVztJQUNyQixLQUFLLEVBQUU7UUFDTCxLQUFLLEVBQUUsRUFBVztRQUNsQixjQUFjLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFDRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQixPQUFRLElBQXVDLENBQUMsU0FBUyxDQUFDO1FBQzVELENBQUM7S0FDRjtJQUNELE9BQU87SUFDUCxLQUFLLEVBQUUscUJBQXFCLEVBQXFCLENBQUM7UUFDaEQsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFO0tBQ2hDLENBQUM7SUFDRixZQUFZLEVBQUU7UUFFWixLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFO1FBQ2xDLElBQUksRUFBRSxnQkFBZ0I7S0FDdkI7SUFDRCxhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ2xCLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2IsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNiLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sRUFBRSxFQUFFO0NBQ1osQ0FBQyxDQUFDO0FBRUgsc0JBQXNCLEVBQXVCLENBQUM7SUFDNUMsS0FBSyxFQUFFLEVBQVc7SUFDbEIsUUFBUSxFQUFFLEVBQVc7SUFDckIsYUFBYSxFQUFFLEdBQUcsRUFBRTtRQUNsQixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNoQixPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELG1CQUFtQixFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ2pDLE9BQU87WUFDTCxLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFHLEtBQTRDLEVBQUUsU0FBUzthQUNwRTtZQUNELEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ3JlbGF5LXJ1bnRpbWUnO1xuaW1wb3J0IHtcbiAgZGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzLFxuICBkZWZpbmVCYWNrb2ZmaWNlUGlja2VyLFxuICBkZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXIsXG4gIGRlZmluZUJhY2tvZmZpY2VTb3J0cyxcbiAgZGF0ZXRpbWVGaWx0ZXIsXG4gIGVudGl0eUlkRmlsdGVyLFxuICBlbnVtRmlsdGVyLFxuICBudW1iZXJGaWx0ZXIsXG59IGZyb20gJy4uL2J1aWxkZXJzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZURhc2hib2FyZENvbmZpZyxcbiAgQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0sXG4gIEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtLFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmUsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIFRlc3RTb3J0ID0gJ0NSRUFURURfQVRfQVNDJyB8ICdDUkVBVEVEX0FUX0RFU0MnO1xudHlwZSBUZXN0S2luZCA9ICdBJyB8ICdCJztcblxuaW50ZXJmYWNlIFRlc3RMaXN0T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgcHJvamVjdElkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGtpbmQ/OiBUZXN0S2luZCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICBhdHRlbXB0PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGNyZWF0ZWRGcm9tPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9IHwgbnVsbDtcbiAgICBzb3J0PzogVGVzdFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0UGlja2VyT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgb3JnYW5pemF0aW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0gfCBudWxsO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0Q291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgd2hlcmU/OiBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+IHwgbnVsbDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzQ291bnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3REYXNoYm9hcmRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgdXNlcnM6IHtcbiAgICAgIHJlYWRvbmx5IHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICB9O1xuICB9O1xufVxuXG5jb25zdCBsYWJlbDogSTE4bkxhYmVsID0gKHQpID0+IHtcbiAgcmV0dXJuIHQoJ2NvbW1vbi5sYWJlbCcpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNpdmVNZXRhOiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVNZXRhSXRlbSA9IHtcbiAgaWQ6ICdzdGF0ZScsXG4gIGxhYmVsLFxuICB2YWx1ZTogJ3JlYWR5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkUmVzcG9uc2l2ZU1ldGE6IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtID0ge1xuICBpZDogJ3N0YXRlJyxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXNwb25zaXZlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuZXhwb3J0IGNvbnN0IHRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICBsYWJlbCxcbiAgdmFsdWU6ICdyZWFkeScsXG59O1xuXG5leHBvcnQgY29uc3QgaW52YWxpZFRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpdGxlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuY29uc3QgZmlsdGVycyA9IGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW50aXR5SWRGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ3Byb2plY3RJZCc+KFxuICAgICdwcm9qZWN0SWQnLFxuICAgIHtcbiAgICAgIGVudGl0eTogJ3Byb2plY3RzJyxcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGVudW1GaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zOiBbJ0EnLCAnQiddLFxuICB9KSxcbiAgbnVtYmVyRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdhdHRlbXB0Jz4oXG4gICAgJ2F0dGVtcHQnLFxuICAgIHtcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGRhdGV0aW1lRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdjcmVhdGVkRnJvbSc+KFxuICAgICdjcmVhdGVkRnJvbScsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgICBtb2RlOiAnZnJvbScsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW3sgaWQ6ICdDUkVBVEVEX0FUX0RFU0MnLCBsYWJlbCB9XSk7XG5cbmRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdDxUZXN0TGlzdE9wZXJhdGlvbiwgVGVzdENvdW50T3BlcmF0aW9uPigpKHtcbiAgdGl0bGU6IGxhYmVsLFxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgY291bnQ6IHtcbiAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgYnVpbGRWYXJpYWJsZXM6ICh7IHdoZXJlIH0pID0+IHtcbiAgICAgIHJldHVybiB7IHdoZXJlIH07XG4gICAgfSxcbiAgICBnZXRDb3VudDogKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiAoZGF0YSBhcyBUZXN0Q291bnRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10pLnJvd3NDb3VudDtcbiAgICB9LFxuICB9LFxuICBmaWx0ZXJzLFxuICBzb3J0czogZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgICB7IGlkOiAnQ1JFQVRFRF9BVF9BU0MnLCBsYWJlbCB9LFxuICBdKSxcbiAgZGVmYXVsdFN0YXRlOiB7XG4gICAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICB9LFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdztcbiAgfSxcbiAgZ2V0Um93SWQ6ICgpID0+IHtcbiAgICByZXR1cm4gJ3Jvdyc7XG4gIH0sXG4gIGNvbHVtbnM6IFtdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VQaWNrZXI8VGVzdFBpY2tlck9wZXJhdGlvbj4oKSh7XG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgaWQ6ICdyb3cnLCB0aXRsZTogJ1JvdycgfTtcbiAgfSxcbiAgZ2V0Um93SWQ6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93LmlkO1xuICB9LFxuICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoeyBzY29wZSB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIG9yZ2FuaXphdGlvbklkOiBzY29wZT8ub3JnYW5pemF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgY291bnQ6IDIwLFxuICAgICAgY3Vyc29yOiBudWxsLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgd2lkZ2V0czogW1xuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndXNlcnMnLFxuICAgICAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS51c2Vycy50b3RhbENvdW50LFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQoe1xuICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgIGtpbmQ6ICdxdWlja0FjdGlvbnMnLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd1c2VycycsXG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgaHJlZjogJy91c2VycycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICBdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgaWQ6ICdpbnZhbGlkLXVzZXJzJyxcbiAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICB2YXJpYWJsZXM6IHt9LFxuICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgd2lkZ2V0IHJlc29sdmUgZGF0YSBpcyB0eXBlZCBmcm9tIHRoZSBvcGVyYXRpb24gcmVzcG9uc2UuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgdmFsdWU6IGRhdGEucHJvamVjdHMudG90YWxDb3VudCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaW52YWxpZERhc2hib2FyZENvbmZpZzogQmFja29mZmljZURhc2hib2FyZENvbmZpZyA9IHtcbiAgdGl0bGU6IGxhYmVsLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCBjb25maWdzIGRvIG5vdCBzdXBwb3J0IGdsb2JhbCBxdWVyaWVzLlxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIHdpZGdldHM6IFtdLFxufTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBkYXRhLWRyaXZlbiBkYXNoYm9hcmQgd2lkZ2V0cyBtdXN0IGRlY2xhcmUgYSBxdWVyeS5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgaWQ6ICdtaXNzaW5nLXF1ZXJ5JyxcbiAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgdmFyaWFibGVzOiB7fSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3VzZXJzJyxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlOiBkYXRhLnVzZXJzLnRvdGFsQ291bnQsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgdGFyZ2V0OiAncHJvamVjdHMnLFxuICB3aGVyZUtleTogJ3Byb2plY3RJZCcsXG59KTtcblxuZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgdGFyZ2V0OiAncHJvamVjdHMnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIG9yZ2FuaXphdGlvbklkIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgdGFyZ2V0IGxpc3Qgd2hlcmUgaW5wdXQuXG4gIHdoZXJlS2V5OiAnb3JnYW5pemF0aW9uSWQnLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBtaXNzaW5nRmllbGQgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBvcGVyYXRpb24gd2hlcmUgaW5wdXQuXG4gIGVudGl0eUlkRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdtaXNzaW5nRmllbGQnPihcbiAgICAnbWlzc2luZ0ZpZWxkJyxcbiAgICB7XG4gICAgICBlbnRpdHk6ICdwcm9qZWN0cycsXG4gICAgICBsYWJlbCxcbiAgICB9LFxuICApLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW51bUZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAna2luZCc+KCdraW5kJywge1xuICAgIGxhYmVsLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgICdBJyxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQyBpcyBub3QgYSB2YWxpZCBUZXN0S2luZCB2YWx1ZS5cbiAgICAgICdDJyxcbiAgICBdLFxuICB9KSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIC8vIEB0cy1leHBlY3QtZXJyb3Iga2luZCBpcyBhbiBlbnVtIHN0cmluZyBmaWVsZCwgbm90IGEgbnVtYmVyIGZpZWxkLlxuICBudW1iZXJGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgfSksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGF0dGVtcHQgaXMgYSBudW1iZXIgZmllbGQsIG5vdCBhIGRhdGV0aW1lIHN0cmluZyBmaWVsZC5cbiAgZGF0ZXRpbWVGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2F0dGVtcHQnPihcbiAgICAnYXR0ZW1wdCcsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIFVQREFURURfQVRfREVTQyBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIG9wZXJhdGlvbiBzb3J0LlxuICB7IGlkOiAnVVBEQVRFRF9BVF9ERVNDJywgbGFiZWwgfSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3Q8VGVzdExpc3RPcGVyYXRpb24sIFRlc3RDb3VudE9wZXJhdGlvbj4oKSh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICBmcmFnbWVudDoge30gYXMgbmV2ZXIsXG4gIGNvdW50OiB7XG4gICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgIGJ1aWxkVmFyaWFibGVzOiAoeyB3aGVyZSB9KSA9PiB7XG4gICAgICByZXR1cm4geyB3aGVyZSB9O1xuICAgIH0sXG4gICAgZ2V0Q291bnQ6IChkYXRhKSA9PiB7XG4gICAgICByZXR1cm4gKGRhdGEgYXMgVGVzdENvdW50T3BlcmF0aW9uWydyZXNwb25zZSddKS5yb3dzQ291bnQ7XG4gICAgfSxcbiAgfSxcbiAgZmlsdGVycyxcbiAgc29ydHM6IGRlZmluZUJhY2tvZmZpY2VTb3J0czxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gICAgeyBpZDogJ0NSRUFURURfQVRfQVNDJywgbGFiZWwgfSxcbiAgXSksXG4gIGRlZmF1bHRTdGF0ZToge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igb3JnYW5pemF0aW9uSWQgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBsaXN0IHdoZXJlIGlucHV0LlxuICAgIHdoZXJlOiB7IG9yZ2FuaXphdGlvbklkOiAnb3JnLTEnIH0sXG4gICAgc29ydDogJ0NSRUFURURfQVRfQVNDJyxcbiAgfSxcbiAgZ2V0Q29ubmVjdGlvbjogKCkgPT4ge1xuICAgIHJldHVybiB7IGVkZ2VzOiBbXSB9O1xuICB9LFxuICB0b1JvdzogKHJvdykgPT4ge1xuICAgIHJldHVybiByb3c7XG4gIH0sXG4gIGdldFJvd0lkOiAoKSA9PiB7XG4gICAgcmV0dXJuICdyb3cnO1xuICB9LFxuICBjb2x1bW5zOiBbXSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlUGlja2VyPFRlc3RQaWNrZXJPcGVyYXRpb24+KCkoe1xuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgZ2V0Q29ubmVjdGlvbjogKCkgPT4ge1xuICAgIHJldHVybiB7IGVkZ2VzOiBbXSB9O1xuICB9LFxuICB0b1JvdzogKCkgPT4ge1xuICAgIHJldHVybiB7IGlkOiAncm93JywgdGl0bGU6ICdSb3cnIH07XG4gIH0sXG4gIGdldFJvd0lkOiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdy5pZDtcbiAgfSxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXR1cm5lZCB3aGVyZSBzaGFwZSBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIHBpY2tlciBvcGVyYXRpb24uXG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM6ICh7IHNjb3BlIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgcHJvamVjdElkOiAoc2NvcGUgYXMgeyBwcm9qZWN0SWQ/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk/LnByb2plY3RJZCxcbiAgICAgIH0sXG4gICAgICBjb3VudDogMjAsXG4gICAgICBjdXJzb3I6IG51bGwsXG4gICAgfTtcbiAgfSxcbn0pO1xuIl19
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWJvdW5kLWNvbmZpZy50ZXN0LWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS10ZXN0cy9vcGVyYXRpb24tYm91bmQtY29uZmlnLnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFlBQVksR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBaUZ4QixNQUFNLEtBQUssR0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQzdCLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBcUM7SUFDOUQsRUFBRSxFQUFFLE9BQU87SUFDWCxLQUFLO0lBQ0wsS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXFDO0lBQ3JFLEVBQUUsRUFBRSxPQUFPO0lBRVgsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWtDO0lBQ3RELEVBQUUsRUFBRSxPQUFPO0lBQ1gsS0FBSztJQUNMLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFrQztJQUM3RCxFQUFFLEVBQUUsT0FBTztJQUVYLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUcsdUJBQXVCLEVBQXFCLENBQUM7SUFDM0QsY0FB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STtTQUNiLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5pbXBvcnQge1xuICBkZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3QsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRIcmVmVGFyZ2V0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldCxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRmlsdGVycyxcbiAgZGVmaW5lQmFja29mZmljZVBpY2tlcixcbiAgZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyLFxuICBkZWZpbmVCYWNrb2ZmaWNlU29ydHMsXG4gIGRhdGV0aW1lRmlsdGVyLFxuICBlbnRpdHlJZEZpbHRlcixcbiAgZW51bUZpbHRlcixcbiAgbnVtYmVyRmlsdGVyLFxufSBmcm9tICcuLi9idWlsZGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxUaXRsZU1ldGFJdGVtLFxuICBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVNZXRhSXRlbSxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxudHlwZSBUZXN0U29ydCA9ICdDUkVBVEVEX0FUX0FTQycgfCAnQ1JFQVRFRF9BVF9ERVNDJztcbnR5cGUgVGVzdEtpbmQgPSAnQScgfCAnQic7XG5cbmludGVyZmFjZSBUZXN0TGlzdE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUge1xuICB2YXJpYWJsZXM6IHtcbiAgICB3aGVyZT86IHtcbiAgICAgIHByb2plY3RJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICBraW5kPzogVGVzdEtpbmQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgICAgYXR0ZW1wdD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICBjcmVhdGVkRnJvbT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgfSB8IG51bGw7XG4gICAgc29ydD86IFRlc3RTb3J0IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGN1cnNvcj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgcm93czogcmVhZG9ubHkgdW5rbm93bltdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVGVzdFBpY2tlck9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUge1xuICB2YXJpYWJsZXM6IHtcbiAgICB3aGVyZT86IHtcbiAgICAgIG9yZ2FuaXphdGlvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9IHwgbnVsbDtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGN1cnNvcj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgcm93czogcmVhZG9ubHkgdW5rbm93bltdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVGVzdENvdW50T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzogQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiB8IG51bGw7XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgcm93c0NvdW50OiBudW1iZXI7XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0RGFzaGJvYXJkT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICByZXNwb25zZToge1xuICAgIHJlYWRvbmx5IHVzZXJzOiB7XG4gICAgICByZWFkb25seSB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgZnJvbTogc3RyaW5nO1xuICAgIHRvOiBzdHJpbmc7XG4gICAgc2V2ZXJpdHk/OiBUZXN0S2luZCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgdGhyb3VnaHB1dENvdW50OiBudW1iZXI7XG4gICAgcmVhZG9ubHkgZmFpbHVyZVJhdGU6IG51bWJlcjtcbiAgICByZWFkb25seSB0b3BGYWlsdXJlczogcmVhZG9ubHkge1xuICAgICAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG4gICAgICByZWFkb25seSBjb3VudDogbnVtYmVyO1xuICAgIH1bXTtcbiAgICByZWFkb25seSBidWNrZXRzOiByZWFkb25seSB7XG4gICAgICByZWFkb25seSBidWNrZXQ6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gICAgfVtdO1xuICB9O1xufVxuXG5jb25zdCBsYWJlbDogSTE4bkxhYmVsID0gKHQpID0+IHtcbiAgcmV0dXJuIHQoJ2NvbW1vbi5sYWJlbCcpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNpdmVNZXRhOiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVNZXRhSXRlbSA9IHtcbiAgaWQ6ICdzdGF0ZScsXG4gIGxhYmVsLFxuICB2YWx1ZTogJ3JlYWR5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkUmVzcG9uc2l2ZU1ldGE6IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtID0ge1xuICBpZDogJ3N0YXRlJyxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXNwb25zaXZlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuZXhwb3J0IGNvbnN0IHRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICBsYWJlbCxcbiAgdmFsdWU6ICdyZWFkeScsXG59O1xuXG5leHBvcnQgY29uc3QgaW52YWxpZFRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpdGxlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuY29uc3QgZmlsdGVycyA9IGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW50aXR5SWRGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ3Byb2plY3RJZCc+KFxuICAgICdwcm9qZWN0SWQnLFxuICAgIHtcbiAgICAgIGVudGl0eTogJ3Byb2plY3RzJyxcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGVudW1GaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zOiBbJ0EnLCAnQiddLFxuICB9KSxcbiAgbnVtYmVyRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdhdHRlbXB0Jz4oXG4gICAgJ2F0dGVtcHQnLFxuICAgIHtcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGRhdGV0aW1lRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdjcmVhdGVkRnJvbSc+KFxuICAgICdjcmVhdGVkRnJvbScsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgICBtb2RlOiAnZnJvbScsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW3sgaWQ6ICdDUkVBVEVEX0FUX0RFU0MnLCBsYWJlbCB9XSk7XG5cbmRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdDxUZXN0TGlzdE9wZXJhdGlvbiwgVGVzdENvdW50T3BlcmF0aW9uPigpKHtcbiAgdGl0bGU6IGxhYmVsLFxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgY291bnQ6IHtcbiAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgYnVpbGRWYXJpYWJsZXM6ICh7IHdoZXJlIH0pID0+IHtcbiAgICAgIHJldHVybiB7IHdoZXJlIH07XG4gICAgfSxcbiAgICBnZXRDb3VudDogKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiAoZGF0YSBhcyBUZXN0Q291bnRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10pLnJvd3NDb3VudDtcbiAgICB9LFxuICB9LFxuICBmaWx0ZXJzLFxuICBzb3J0czogZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgICB7IGlkOiAnQ1JFQVRFRF9BVF9BU0MnLCBsYWJlbCB9LFxuICBdKSxcbiAgZGVmYXVsdFN0YXRlOiB7XG4gICAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICB9LFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdztcbiAgfSxcbiAgZ2V0Um93SWQ6ICgpID0+IHtcbiAgICByZXR1cm4gJ3Jvdyc7XG4gIH0sXG4gIGNvbHVtbnM6IFtdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VQaWNrZXI8VGVzdFBpY2tlck9wZXJhdGlvbj4oKSh7XG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgaWQ6ICdyb3cnLCB0aXRsZTogJ1JvdycgfTtcbiAgfSxcbiAgZ2V0Um93SWQ6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93LmlkO1xuICB9LFxuICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoeyBzY29wZSB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIG9yZ2FuaXphdGlvbklkOiBzY29wZT8ub3JnYW5pemF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgY291bnQ6IDIwLFxuICAgICAgY3Vyc29yOiBudWxsLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgd2lkZ2V0czogW1xuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndXNlcnMnLFxuICAgICAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS51c2Vycy50b3RhbENvdW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICAgIGVudGl0eUlkOiAndGFza3MnLFxuICAgICAgICAgICAgICBzdGF0ZToge1xuICAgICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldCh7XG4gICAgICBpZDogJ3dpbmRvdycsXG4gICAgICBraW5kOiAnd2luZG93Q29udHJvbCcsXG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICd0aHJvdWdocHV0JyxcbiAgICAgIGtpbmQ6ICd0cmVuZE1ldHJpYycsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogd2luZG93LmZyb20sXG4gICAgICAgICAgdG86IHdpbmRvdy50byxcbiAgICAgICAgICBzZXZlcml0eTogJ0EnLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IChkYXRhLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdmFsdWU6IGRhdGEudGhyb3VnaHB1dENvdW50LFxuICAgICAgICAgIGRlbHRhOiB7XG4gICAgICAgICAgICB2YWx1ZTogMTIsXG4gICAgICAgICAgICBkaXJlY3Rpb246ICd1cCcsXG4gICAgICAgICAgICB0b25lOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNwYXJrbGluZTogW3sgeDogJzIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWicsIHk6IDEgfV0sXG4gICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICBlbnRpdHlJZDogJ3Rhc2tzJyxcbiAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICBzb3J0OiAnQ1JFQVRFRF9BVF9ERVNDJyxcbiAgICAgICAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgICAgICAgIHsgaWQ6ICdjcmVhdGVkRnJvbScsIHZhbHVlOiBjb250ZXh0LndpbmRvdy5mcm9tIH0sXG4gICAgICAgICAgICAgICAgeyBpZDogJ2NyZWF0ZWRUbycsIHZhbHVlOiBjb250ZXh0LndpbmRvdy50byB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICdmYWlsdXJlLXJhdGUnLFxuICAgICAga2luZDogJ3NsYUdhdWdlJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIHZhbHVlOiBkYXRhLmZhaWx1cmVSYXRlLFxuICAgICAgICAgIG1heDogMSxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuMDUsXG4gICAgICAgICAgdW5pdDogJyUnLFxuICAgICAgICAgIHRvbmU6ICd3YXJuaW5nJyxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICd0b3AtZmFpbHVyZXMnLFxuICAgICAga2luZDogJ2JyZWFrZG93bkxpc3QnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiBkYXRhLnRvcEZhaWx1cmVzLm1hcCgoZmFpbHVyZSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZmFpbHVyZS5pZCxcbiAgICAgICAgICAgIGxhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlLmxhYmVsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiBmYWlsdXJlLmNvdW50LFxuICAgICAgICAgICAgdG9uZTogJ2RhbmdlcicsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndGltZWxpbmUnLFxuICAgICAga2luZDogJ3RpbWVsaW5lQ2hhcnQnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIGFyaWFMYWJlbDogbGFiZWwsXG4gICAgICBjaGFydDogJ2JhcicsXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlcmllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3Rocm91Z2hwdXQnLFxuICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgY29sb3I6ICcjMjU2M2ViJyxcbiAgICAgICAgICAgICAgZGF0YTogZGF0YS5idWNrZXRzLm1hcCgoYnVja2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHg6IGJ1Y2tldC5idWNrZXQsXG4gICAgICAgICAgICAgICAgICB5OiBidWNrZXQuY291bnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAncmlzay1xdWV1ZScsXG4gICAgICBraW5kOiAncmlza1F1ZXVlJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdkZWFkLW91dGJveCcsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZGFuZ2VyJyxcbiAgICAgICAgICAgIHZhbHVlOiA0LFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnc3BvdGxpZ2h0JyxcbiAgICAgIGtpbmQ6ICdlbnRpdHlTcG90bGlnaHQnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB0aXRsZTogbGFiZWwsXG4gICAgICAgICAgdG9uZTogJ2luZm8nLFxuICAgICAgICAgIG1ldGE6IFt7IGlkOiAnYWdlJywgbGFiZWwsIHZhbHVlOiAnNDUgbWluJyB9XSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICdoZWFsdGgnLFxuICAgICAga2luZDogJ2hlYWx0aE1hdHJpeCcsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnd29yaycsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIGNlbGxzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ3Rhc2tzJyxcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICAgICAgICB0b25lOiAnd2FybmluZycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQoe1xuICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgIGtpbmQ6ICdxdWlja0FjdGlvbnMnLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd1c2VycycsXG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkSHJlZlRhcmdldCgnL3VzZXJzJyksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICBdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgaWQ6ICdpbnZhbGlkLXVzZXJzJyxcbiAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICB2YXJpYWJsZXM6IHt9LFxuICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgd2lkZ2V0IHJlc29sdmUgZGF0YSBpcyB0eXBlZCBmcm9tIHRoZSBvcGVyYXRpb24gcmVzcG9uc2UuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgdmFsdWU6IGRhdGEucHJvamVjdHMudG90YWxDb3VudCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gIGlkOiAnaW52YWxpZC13aW5kb3ctdmFyaWFibGVzJyxcbiAga2luZDogJ3RyZW5kTWV0cmljJyxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCB3aWRnZXQgdmFyaWFibGVzIG11c3QgbWF0Y2ggdGhlIG9wZXJhdGlvbiB2YXJpYWJsZXMuXG4gIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogd2luZG93LmZyb20sXG4gICAgfTtcbiAgfSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWwsXG4gICAgICB2YWx1ZTogZGF0YS50aHJvdWdocHV0Q291bnQsXG4gICAgfTtcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIGVudGl0eUlkOiAndGFza3MnLFxuICBzdGF0ZToge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIGxpc3QgdGFyZ2V0IHdoZXJlIG11c3QgbWF0Y2ggdGhlIHRhcmdldCBsaXN0IG9wZXJhdGlvbiB3aGVyZSBpbnB1dC5cbiAgICB3aGVyZTogeyBvcmdhbml6YXRpb25JZDogJ29yZy0xJyB9LFxuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0PFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgZW50aXR5SWQ6ICd0YXNrcycsXG4gIHN0YXRlOiB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgbGlzdCB0YXJnZXQgc29ydCBtdXN0IG1hdGNoIHRoZSB0YXJnZXQgbGlzdCBvcGVyYXRpb24gc29ydCBpbnB1dC5cbiAgICBzb3J0OiAnVVBEQVRFRF9BVF9ERVNDJyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaW52YWxpZERhc2hib2FyZENvbmZpZzogQmFja29mZmljZURhc2hib2FyZENvbmZpZyA9IHtcbiAgdGl0bGU6IGxhYmVsLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCBjb25maWdzIGRvIG5vdCBzdXBwb3J0IGdsb2JhbCBxdWVyaWVzLlxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIHdpZGdldHM6IFtdLFxufTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBkYXRhLWRyaXZlbiBkYXNoYm9hcmQgd2lkZ2V0cyBtdXN0IGRlY2xhcmUgYSBxdWVyeS5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgaWQ6ICdtaXNzaW5nLXF1ZXJ5JyxcbiAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgdmFyaWFibGVzOiB7fSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3VzZXJzJyxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlOiBkYXRhLnVzZXJzLnRvdGFsQ291bnQsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgdGFyZ2V0OiAncHJvamVjdHMnLFxuICB3aGVyZUtleTogJ3Byb2plY3RJZCcsXG59KTtcblxuZGVmaW5lQmFja29mZmljZVJlbGF0aW9uRmlsdGVyPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgdGFyZ2V0OiAncHJvamVjdHMnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIG9yZ2FuaXphdGlvbklkIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgdGFyZ2V0IGxpc3Qgd2hlcmUgaW5wdXQuXG4gIHdoZXJlS2V5OiAnb3JnYW5pemF0aW9uSWQnLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBtaXNzaW5nRmllbGQgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBvcGVyYXRpb24gd2hlcmUgaW5wdXQuXG4gIGVudGl0eUlkRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdtaXNzaW5nRmllbGQnPihcbiAgICAnbWlzc2luZ0ZpZWxkJyxcbiAgICB7XG4gICAgICBlbnRpdHk6ICdwcm9qZWN0cycsXG4gICAgICBsYWJlbCxcbiAgICB9LFxuICApLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW51bUZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAna2luZCc+KCdraW5kJywge1xuICAgIGxhYmVsLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgICdBJyxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQyBpcyBub3QgYSB2YWxpZCBUZXN0S2luZCB2YWx1ZS5cbiAgICAgICdDJyxcbiAgICBdLFxuICB9KSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIC8vIEB0cy1leHBlY3QtZXJyb3Iga2luZCBpcyBhbiBlbnVtIHN0cmluZyBmaWVsZCwgbm90IGEgbnVtYmVyIGZpZWxkLlxuICBudW1iZXJGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgfSksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGF0dGVtcHQgaXMgYSBudW1iZXIgZmllbGQsIG5vdCBhIGRhdGV0aW1lIHN0cmluZyBmaWVsZC5cbiAgZGF0ZXRpbWVGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2F0dGVtcHQnPihcbiAgICAnYXR0ZW1wdCcsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIFVQREFURURfQVRfREVTQyBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIG9wZXJhdGlvbiBzb3J0LlxuICB7IGlkOiAnVVBEQVRFRF9BVF9ERVNDJywgbGFiZWwgfSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3Q8VGVzdExpc3RPcGVyYXRpb24sIFRlc3RDb3VudE9wZXJhdGlvbj4oKSh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICBmcmFnbWVudDoge30gYXMgbmV2ZXIsXG4gIGNvdW50OiB7XG4gICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgIGJ1aWxkVmFyaWFibGVzOiAoeyB3aGVyZSB9KSA9PiB7XG4gICAgICByZXR1cm4geyB3aGVyZSB9O1xuICAgIH0sXG4gICAgZ2V0Q291bnQ6IChkYXRhKSA9PiB7XG4gICAgICByZXR1cm4gKGRhdGEgYXMgVGVzdENvdW50T3BlcmF0aW9uWydyZXNwb25zZSddKS5yb3dzQ291bnQ7XG4gICAgfSxcbiAgfSxcbiAgZmlsdGVycyxcbiAgc29ydHM6IGRlZmluZUJhY2tvZmZpY2VTb3J0czxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gICAgeyBpZDogJ0NSRUFURURfQVRfQVNDJywgbGFiZWwgfSxcbiAgXSksXG4gIGRlZmF1bHRTdGF0ZToge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igb3JnYW5pemF0aW9uSWQgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBsaXN0IHdoZXJlIGlucHV0LlxuICAgIHdoZXJlOiB7IG9yZ2FuaXphdGlvbklkOiAnb3JnLTEnIH0sXG4gICAgc29ydDogJ0NSRUFURURfQVRfQVNDJyxcbiAgfSxcbiAgZ2V0Q29ubmVjdGlvbjogKCkgPT4ge1xuICAgIHJldHVybiB7IGVkZ2VzOiBbXSB9O1xuICB9LFxuICB0b1JvdzogKHJvdykgPT4ge1xuICAgIHJldHVybiByb3c7XG4gIH0sXG4gIGdldFJvd0lkOiAoKSA9PiB7XG4gICAgcmV0dXJuICdyb3cnO1xuICB9LFxuICBjb2x1bW5zOiBbXSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlUGlja2VyPFRlc3RQaWNrZXJPcGVyYXRpb24+KCkoe1xuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgZ2V0Q29ubmVjdGlvbjogKCkgPT4ge1xuICAgIHJldHVybiB7IGVkZ2VzOiBbXSB9O1xuICB9LFxuICB0b1JvdzogKCkgPT4ge1xuICAgIHJldHVybiB7IGlkOiAncm93JywgdGl0bGU6ICdSb3cnIH07XG4gIH0sXG4gIGdldFJvd0lkOiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdy5pZDtcbiAgfSxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXR1cm5lZCB3aGVyZSBzaGFwZSBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIHBpY2tlciBvcGVyYXRpb24uXG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM6ICh7IHNjb3BlIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgcHJvamVjdElkOiAoc2NvcGUgYXMgeyBwcm9qZWN0SWQ/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk/LnByb2plY3RJZCxcbiAgICAgIH0sXG4gICAgICBjb3VudDogMjAsXG4gICAgICBjdXJzb3I6IG51bGwsXG4gICAgfTtcbiAgfSxcbn0pO1xuIl19
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -217,8 +217,22 @@ export type BackofficeDetailPageRouteSpec<LayoutView = unknown> = {
|
|
|
217
217
|
export type BackofficeDashboardConfig = {
|
|
218
218
|
title: I18nLabel;
|
|
219
219
|
subtitle?: I18nLabel;
|
|
220
|
+
windowPresets?: readonly BackofficeDashboardWindowPreset[];
|
|
221
|
+
defaultWindowPresetId?: string;
|
|
220
222
|
widgets: readonly BackofficeDashboardWidget[];
|
|
221
223
|
};
|
|
224
|
+
export type BackofficeQuerySpec<TOperation extends OperationType> = {
|
|
225
|
+
readonly node: GraphQLTaggedNode;
|
|
226
|
+
readonly __operation?: TOperation;
|
|
227
|
+
};
|
|
228
|
+
export type BackofficeFragmentSpec<TKey, TData> = {
|
|
229
|
+
readonly node: GraphQLTaggedNode;
|
|
230
|
+
readonly __key?: TKey;
|
|
231
|
+
readonly __data?: TData;
|
|
232
|
+
};
|
|
233
|
+
export type BackofficePaginationFragmentSpec<TQuery extends OperationType, TKey, TData> = BackofficeFragmentSpec<TKey, TData> & {
|
|
234
|
+
readonly __paginationQuery?: TQuery;
|
|
235
|
+
};
|
|
222
236
|
export type BackofficeDashboardWidgetSize = 's' | 'm' | 'l' | 'xl' | 'full';
|
|
223
237
|
export type BackofficeDashboardWidgetSpan = 3 | 4 | 6 | 8 | 12;
|
|
224
238
|
export type BackofficeDashboardWidgetTabletSpan = 3 | 6;
|
|
@@ -230,6 +244,20 @@ export type BackofficeDashboardWidgetLayout = {
|
|
|
230
244
|
order?: number;
|
|
231
245
|
};
|
|
232
246
|
export type BackofficeDashboardWidgetPriority = 'critical' | 'high' | 'normal' | 'low' | 'primary' | 'secondary' | 'debug';
|
|
247
|
+
export type BackofficeDashboardWindowPreset = {
|
|
248
|
+
id: string;
|
|
249
|
+
label: I18nLabel;
|
|
250
|
+
durationMs: number;
|
|
251
|
+
};
|
|
252
|
+
export type BackofficeDashboardWindowState = {
|
|
253
|
+
id: string;
|
|
254
|
+
label: I18nLabel;
|
|
255
|
+
from: string;
|
|
256
|
+
to: string;
|
|
257
|
+
};
|
|
258
|
+
export type BackofficeDashboardContext = {
|
|
259
|
+
window: BackofficeDashboardWindowState;
|
|
260
|
+
};
|
|
233
261
|
export type BackofficeDashboardWidgetBase = {
|
|
234
262
|
id: string;
|
|
235
263
|
title?: I18nLabel;
|
|
@@ -239,19 +267,41 @@ export type BackofficeDashboardWidgetBase = {
|
|
|
239
267
|
priority?: BackofficeDashboardWidgetPriority;
|
|
240
268
|
minHeight?: 'sm' | 'md' | 'lg';
|
|
241
269
|
};
|
|
270
|
+
export type BackofficeDashboardWidgetResolver<TResult> = (data: OperationType['response'], context: BackofficeDashboardContext) => TResult;
|
|
242
271
|
export type BackofficeDashboardEntityCountResult = {
|
|
243
272
|
count: number | null;
|
|
273
|
+
href?: string;
|
|
274
|
+
target?: BackofficeDashboardLinkTarget;
|
|
244
275
|
};
|
|
245
276
|
export type BackofficeDashboardTablePreviewResult = {
|
|
246
277
|
columns: readonly BackofficeColumnSpec[];
|
|
247
278
|
rows: readonly unknown[];
|
|
248
279
|
};
|
|
280
|
+
export type BackofficeDashboardListTargetState<Where extends Record<string, unknown> = Record<string, unknown>, Sort extends string = string> = {
|
|
281
|
+
where?: Where | null;
|
|
282
|
+
sort?: Sort | null;
|
|
283
|
+
filters?: readonly {
|
|
284
|
+
id: string;
|
|
285
|
+
value: unknown;
|
|
286
|
+
}[];
|
|
287
|
+
};
|
|
288
|
+
export type BackofficeDashboardHrefTarget = {
|
|
289
|
+
kind: 'href';
|
|
290
|
+
href: string;
|
|
291
|
+
};
|
|
292
|
+
export type BackofficeDashboardEntityListTarget<Where extends Record<string, unknown> = Record<string, unknown>, Sort extends string = string> = {
|
|
293
|
+
kind: 'entity-list';
|
|
294
|
+
entityId: string;
|
|
295
|
+
state?: BackofficeDashboardListTargetState<Where, Sort>;
|
|
296
|
+
};
|
|
297
|
+
export type BackofficeDashboardLinkTarget<Where extends Record<string, unknown> = Record<string, unknown>, Sort extends string = string> = BackofficeDashboardHrefTarget | BackofficeDashboardEntityListTarget<Where, Sort>;
|
|
249
298
|
export type BackofficeDashboardStatusSummaryResult = readonly {
|
|
250
299
|
id: string;
|
|
251
300
|
label: I18nLabel;
|
|
252
301
|
value: string | number | null;
|
|
253
302
|
tone?: BackofficeBadgeTone;
|
|
254
303
|
href?: string;
|
|
304
|
+
target?: BackofficeDashboardLinkTarget;
|
|
255
305
|
}[];
|
|
256
306
|
export type BackofficeDashboardMetricGroupResult = readonly {
|
|
257
307
|
id: string;
|
|
@@ -260,6 +310,90 @@ export type BackofficeDashboardMetricGroupResult = readonly {
|
|
|
260
310
|
meta?: I18nLabel;
|
|
261
311
|
tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
262
312
|
href?: string;
|
|
313
|
+
target?: BackofficeDashboardLinkTarget;
|
|
314
|
+
}[];
|
|
315
|
+
export type BackofficeDashboardMetricTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
316
|
+
export type BackofficeDashboardTrendDirection = 'up' | 'down' | 'flat';
|
|
317
|
+
export type BackofficeDashboardSparklinePoint = {
|
|
318
|
+
x: string;
|
|
319
|
+
y: number;
|
|
320
|
+
};
|
|
321
|
+
export type BackofficeDashboardTrendMetricResult = {
|
|
322
|
+
label: I18nLabel;
|
|
323
|
+
value: string | number | null;
|
|
324
|
+
unit?: string;
|
|
325
|
+
delta?: {
|
|
326
|
+
value: string | number;
|
|
327
|
+
direction: BackofficeDashboardTrendDirection;
|
|
328
|
+
tone?: BackofficeDashboardMetricTone;
|
|
329
|
+
label?: I18nLabel;
|
|
330
|
+
};
|
|
331
|
+
sparkline?: readonly BackofficeDashboardSparklinePoint[];
|
|
332
|
+
href?: string;
|
|
333
|
+
target?: BackofficeDashboardLinkTarget;
|
|
334
|
+
tone?: BackofficeDashboardMetricTone;
|
|
335
|
+
};
|
|
336
|
+
export type BackofficeDashboardSlaGaugeResult = {
|
|
337
|
+
label: I18nLabel;
|
|
338
|
+
value: number | null;
|
|
339
|
+
max: number;
|
|
340
|
+
threshold?: number;
|
|
341
|
+
unit?: string;
|
|
342
|
+
tone?: BackofficeDashboardMetricTone;
|
|
343
|
+
href?: string;
|
|
344
|
+
target?: BackofficeDashboardLinkTarget;
|
|
345
|
+
};
|
|
346
|
+
export type BackofficeDashboardBreakdownListResult = readonly {
|
|
347
|
+
id: string;
|
|
348
|
+
label: I18nLabel;
|
|
349
|
+
value: string | number | null;
|
|
350
|
+
meta?: I18nLabel;
|
|
351
|
+
tone?: BackofficeDashboardMetricTone;
|
|
352
|
+
href?: string;
|
|
353
|
+
target?: BackofficeDashboardLinkTarget;
|
|
354
|
+
}[];
|
|
355
|
+
export type BackofficeDashboardTimelineChartResult = {
|
|
356
|
+
series: readonly {
|
|
357
|
+
id: string;
|
|
358
|
+
label: I18nLabel;
|
|
359
|
+
color: string;
|
|
360
|
+
unit?: string;
|
|
361
|
+
data: readonly BackofficeDashboardSparklinePoint[];
|
|
362
|
+
}[];
|
|
363
|
+
emptyLabel?: I18nLabel;
|
|
364
|
+
};
|
|
365
|
+
export type BackofficeDashboardRiskQueueResult = readonly {
|
|
366
|
+
id: string;
|
|
367
|
+
label: I18nLabel;
|
|
368
|
+
severity: BackofficeDashboardMetricTone;
|
|
369
|
+
value?: string | number | null;
|
|
370
|
+
meta?: I18nLabel;
|
|
371
|
+
href?: string;
|
|
372
|
+
target?: BackofficeDashboardLinkTarget;
|
|
373
|
+
}[];
|
|
374
|
+
export type BackofficeDashboardEntitySpotlightResult = {
|
|
375
|
+
label: I18nLabel;
|
|
376
|
+
title: I18nLabel;
|
|
377
|
+
meta?: readonly {
|
|
378
|
+
id: string;
|
|
379
|
+
label: I18nLabel;
|
|
380
|
+
value: string | number | null;
|
|
381
|
+
}[];
|
|
382
|
+
href?: string;
|
|
383
|
+
target?: BackofficeDashboardLinkTarget;
|
|
384
|
+
tone?: BackofficeDashboardMetricTone;
|
|
385
|
+
} | null;
|
|
386
|
+
export type BackofficeDashboardHealthMatrixResult = readonly {
|
|
387
|
+
id: string;
|
|
388
|
+
label: I18nLabel;
|
|
389
|
+
cells: readonly {
|
|
390
|
+
id: string;
|
|
391
|
+
label: I18nLabel;
|
|
392
|
+
value: string | number | null;
|
|
393
|
+
tone?: BackofficeDashboardMetricTone;
|
|
394
|
+
href?: string;
|
|
395
|
+
target?: BackofficeDashboardLinkTarget;
|
|
396
|
+
}[];
|
|
263
397
|
}[];
|
|
264
398
|
export type BackofficeDashboardBillingUsageChartResult = {
|
|
265
399
|
currency: string;
|
|
@@ -275,9 +409,10 @@ export type BackofficeDashboardBillingUsageChartResult = {
|
|
|
275
409
|
export type BackofficeDashboardWidgetQuerySource<TOperation extends OperationType, TResult> = {
|
|
276
410
|
dataSource: 'query';
|
|
277
411
|
query: GraphQLTaggedNode;
|
|
278
|
-
variables: TOperation['variables'];
|
|
279
|
-
resolve: (data: TOperation['response']) => TResult;
|
|
412
|
+
variables: TOperation['variables'] | ((context: BackofficeDashboardContext) => TOperation['variables']);
|
|
413
|
+
resolve: (data: TOperation['response'], context: BackofficeDashboardContext) => TResult;
|
|
280
414
|
};
|
|
415
|
+
export type BackofficeDashboardWidgetVariables<TOperation extends OperationType = OperationType> = TOperation['variables'] | ((context: BackofficeDashboardContext) => TOperation['variables']);
|
|
281
416
|
export type BackofficeDashboardWidgetStaticSource = {
|
|
282
417
|
dataSource: 'static';
|
|
283
418
|
};
|
|
@@ -287,8 +422,8 @@ export type BackofficeDashboardWidget = (BackofficeDashboardWidgetBase & {
|
|
|
287
422
|
label: I18nLabel;
|
|
288
423
|
entityId: string;
|
|
289
424
|
query: GraphQLTaggedNode;
|
|
290
|
-
variables:
|
|
291
|
-
resolve:
|
|
425
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
426
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardEntityCountResult>;
|
|
292
427
|
}) | (BackofficeDashboardWidgetBase & {
|
|
293
428
|
dataSource: 'static';
|
|
294
429
|
kind: 'shortcut';
|
|
@@ -299,14 +434,14 @@ export type BackofficeDashboardWidget = (BackofficeDashboardWidgetBase & {
|
|
|
299
434
|
kind: 'tablePreview';
|
|
300
435
|
title: I18nLabel;
|
|
301
436
|
query: GraphQLTaggedNode;
|
|
302
|
-
variables:
|
|
303
|
-
resolve:
|
|
437
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
438
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardTablePreviewResult>;
|
|
304
439
|
}) | (BackofficeDashboardWidgetBase & {
|
|
305
440
|
dataSource: 'query';
|
|
306
441
|
kind: 'statusSummary';
|
|
307
442
|
query: GraphQLTaggedNode;
|
|
308
|
-
variables:
|
|
309
|
-
resolve:
|
|
443
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
444
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardStatusSummaryResult>;
|
|
310
445
|
}) | (BackofficeDashboardWidgetBase & {
|
|
311
446
|
dataSource: 'static';
|
|
312
447
|
kind: 'recentItems';
|
|
@@ -317,7 +452,8 @@ export type BackofficeDashboardWidget = (BackofficeDashboardWidgetBase & {
|
|
|
317
452
|
actions: readonly {
|
|
318
453
|
id: string;
|
|
319
454
|
label: I18nLabel;
|
|
320
|
-
href
|
|
455
|
+
href?: string;
|
|
456
|
+
target?: BackofficeDashboardLinkTarget;
|
|
321
457
|
description?: I18nLabel;
|
|
322
458
|
tone?: 'default' | 'primary' | 'danger';
|
|
323
459
|
}[];
|
|
@@ -325,14 +461,14 @@ export type BackofficeDashboardWidget = (BackofficeDashboardWidgetBase & {
|
|
|
325
461
|
dataSource: 'query';
|
|
326
462
|
kind: 'metricGroup';
|
|
327
463
|
query: GraphQLTaggedNode;
|
|
328
|
-
variables:
|
|
329
|
-
resolve:
|
|
464
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
465
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardMetricGroupResult>;
|
|
330
466
|
}) | (BackofficeDashboardWidgetBase & {
|
|
331
467
|
dataSource: 'query';
|
|
332
468
|
kind: 'billingUsageChart';
|
|
333
469
|
title: I18nLabel;
|
|
334
470
|
query: GraphQLTaggedNode;
|
|
335
|
-
variables:
|
|
471
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
336
472
|
categories: readonly {
|
|
337
473
|
id: string;
|
|
338
474
|
label: I18nLabel;
|
|
@@ -341,7 +477,55 @@ export type BackofficeDashboardWidget = (BackofficeDashboardWidgetBase & {
|
|
|
341
477
|
emptyLabel: I18nLabel;
|
|
342
478
|
rangePrefix: I18nLabel;
|
|
343
479
|
ariaLabel: I18nLabel;
|
|
344
|
-
resolve:
|
|
480
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardBillingUsageChartResult>;
|
|
481
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
482
|
+
dataSource: 'query';
|
|
483
|
+
kind: 'trendMetric';
|
|
484
|
+
query: GraphQLTaggedNode;
|
|
485
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
486
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardTrendMetricResult>;
|
|
487
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
488
|
+
dataSource: 'query';
|
|
489
|
+
kind: 'slaGauge';
|
|
490
|
+
query: GraphQLTaggedNode;
|
|
491
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
492
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardSlaGaugeResult>;
|
|
493
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
494
|
+
dataSource: 'query';
|
|
495
|
+
kind: 'breakdownList';
|
|
496
|
+
query: GraphQLTaggedNode;
|
|
497
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
498
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardBreakdownListResult>;
|
|
499
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
500
|
+
dataSource: 'query';
|
|
501
|
+
kind: 'timelineChart';
|
|
502
|
+
query: GraphQLTaggedNode;
|
|
503
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
504
|
+
chart?: 'line' | 'bar';
|
|
505
|
+
ariaLabel: I18nLabel;
|
|
506
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardTimelineChartResult>;
|
|
507
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
508
|
+
dataSource: 'query';
|
|
509
|
+
kind: 'riskQueue';
|
|
510
|
+
query: GraphQLTaggedNode;
|
|
511
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
512
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardRiskQueueResult>;
|
|
513
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
514
|
+
dataSource: 'query';
|
|
515
|
+
kind: 'entitySpotlight';
|
|
516
|
+
query: GraphQLTaggedNode;
|
|
517
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
518
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardEntitySpotlightResult>;
|
|
519
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
520
|
+
dataSource: 'static';
|
|
521
|
+
kind: 'windowControl';
|
|
522
|
+
title: I18nLabel;
|
|
523
|
+
}) | (BackofficeDashboardWidgetBase & {
|
|
524
|
+
dataSource: 'query';
|
|
525
|
+
kind: 'healthMatrix';
|
|
526
|
+
query: GraphQLTaggedNode;
|
|
527
|
+
variables: BackofficeDashboardWidgetVariables;
|
|
528
|
+
resolve: BackofficeDashboardWidgetResolver<BackofficeDashboardHealthMatrixResult>;
|
|
345
529
|
}) | (BackofficeDashboardWidgetBase & {
|
|
346
530
|
dataSource: 'static';
|
|
347
531
|
kind: 'textBlock';
|