bways-report 0.1.2 → 0.1.4
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/README.md +150 -51
- package/esm2022/lib/core/errors/reporting-errors.mjs +2 -2
- package/esm2022/lib/core/index.mjs +3 -1
- package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
- package/esm2022/lib/core/models/report-definition.model.mjs +1 -1
- package/esm2022/lib/core/models/report-grid.model.mjs +1 -1
- package/esm2022/lib/core/services/report-session-context.service.mjs +50 -5
- package/esm2022/lib/core/utils/data-normalization.util.mjs +56 -0
- package/esm2022/lib/core/utils/report-parameter.util.mjs +180 -0
- package/esm2022/lib/data-access/adapters/http-datasource.adapter.mjs +82 -0
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +34 -9
- package/esm2022/lib/data-access/adapters/http-masterdata.adapter.mjs +38 -0
- package/esm2022/lib/data-access/adapters/http-persistence.adapter.mjs +217 -0
- package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +3 -1
- package/esm2022/lib/data-access/adapters/index.mjs +8 -3
- package/esm2022/lib/data-access/adapters/local-storage-persistence.adapter.mjs +167 -0
- package/esm2022/lib/data-access/adapters/mock-datasource.adapter.mjs +60 -0
- package/esm2022/lib/data-access/contracts/api-dtos.mjs +6 -0
- package/esm2022/lib/data-access/contracts/index.mjs +2 -1
- package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +24 -3
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +572 -102
- package/esm2022/lib/features/designer/components/property-editor/property-editor-action.component.mjs +593 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +225 -25
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +568 -12
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +238 -11
- package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +191 -25
- package/esm2022/lib/features/designer/designer.component.mjs +245 -27
- package/esm2022/lib/features/designer/index.mjs +4 -1
- package/esm2022/lib/features/designer/rpt-report-designer.component.mjs +102 -0
- package/esm2022/lib/features/designer/services/designer-state.service.mjs +18 -10
- package/esm2022/lib/features/designer/services/report-template.service.mjs +318 -0
- package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +41 -9
- package/esm2022/lib/features/export/index.mjs +2 -2
- package/esm2022/lib/features/export/models/export.models.mjs +1 -1
- package/esm2022/lib/features/export/services/report-export.service.mjs +420 -5
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +2 -2
- package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +239 -33
- package/esm2022/lib/features/runtime/index.mjs +2 -1
- package/esm2022/lib/features/runtime/report-execution.service.mjs +56 -0
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +423 -30
- package/esm2022/lib/features/runtime/report-runtime.component.mjs +349 -7
- package/esm2022/lib/features/runtime/rpt-report.component.mjs +545 -0
- package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +19 -8
- package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +18 -7
- package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +3 -3
- package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +3 -3
- package/esm2022/lib/primitives/components/date-range/rpt-date-range.component.mjs +346 -0
- package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +728 -74
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +30 -1
- package/esm2022/lib/primitives/components/index.mjs +2 -1
- package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +3 -3
- package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +3 -3
- package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +3 -3
- package/esm2022/lib/primitives/register-builtins.mjs +51 -2
- package/esm2022/lib/provide-reporting.mjs +145 -24
- package/fesm2022/bways-report.mjs +7797 -921
- package/fesm2022/bways-report.mjs.map +1 -1
- package/lib/core/index.d.ts +2 -0
- package/lib/core/models/report-datasource.model.d.ts +9 -0
- package/lib/core/models/report-definition.model.d.ts +2 -0
- package/lib/core/models/report-grid.model.d.ts +67 -1
- package/lib/core/services/report-session-context.service.d.ts +6 -1
- package/lib/core/utils/data-normalization.util.d.ts +15 -0
- package/lib/core/utils/report-parameter.util.d.ts +35 -0
- package/lib/data-access/adapters/http-datasource.adapter.d.ts +20 -0
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +3 -0
- package/lib/data-access/adapters/http-masterdata.adapter.d.ts +13 -0
- package/lib/data-access/adapters/http-persistence.adapter.d.ts +27 -0
- package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +2 -0
- package/lib/data-access/adapters/index.d.ts +7 -2
- package/lib/data-access/adapters/local-storage-persistence.adapter.d.ts +19 -0
- package/lib/data-access/adapters/mock-datasource.adapter.d.ts +9 -0
- package/lib/data-access/contracts/api-dtos.d.ts +67 -0
- package/lib/data-access/contracts/index.d.ts +1 -0
- package/lib/features/designer/components/component-palette/component-palette.component.d.ts +2 -1
- package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +22 -0
- package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +1 -1
- package/lib/features/designer/components/property-editor/property-editor-action.component.d.ts +33 -0
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +13 -0
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +16 -2
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +9 -1
- package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +12 -1
- package/lib/features/designer/designer.component.d.ts +11 -0
- package/lib/features/designer/index.d.ts +4 -0
- package/lib/features/designer/rpt-report-designer.component.d.ts +38 -0
- package/lib/features/designer/services/designer-state.service.d.ts +1 -1
- package/lib/features/designer/services/report-template.service.d.ts +32 -0
- package/lib/features/designer/utilities/canvas-layout.util.d.ts +4 -0
- package/lib/features/export/index.d.ts +2 -2
- package/lib/features/export/models/export.models.d.ts +23 -0
- package/lib/features/export/services/report-export.service.d.ts +31 -2
- package/lib/features/runtime/dynamic-renderer.component.d.ts +42 -2
- package/lib/features/runtime/index.d.ts +2 -0
- package/lib/features/runtime/report-execution.service.d.ts +16 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +171 -6
- package/lib/features/runtime/report-runtime.component.d.ts +86 -1
- package/lib/features/runtime/rpt-report.component.d.ts +69 -0
- package/lib/primitives/components/button/rpt-button.component.d.ts +5 -2
- package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +1 -0
- package/lib/primitives/components/date-range/rpt-date-range.component.d.ts +43 -0
- package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +55 -7
- package/lib/primitives/components/index.d.ts +2 -0
- package/lib/provide-reporting.d.ts +79 -26
- package/package.json +2 -1
- package/schematics/collection.json +10 -0
- package/schematics/ng-add/index.js +45 -0
- package/schematics/ng-add/schema.json +17 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { generateId } from '../../../core/utilities/id-generator';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
const BUILTIN_BLUEPRINTS = [
|
|
5
|
+
{
|
|
6
|
+
id: 'blueprint-audit-register',
|
|
7
|
+
name: 'Standard Audit Register',
|
|
8
|
+
category: 'Registers & Logs',
|
|
9
|
+
description: 'Transaction and change audit log with relative date range filter, branch dropdown, and tabular data grid.',
|
|
10
|
+
icon: 'table',
|
|
11
|
+
tags: ['audit', 'register', 'transactions', 'date-range'],
|
|
12
|
+
definition: {
|
|
13
|
+
name: 'Standard Audit Register',
|
|
14
|
+
description: 'Audit log with relative date range filtering and tabular register.',
|
|
15
|
+
schemaVersion: 1,
|
|
16
|
+
version: 1,
|
|
17
|
+
parameters: [],
|
|
18
|
+
layout: {
|
|
19
|
+
columns: 12,
|
|
20
|
+
gap: 16,
|
|
21
|
+
padding: 24,
|
|
22
|
+
},
|
|
23
|
+
dataSources: [
|
|
24
|
+
{
|
|
25
|
+
id: 'ds-audit-log',
|
|
26
|
+
name: 'Audit Log Data',
|
|
27
|
+
endpoint: '/api/audit-log',
|
|
28
|
+
method: 'GET',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
components: [
|
|
32
|
+
{
|
|
33
|
+
id: 'comp-date-range',
|
|
34
|
+
type: 'date-range',
|
|
35
|
+
key: 'dateRange',
|
|
36
|
+
label: 'Audit Period',
|
|
37
|
+
order: 1,
|
|
38
|
+
layout: { columnSpan: 4 },
|
|
39
|
+
properties: {
|
|
40
|
+
defaultPreset: 'This Month',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'comp-branch',
|
|
45
|
+
type: 'dropdown',
|
|
46
|
+
key: 'branch',
|
|
47
|
+
label: 'Branch Location',
|
|
48
|
+
order: 2,
|
|
49
|
+
layout: { columnSpan: 3 },
|
|
50
|
+
properties: {
|
|
51
|
+
placeholder: 'All Branches',
|
|
52
|
+
options: [
|
|
53
|
+
{ label: 'All Branches', value: '' },
|
|
54
|
+
{ label: 'Headquarters (HQ)', value: 'HQ' },
|
|
55
|
+
{ label: 'APAC Regional Hub', value: 'APAC' },
|
|
56
|
+
{ label: 'EMEA Office', value: 'EMEA' },
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'comp-btn-run',
|
|
62
|
+
type: 'button',
|
|
63
|
+
label: 'Run Report',
|
|
64
|
+
order: 3,
|
|
65
|
+
layout: { columnSpan: 2 },
|
|
66
|
+
properties: {
|
|
67
|
+
action: 'execute-report',
|
|
68
|
+
variant: 'primary',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'comp-btn-reset',
|
|
73
|
+
type: 'button',
|
|
74
|
+
label: 'Reset Filters',
|
|
75
|
+
order: 4,
|
|
76
|
+
layout: { columnSpan: 2 },
|
|
77
|
+
properties: {
|
|
78
|
+
action: 'reset',
|
|
79
|
+
variant: 'secondary',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
grid: {
|
|
84
|
+
dataSourceId: 'ds-audit-log',
|
|
85
|
+
columns: [
|
|
86
|
+
{ field: 'timestamp', label: 'Timestamp', dataType: 'date', format: 'dd/MM/yyyy HH:mm' },
|
|
87
|
+
{ field: 'userName', label: 'User', dataType: 'string' },
|
|
88
|
+
{ field: 'actionType', label: 'Action', dataType: 'string' },
|
|
89
|
+
{ field: 'recordRef', label: 'Reference #', dataType: 'string' },
|
|
90
|
+
{ field: 'status', label: 'Status', dataType: 'string' },
|
|
91
|
+
],
|
|
92
|
+
options: {
|
|
93
|
+
pagination: true,
|
|
94
|
+
pageSize: 20,
|
|
95
|
+
showRowNumbers: true,
|
|
96
|
+
allowExport: true,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: 'blueprint-master-detail',
|
|
103
|
+
name: 'Master-Detail Account Statement',
|
|
104
|
+
category: 'Financial & Ledger',
|
|
105
|
+
description: 'Account selector with statement date range and drill-down transaction drawer.',
|
|
106
|
+
icon: 'file-text',
|
|
107
|
+
tags: ['finance', 'ledger', 'statement', 'drill-down'],
|
|
108
|
+
definition: {
|
|
109
|
+
name: 'Account Statement',
|
|
110
|
+
description: 'Account statement with slide-over line item drill-down.',
|
|
111
|
+
schemaVersion: 1,
|
|
112
|
+
version: 1,
|
|
113
|
+
parameters: [],
|
|
114
|
+
layout: {
|
|
115
|
+
columns: 12,
|
|
116
|
+
gap: 16,
|
|
117
|
+
padding: 24,
|
|
118
|
+
},
|
|
119
|
+
dataSources: [
|
|
120
|
+
{
|
|
121
|
+
id: 'ds-account-statement',
|
|
122
|
+
name: 'Account Statement Data',
|
|
123
|
+
endpoint: '/api/statements',
|
|
124
|
+
method: 'GET',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
components: [
|
|
128
|
+
{
|
|
129
|
+
id: 'comp-account-code',
|
|
130
|
+
type: 'dropdown',
|
|
131
|
+
key: 'accountCode',
|
|
132
|
+
label: 'Account / Customer',
|
|
133
|
+
order: 1,
|
|
134
|
+
layout: { columnSpan: 4 },
|
|
135
|
+
properties: {
|
|
136
|
+
placeholder: 'Search customer account...',
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: 'comp-statement-period',
|
|
141
|
+
type: 'date-range',
|
|
142
|
+
key: 'period',
|
|
143
|
+
label: 'Statement Period',
|
|
144
|
+
order: 2,
|
|
145
|
+
layout: { columnSpan: 5 },
|
|
146
|
+
properties: {
|
|
147
|
+
defaultPreset: 'This Month',
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
id: 'comp-btn-generate',
|
|
152
|
+
type: 'button',
|
|
153
|
+
label: 'Generate Statement',
|
|
154
|
+
order: 3,
|
|
155
|
+
layout: { columnSpan: 3 },
|
|
156
|
+
properties: {
|
|
157
|
+
action: 'execute-report',
|
|
158
|
+
variant: 'primary',
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
grid: {
|
|
163
|
+
dataSourceId: 'ds-account-statement',
|
|
164
|
+
columns: [
|
|
165
|
+
{ field: 'transDate', label: 'Date', dataType: 'date', format: 'dd/MM/yyyy' },
|
|
166
|
+
{ field: 'documentNo', label: 'Document #', dataType: 'string' },
|
|
167
|
+
{ field: 'description', label: 'Description', dataType: 'string' },
|
|
168
|
+
{ field: 'debit', label: 'Debit', dataType: 'currency', align: 'right', aggregate: 'sum' },
|
|
169
|
+
{ field: 'credit', label: 'Credit', dataType: 'currency', align: 'right', aggregate: 'sum' },
|
|
170
|
+
{ field: 'balance', label: 'Balance', dataType: 'currency', align: 'right' },
|
|
171
|
+
],
|
|
172
|
+
options: {
|
|
173
|
+
pagination: true,
|
|
174
|
+
pageSize: 25,
|
|
175
|
+
showFooter: true,
|
|
176
|
+
allowExport: true,
|
|
177
|
+
},
|
|
178
|
+
rowClickAction: {
|
|
179
|
+
type: 'open-drawer',
|
|
180
|
+
targetReportId: 'document-details-subreport',
|
|
181
|
+
drawerTitle: 'Transaction Details',
|
|
182
|
+
drawerWidth: '780px',
|
|
183
|
+
parameterMapping: {
|
|
184
|
+
docNo: 'row.documentNo',
|
|
185
|
+
account: 'form.accountCode',
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
id: 'blueprint-kpi-summary',
|
|
193
|
+
name: 'Executive Performance Summary',
|
|
194
|
+
category: 'Analytics & Executive',
|
|
195
|
+
description: 'High-level KPI register with date filter controls and exportable breakdown.',
|
|
196
|
+
icon: 'bar-chart-2',
|
|
197
|
+
tags: ['executive', 'kpi', 'performance', 'metrics'],
|
|
198
|
+
definition: {
|
|
199
|
+
name: 'Executive Performance Summary',
|
|
200
|
+
description: 'Departmental performance summary metrics.',
|
|
201
|
+
schemaVersion: 1,
|
|
202
|
+
version: 1,
|
|
203
|
+
parameters: [],
|
|
204
|
+
layout: {
|
|
205
|
+
columns: 12,
|
|
206
|
+
gap: 16,
|
|
207
|
+
padding: 24,
|
|
208
|
+
},
|
|
209
|
+
dataSources: [
|
|
210
|
+
{
|
|
211
|
+
id: 'ds-kpi-metrics',
|
|
212
|
+
name: 'Performance Metrics',
|
|
213
|
+
endpoint: '/api/metrics',
|
|
214
|
+
method: 'GET',
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
components: [
|
|
218
|
+
{
|
|
219
|
+
id: 'comp-kpi-period',
|
|
220
|
+
type: 'date-range',
|
|
221
|
+
key: 'reportingPeriod',
|
|
222
|
+
label: 'Reporting Period',
|
|
223
|
+
order: 1,
|
|
224
|
+
layout: { columnSpan: 6 },
|
|
225
|
+
properties: {
|
|
226
|
+
defaultPreset: 'This Quarter',
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: 'comp-btn-refresh',
|
|
231
|
+
type: 'button',
|
|
232
|
+
label: 'Refresh Analytics',
|
|
233
|
+
order: 2,
|
|
234
|
+
layout: { columnSpan: 3 },
|
|
235
|
+
properties: {
|
|
236
|
+
action: 'execute-report',
|
|
237
|
+
variant: 'primary',
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
],
|
|
241
|
+
grid: {
|
|
242
|
+
dataSourceId: 'ds-kpi-metrics',
|
|
243
|
+
columns: [
|
|
244
|
+
{ field: 'department', label: 'Department / Unit', dataType: 'string' },
|
|
245
|
+
{ field: 'targetRevenue', label: 'Target ($)', dataType: 'currency', align: 'right', aggregate: 'sum' },
|
|
246
|
+
{ field: 'actualRevenue', label: 'Actual ($)', dataType: 'currency', align: 'right', aggregate: 'sum' },
|
|
247
|
+
{ field: 'variance', label: 'Variance ($)', dataType: 'currency', align: 'right' },
|
|
248
|
+
{ field: 'achievementPct', label: 'Achievement %', dataType: 'string', align: 'right' },
|
|
249
|
+
],
|
|
250
|
+
options: {
|
|
251
|
+
pagination: true,
|
|
252
|
+
pageSize: 15,
|
|
253
|
+
showFooter: true,
|
|
254
|
+
allowExport: true,
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
];
|
|
260
|
+
export class ReportTemplateService {
|
|
261
|
+
customBlueprints = [];
|
|
262
|
+
/**
|
|
263
|
+
* Returns all available report blueprints (built-in + user registered).
|
|
264
|
+
*/
|
|
265
|
+
getTemplates() {
|
|
266
|
+
return [...BUILTIN_BLUEPRINTS, ...this.customBlueprints];
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Retrieves a blueprint by its unique identifier.
|
|
270
|
+
*/
|
|
271
|
+
getTemplateById(id) {
|
|
272
|
+
return this.getTemplates().find((t) => t.id === id);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Instantiates a new ReportDefinition from a template with unique IDs.
|
|
276
|
+
*/
|
|
277
|
+
instantiateTemplate(templateId, customName) {
|
|
278
|
+
const blueprint = this.getTemplateById(templateId);
|
|
279
|
+
if (!blueprint) {
|
|
280
|
+
throw new Error(`Report blueprint "${templateId}" not found.`);
|
|
281
|
+
}
|
|
282
|
+
const reportId = generateId('rep');
|
|
283
|
+
const def = blueprint.definition;
|
|
284
|
+
return {
|
|
285
|
+
id: reportId,
|
|
286
|
+
name: customName || def.name,
|
|
287
|
+
description: def.description,
|
|
288
|
+
schemaVersion: def.schemaVersion ?? 1,
|
|
289
|
+
version: 1,
|
|
290
|
+
parameters: def.parameters ? JSON.parse(JSON.stringify(def.parameters)) : [],
|
|
291
|
+
layout: JSON.parse(JSON.stringify(def.layout)),
|
|
292
|
+
dataSources: JSON.parse(JSON.stringify(def.dataSources)),
|
|
293
|
+
components: JSON.parse(JSON.stringify(def.components)),
|
|
294
|
+
grid: def.grid ? JSON.parse(JSON.stringify(def.grid)) : undefined,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Registers a custom blueprint to make it available in the gallery.
|
|
299
|
+
*/
|
|
300
|
+
registerTemplate(blueprint) {
|
|
301
|
+
const existingIdx = this.customBlueprints.findIndex((b) => b.id === blueprint.id);
|
|
302
|
+
if (existingIdx >= 0) {
|
|
303
|
+
this.customBlueprints[existingIdx] = blueprint;
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
this.customBlueprints.push(blueprint);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
310
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportTemplateService, providedIn: 'root' });
|
|
311
|
+
}
|
|
312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportTemplateService, decorators: [{
|
|
313
|
+
type: Injectable,
|
|
314
|
+
args: [{
|
|
315
|
+
providedIn: 'root',
|
|
316
|
+
}]
|
|
317
|
+
}] });
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRlbXBsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9mZWF0dXJlcy9kZXNpZ25lci9zZXJ2aWNlcy9yZXBvcnQtdGVtcGxhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFZbEUsTUFBTSxrQkFBa0IsR0FBc0I7SUFDNUM7UUFDRSxFQUFFLEVBQUUsMEJBQTBCO1FBQzlCLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QixXQUFXLEVBQUUsMkdBQTJHO1FBQ3hILElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDO1FBQ3pELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsV0FBVyxFQUFFLG9FQUFvRTtZQUNqRixhQUFhLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxFQUFFO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxFQUFFO2dCQUNYLEdBQUcsRUFBRSxFQUFFO2dCQUNQLE9BQU8sRUFBRSxFQUFFO2FBQ1o7WUFDRCxXQUFXLEVBQUU7Z0JBQ1g7b0JBQ0UsRUFBRSxFQUFFLGNBQWM7b0JBQ2xCLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLE1BQU0sRUFBRSxLQUFLO2lCQUNkO2FBQ0Y7WUFDRCxVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsRUFBRSxFQUFFLGlCQUFpQjtvQkFDckIsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLEdBQUcs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QUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsU0FBMEI7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNqRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7d0dBckRVLHFCQUFxQjs0R0FBckIscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBvcnREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvcmVwb3J0LWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbGl0aWVzL2lkLWdlbmVyYXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0Qmx1ZXByaW50IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeTogJ1JlZ2lzdGVycyAmIExvZ3MnIHwgJ0ZpbmFuY2lhbCAmIExlZGdlcicgfCAnQW5hbHl0aWNzICYgRXhlY3V0aXZlJyB8ICdDdXN0b20nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICB0YWdzPzogc3RyaW5nW107XG4gIGRlZmluaXRpb246IE9taXQ8UmVwb3J0RGVmaW5pdGlvbiwgJ2lkJz47XG59XG5cbmNvbnN0IEJVSUxUSU5fQkxVRVBSSU5UUzogUmVwb3J0Qmx1ZXByaW50W10gPSBbXG4gIHtcbiAgICBpZDogJ2JsdWVwcmludC1hdWRpdC1yZWdpc3RlcicsXG4gICAgbmFtZTogJ1N0YW5kYXJkIEF1ZGl0IFJlZ2lzdGVyJyxcbiAgICBjYXRlZ29yeTogJ1JlZ2lzdGVycyAmIExvZ3MnLFxuICAgIGRlc2NyaXB0aW9uOiAnVHJhbnNhY3Rpb24gYW5kIGNoYW5nZSBhdWRpdCBsb2cgd2l0aCByZWxhdGl2ZSBkYXRlIHJhbmdlIGZpbHRlciwgYnJhbmNoIGRyb3Bkb3duLCBhbmQgdGFidWxhciBkYXRhIGdyaWQuJyxcbiAgICBpY29uOiAndGFibGUnLFxuICAgIHRhZ3M6IFsnYXVkaXQnLCAncmVnaXN0ZXInLCAndHJhbnNhY3Rpb25zJywgJ2RhdGUtcmFuZ2UnXSxcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICBuYW1lOiAnU3RhbmRhcmQgQXVkaXQgUmVnaXN0ZXInLFxuICAgICAgZGVzY3JpcHRpb246ICdBdWRpdCBsb2cgd2l0aCByZWxhdGl2ZSBkYXRlIHJhbmdlIGZpbHRlcmluZyBhbmQgdGFidWxhciByZWdpc3Rlci4nLFxuICAgICAgc2NoZW1hVmVyc2lvbjogMSxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgICBwYXJhbWV0ZXJzOiBbXSxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBjb2x1bW5zOiAxMixcbiAgICAgICAgZ2FwOiAxNixcbiAgICAgICAgcGFkZGluZzogMjQsXG4gICAgICB9LFxuICAgICAgZGF0YVNvdXJjZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnZHMtYXVkaXQtbG9nJyxcbiAgICAgICAgICBuYW1lOiAnQXVkaXQgTG9nIERhdGEnLFxuICAgICAgICAgIGVuZHBvaW50OiAnL2FwaS9hdWRpdC1sb2cnLFxuICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY29tcG9uZW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjb21wLWRhdGUtcmFuZ2UnLFxuICAgICAgICAgIHR5cGU6ICdkYXRlLXJhbmdlJyxcbiAgICAgICAgICBrZXk6ICdkYXRlUmFuZ2UnLFxuICAgICAgICAgIGxhYmVsOiAnQXVkaXQgUGVyaW9kJyxcbiAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICBsYXlvdXQ6IHsgY29sdW1uU3BhbjogNCB9LFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGRlZmF1bHRQcmVzZXQ6ICdUaGlzIE1vbnRoJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjb21wLWJyYW5jaCcsXG4gICAgICAgICAgdHlwZTogJ2Ryb3Bkb3duJyxcbiAgICAgICAgICBrZXk6ICdicmFuY2gnLFxuICAgICAgICAgIGxhYmVsOiAnQnJhbmNoIExvY2F0aW9uJyxcbiAgICAgICAgICBvcmRlcjogMixcbiAgICAgICAgICBsYXlvdXQ6IHsgY29sdW1uU3BhbjogMyB9LFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQWxsIEJyYW5jaGVzJyxcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgeyBsYWJlbDogJ0FsbCBCcmFuY2hlcycsIHZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgICB7IGxhYmVsOiAnSGVhZHF1YXJ0ZXJzIChIUSknLCB2YWx1ZTogJ0hRJyB9LFxuICAgICAgICAgICAgICB7IGxhYmVsOiAnQVBBQyBSZWdpb25hbCBIdWInLCB2YWx1ZTogJ0FQQUMnIH0sXG4gICAgICAgICAgICAgIHsgbGFiZWw6ICdFTUVBIE9mZmljZScsIHZhbHVlOiAnRU1FQScgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnY29tcC1idG4tcnVuJyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICBsYWJlbDogJ1J1biBSZXBvcnQnLFxuICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgIGxheW91dDogeyBjb2x1bW5TcGFuOiAyIH0sXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgYWN0aW9uOiAnZXhlY3V0ZS1yZXBvcnQnLFxuICAgICAgICAgICAgdmFyaWFudDogJ3ByaW1hcnknLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2NvbXAtYnRuLXJlc2V0JyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICBsYWJlbDogJ1Jlc2V0IEZpbHRlcnMnLFxuICAgICAgICAgIG9yZGVyOiA0LFxuICAgICAgICAgIGxheW91dDogeyBjb2x1bW5TcGFuOiAyIH0sXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgYWN0aW9uOiAncmVzZXQnLFxuICAgICAgICAgICAgdmFyaWFudDogJ3NlY29uZGFyeScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBncmlkOiB7XG4gICAgICAgIGRhdGFTb3VyY2VJZDogJ2RzLWF1ZGl0LWxvZycsXG4gICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICB7IGZpZWxkOiAndGltZXN0YW1wJywgbGFiZWw6ICdUaW1lc3RhbXAnLCBkYXRhVHlwZTogJ2RhdGUnLCBmb3JtYXQ6ICdkZC9NTS95eXl5IEhIOm1tJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICd1c2VyTmFtZScsIGxhYmVsOiAnVXNlcicsIGRhdGFUeXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdhY3Rpb25UeXBlJywgbGFiZWw6ICdBY3Rpb24nLCBkYXRhVHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICB7IGZpZWxkOiAncmVjb3JkUmVmJywgbGFiZWw6ICdSZWZlcmVuY2UgIycsIGRhdGFUeXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdzdGF0dXMnLCBsYWJlbDogJ1N0YXR1cycsIGRhdGFUeXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICBdLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcbiAgICAgICAgICBwYWdlU2l6ZTogMjAsXG4gICAgICAgICAgc2hvd1Jvd051bWJlcnM6IHRydWUsXG4gICAgICAgICAgYWxsb3dFeHBvcnQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ2JsdWVwcmludC1tYXN0ZXItZGV0YWlsJyxcbiAgICBuYW1lOiAnTWFzdGVyLURldGFpbCBBY2NvdW50IFN0YXRlbWVudCcsXG4gICAgY2F0ZWdvcnk6ICdGaW5hbmNpYWwgJiBMZWRnZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnQWNjb3VudCBzZWxlY3RvciB3aXRoIHN0YXRlbWVudCBkYXRlIHJhbmdlIGFuZCBkcmlsbC1kb3duIHRyYW5zYWN0aW9uIGRyYXdlci4nLFxuICAgIGljb246ICdmaWxlLXRleHQnLFxuICAgIHRhZ3M6IFsnZmluYW5jZScsICdsZWRnZXInLCAnc3RhdGVtZW50JywgJ2RyaWxsLWRvd24nXSxcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICBuYW1lOiAnQWNjb3VudCBTdGF0ZW1lbnQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBY2NvdW50IHN0YXRlbWVudCB3aXRoIHNsaWRlLW92ZXIgbGluZSBpdGVtIGRyaWxsLWRvd24uJyxcbiAgICAgIHNjaGVtYVZlcnNpb246IDEsXG4gICAgICB2ZXJzaW9uOiAxLFxuICAgICAgcGFyYW1ldGVyczogW10sXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgY29sdW1uczogMTIsXG4gICAgICAgIGdhcDogMTYsXG4gICAgICAgIHBhZGRpbmc6IDI0LFxuICAgICAgfSxcbiAgICAgIGRhdGFTb3VyY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2RzLWFjY291bnQtc3RhdGVtZW50JyxcbiAgICAgICAgICBuYW1lOiAnQWNjb3VudCBTdGF0ZW1lbnQgRGF0YScsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3N0YXRlbWVudHMnLFxuICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY29tcG9uZW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjb21wLWFjY291bnQtY29kZScsXG4gICAgICAgICAgdHlwZTogJ2Ryb3Bkb3duJyxcbiAgICAgICAgICBrZXk6ICdhY2NvdW50Q29kZScsXG4gICAgICAgICAgbGFiZWw6ICdBY2NvdW50IC8gQ3VzdG9tZXInLFxuICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgIGxheW91dDogeyBjb2x1bW5TcGFuOiA0IH0sXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdTZWFyY2ggY3VzdG9tZXIgYWNjb3VudC4uLicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnY29tcC1zdGF0ZW1lbnQtcGVyaW9kJyxcbiAgICAgICAgICB0eXBlOiAnZGF0ZS1yYW5nZScsXG4gICAgICAgICAga2V5OiAncGVyaW9kJyxcbiAgICAgICAgICBsYWJlbDogJ1N0YXRlbWVudCBQZXJpb2QnLFxuICAgICAgICAgIG9yZGVyOiAyLFxuICAgICAgICAgIGxheW91dDogeyBjb2x1bW5TcGFuOiA1IH0sXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgZGVmYXVsdFByZXNldDogJ1RoaXMgTW9udGgnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2NvbXAtYnRuLWdlbmVyYXRlJyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICBsYWJlbDogJ0dlbmVyYXRlIFN0YXRlbWVudCcsXG4gICAgICAgICAgb3JkZXI6IDMsXG4gICAgICAgICAgbGF5b3V0OiB7IGNvbHVtblNwYW46IDMgfSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBhY3Rpb246ICdleGVjdXRlLXJlcG9ydCcsXG4gICAgICAgICAgICB2YXJpYW50OiAncHJpbWFyeScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBncmlkOiB7XG4gICAgICAgIGRhdGFTb3VyY2VJZDogJ2RzLWFjY291bnQtc3RhdGVtZW50JyxcbiAgICAgICAgY29sdW1uczogW1xuICAgICAgICAgIHsgZmllbGQ6ICd0cmFuc0RhdGUnLCBsYWJlbDogJ0RhdGUnLCBkYXRhVHlwZTogJ2RhdGUnLCBmb3JtYXQ6ICdkZC9NTS95eXl5JyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdkb2N1bWVudE5vJywgbGFiZWw6ICdEb2N1bWVudCAjJywgZGF0YVR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgeyBmaWVsZDogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6ICdEZXNjcmlwdGlvbicsIGRhdGFUeXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdkZWJpdCcsIGxhYmVsOiAnRGViaXQnLCBkYXRhVHlwZTogJ2N1cnJlbmN5JywgYWxpZ246ICdyaWdodCcsIGFnZ3JlZ2F0ZTogJ3N1bScgfSxcbiAgICAgICAgICB7IGZpZWxkOiAnY3JlZGl0JywgbGFiZWw6ICdDcmVkaXQnLCBkYXRhVHlwZTogJ2N1cnJlbmN5JywgYWxpZ246ICdyaWdodCcsIGFnZ3JlZ2F0ZTogJ3N1bScgfSxcbiAgICAgICAgICB7IGZpZWxkOiAnYmFsYW5jZScsIGxhYmVsOiAnQmFsYW5jZScsIGRhdGFUeXBlOiAnY3VycmVuY3knLCBhbGlnbjogJ3JpZ2h0JyB9LFxuICAgICAgICBdLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcbiAgICAgICAgICBwYWdlU2l6ZTogMjUsXG4gICAgICAgICAgc2hvd0Zvb3RlcjogdHJ1ZSxcbiAgICAgICAgICBhbGxvd0V4cG9ydDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcm93Q2xpY2tBY3Rpb246IHtcbiAgICAgICAgICB0eXBlOiAnb3Blbi1kcmF3ZXInLFxuICAgICAgICAgIHRhcmdldFJlcG9ydElkOiAnZG9jdW1lbnQtZGV0YWlscy1zdWJyZXBvcnQnLFxuICAgICAgICAgIGRyYXdlclRpdGxlOiAnVHJhbnNhY3Rpb24gRGV0YWlscycsXG4gICAgICAgICAgZHJhd2VyV2lkdGg6ICc3ODBweCcsXG4gICAgICAgICAgcGFyYW1ldGVyTWFwcGluZzoge1xuICAgICAgICAgICAgZG9jTm86ICdyb3cuZG9jdW1lbnRObycsXG4gICAgICAgICAgICBhY2NvdW50OiAnZm9ybS5hY2NvdW50Q29kZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnYmx1ZXByaW50LWtwaS1zdW1tYXJ5JyxcbiAgICBuYW1lOiAnRXhlY3V0aXZlIFBlcmZvcm1hbmNlIFN1bW1hcnknLFxuICAgIGNhdGVnb3J5OiAnQW5hbHl0aWNzICYgRXhlY3V0aXZlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0hpZ2gtbGV2ZWwgS1BJIHJlZ2lzdGVyIHdpdGggZGF0ZSBmaWx0ZXIgY29udHJvbHMgYW5kIGV4cG9ydGFibGUgYnJlYWtkb3duLicsXG4gICAgaWNvbjogJ2Jhci1jaGFydC0yJyxcbiAgICB0YWdzOiBbJ2V4ZWN1dGl2ZScsICdrcGknLCAncGVyZm9ybWFuY2UnLCAnbWV0cmljcyddLFxuICAgIGRlZmluaXRpb246IHtcbiAgICAgIG5hbWU6ICdFeGVjdXRpdmUgUGVyZm9ybWFuY2UgU3VtbWFyeScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0RlcGFydG1lbnRhbCBwZXJmb3JtYW5jZSBzdW1tYXJ5IG1ldHJpY3MuJyxcbiAgICAgIHNjaGVtYVZlcnNpb246IDEsXG4gICAgICB2ZXJzaW9uOiAxLFxuICAgICAgcGFyYW1ldGVyczogW10sXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgY29sdW1uczogMTIsXG4gICAgICAgIGdhcDogMTYsXG4gICAgICAgIHBhZGRpbmc6IDI0LFxuICAgICAgfSxcbiAgICAgIGRhdGFTb3VyY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2RzLWtwaS1tZXRyaWNzJyxcbiAgICAgICAgICBuYW1lOiAnUGVyZm9ybWFuY2UgTWV0cmljcycsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL21ldHJpY3MnLFxuICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY29tcG9uZW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjb21wLWtwaS1wZXJpb2QnLFxuICAgICAgICAgIHR5cGU6ICdkYXRlLXJhbmdlJyxcbiAgICAgICAgICBrZXk6ICdyZXBvcnRpbmdQZXJpb2QnLFxuICAgICAgICAgIGxhYmVsOiAnUmVwb3J0aW5nIFBlcmlvZCcsXG4gICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgbGF5b3V0OiB7IGNvbHVtblNwYW46IDYgfSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBkZWZhdWx0UHJlc2V0OiAnVGhpcyBRdWFydGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjb21wLWJ0bi1yZWZyZXNoJyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICBsYWJlbDogJ1JlZnJlc2ggQW5hbHl0aWNzJyxcbiAgICAgICAgICBvcmRlcjogMixcbiAgICAgICAgICBsYXlvdXQ6IHsgY29sdW1uU3BhbjogMyB9LFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGFjdGlvbjogJ2V4ZWN1dGUtcmVwb3J0JyxcbiAgICAgICAgICAgIHZhcmlhbnQ6ICdwcmltYXJ5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGdyaWQ6IHtcbiAgICAgICAgZGF0YVNvdXJjZUlkOiAnZHMta3BpLW1ldHJpY3MnLFxuICAgICAgICBjb2x1bW5zOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ2RlcGFydG1lbnQnLCBsYWJlbDogJ0RlcGFydG1lbnQgLyBVbml0JywgZGF0YVR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgeyBmaWVsZDogJ3RhcmdldFJldmVudWUnLCBsYWJlbDogJ1RhcmdldCAoJCknLCBkYXRhVHlwZTogJ2N1cnJlbmN5JywgYWxpZ246ICdyaWdodCcsIGFnZ3JlZ2F0ZTogJ3N1bScgfSxcbiAgICAgICAgICB7IGZpZWxkOiAnYWN0dWFsUmV2ZW51ZScsIGxhYmVsOiAnQWN0dWFsICgkKScsIGRhdGFUeXBlOiAnY3VycmVuY3knLCBhbGlnbjogJ3JpZ2h0JywgYWdncmVnYXRlOiAnc3VtJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICd2YXJpYW5jZScsIGxhYmVsOiAnVmFyaWFuY2UgKCQpJywgZGF0YVR5cGU6ICdjdXJyZW5jeScsIGFsaWduOiAncmlnaHQnIH0sXG4gICAgICAgICAgeyBmaWVsZDogJ2FjaGlldmVtZW50UGN0JywgbGFiZWw6ICdBY2hpZXZlbWVudCAlJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBhbGlnbjogJ3JpZ2h0JyB9LFxuICAgICAgICBdLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcbiAgICAgICAgICBwYWdlU2l6ZTogMTUsXG4gICAgICAgICAgc2hvd0Zvb3RlcjogdHJ1ZSxcbiAgICAgICAgICBhbGxvd0V4cG9ydDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbl07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRUZW1wbGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUJsdWVwcmludHM6IFJlcG9ydEJsdWVwcmludFtdID0gW107XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGF2YWlsYWJsZSByZXBvcnQgYmx1ZXByaW50cyAoYnVpbHQtaW4gKyB1c2VyIHJlZ2lzdGVyZWQpLlxuICAgKi9cbiAgZ2V0VGVtcGxhdGVzKCk6IFJlcG9ydEJsdWVwcmludFtdIHtcbiAgICByZXR1cm4gWy4uLkJVSUxUSU5fQkxVRVBSSU5UUywgLi4udGhpcy5jdXN0b21CbHVlcHJpbnRzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBibHVlcHJpbnQgYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyLlxuICAgKi9cbiAgZ2V0VGVtcGxhdGVCeUlkKGlkOiBzdHJpbmcpOiBSZXBvcnRCbHVlcHJpbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdldFRlbXBsYXRlcygpLmZpbmQoKHQpID0+IHQuaWQgPT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnN0YW50aWF0ZXMgYSBuZXcgUmVwb3J0RGVmaW5pdGlvbiBmcm9tIGEgdGVtcGxhdGUgd2l0aCB1bmlxdWUgSURzLlxuICAgKi9cbiAgaW5zdGFudGlhdGVUZW1wbGF0ZSh0ZW1wbGF0ZUlkOiBzdHJpbmcsIGN1c3RvbU5hbWU/OiBzdHJpbmcpOiBSZXBvcnREZWZpbml0aW9uIHtcbiAgICBjb25zdCBibHVlcHJpbnQgPSB0aGlzLmdldFRlbXBsYXRlQnlJZCh0ZW1wbGF0ZUlkKTtcbiAgICBpZiAoIWJsdWVwcmludCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXBvcnQgYmx1ZXByaW50IFwiJHt0ZW1wbGF0ZUlkfVwiIG5vdCBmb3VuZC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXBvcnRJZCA9IGdlbmVyYXRlSWQoJ3JlcCcpO1xuICAgIGNvbnN0IGRlZiA9IGJsdWVwcmludC5kZWZpbml0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiByZXBvcnRJZCxcbiAgICAgIG5hbWU6IGN1c3RvbU5hbWUgfHwgZGVmLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogZGVmLmRlc2NyaXB0aW9uLFxuICAgICAgc2NoZW1hVmVyc2lvbjogZGVmLnNjaGVtYVZlcnNpb24gPz8gMSxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgICBwYXJhbWV0ZXJzOiBkZWYucGFyYW1ldGVycyA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGVmLnBhcmFtZXRlcnMpKSA6IFtdLFxuICAgICAgbGF5b3V0OiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlZi5sYXlvdXQpKSxcbiAgICAgIGRhdGFTb3VyY2VzOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlZi5kYXRhU291cmNlcykpLFxuICAgICAgY29tcG9uZW50czogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkZWYuY29tcG9uZW50cykpLFxuICAgICAgZ3JpZDogZGVmLmdyaWQgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRlZi5ncmlkKSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjdXN0b20gYmx1ZXByaW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGluIHRoZSBnYWxsZXJ5LlxuICAgKi9cbiAgcmVnaXN0ZXJUZW1wbGF0ZShibHVlcHJpbnQ6IFJlcG9ydEJsdWVwcmludCk6IHZvaWQge1xuICAgIGNvbnN0IGV4aXN0aW5nSWR4ID0gdGhpcy5jdXN0b21CbHVlcHJpbnRzLmZpbmRJbmRleCgoYikgPT4gYi5pZCA9PT0gYmx1ZXByaW50LmlkKTtcbiAgICBpZiAoZXhpc3RpbmdJZHggPj0gMCkge1xuICAgICAgdGhpcy5jdXN0b21CbHVlcHJpbnRzW2V4aXN0aW5nSWR4XSA9IGJsdWVwcmludDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXN0b21CbHVlcHJpbnRzLnB1c2goYmx1ZXByaW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -58,36 +58,67 @@ export function resolveCanvasCardHeight(comp, overrideComponentHeight, overhead
|
|
|
58
58
|
const parsed = parseInt(h, 10);
|
|
59
59
|
return isNaN(parsed) ? h : `${parsed + overhead}px`;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Natural minimum height in pixels required for a component type to render without cramping or overflow.
|
|
63
|
+
*/
|
|
64
|
+
export function getComponentNaturalMinHeight(type) {
|
|
65
|
+
switch (type) {
|
|
66
|
+
case 'chart':
|
|
67
|
+
return 240;
|
|
68
|
+
case 'kpi-card':
|
|
69
|
+
return 100;
|
|
70
|
+
case 'table':
|
|
71
|
+
case 'grid':
|
|
72
|
+
return 200;
|
|
73
|
+
default:
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
61
77
|
/**
|
|
62
78
|
* Resolves the CSS min-height property for the canvas component card.
|
|
63
79
|
*/
|
|
64
80
|
export function resolveCanvasCardMinHeight(comp, overrideComponentHeight, overhead = CANVAS_CARD_OVERHEAD) {
|
|
81
|
+
const naturalMin = getComponentNaturalMinHeight(comp.type);
|
|
65
82
|
if (overrideComponentHeight !== undefined && overrideComponentHeight !== null) {
|
|
66
|
-
return `${overrideComponentHeight + overhead}px`;
|
|
83
|
+
return `${Math.max(naturalMin, overrideComponentHeight) + overhead}px`;
|
|
67
84
|
}
|
|
68
85
|
const minH = comp.layout?.minHeight;
|
|
69
|
-
if (!minH || minH === 'auto')
|
|
70
|
-
return 'auto';
|
|
86
|
+
if (!minH || minH === 'auto') {
|
|
87
|
+
return naturalMin > 0 ? `${naturalMin + overhead}px` : 'auto';
|
|
88
|
+
}
|
|
71
89
|
const parsed = parseInt(minH, 10);
|
|
72
|
-
return isNaN(parsed) ? minH : `${parsed + overhead}px`;
|
|
90
|
+
return isNaN(parsed) ? minH : `${Math.max(naturalMin, parsed) + overhead}px`;
|
|
73
91
|
}
|
|
74
92
|
/**
|
|
75
93
|
* Resolves the CSS height property for a runtime component.
|
|
76
94
|
*/
|
|
77
95
|
export function resolveComponentHeight(comp, overrideHeight) {
|
|
96
|
+
const naturalMin = getComponentNaturalMinHeight(comp.type);
|
|
78
97
|
if (overrideHeight !== undefined && overrideHeight !== null) {
|
|
79
|
-
return `${overrideHeight}px`;
|
|
98
|
+
return `${Math.max(naturalMin, overrideHeight)}px`;
|
|
80
99
|
}
|
|
81
|
-
|
|
100
|
+
const h = comp.layout?.height;
|
|
101
|
+
if (!h || h === 'auto')
|
|
102
|
+
return 'auto';
|
|
103
|
+
const parsed = parseInt(h, 10);
|
|
104
|
+
if (isNaN(parsed))
|
|
105
|
+
return h;
|
|
106
|
+
return `${Math.max(naturalMin, parsed)}px`;
|
|
82
107
|
}
|
|
83
108
|
/**
|
|
84
109
|
* Resolves the CSS min-height property for a runtime component.
|
|
85
110
|
*/
|
|
86
111
|
export function resolveComponentMinHeight(comp, overrideHeight) {
|
|
112
|
+
const naturalMin = getComponentNaturalMinHeight(comp.type);
|
|
87
113
|
if (overrideHeight !== undefined && overrideHeight !== null) {
|
|
88
|
-
return `${overrideHeight}px`;
|
|
114
|
+
return `${Math.max(naturalMin, overrideHeight)}px`;
|
|
89
115
|
}
|
|
90
|
-
|
|
116
|
+
const minH = comp.layout?.minHeight;
|
|
117
|
+
if (!minH || minH === 'auto') {
|
|
118
|
+
return naturalMin > 0 ? `${naturalMin}px` : 'auto';
|
|
119
|
+
}
|
|
120
|
+
const parsed = parseInt(minH, 10);
|
|
121
|
+
return isNaN(parsed) ? minH : `${Math.max(naturalMin, parsed)}px`;
|
|
91
122
|
}
|
|
92
123
|
/**
|
|
93
124
|
* Calculates new snapped span given drag deltaX, column width, and grid gap.
|
|
@@ -113,6 +144,7 @@ export function getComponentIconName(type) {
|
|
|
113
144
|
case 'input': return 'text-fields';
|
|
114
145
|
case 'dropdown': return 'dropdown';
|
|
115
146
|
case 'date': return 'calendar';
|
|
147
|
+
case 'date-range': return 'calendar';
|
|
116
148
|
case 'number': return 'number';
|
|
117
149
|
case 'checkbox': return 'checkbox';
|
|
118
150
|
case 'button': return 'button';
|
|
@@ -121,4 +153,4 @@ export function getComponentIconName(type) {
|
|
|
121
153
|
default: return 'box';
|
|
122
154
|
}
|
|
123
155
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLWxheW91dC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZmVhdHVyZXMvZGVzaWduZXIvdXRpbGl0aWVzL2NhbnZhcy1sYXlvdXQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxJQUErQixFQUMvQixlQUF1QixFQUFFLEVBQ3pCLFlBQTRCO0lBRTVCLElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksV0FBVyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLElBQStCLEVBQy9CLGVBQXVCLEVBQUUsRUFDekIsSUFBYTtJQUViLE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdB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TyxRQUFRLENBQUM7UUFDL0IsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQztRQUNuQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDO1FBQy9CLEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7UUFDOUIsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLFdBQVcsQ0FBQztRQUNqQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztJQUN4QixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtY29tcG9uZW50Lm1vZGVsJztcblxuLyoqXG4gKiBQdXJlIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBkZXNpZ24gY2FudmFzIGxheW91dCwgZ3JpZCBjYWxjdWxhdGlvbnMsIGFuZCBzaXppbmcuXG4gKlxuICogSW1wbGVtZW50ZWQgYXMgZnJhbWV3b3JrLWluZGVwZW5kZW50IHB1cmUgZnVuY3Rpb25zIHBlciBSdWxlIDEwICYgMTEgKFB1cmUgTG9naWMgRmlyc3QpLlxuICovXG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGVmZmVjdGl2ZSBjb2x1bW4gc3BhbiBmb3IgYSBjb21wb25lbnQuXG4gKiBVc2VzIGxheW91dC5jb2x1bW5TcGFuIGlmIHNwZWNpZmllZCwgb3RoZXJ3aXNlIGRlZmF1bHRzIGJhc2VkIG9uIGNvbXBvbmVudCB0eXBlIChlLmcuIDIgZm9yIGJ1dHRvbiwgNCBmb3Igb3RoZXJzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRTcGFuKFxuICBjb21wOiBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uLFxuICB0b3RhbENvbHVtbnM6IG51bWJlciA9IDEyLFxuICBvdmVycmlkZVNwYW4/OiBudW1iZXIgfCBudWxsXG4pOiBudW1iZXIge1xuICBpZiAob3ZlcnJpZGVTcGFuICE9PSB1bmRlZmluZWQgJiYgb3ZlcnJpZGVTcGFuICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDEsIE1hdGgubWluKHRvdGFsQ29sdW1ucywgb3ZlcnJpZGVTcGFuKSk7XG4gIH1cbiAgY29uc3QgZGVmYXVsdFNwYW4gPSBjb21wLnR5cGUgPT09ICdidXR0b24nID8gMiA6IDQ7XG4gIGNvbnN0IHJhd1NwYW4gPSBjb21wLmxheW91dD8uY29sdW1uU3BhbiA/PyBkZWZhdWx0U3BhbjtcbiAgcmV0dXJuIE1hdGgubWF4KDEsIE1hdGgubWluKHRvdGFsQ29sdW1ucywgcmF3U3BhbikpO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBDU1MgYGdyaWQtY29sdW1uYCBzcGVjaWZpY2F0aW9uIHN0cmluZyBmb3IgYSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVHcmlkQ29sdW1uKFxuICBjb21wOiBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uLFxuICB0b3RhbENvbHVtbnM6IG51bWJlciA9IDEyLFxuICBzcGFuPzogbnVtYmVyXG4pOiBzdHJpbmcge1xuICBjb25zdCBlZmZlY3RpdmVTcGFuID0gc3BhbiA/PyByZXNvbHZlQ29tcG9uZW50U3Bhbihjb21wLCB0b3RhbENvbHVtbnMpO1xuICBjb25zdCBjbGFtcGVkID0gTWF0aC5tYXgoMSwgTWF0aC5taW4oZWZmZWN0aXZlU3BhbiwgdG90YWxDb2x1bW5zKSk7XG4gIGNvbnN0IGNvbCA9IGNvbXAubGF5b3V0Py5jb2x1bW47XG5cbiAgaWYgKGNvbCAmJiBjb2wgPj0gMSAmJiBjb2wgPD0gdG90YWxDb2x1bW5zKSB7XG4gICAgcmV0dXJuIGAke2NvbH0gLyBzcGFuICR7Y2xhbXBlZH1gO1xuICB9XG5cbiAgcmV0dXJuIGNvbXAubGF5b3V0Py5uZXdSb3cgPyBgMSAvIHNwYW4gJHtjbGFtcGVkfWAgOiBgc3BhbiAke2NsYW1wZWR9YDtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgQ1NTIGBncmlkLXJvd2Agc3BlY2lmaWNhdGlvbiBzdHJpbmcgZm9yIGEgY29tcG9uZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlR3JpZFJvdyhjb21wOiBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgY29uc3Qgcm93U3BhbiA9IGNvbXAubGF5b3V0Py5yb3dTcGFuO1xuICBpZiAocm93U3BhbiAmJiByb3dTcGFuID4gMSkge1xuICAgIHJldHVybiBgc3BhbiAke3Jvd1NwYW59YDtcbiAgfVxuICByZXR1cm4gJ2F1dG8nO1xufVxuXG4vKipcbiAqIE92ZXJoZWFkIGluIHBpeGVscyBmb3IgdGhlIFZpc3VhbCBDYW52YXMgY2FyZCAoY2FyZCBoZWFkZXIgMzJweCArIGNhcmQgYm9keSB2ZXJ0aWNhbCBwYWRkaW5nIDE2cHgpLlxuICogQWRkaW5nIHRoaXMgb3ZlcmhlYWQgdG8gdGhlIGNvbXBvbmVudCdzIGxvZ2ljYWwgaGVpZ2h0IGVuc3VyZXMgdGhhdCB0aGUgY2FudmFzIGNhcmQgYm9keVxuICogcmVuZGVycyBhdCB0aGUgZXhhY3Qgc2FtZSBwaXhlbCBkaW1lbnNpb25zIGFzIHRoZSBsaXZlIHByZXZpZXcgY29tcG9uZW50LlxuICovXG5leHBvcnQgY29uc3QgQ0FOVkFTX0NBUkRfT1ZFUkhFQUQgPSA0ODtcblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgQ1NTIGhlaWdodCBwcm9wZXJ0eSBmb3IgdGhlIGNhbnZhcyBjb21wb25lbnQgY2FyZC5cbiAqIEFjY291bnRzIGZvciB0aGUgY2FyZCBoZWFkZXIgYW5kIHBhZGRpbmcgb3ZlcmhlYWQgc28gdGhlIGlubmVyIG1vY2sgYm9keVxuICogYWNjdXJhdGVseSBtaXJyb3JzIHRoZSBydW50aW1lIGNvbXBvbmVudCBoZWlnaHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ2FudmFzQ2FyZEhlaWdodChcbiAgY29tcDogUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbixcbiAgb3ZlcnJpZGVDb21wb25lbnRIZWlnaHQ/OiBudW1iZXIgfCBudWxsLFxuICBvdmVyaGVhZDogbnVtYmVyID0gQ0FOVkFTX0NBUkRfT1ZFUkhFQURcbik6IHN0cmluZyB7XG4gIGlmIChvdmVycmlkZUNvbXBvbmVudEhlaWdodCAhPT0gdW5kZWZpbmVkICYmIG92ZXJyaWRlQ29tcG9uZW50SGVpZ2h0ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGAke292ZXJyaWRlQ29tcG9uZW50SGVpZ2h0ICsgb3ZlcmhlYWR9cHhgO1xuICB9XG4gIGNvbnN0IGggPSBjb21wLmxheW91dD8uaGVpZ2h0O1xuICBpZiAoIWggfHwgaCA9PT0gJ2F1dG8nKSByZXR1cm4gJ2F1dG8nO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZUludChoLCAxMCk7XG4gIHJldHVybiBpc05hTihwYXJzZWQpID8gaCA6IGAke3BhcnNlZCArIG92ZXJoZWFkfXB4YDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgQ1NTIG1pbi1oZWlnaHQgcHJvcGVydHkgZm9yIHRoZSBjYW52YXMgY29tcG9uZW50IGNhcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ2FudmFzQ2FyZE1pbkhlaWdodChcbiAgY29tcDogUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbixcbiAgb3ZlcnJpZGVDb21wb25lbnRIZWlnaHQ/OiBudW1iZXIgfCBudWxsLFxuICBvdmVyaGVhZDogbnVtYmVyID0gQ0FOVkFTX0NBUkRfT1ZFUkhFQURcbik6IHN0cmluZyB7XG4gIGlmIChvdmVycmlkZUNvbXBvbmVudEhlaWdodCAhPT0gdW5kZWZpbmVkICYmIG92ZXJyaWRlQ29tcG9uZW50SGVpZ2h0ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGAke292ZXJyaWRlQ29tcG9uZW50SGVpZ2h0ICsgb3ZlcmhlYWR9cHhgO1xuICB9XG4gIGNvbnN0IG1pbkggPSBjb21wLmxheW91dD8ubWluSGVpZ2h0O1xuICBpZiAoIW1pbkggfHwgbWluSCA9PT0gJ2F1dG8nKSByZXR1cm4gJ2F1dG8nO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZUludChtaW5ILCAxMCk7XG4gIHJldHVybiBpc05hTihwYXJzZWQpID8gbWluSCA6IGAke3BhcnNlZCArIG92ZXJoZWFkfXB4YDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgQ1NTIGhlaWdodCBwcm9wZXJ0eSBmb3IgYSBydW50aW1lIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRIZWlnaHQoXG4gIGNvbXA6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24sXG4gIG92ZXJyaWRlSGVpZ2h0PzogbnVtYmVyIHwgbnVsbFxuKTogc3RyaW5nIHtcbiAgaWYgKG92ZXJyaWRlSGVpZ2h0ICE9PSB1bmRlZmluZWQgJiYgb3ZlcnJpZGVIZWlnaHQgIT09IG51bGwpIHtcbiAgICByZXR1cm4gYCR7b3ZlcnJpZGVIZWlnaHR9cHhgO1xuICB9XG4gIHJldHVybiBjb21wLmxheW91dD8uaGVpZ2h0IHx8ICdhdXRvJztcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgQ1NTIG1pbi1oZWlnaHQgcHJvcGVydHkgZm9yIGEgcnVudGltZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50TWluSGVpZ2h0KFxuICBjb21wOiBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uLFxuICBvdmVycmlkZUhlaWdodD86IG51bWJlciB8IG51bGxcbik6IHN0cmluZyB7XG4gIGlmIChvdmVycmlkZUhlaWdodCAhPT0gdW5kZWZpbmVkICYmIG92ZXJyaWRlSGVpZ2h0ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGAke292ZXJyaWRlSGVpZ2h0fXB4YDtcbiAgfVxuICByZXR1cm4gY29tcC5sYXlvdXQ/Lm1pbkhlaWdodCB8fCAnYXV0byc7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyBuZXcgc25hcHBlZCBzcGFuIGdpdmVuIGRyYWcgZGVsdGFYLCBjb2x1bW4gd2lkdGgsIGFuZCBncmlkIGdhcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVNuYXBwZWRTcGFuKFxuICBkZWx0YVg6IG51bWJlcixcbiAgc3RhcnRTcGFuOiBudW1iZXIsXG4gIGNvbFdpZHRoOiBudW1iZXIsXG4gIGdhcDogbnVtYmVyLFxuICB0b3RhbENvbHM6IG51bWJlclxuKTogbnVtYmVyIHtcbiAgY29uc3Qgc3RlcCA9IGNvbFdpZHRoICsgZ2FwO1xuICBpZiAoc3RlcCA8PSAwKSByZXR1cm4gc3RhcnRTcGFuO1xuICBjb25zdCBzcGFuRGVsdGEgPSBNYXRoLnJvdW5kKGRlbHRhWCAvIHN0ZXApO1xuICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5taW4odG90YWxDb2xzLCBzdGFydFNwYW4gKyBzcGFuRGVsdGEpKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIG5ldyBoZWlnaHQgZ2l2ZW4gZHJhZyBkZWx0YVkgYW5kIG1pbmltdW0gaGVpZ2h0IGNvbnN0cmFpbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVTbmFwcGVkSGVpZ2h0KFxuICBkZWx0YVk6IG51bWJlcixcbiAgc3RhcnRIZWlnaHQ6IG51bWJlcixcbiAgbWluSGVpZ2h0OiBudW1iZXIgPSA1MFxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubWF4KG1pbkhlaWdodCwgTWF0aC5yb3VuZChzdGFydEhlaWdodCArIGRlbHRhWSkpO1xufVxuXG4vKipcbiAqIE1hcHMgY29tcG9uZW50IHR5cGUgdG8gc3RhbmRhcmQgaWNvbiBpZGVudGlmaWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50SWNvbk5hbWUodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnaW5wdXQnOiByZXR1cm4gJ3RleHQtZmllbGRzJztcbiAgICBjYXNlICdkcm9wZG93bic6IHJldHVybiAnZHJvcGRvd24nO1xuICAgIGNhc2UgJ2RhdGUnOiByZXR1cm4gJ2NhbGVuZGFyJztcbiAgICBjYXNlICdudW1iZXInOiByZXR1cm4gJ251bWJlcic7XG4gICAgY2FzZSAnY2hlY2tib3gnOiByZXR1cm4gJ2NoZWNrYm94JztcbiAgICBjYXNlICdidXR0b24nOiByZXR1cm4gJ2J1dHRvbic7XG4gICAgY2FzZSAna3BpLWNhcmQnOiByZXR1cm4gJ2twaSc7XG4gICAgY2FzZSAnY2hhcnQnOiByZXR1cm4gJ2NoYXJ0LWJhcic7XG4gICAgZGVmYXVsdDogcmV0dXJuICdib3gnO1xuICB9XG59XG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLWxheW91dC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZmVhdHVyZXMvZGVzaWduZXIvdXRpbGl0aWVzL2NhbnZhcy1sYXlvdXQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxJQUErQixFQUMvQixlQUF1QixFQUFFLEVBQ3pCLFlBQTRCO0lBRTVCLElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksV0FBVyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLElBQStCLEVBQy9CLGVBQXVCLEVBQUUsRUFDekIsSUFBYTtJQUViLE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdB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LENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTyxhQUFhLENBQUM7UUFDbkMsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQztRQUNuQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDO1FBQy9CLEtBQUssWUFBWSxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUM7UUFDckMsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLFFBQVEsQ0FBQztRQUMvQixLQUFLLFVBQVUsQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDO1FBQ25DLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUM7UUFDL0IsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztRQUM5QixLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sV0FBVyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO0lBQ3hCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuXG4vKipcbiAqIFB1cmUgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGRlc2lnbiBjYW52YXMgbGF5b3V0LCBncmlkIGNhbGN1bGF0aW9ucywgYW5kIHNpemluZy5cbiAqXG4gKiBJbXBsZW1lbnRlZCBhcyBmcmFtZXdvcmstaW5kZXBlbmRlbnQgcHVyZSBmdW5jdGlvbnMgcGVyIFJ1bGUgMTAgJiAxMSAoUHVyZSBMb2dpYyBGaXJzdCkuXG4gKi9cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZWZmZWN0aXZlIGNvbHVtbiBzcGFuIGZvciBhIGNvbXBvbmVudC5cbiAqIFVzZXMgbGF5b3V0LmNvbHVtblNwYW4gaWYgc3BlY2lmaWVkLCBvdGhlcndpc2UgZGVmYXVsdHMgYmFzZWQgb24gY29tcG9uZW50IHR5cGUgKGUuZy4gMiBmb3IgYnV0dG9uLCA0IGZvciBvdGhlcnMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudFNwYW4oXG4gIGNvbXA6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24sXG4gIHRvdGFsQ29sdW1uczogbnVtYmVyID0gMTIsXG4gIG92ZXJyaWRlU3Bhbj86IG51bWJlciB8IG51bGxcbik6IG51bWJlciB7XG4gIGlmIChvdmVycmlkZVNwYW4gIT09IHVuZGVmaW5lZCAmJiBvdmVycmlkZVNwYW4gIT09IG51bGwpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5taW4odG90YWxDb2x1bW5zLCBvdmVycmlkZVNwYW4pKTtcbiAgfVxuICBjb25zdCBkZWZhdWx0U3BhbiA9IGNvbXAudHlwZSA9PT0gJ2J1dHRvbicgPyAyIDogNDtcbiAgY29uc3QgcmF3U3BhbiA9IGNvbXAubGF5b3V0Py5jb2x1bW5TcGFuID8/IGRlZmF1bHRTcGFuO1xuICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5taW4odG90YWxDb2x1bW5zLCByYXdTcGFuKSk7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIENTUyBgZ3JpZC1jb2x1bW5gIHNwZWNpZmljYXRpb24gc3RyaW5nIGZvciBhIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUdyaWRDb2x1bW4oXG4gIGNvbXA6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24sXG4gIHRvdGFsQ29sdW1uczogbnVtYmVyID0gMTIsXG4gIHNwYW4/OiBudW1iZXJcbik6IHN0cmluZyB7XG4gIGNvbnN0IGVmZmVjdGl2ZVNwYW4gPSBzcGFuID8/IHJlc29sdmVDb21wb25lbnRTcGFuKGNvbXAsIHRvdGFsQ29sdW1ucyk7XG4gIGNvbnN0IGNsYW1wZWQgPSBNYXRoLm1heCgxLCBNYXRoLm1pbihlZmZlY3RpdmVTcGFuLCB0b3RhbENvbHVtbnMpKTtcbiAgY29uc3QgY29sID0gY29tcC5sYXlvdXQ/LmNvbHVtbjtcblxuICBpZiAoY29sICYmIGNvbCA+PSAxICYmIGNvbCA8PSB0b3RhbENvbHVtbnMpIHtcbiAgICByZXR1cm4gYCR7Y29sfSAvIHNwYW4gJHtjbGFtcGVkfWA7XG4gIH1cblxuICByZXR1cm4gY29tcC5sYXlvdXQ/Lm5ld1JvdyA/IGAxIC8gc3BhbiAke2NsYW1wZWR9YCA6IGBzcGFuICR7Y2xhbXBlZH1gO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBDU1MgYGdyaWQtcm93YCBzcGVjaWZpY2F0aW9uIHN0cmluZyBmb3IgYSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVHcmlkUm93KGNvbXA6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24pOiBzdHJpbmcge1xuICBjb25zdCByb3dTcGFuID0gY29tcC5sYXlvdXQ/LnJvd1NwYW47XG4gIGlmIChyb3dTcGFuICYmIHJvd1NwYW4gPiAxKSB7XG4gICAgcmV0dXJuIGBzcGFuICR7cm93U3Bhbn1gO1xuICB9XG4gIHJldHVybiAnYXV0byc7XG59XG5cbi8qKlxuICogT3ZlcmhlYWQgaW4gcGl4ZWxzIGZvciB0aGUgVmlzdWFsIENhbnZhcyBjYXJkIChjYXJkIGhlYWRlciAzMnB4ICsgY2FyZCBib2R5IHZlcnRpY2FsIHBhZGRpbmcgMTZweCkuXG4gKiBBZGRpbmcgdGhpcyBvdmVyaGVhZCB0byB0aGUgY29tcG9uZW50J3MgbG9naWNhbCBoZWlnaHQgZW5zdXJlcyB0aGF0IHRoZSBjYW52YXMgY2FyZCBib2R5XG4gKiByZW5kZXJzIGF0IHRoZSBleGFjdCBzYW1lIHBpeGVsIGRpbWVuc2lvbnMgYXMgdGhlIGxpdmUgcHJldmlldyBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBDQU5WQVNfQ0FSRF9PVkVSSEVBRCA9IDQ4O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBDU1MgaGVpZ2h0IHByb3BlcnR5IGZvciB0aGUgY2FudmFzIGNvbXBvbmVudCBjYXJkLlxuICogQWNjb3VudHMgZm9yIHRoZSBjYXJkIGhlYWRlciBhbmQgcGFkZGluZyBvdmVyaGVhZCBzbyB0aGUgaW5uZXIgbW9jayBib2R5XG4gKiBhY2N1cmF0ZWx5IG1pcnJvcnMgdGhlIHJ1bnRpbWUgY29tcG9uZW50IGhlaWdodC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDYW52YXNDYXJkSGVpZ2h0KFxuICBjb21wOiBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uLFxuICBvdmVycmlkZUNvbXBvbmVudEhlaWdodD86IG51bWJlciB8IG51bGwsXG4gIG92ZXJoZWFkOiBudW1iZXIgPSBDQU5WQVNfQ0FSRF9PVkVSSEVBRFxuKTogc3RyaW5nIHtcbiAgaWYgKG92ZXJyaWRlQ29tcG9uZW50SGVpZ2h0ICE9PSB1bmRlZmluZWQgJiYgb3ZlcnJpZGVDb21wb25lbnRIZWlnaHQgIT09IG51bGwpIHtcbiAgICByZXR1cm4gYCR7b3ZlcnJpZGVDb21wb25lbnRIZWlnaHQgKyBvdmVyaGVhZH1weGA7XG4gIH1cbiAgY29uc3QgaCA9IGNvbXAubGF5b3V0Py5oZWlnaHQ7XG4gIGlmICghaCB8fCBoID09PSAnYXV0bycpIHJldHVybiAnYXV0byc7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KGgsIDEwKTtcbiAgcmV0dXJuIGlzTmFOKHBhcnNlZCkgPyBoIDogYCR7cGFyc2VkICsgb3ZlcmhlYWR9cHhgO1xufVxuXG4vKipcbiAqIE5hdHVyYWwgbWluaW11bSBoZWlnaHQgaW4gcGl4ZWxzIHJlcXVpcmVkIGZvciBhIGNvbXBvbmVudCB0eXBlIHRvIHJlbmRlciB3aXRob3V0IGNyYW1waW5nIG9yIG92ZXJmbG93LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmF0dXJhbE1pbkhlaWdodCh0eXBlOiBzdHJpbmcpOiBudW1iZXIge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdjaGFydCc6XG4gICAgICByZXR1cm4gMjQwO1xuICAgIGNhc2UgJ2twaS1jYXJkJzpcbiAgICAgIHJldHVybiAxMDA7XG4gICAgY2FzZSAndGFibGUnOlxuICAgIGNhc2UgJ2dyaWQnOlxuICAgICAgcmV0dXJuIDIwMDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIDA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgQ1NTIG1pbi1oZWlnaHQgcHJvcGVydHkgZm9yIHRoZSBjYW52YXMgY29tcG9uZW50IGNhcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ2FudmFzQ2FyZE1pbkhlaWdodChcbiAgY29tcDogUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbixcbiAgb3ZlcnJpZGVDb21wb25lbnRIZWlnaHQ/OiBudW1iZXIgfCBudWxsLFxuICBvdmVyaGVhZDogbnVtYmVyID0gQ0FOVkFTX0NBUkRfT1ZFUkhFQURcbik6IHN0cmluZyB7XG4gIGNvbnN0IG5hdHVyYWxNaW4gPSBnZXRDb21wb25lbnROYXR1cmFsTWluSGVpZ2h0KGNvbXAudHlwZSk7XG4gIGlmIChvdmVycmlkZUNvbXBvbmVudEhlaWdodCAhPT0gdW5kZWZpbmVkICYmIG92ZXJyaWRlQ29tcG9uZW50SGVpZ2h0ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGAke01hdGgubWF4KG5hdHVyYWxNaW4sIG92ZXJyaWRlQ29tcG9uZW50SGVpZ2h0KSArIG92ZXJoZWFkfXB4YDtcbiAgfVxuICBjb25zdCBtaW5IID0gY29tcC5sYXlvdXQ/Lm1pbkhlaWdodDtcbiAgaWYgKCFtaW5IIHx8IG1pbkggPT09ICdhdXRvJykge1xuICAgIHJldHVybiBuYXR1cmFsTWluID4gMCA/IGAke25hdHVyYWxNaW4gKyBvdmVyaGVhZH1weGAgOiAnYXV0byc7XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQobWluSCwgMTApO1xuICByZXR1cm4gaXNOYU4ocGFyc2VkKSA/IG1pbkggOiBgJHtNYXRoLm1heChuYXR1cmFsTWluLCBwYXJzZWQpICsgb3ZlcmhlYWR9cHhgO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBDU1MgaGVpZ2h0IHByb3BlcnR5IGZvciBhIHJ1bnRpbWUgY29tcG9uZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudEhlaWdodChcbiAgY29tcDogUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbixcbiAgb3ZlcnJpZGVIZWlnaHQ/OiBudW1iZXIgfCBudWxsXG4pOiBzdHJpbmcge1xuICBjb25zdCBuYXR1cmFsTWluID0gZ2V0Q29tcG9uZW50TmF0dXJhbE1pbkhlaWdodChjb21wLnR5cGUpO1xuICBpZiAob3ZlcnJpZGVIZWlnaHQgIT09IHVuZGVmaW5lZCAmJiBvdmVycmlkZUhlaWdodCAhPT0gbnVsbCkge1xuICAgIHJldHVybiBgJHtNYXRoLm1heChuYXR1cmFsTWluLCBvdmVycmlkZUhlaWdodCl9cHhgO1xuICB9XG4gIGNvbnN0IGggPSBjb21wLmxheW91dD8uaGVpZ2h0O1xuICBpZiAoIWggfHwgaCA9PT0gJ2F1dG8nKSByZXR1cm4gJ2F1dG8nO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZUludChoLCAxMCk7XG4gIGlmIChpc05hTihwYXJzZWQpKSByZXR1cm4gaDtcbiAgcmV0dXJuIGAke01hdGgubWF4KG5hdHVyYWxNaW4sIHBhcnNlZCl9cHhgO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBDU1MgbWluLWhlaWdodCBwcm9wZXJ0eSBmb3IgYSBydW50aW1lIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRNaW5IZWlnaHQoXG4gIGNvbXA6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24sXG4gIG92ZXJyaWRlSGVpZ2h0PzogbnVtYmVyIHwgbnVsbFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbmF0dXJhbE1pbiA9IGdldENvbXBvbmVudE5hdHVyYWxNaW5IZWlnaHQoY29tcC50eXBlKTtcbiAgaWYgKG92ZXJyaWRlSGVpZ2h0ICE9PSB1bmRlZmluZWQgJiYgb3ZlcnJpZGVIZWlnaHQgIT09IG51bGwpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5tYXgobmF0dXJhbE1pbiwgb3ZlcnJpZGVIZWlnaHQpfXB4YDtcbiAgfVxuICBjb25zdCBtaW5IID0gY29tcC5sYXlvdXQ/Lm1pbkhlaWdodDtcbiAgaWYgKCFtaW5IIHx8IG1pbkggPT09ICdhdXRvJykge1xuICAgIHJldHVybiBuYXR1cmFsTWluID4gMCA/IGAke25hdHVyYWxNaW59cHhgIDogJ2F1dG8nO1xuICB9XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KG1pbkgsIDEwKTtcbiAgcmV0dXJuIGlzTmFOKHBhcnNlZCkgPyBtaW5IIDogYCR7TWF0aC5tYXgobmF0dXJhbE1pbiwgcGFyc2VkKX1weGA7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyBuZXcgc25hcHBlZCBzcGFuIGdpdmVuIGRyYWcgZGVsdGFYLCBjb2x1bW4gd2lkdGgsIGFuZCBncmlkIGdhcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVNuYXBwZWRTcGFuKFxuICBkZWx0YVg6IG51bWJlcixcbiAgc3RhcnRTcGFuOiBudW1iZXIsXG4gIGNvbFdpZHRoOiBudW1iZXIsXG4gIGdhcDogbnVtYmVyLFxuICB0b3RhbENvbHM6IG51bWJlclxuKTogbnVtYmVyIHtcbiAgY29uc3Qgc3RlcCA9IGNvbFdpZHRoICsgZ2FwO1xuICBpZiAoc3RlcCA8PSAwKSByZXR1cm4gc3RhcnRTcGFuO1xuICBjb25zdCBzcGFuRGVsdGEgPSBNYXRoLnJvdW5kKGRlbHRhWCAvIHN0ZXApO1xuICByZXR1cm4gTWF0aC5tYXgoMSwgTWF0aC5taW4odG90YWxDb2xzLCBzdGFydFNwYW4gKyBzcGFuRGVsdGEpKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIG5ldyBoZWlnaHQgZ2l2ZW4gZHJhZyBkZWx0YVkgYW5kIG1pbmltdW0gaGVpZ2h0IGNvbnN0cmFpbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVTbmFwcGVkSGVpZ2h0KFxuICBkZWx0YVk6IG51bWJlcixcbiAgc3RhcnRIZWlnaHQ6IG51bWJlcixcbiAgbWluSGVpZ2h0OiBudW1iZXIgPSA1MFxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubWF4KG1pbkhlaWdodCwgTWF0aC5yb3VuZChzdGFydEhlaWdodCArIGRlbHRhWSkpO1xufVxuXG4vKipcbiAqIE1hcHMgY29tcG9uZW50IHR5cGUgdG8gc3RhbmRhcmQgaWNvbiBpZGVudGlmaWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50SWNvbk5hbWUodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnaW5wdXQnOiByZXR1cm4gJ3RleHQtZmllbGRzJztcbiAgICBjYXNlICdkcm9wZG93bic6IHJldHVybiAnZHJvcGRvd24nO1xuICAgIGNhc2UgJ2RhdGUnOiByZXR1cm4gJ2NhbGVuZGFyJztcbiAgICBjYXNlICdkYXRlLXJhbmdlJzogcmV0dXJuICdjYWxlbmRhcic7XG4gICAgY2FzZSAnbnVtYmVyJzogcmV0dXJuICdudW1iZXInO1xuICAgIGNhc2UgJ2NoZWNrYm94JzogcmV0dXJuICdjaGVja2JveCc7XG4gICAgY2FzZSAnYnV0dG9uJzogcmV0dXJuICdidXR0b24nO1xuICAgIGNhc2UgJ2twaS1jYXJkJzogcmV0dXJuICdrcGknO1xuICAgIGNhc2UgJ2NoYXJ0JzogcmV0dXJuICdjaGFydC1iYXInO1xuICAgIGRlZmF1bHQ6IHJldHVybiAnYm94JztcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ReportExportService, sanitizeCsvCell, generateCsvContent } from './services/report-export.service';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export { ReportExportService, sanitizeCsvCell, generateCsvContent, generateExcelXml, generateHtmlContent, formatFilterSummary, } from './services/report-export.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9mZWF0dXJlcy9leHBvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3BCLE1BQU0sa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7XG4gIEV4cG9ydENvbHVtbixcbiAgQ3N2RXhwb3J0T3B0aW9ucyxcbiAgRXhjZWxFeHBvcnRPcHRpb25zLFxuICBIdG1sRXhwb3J0T3B0aW9ucyxcbiAgSnNvbkV4cG9ydE9wdGlvbnMsXG4gIEJyYW5kZWRIZWFkZXJPcHRpb25zLFxufSBmcm9tICcuL21vZGVscy9leHBvcnQubW9kZWxzJztcbmV4cG9ydCB7XG4gIFJlcG9ydEV4cG9ydFNlcnZpY2UsXG4gIHNhbml0aXplQ3N2Q2VsbCxcbiAgZ2VuZXJhdGVDc3ZDb250ZW50LFxuICBnZW5lcmF0ZUV4Y2VsWG1sLFxuICBnZW5lcmF0ZUh0bWxDb250ZW50LFxuICBmb3JtYXRGaWx0ZXJTdW1tYXJ5LFxufSBmcm9tICcuL3NlcnZpY2VzL3JlcG9ydC1leHBvcnQuc2VydmljZSc7XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2ZlYXR1cmVzL2V4cG9ydC9tb2RlbHMvZXhwb3J0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFeHBvcnRDb2x1bW4ge1xuICBmaWVsZDogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbiAgZm9ybWF0dGVyPzogKHZhbHVlOiBhbnksIHJvdz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2ZlYXR1cmVzL2V4cG9ydC9tb2RlbHMvZXhwb3J0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFeHBvcnRDb2x1bW4ge1xuICBmaWVsZDogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbiAgZm9ybWF0dGVyPzogKHZhbHVlOiBhbnksIHJvdz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRlZEhlYWRlck9wdGlvbnMge1xuICBjb21wYW55TmFtZT86IHN0cmluZztcbiAgYnJhbmNoTmFtZT86IHN0cmluZztcbiAgcmVwb3J0VGl0bGU/OiBzdHJpbmc7XG4gIGdlbmVyYXRlZEF0PzogRGF0ZSB8IHN0cmluZztcbiAgZ2VuZXJhdGVkQnk/OiBzdHJpbmc7XG4gIGFjdGl2ZUZpbHRlclN1bW1hcnk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDc3ZFeHBvcnRPcHRpb25zIHtcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBFeHBvcnRDb2x1bW5bXTtcbiAgaW5jbHVkZUhlYWRlcj86IGJvb2xlYW47XG4gIGRlbGltaXRlcj86IHN0cmluZztcbiAgYWRkQm9tPzogYm9vbGVhbjtcbiAgYnJhbmRlZEhlYWRlcj86IEJyYW5kZWRIZWFkZXJPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2VsRXhwb3J0T3B0aW9ucyB7XG4gIGZpbGVOYW1lPzogc3RyaW5nO1xuICBzaGVldE5hbWU/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBFeHBvcnRDb2x1bW5bXTtcbiAgaW5jbHVkZUhlYWRlcj86IGJvb2xlYW47XG4gIGJyYW5kZWRIZWFkZXI/OiBCcmFuZGVkSGVhZGVyT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdG1sRXhwb3J0T3B0aW9ucyB7XG4gIGZpbGVOYW1lPzogc3RyaW5nO1xuICBjb2x1bW5zPzogRXhwb3J0Q29sdW1uW107XG4gIGJyYW5kZWRIZWFkZXI/OiBCcmFuZGVkSGVhZGVyT3B0aW9ucztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGF1dG9QcmludD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkV4cG9ydE9wdGlvbnMge1xuICBmaWxlTmFtZT86IHN0cmluZztcbiAgcHJldHR5PzogYm9vbGVhbjtcbn1cbiJdfQ==
|