bways-report 0.1.0
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/LICENSE +26 -0
- package/README.md +477 -0
- package/esm2022/bways-report.mjs +5 -0
- package/esm2022/lib/core/errors/index.mjs +2 -0
- package/esm2022/lib/core/errors/reporting-errors.mjs +65 -0
- package/esm2022/lib/core/index.mjs +8 -0
- package/esm2022/lib/core/models/component-event.model.mjs +8 -0
- package/esm2022/lib/core/models/index.mjs +5 -0
- package/esm2022/lib/core/models/report-component.model.mjs +10 -0
- package/esm2022/lib/core/models/report-datasource.model.mjs +9 -0
- package/esm2022/lib/core/models/report-definition.model.mjs +13 -0
- package/esm2022/lib/core/models/report-grid.model.mjs +10 -0
- package/esm2022/lib/core/models/report-layout.model.mjs +9 -0
- package/esm2022/lib/core/models/report-parameter.model.mjs +9 -0
- package/esm2022/lib/core/models/validation.model.mjs +8 -0
- package/esm2022/lib/core/registry/component-category.mjs +8 -0
- package/esm2022/lib/core/registry/component-registry.mjs +90 -0
- package/esm2022/lib/core/registry/index.mjs +2 -0
- package/esm2022/lib/core/registry/property-definition.model.mjs +10 -0
- package/esm2022/lib/core/services/dynamic-form-builder.service.mjs +55 -0
- package/esm2022/lib/core/services/index.mjs +3 -0
- package/esm2022/lib/core/services/report-session-context.service.mjs +314 -0
- package/esm2022/lib/core/tokens/index.mjs +3 -0
- package/esm2022/lib/core/tokens/reporting-config.token.mjs +26 -0
- package/esm2022/lib/core/tokens/session-context.token.mjs +18 -0
- package/esm2022/lib/core/utilities/id-generator.mjs +17 -0
- package/esm2022/lib/core/utilities/index.mjs +3 -0
- package/esm2022/lib/core/utilities/schema-migration.mjs +38 -0
- package/esm2022/lib/core/utils/identifier-humanizer.mjs +88 -0
- package/esm2022/lib/core/validation/index.mjs +2 -0
- package/esm2022/lib/core/validation/validation-factory.mjs +70 -0
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +107 -0
- package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +119 -0
- package/esm2022/lib/data-access/adapters/index.mjs +3 -0
- package/esm2022/lib/data-access/contracts/data-source.contract.mjs +28 -0
- package/esm2022/lib/data-access/contracts/index.mjs +7 -0
- package/esm2022/lib/data-access/contracts/lookup.contract.mjs +6 -0
- package/esm2022/lib/data-access/contracts/master-data.provider.mjs +24 -0
- package/esm2022/lib/data-access/contracts/report-persistence.contract.mjs +25 -0
- package/esm2022/lib/data-access/contracts/schema-discovery.contract.mjs +7 -0
- package/esm2022/lib/data-access/contracts/translation.contract.mjs +9 -0
- package/esm2022/lib/data-access/index.mjs +3 -0
- package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +542 -0
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +843 -0
- package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +556 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +845 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +185 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +452 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +350 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +175 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +137 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +608 -0
- package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +225 -0
- package/esm2022/lib/features/designer/designer.component.mjs +285 -0
- package/esm2022/lib/features/designer/index.mjs +7 -0
- package/esm2022/lib/features/designer/services/designer-state.service.mjs +310 -0
- package/esm2022/lib/features/designer/services/index.mjs +2 -0
- package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +124 -0
- package/esm2022/lib/features/export/index.mjs +2 -0
- package/esm2022/lib/features/export/models/export.models.mjs +2 -0
- package/esm2022/lib/features/export/services/report-export.service.mjs +107 -0
- package/esm2022/lib/features/index.mjs +6 -0
- package/esm2022/lib/features/persistence/index.mjs +2 -0
- package/esm2022/lib/features/persistence/services/index.mjs +4 -0
- package/esm2022/lib/features/persistence/services/report-store.service.mjs +183 -0
- package/esm2022/lib/features/persistence/services/report-versioning.service.mjs +81 -0
- package/esm2022/lib/features/persistence/services/schema-validator.service.mjs +102 -0
- package/esm2022/lib/features/routing/components/routed-report-designer.component.mjs +156 -0
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +163 -0
- package/esm2022/lib/features/routing/index.mjs +6 -0
- package/esm2022/lib/features/routing/models/report-route.models.mjs +2 -0
- package/esm2022/lib/features/routing/report-routes.mjs +49 -0
- package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +22 -0
- package/esm2022/lib/features/routing/services/report-menu.service.mjs +77 -0
- package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +222 -0
- package/esm2022/lib/features/runtime/index.mjs +4 -0
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +409 -0
- package/esm2022/lib/features/runtime/report-runtime.component.mjs +147 -0
- package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +88 -0
- package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +361 -0
- package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +86 -0
- package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +91 -0
- package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +204 -0
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +476 -0
- package/esm2022/lib/primitives/components/index.mjs +10 -0
- package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +88 -0
- package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +197 -0
- package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +110 -0
- package/esm2022/lib/primitives/index.mjs +3 -0
- package/esm2022/lib/primitives/register-builtins.mjs +328 -0
- package/esm2022/lib/provide-reporting.mjs +92 -0
- package/esm2022/public-api.mjs +9 -0
- package/fesm2022/bways-report.mjs +10360 -0
- package/fesm2022/bways-report.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/core/errors/index.d.ts +1 -0
- package/lib/core/errors/reporting-errors.d.ts +42 -0
- package/lib/core/index.d.ts +7 -0
- package/lib/core/models/component-event.model.d.ts +37 -0
- package/lib/core/models/index.d.ts +11 -0
- package/lib/core/models/report-component.model.d.ts +95 -0
- package/lib/core/models/report-datasource.model.d.ts +39 -0
- package/lib/core/models/report-definition.model.d.ts +100 -0
- package/lib/core/models/report-grid.model.d.ts +73 -0
- package/lib/core/models/report-layout.model.d.ts +43 -0
- package/lib/core/models/report-parameter.model.d.ts +22 -0
- package/lib/core/models/validation.model.d.ts +30 -0
- package/lib/core/registry/component-category.d.ts +16 -0
- package/lib/core/registry/component-registry.d.ts +101 -0
- package/lib/core/registry/index.d.ts +4 -0
- package/lib/core/registry/property-definition.model.d.ts +38 -0
- package/lib/core/services/dynamic-form-builder.service.d.ts +30 -0
- package/lib/core/services/index.d.ts +3 -0
- package/lib/core/services/report-session-context.service.d.ts +87 -0
- package/lib/core/tokens/index.d.ts +4 -0
- package/lib/core/tokens/reporting-config.token.d.ts +42 -0
- package/lib/core/tokens/session-context.token.d.ts +36 -0
- package/lib/core/utilities/id-generator.d.ts +9 -0
- package/lib/core/utilities/index.d.ts +3 -0
- package/lib/core/utilities/schema-migration.d.ts +10 -0
- package/lib/core/utils/identifier-humanizer.d.ts +22 -0
- package/lib/core/validation/index.d.ts +1 -0
- package/lib/core/validation/validation-factory.d.ts +31 -0
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +19 -0
- package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +20 -0
- package/lib/data-access/adapters/index.d.ts +2 -0
- package/lib/data-access/contracts/data-source.contract.d.ts +37 -0
- package/lib/data-access/contracts/index.d.ts +9 -0
- package/lib/data-access/contracts/lookup.contract.d.ts +32 -0
- package/lib/data-access/contracts/master-data.provider.d.ts +54 -0
- package/lib/data-access/contracts/report-persistence.contract.d.ts +36 -0
- package/lib/data-access/contracts/schema-discovery.contract.d.ts +52 -0
- package/lib/data-access/contracts/translation.contract.d.ts +16 -0
- package/lib/data-access/index.d.ts +2 -0
- package/lib/features/designer/components/component-palette/component-palette.component.d.ts +39 -0
- package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +42 -0
- package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +36 -0
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +68 -0
- package/lib/features/designer/components/property-editor/property-editor-general.component.d.ts +20 -0
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +20 -0
- package/lib/features/designer/components/property-editor/property-editor-layout.component.d.ts +18 -0
- package/lib/features/designer/components/property-editor/property-editor-report.component.d.ts +15 -0
- package/lib/features/designer/components/property-editor/property-editor-validation.component.d.ts +12 -0
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +44 -0
- package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +18 -0
- package/lib/features/designer/designer.component.d.ts +36 -0
- package/lib/features/designer/index.d.ts +7 -0
- package/lib/features/designer/services/designer-state.service.d.ts +103 -0
- package/lib/features/designer/services/index.d.ts +2 -0
- package/lib/features/designer/utilities/canvas-layout.util.d.ts +55 -0
- package/lib/features/export/index.d.ts +2 -0
- package/lib/features/export/models/export.models.d.ts +16 -0
- package/lib/features/export/services/report-export.service.d.ts +27 -0
- package/lib/features/index.d.ts +5 -0
- package/lib/features/persistence/index.d.ts +1 -0
- package/lib/features/persistence/services/index.d.ts +5 -0
- package/lib/features/persistence/services/report-store.service.d.ts +53 -0
- package/lib/features/persistence/services/report-versioning.service.d.ts +29 -0
- package/lib/features/persistence/services/schema-validator.service.d.ts +34 -0
- package/lib/features/routing/components/routed-report-designer.component.d.ts +18 -0
- package/lib/features/routing/components/routed-report-runtime.component.d.ts +18 -0
- package/lib/features/routing/index.d.ts +6 -0
- package/lib/features/routing/models/report-route.models.d.ts +41 -0
- package/lib/features/routing/report-routes.d.ts +16 -0
- package/lib/features/routing/resolvers/report.resolver.d.ts +7 -0
- package/lib/features/routing/services/report-menu.service.d.ts +30 -0
- package/lib/features/runtime/dynamic-renderer.component.d.ts +30 -0
- package/lib/features/runtime/index.d.ts +3 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +94 -0
- package/lib/features/runtime/report-runtime.component.d.ts +26 -0
- package/lib/primitives/components/button/rpt-button.component.d.ts +19 -0
- package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +45 -0
- package/lib/primitives/components/checkbox/rpt-checkbox.component.d.ts +14 -0
- package/lib/primitives/components/date/rpt-date.component.d.ts +17 -0
- package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +32 -0
- package/lib/primitives/components/icon/rpt-icon.component.d.ts +41 -0
- package/lib/primitives/components/index.d.ts +12 -0
- package/lib/primitives/components/input/rpt-input.component.d.ts +16 -0
- package/lib/primitives/components/kpi-card/rpt-kpi-card.component.d.ts +43 -0
- package/lib/primitives/components/number/rpt-number.component.d.ts +20 -0
- package/lib/primitives/index.d.ts +2 -0
- package/lib/primitives/register-builtins.d.ts +11 -0
- package/lib/provide-reporting.d.ts +75 -0
- package/package.json +55 -0
- package/public-api.d.ts +5 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import { generateId } from '../core/utilities/id-generator';
|
|
2
|
+
import { RptButtonComponent, RptCheckboxComponent, RptDateComponent, RptDropdownComponent, RptInputComponent, RptNumberComponent, RptKpiCardComponent, ReportChartBridgeComponent, } from './components';
|
|
3
|
+
/**
|
|
4
|
+
* Registers all built-in primitive components with the ComponentRegistry.
|
|
5
|
+
*
|
|
6
|
+
* This provides the baseline components for any reporting page.
|
|
7
|
+
* Host applications can override any of these by calling `registry.register()`
|
|
8
|
+
* with their own custom component after calling this function.
|
|
9
|
+
*
|
|
10
|
+
* @param registry - The ComponentRegistry instance to populate.
|
|
11
|
+
*/
|
|
12
|
+
export function registerBuiltinComponents(registry) {
|
|
13
|
+
// 1. Text Input
|
|
14
|
+
registry.register({
|
|
15
|
+
type: 'input',
|
|
16
|
+
displayName: 'Text Input',
|
|
17
|
+
category: 'input',
|
|
18
|
+
icon: 'text_fields',
|
|
19
|
+
createDefaultConfig: () => ({
|
|
20
|
+
id: generateId('input'),
|
|
21
|
+
type: 'input',
|
|
22
|
+
key: 'textInput',
|
|
23
|
+
label: 'Text Input',
|
|
24
|
+
properties: {
|
|
25
|
+
placeholder: 'Enter value...',
|
|
26
|
+
type: 'text',
|
|
27
|
+
},
|
|
28
|
+
}),
|
|
29
|
+
component: RptInputComponent,
|
|
30
|
+
propertySchema: [
|
|
31
|
+
{ key: 'label', label: 'Label', type: 'string', required: true, group: 'General' },
|
|
32
|
+
{ key: 'key', label: 'Field Name (Key)', type: 'string', required: true, group: 'General' },
|
|
33
|
+
{ key: 'placeholder', label: 'Placeholder', type: 'string', group: 'General' },
|
|
34
|
+
{
|
|
35
|
+
key: 'type',
|
|
36
|
+
label: 'Input Type',
|
|
37
|
+
type: 'select',
|
|
38
|
+
defaultValue: 'text',
|
|
39
|
+
options: [
|
|
40
|
+
{ key: 'text', label: 'Text' },
|
|
41
|
+
{ key: 'email', label: 'Email' },
|
|
42
|
+
{ key: 'tel', label: 'Phone' },
|
|
43
|
+
{ key: 'url', label: 'URL' },
|
|
44
|
+
],
|
|
45
|
+
group: 'General',
|
|
46
|
+
},
|
|
47
|
+
{ key: 'required', label: 'Required', type: 'boolean', group: 'Validation' },
|
|
48
|
+
{ key: 'minLength', label: 'Min Length', type: 'number', group: 'Validation' },
|
|
49
|
+
{ key: 'maxLength', label: 'Max Length', type: 'number', group: 'Validation' },
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
// 2. Dropdown
|
|
53
|
+
registry.register({
|
|
54
|
+
type: 'dropdown',
|
|
55
|
+
displayName: 'Dropdown',
|
|
56
|
+
category: 'input',
|
|
57
|
+
icon: 'arrow_drop_down_circle',
|
|
58
|
+
createDefaultConfig: () => ({
|
|
59
|
+
id: generateId('dropdown'),
|
|
60
|
+
type: 'dropdown',
|
|
61
|
+
key: 'dropdownField',
|
|
62
|
+
label: 'Dropdown',
|
|
63
|
+
properties: {
|
|
64
|
+
placeholder: '-- Select --',
|
|
65
|
+
options: [
|
|
66
|
+
{ key: '1', label: 'Option 1' },
|
|
67
|
+
{ key: '2', label: 'Option 2' },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
}),
|
|
71
|
+
component: RptDropdownComponent,
|
|
72
|
+
propertySchema: [
|
|
73
|
+
{ key: 'label', label: 'Label', type: 'string', required: true, group: 'General' },
|
|
74
|
+
{ key: 'key', label: 'Field Name (Key)', type: 'string', required: true, group: 'General' },
|
|
75
|
+
{ key: 'placeholder', label: 'Placeholder', type: 'string', group: 'General' },
|
|
76
|
+
{ key: 'required', label: 'Required', type: 'boolean', group: 'Validation' },
|
|
77
|
+
],
|
|
78
|
+
});
|
|
79
|
+
// 3. Date Picker
|
|
80
|
+
registry.register({
|
|
81
|
+
type: 'date',
|
|
82
|
+
displayName: 'Date Picker',
|
|
83
|
+
category: 'input',
|
|
84
|
+
icon: 'calendar_today',
|
|
85
|
+
createDefaultConfig: () => ({
|
|
86
|
+
id: generateId('date'),
|
|
87
|
+
type: 'date',
|
|
88
|
+
key: 'dateField',
|
|
89
|
+
label: 'Date',
|
|
90
|
+
properties: {
|
|
91
|
+
includeTime: false,
|
|
92
|
+
},
|
|
93
|
+
}),
|
|
94
|
+
component: RptDateComponent,
|
|
95
|
+
propertySchema: [
|
|
96
|
+
{ key: 'label', label: 'Label', type: 'string', required: true, group: 'General' },
|
|
97
|
+
{ key: 'key', label: 'Field Name (Key)', type: 'string', required: true, group: 'General' },
|
|
98
|
+
{ key: 'includeTime', label: 'Include Time', type: 'boolean', group: 'General' },
|
|
99
|
+
{ key: 'minDate', label: 'Min Date', type: 'string', group: 'Validation' },
|
|
100
|
+
{ key: 'maxDate', label: 'Max Date', type: 'string', group: 'Validation' },
|
|
101
|
+
{ key: 'required', label: 'Required', type: 'boolean', group: 'Validation' },
|
|
102
|
+
],
|
|
103
|
+
});
|
|
104
|
+
// 4. Number Input
|
|
105
|
+
registry.register({
|
|
106
|
+
type: 'number',
|
|
107
|
+
displayName: 'Number Input',
|
|
108
|
+
category: 'input',
|
|
109
|
+
icon: 'numbers',
|
|
110
|
+
createDefaultConfig: () => ({
|
|
111
|
+
id: generateId('number'),
|
|
112
|
+
type: 'number',
|
|
113
|
+
key: 'numberField',
|
|
114
|
+
label: 'Number',
|
|
115
|
+
properties: {
|
|
116
|
+
placeholder: '0',
|
|
117
|
+
step: 1,
|
|
118
|
+
},
|
|
119
|
+
}),
|
|
120
|
+
component: RptNumberComponent,
|
|
121
|
+
propertySchema: [
|
|
122
|
+
{ key: 'label', label: 'Label', type: 'string', required: true, group: 'General' },
|
|
123
|
+
{ key: 'key', label: 'Field Name (Key)', type: 'string', required: true, group: 'General' },
|
|
124
|
+
{ key: 'placeholder', label: 'Placeholder', type: 'string', group: 'General' },
|
|
125
|
+
{ key: 'prefix', label: 'Prefix (e.g. $)', type: 'string', group: 'Display' },
|
|
126
|
+
{ key: 'suffix', label: 'Suffix (e.g. %)', type: 'string', group: 'Display' },
|
|
127
|
+
{ key: 'step', label: 'Step', type: 'number', group: 'General' },
|
|
128
|
+
{ key: 'min', label: 'Min Value', type: 'number', group: 'Validation' },
|
|
129
|
+
{ key: 'max', label: 'Max Value', type: 'number', group: 'Validation' },
|
|
130
|
+
{ key: 'required', label: 'Required', type: 'boolean', group: 'Validation' },
|
|
131
|
+
],
|
|
132
|
+
});
|
|
133
|
+
// 5. Checkbox
|
|
134
|
+
registry.register({
|
|
135
|
+
type: 'checkbox',
|
|
136
|
+
displayName: 'Checkbox',
|
|
137
|
+
category: 'input',
|
|
138
|
+
icon: 'check_box',
|
|
139
|
+
createDefaultConfig: () => ({
|
|
140
|
+
id: generateId('chk'),
|
|
141
|
+
type: 'checkbox',
|
|
142
|
+
key: 'checkboxField',
|
|
143
|
+
label: 'Active',
|
|
144
|
+
properties: {
|
|
145
|
+
defaultValue: false,
|
|
146
|
+
},
|
|
147
|
+
}),
|
|
148
|
+
component: RptCheckboxComponent,
|
|
149
|
+
propertySchema: [
|
|
150
|
+
{ key: 'label', label: 'Label', type: 'string', required: true, group: 'General' },
|
|
151
|
+
{ key: 'key', label: 'Field Name (Key)', type: 'string', required: true, group: 'General' },
|
|
152
|
+
{ key: 'defaultValue', label: 'Default Value', type: 'boolean', group: 'General' },
|
|
153
|
+
{ key: 'required', label: 'Must be checked', type: 'boolean', group: 'Validation' },
|
|
154
|
+
],
|
|
155
|
+
});
|
|
156
|
+
// 6. Button
|
|
157
|
+
registry.register({
|
|
158
|
+
type: 'button',
|
|
159
|
+
displayName: 'Action Button',
|
|
160
|
+
category: 'action',
|
|
161
|
+
icon: 'smart_button',
|
|
162
|
+
createDefaultConfig: () => ({
|
|
163
|
+
id: generateId('btn'),
|
|
164
|
+
type: 'button',
|
|
165
|
+
label: 'Run Report',
|
|
166
|
+
properties: {
|
|
167
|
+
variant: 'primary',
|
|
168
|
+
action: 'execute-report',
|
|
169
|
+
},
|
|
170
|
+
}),
|
|
171
|
+
component: RptButtonComponent,
|
|
172
|
+
propertySchema: [
|
|
173
|
+
{ key: 'label', label: 'Button Text', type: 'string', required: true, group: 'General' },
|
|
174
|
+
{
|
|
175
|
+
key: 'icon',
|
|
176
|
+
label: 'Button Icon',
|
|
177
|
+
type: 'select',
|
|
178
|
+
defaultValue: '',
|
|
179
|
+
options: [
|
|
180
|
+
{ key: '', label: 'None (No Icon)' },
|
|
181
|
+
{ key: 'search', label: 'Search' },
|
|
182
|
+
{ key: 'download', label: 'Download' },
|
|
183
|
+
{ key: 'filter', label: 'Filter' },
|
|
184
|
+
{ key: 'refresh', label: 'Refresh' },
|
|
185
|
+
{ key: 'check', label: 'Check' },
|
|
186
|
+
{ key: 'plus', label: 'Plus' },
|
|
187
|
+
],
|
|
188
|
+
group: 'Display',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
key: 'fullWidth',
|
|
192
|
+
label: 'Full Width (Fill Column)',
|
|
193
|
+
type: 'boolean',
|
|
194
|
+
defaultValue: false,
|
|
195
|
+
group: 'Display',
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
key: 'variant',
|
|
199
|
+
label: 'Style Variant',
|
|
200
|
+
type: 'select',
|
|
201
|
+
defaultValue: 'primary',
|
|
202
|
+
options: [
|
|
203
|
+
{ key: 'primary', label: 'Primary' },
|
|
204
|
+
{ key: 'secondary', label: 'Secondary' },
|
|
205
|
+
{ key: 'outline', label: 'Outline' },
|
|
206
|
+
{ key: 'danger', label: 'Danger' },
|
|
207
|
+
],
|
|
208
|
+
group: 'Display',
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
key: 'action',
|
|
212
|
+
label: 'Action Type',
|
|
213
|
+
type: 'select',
|
|
214
|
+
defaultValue: 'execute-report',
|
|
215
|
+
options: [
|
|
216
|
+
{ key: 'execute-report', label: 'Execute Report' },
|
|
217
|
+
{ key: 'reset', label: 'Reset Form' },
|
|
218
|
+
{ key: 'custom', label: 'Custom Event' },
|
|
219
|
+
],
|
|
220
|
+
group: 'Action',
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
});
|
|
224
|
+
// 7. KPI Metric Card
|
|
225
|
+
registry.register({
|
|
226
|
+
type: 'kpi-card',
|
|
227
|
+
displayName: 'KPI Metric Card',
|
|
228
|
+
category: 'display',
|
|
229
|
+
icon: 'monitoring',
|
|
230
|
+
createDefaultConfig: () => ({
|
|
231
|
+
id: generateId('kpi'),
|
|
232
|
+
type: 'kpi-card',
|
|
233
|
+
label: 'Total Revenue',
|
|
234
|
+
properties: {
|
|
235
|
+
title: 'Total Revenue',
|
|
236
|
+
value: 125400,
|
|
237
|
+
prefix: '$',
|
|
238
|
+
theme: 'primary',
|
|
239
|
+
icon: 'dollar',
|
|
240
|
+
trendValue: 12.8,
|
|
241
|
+
trendDirection: 'up',
|
|
242
|
+
trendLabel: 'vs last month'
|
|
243
|
+
},
|
|
244
|
+
layout: {
|
|
245
|
+
columnSpan: 3,
|
|
246
|
+
}
|
|
247
|
+
}),
|
|
248
|
+
component: RptKpiCardComponent,
|
|
249
|
+
propertySchema: [
|
|
250
|
+
{ key: 'title', label: 'Metric Title', type: 'string', required: true, group: 'General' },
|
|
251
|
+
{ key: 'value', label: 'Value', type: 'string', required: true, group: 'General' },
|
|
252
|
+
{ key: 'prefix', label: 'Prefix (e.g. $)', type: 'string', group: 'Display' },
|
|
253
|
+
{ key: 'suffix', label: 'Suffix (e.g. %)', type: 'string', group: 'Display' },
|
|
254
|
+
{
|
|
255
|
+
key: 'theme',
|
|
256
|
+
label: 'Theme Accent',
|
|
257
|
+
type: 'select',
|
|
258
|
+
defaultValue: 'primary',
|
|
259
|
+
options: [
|
|
260
|
+
{ key: 'primary', label: 'Primary (Blue)' },
|
|
261
|
+
{ key: 'success', label: 'Success (Green)' },
|
|
262
|
+
{ key: 'warning', label: 'Warning (Amber)' },
|
|
263
|
+
{ key: 'danger', label: 'Danger (Red)' },
|
|
264
|
+
{ key: 'info', label: 'Info (Cyan)' },
|
|
265
|
+
{ key: 'neutral', label: 'Neutral (Slate)' },
|
|
266
|
+
],
|
|
267
|
+
group: 'Display',
|
|
268
|
+
},
|
|
269
|
+
{ key: 'icon', label: 'Icon (e.g. dollar, check, chart-bar, box)', type: 'string', group: 'Display' },
|
|
270
|
+
{ key: 'trendValue', label: 'Trend Value (%)', type: 'number', group: 'Trend' },
|
|
271
|
+
{
|
|
272
|
+
key: 'trendDirection',
|
|
273
|
+
label: 'Trend Direction',
|
|
274
|
+
type: 'select',
|
|
275
|
+
defaultValue: 'neutral',
|
|
276
|
+
options: [
|
|
277
|
+
{ key: 'up', label: 'Up (Growth)' },
|
|
278
|
+
{ key: 'down', label: 'Down (Decline)' },
|
|
279
|
+
{ key: 'neutral', label: 'Neutral' },
|
|
280
|
+
],
|
|
281
|
+
group: 'Trend',
|
|
282
|
+
},
|
|
283
|
+
{ key: 'trendLabel', label: 'Trend Label', type: 'string', group: 'Trend' },
|
|
284
|
+
],
|
|
285
|
+
});
|
|
286
|
+
// 8. Chart Bridge
|
|
287
|
+
registry.register({
|
|
288
|
+
type: 'chart',
|
|
289
|
+
displayName: 'Chart Visualization',
|
|
290
|
+
category: 'display',
|
|
291
|
+
icon: 'bar_chart',
|
|
292
|
+
createDefaultConfig: () => ({
|
|
293
|
+
id: generateId('chart'),
|
|
294
|
+
type: 'chart',
|
|
295
|
+
label: 'Performance Breakdown',
|
|
296
|
+
properties: {
|
|
297
|
+
title: 'Monthly Performance',
|
|
298
|
+
chartType: 'bar',
|
|
299
|
+
data: [
|
|
300
|
+
{ label: 'Q1', value: 45 },
|
|
301
|
+
{ label: 'Q2', value: 68 },
|
|
302
|
+
{ label: 'Q3', value: 85 },
|
|
303
|
+
{ label: 'Q4', value: 110 }
|
|
304
|
+
]
|
|
305
|
+
},
|
|
306
|
+
layout: {
|
|
307
|
+
columnSpan: 6,
|
|
308
|
+
}
|
|
309
|
+
}),
|
|
310
|
+
component: ReportChartBridgeComponent,
|
|
311
|
+
propertySchema: [
|
|
312
|
+
{ key: 'title', label: 'Chart Title', type: 'string', required: true, group: 'General' },
|
|
313
|
+
{
|
|
314
|
+
key: 'chartType',
|
|
315
|
+
label: 'Chart Type',
|
|
316
|
+
type: 'select',
|
|
317
|
+
defaultValue: 'bar',
|
|
318
|
+
options: [
|
|
319
|
+
{ key: 'bar', label: 'Bar Chart' },
|
|
320
|
+
{ key: 'donut', label: 'Donut Chart' },
|
|
321
|
+
{ key: 'line', label: 'Line / Area Chart' },
|
|
322
|
+
],
|
|
323
|
+
group: 'General',
|
|
324
|
+
},
|
|
325
|
+
],
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItYnVpbHRpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9wcmltaXRpdmVzL3JlZ2lzdGVyLWJ1aWx0aW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixHQUMzQixNQUFNLGNBQWMsQ0FBQztBQUd0Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxRQUEyQjtJQUNuRSxnQkFBZ0I7SUFDaEIsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNoQixJQUFJLEVBQUUsT0FBTztRQUNiLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLElBQUksRUFBRSxhQUFhO1FBQ25CLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUIsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDdkIsSUFBSSxFQUFFLE9BQU87WUFDYixHQUFHLEVBQUUsV0FBVztZQUNoQixLQUFLLEVBQUUsWUFBWTtZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsSUFBSSxFQUFFLE1BQU07YUFDYjtTQUNGLENBQUM7UUFDRixTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLGNBQWMsRUFBRTtZQUNkLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2xGLEVBQUUsR0FBRyxF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LE1BQU0sRUFBRTtnQkFDTixVQUFVLEVBQUUsQ0FBQzthQUNkO1NBQ0YsQ0FBQztRQUNGLFNBQVMsRUFBRSwwQkFBMEI7UUFDckMsY0FBYyxFQUFFO1lBQ2QsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDeEY7Z0JBQ0UsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxZQUFZLEVBQUUsS0FBSztnQkFDbkIsT0FBTyxFQUFFO29CQUNQLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO29CQUNsQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtvQkFDdEMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRTtpQkFDNUM7Z0JBQ0QsS0FBSyxFQUFFLFNBQVM7YUFDakI7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeSB9IGZyb20gJy4uL2NvcmUvcmVnaXN0cnkvY29tcG9uZW50LXJlZ2lzdHJ5JztcbmltcG9ydCB7IGdlbmVyYXRlSWQgfSBmcm9tICcuLi9jb3JlL3V0aWxpdGllcy9pZC1nZW5lcmF0b3InO1xuaW1wb3J0IHtcbiAgUnB0QnV0dG9uQ29tcG9uZW50LFxuICBScHRDaGVja2JveENvbXBvbmVudCxcbiAgUnB0RGF0ZUNvbXBvbmVudCxcbiAgUnB0RHJvcGRvd25Db21wb25lbnQsXG4gIFJwdElucHV0Q29tcG9uZW50LFxuICBScHROdW1iZXJDb21wb25lbnQsXG4gIFJwdEtwaUNhcmRDb21wb25lbnQsXG4gIFJlcG9ydENoYXJ0QnJpZGdlQ29tcG9uZW50LFxufSBmcm9tICcuL2NvbXBvbmVudHMnO1xuXG5cbi8qKlxuICogUmVnaXN0ZXJzIGFsbCBidWlsdC1pbiBwcmltaXRpdmUgY29tcG9uZW50cyB3aXRoIHRoZSBDb21wb25lbnRSZWdpc3RyeS5cbiAqXG4gKiBUaGlzIHByb3ZpZGVzIHRoZSBiYXNlbGluZSBjb21wb25lbnRzIGZvciBhbnkgcmVwb3J0aW5nIHBhZ2UuXG4gKiBIb3N0IGFwcGxpY2F0aW9ucyBjYW4gb3ZlcnJpZGUgYW55IG9mIHRoZXNlIGJ5IGNhbGxpbmcgYHJlZ2lzdHJ5LnJlZ2lzdGVyKClgXG4gKiB3aXRoIHRoZWlyIG93biBjdXN0b20gY29tcG9uZW50IGFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gcmVnaXN0cnkgLSBUaGUgQ29tcG9uZW50UmVnaXN0cnkgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckJ1aWx0aW5Db21wb25lbnRzKHJlZ2lzdHJ5OiBDb21wb25lbnRSZWdpc3RyeSk6IHZvaWQge1xuICAvLyAxLiBUZXh0IElucHV0XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAnaW5wdXQnLFxuICAgIGRpc3BsYXlOYW1lOiAnVGV4dCBJbnB1dCcsXG4gICAgY2F0ZWdvcnk6ICdpbnB1dCcsXG4gICAgaWNvbjogJ3RleHRfZmllbGRzJyxcbiAgICBjcmVhdGVEZWZhdWx0Q29uZmlnOiAoKSA9PiAoe1xuICAgICAgaWQ6IGdlbmVyYXRlSWQoJ2lucHV0JyksXG4gICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAga2V5OiAndGV4dElucHV0JyxcbiAgICAgIGxhYmVsOiAnVGV4dCBJbnB1dCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgdmFsdWUuLi4nLFxuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0SW5wdXRDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdwbGFjZWhvbGRlcicsIGxhYmVsOiAnUGxhY2Vob2xkZXInLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd0eXBlJyxcbiAgICAgICAgbGFiZWw6ICdJbnB1dCBUeXBlJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ3RleHQnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICd0ZXh0JywgbGFiZWw6ICdUZXh0JyB9LFxuICAgICAgICAgIHsga2V5OiAnZW1haWwnLCBsYWJlbDogJ0VtYWlsJyB9LFxuICAgICAgICAgIHsga2V5OiAndGVsJywgbGFiZWw6ICdQaG9uZScgfSxcbiAgICAgICAgICB7IGtleTogJ3VybCcsIGxhYmVsOiAnVVJMJyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0dlbmVyYWwnLFxuICAgICAgfSxcbiAgICAgIHsga2V5OiAncmVxdWlyZWQnLCBsYWJlbDogJ1JlcXVpcmVkJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ21pbkxlbmd0aCcsIGxhYmVsOiAnTWluIExlbmd0aCcsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ21heExlbmd0aCcsIGxhYmVsOiAnTWF4IExlbmd0aCcsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gMi4gRHJvcGRvd25cbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdkcm9wZG93bicsXG4gICAgZGlzcGxheU5hbWU6ICdEcm9wZG93bicsXG4gICAgY2F0ZWdvcnk6ICdpbnB1dCcsXG4gICAgaWNvbjogJ2Fycm93X2Ryb3BfZG93bl9jaXJjbGUnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnZHJvcGRvd24nKSxcbiAgICAgIHR5cGU6ICdkcm9wZG93bicsXG4gICAgICBrZXk6ICdkcm9wZG93bkZpZWxkJyxcbiAgICAgIGxhYmVsOiAnRHJvcGRvd24nLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJy0tIFNlbGVjdCAtLScsXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICB7IGtleTogJzEnLCBsYWJlbDogJ09wdGlvbiAxJyB9LFxuICAgICAgICAgIHsga2V5OiAnMicsIGxhYmVsOiAnT3B0aW9uIDInIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0RHJvcGRvd25Db21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdwbGFjZWhvbGRlcicsIGxhYmVsOiAnUGxhY2Vob2xkZXInLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdyZXF1aXJlZCcsIGxhYmVsOiAnUmVxdWlyZWQnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyAzLiBEYXRlIFBpY2tlclxuICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgdHlwZTogJ2RhdGUnLFxuICAgIGRpc3BsYXlOYW1lOiAnRGF0ZSBQaWNrZXInLFxuICAgIGNhdGVnb3J5OiAnaW5wdXQnLFxuICAgIGljb246ICdjYWxlbmRhcl90b2RheScsXG4gICAgY3JlYXRlRGVmYXVsdENvbmZpZzogKCkgPT4gKHtcbiAgICAgIGlkOiBnZW5lcmF0ZUlkKCdkYXRlJyksXG4gICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICBrZXk6ICdkYXRlRmllbGQnLFxuICAgICAgbGFiZWw6ICdEYXRlJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW5jbHVkZVRpbWU6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdERhdGVDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdpbmNsdWRlVGltZScsIGxhYmVsOiAnSW5jbHVkZSBUaW1lJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ21pbkRhdGUnLCBsYWJlbDogJ01pbiBEYXRlJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICAgIHsga2V5OiAnbWF4RGF0ZScsIGxhYmVsOiAnTWF4IERhdGUnLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgICAgeyBrZXk6ICdyZXF1aXJlZCcsIGxhYmVsOiAnUmVxdWlyZWQnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA0LiBOdW1iZXIgSW5wdXRcbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRpc3BsYXlOYW1lOiAnTnVtYmVyIElucHV0JyxcbiAgICBjYXRlZ29yeTogJ2lucHV0JyxcbiAgICBpY29uOiAnbnVtYmVycycsXG4gICAgY3JlYXRlRGVmYXVsdENvbmZpZzogKCkgPT4gKHtcbiAgICAgIGlkOiBnZW5lcmF0ZUlkKCdudW1iZXInKSxcbiAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAga2V5OiAnbnVtYmVyRmllbGQnLFxuICAgICAgbGFiZWw6ICdOdW1iZXInLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJzAnLFxuICAgICAgICBzdGVwOiAxLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdE51bWJlckNvbXBvbmVudCxcbiAgICBwcm9wZXJ0eVNjaGVtYTogW1xuICAgICAgeyBrZXk6ICdsYWJlbCcsIGxhYmVsOiAnTGFiZWwnLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAna2V5JywgbGFiZWw6ICdGaWVsZCBOYW1lIChLZXkpJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3BsYWNlaG9sZGVyJywgbGFiZWw6ICdQbGFjZWhvbGRlcicsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3ByZWZpeCcsIGxhYmVsOiAnUHJlZml4IChlLmcuICQpJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHsga2V5OiAnc3VmZml4JywgbGFiZWw6ICdTdWZmaXggKGUuZy4gJSknLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdEaXNwbGF5JyB9LFxuICAgICAgeyBrZXk6ICdzdGVwJywgbGFiZWw6ICdTdGVwJywgdHlwZTogJ251bWJlcicsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAnbWluJywgbGFiZWw6ICdNaW4gVmFsdWUnLCB0eXBlOiAnbnVtYmVyJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgICAgeyBrZXk6ICdtYXgnLCBsYWJlbDogJ01heCBWYWx1ZScsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ3JlcXVpcmVkJywgbGFiZWw6ICdSZXF1aXJlZCcsIHR5cGU6ICdib29sZWFuJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIC8vIDUuIENoZWNrYm94XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgIGRpc3BsYXlOYW1lOiAnQ2hlY2tib3gnLFxuICAgIGNhdGVnb3J5OiAnaW5wdXQnLFxuICAgIGljb246ICdjaGVja19ib3gnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnY2hrJyksXG4gICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAga2V5OiAnY2hlY2tib3hGaWVsZCcsXG4gICAgICBsYWJlbDogJ0FjdGl2ZScsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0Q2hlY2tib3hDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdkZWZhdWx0VmFsdWUnLCBsYWJlbDogJ0RlZmF1bHQgVmFsdWUnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAncmVxdWlyZWQnLCBsYWJlbDogJ011c3QgYmUgY2hlY2tlZCcsIHR5cGU6ICdib29sZWFuJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIC8vIDYuIEJ1dHRvblxuICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgZGlzcGxheU5hbWU6ICdBY3Rpb24gQnV0dG9uJyxcbiAgICBjYXRlZ29yeTogJ2FjdGlvbicsXG4gICAgaWNvbjogJ3NtYXJ0X2J1dHRvbicsXG4gICAgY3JlYXRlRGVmYXVsdENvbmZpZzogKCkgPT4gKHtcbiAgICAgIGlkOiBnZW5lcmF0ZUlkKCdidG4nKSxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgbGFiZWw6ICdSdW4gUmVwb3J0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdmFyaWFudDogJ3ByaW1hcnknLFxuICAgICAgICBhY3Rpb246ICdleGVjdXRlLXJlcG9ydCcsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0QnV0dG9uQ29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ2xhYmVsJywgbGFiZWw6ICdCdXR0b24gVGV4dCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdpY29uJyxcbiAgICAgICAgbGFiZWw6ICdCdXR0b24gSWNvbicsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICcnLCBsYWJlbDogJ05vbmUgKE5vIEljb24pJyB9LFxuICAgICAgICAgIHsga2V5OiAnc2VhcmNoJywgbGFiZWw6ICdTZWFyY2gnIH0sXG4gICAgICAgICAgeyBrZXk6ICdkb3dubG9hZCcsIGxhYmVsOiAnRG93bmxvYWQnIH0sXG4gICAgICAgICAgeyBrZXk6ICdmaWx0ZXInLCBsYWJlbDogJ0ZpbHRlcicgfSxcbiAgICAgICAgICB7IGtleTogJ3JlZnJlc2gnLCBsYWJlbDogJ1JlZnJlc2gnIH0sXG4gICAgICAgICAgeyBrZXk6ICdjaGVjaycsIGxhYmVsOiAnQ2hlY2snIH0sXG4gICAgICAgICAgeyBrZXk6ICdwbHVzJywgbGFiZWw6ICdQbHVzJyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0Rpc3BsYXknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZnVsbFdpZHRoJyxcbiAgICAgICAgbGFiZWw6ICdGdWxsIFdpZHRoIChGaWxsIENvbHVtbiknLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgIGdyb3VwOiAnRGlzcGxheScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd2YXJpYW50JyxcbiAgICAgICAgbGFiZWw6ICdTdHlsZSBWYXJpYW50JyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ3ByaW1hcnknLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICdwcmltYXJ5JywgbGFiZWw6ICdQcmltYXJ5JyB9LFxuICAgICAgICAgIHsga2V5OiAnc2Vjb25kYXJ5JywgbGFiZWw6ICdTZWNvbmRhcnknIH0sXG4gICAgICAgICAgeyBrZXk6ICdvdXRsaW5lJywgbGFiZWw6ICdPdXRsaW5lJyB9LFxuICAgICAgICAgIHsga2V5OiAnZGFuZ2VyJywgbGFiZWw6ICdEYW5nZXInIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnRGlzcGxheScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgICBsYWJlbDogJ0FjdGlvbiBUeXBlJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ2V4ZWN1dGUtcmVwb3J0JyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAnZXhlY3V0ZS1yZXBvcnQnLCBsYWJlbDogJ0V4ZWN1dGUgUmVwb3J0JyB9LFxuICAgICAgICAgIHsga2V5OiAncmVzZXQnLCBsYWJlbDogJ1Jlc2V0IEZvcm0nIH0sXG4gICAgICAgICAgeyBrZXk6ICdjdXN0b20nLCBsYWJlbDogJ0N1c3RvbSBFdmVudCcgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZ3JvdXA6ICdBY3Rpb24nLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA3LiBLUEkgTWV0cmljIENhcmRcbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdrcGktY2FyZCcsXG4gICAgZGlzcGxheU5hbWU6ICdLUEkgTWV0cmljIENhcmQnLFxuICAgIGNhdGVnb3J5OiAnZGlzcGxheScsXG4gICAgaWNvbjogJ21vbml0b3JpbmcnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgna3BpJyksXG4gICAgICB0eXBlOiAna3BpLWNhcmQnLFxuICAgICAgbGFiZWw6ICdUb3RhbCBSZXZlbnVlJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJyxcbiAgICAgICAgdmFsdWU6IDEyNTQwMCxcbiAgICAgICAgcHJlZml4OiAnJCcsXG4gICAgICAgIHRoZW1lOiAncHJpbWFyeScsXG4gICAgICAgIGljb246ICdkb2xsYXInLFxuICAgICAgICB0cmVuZFZhbHVlOiAxMi44LFxuICAgICAgICB0cmVuZERpcmVjdGlvbjogJ3VwJyxcbiAgICAgICAgdHJlbmRMYWJlbDogJ3ZzIGxhc3QgbW9udGgnXG4gICAgICB9LFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIGNvbHVtblNwYW46IDMsXG4gICAgICB9XG4gICAgfSksXG4gICAgY29tcG9uZW50OiBScHRLcGlDYXJkQ29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ3RpdGxlJywgbGFiZWw6ICdNZXRyaWMgVGl0bGUnLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAndmFsdWUnLCBsYWJlbDogJ1ZhbHVlJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3ByZWZpeCcsIGxhYmVsOiAnUHJlZml4IChlLmcuICQpJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHsga2V5OiAnc3VmZml4JywgbGFiZWw6ICdTdWZmaXggKGUuZy4gJSknLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdEaXNwbGF5JyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd0aGVtZScsXG4gICAgICAgIGxhYmVsOiAnVGhlbWUgQWNjZW50JyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ3ByaW1hcnknLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICdwcmltYXJ5JywgbGFiZWw6ICdQcmltYXJ5IChCbHVlKScgfSxcbiAgICAgICAgICB7IGtleTogJ3N1Y2Nlc3MnLCBsYWJlbDogJ1N1Y2Nlc3MgKEdyZWVuKScgfSxcbiAgICAgICAgICB7IGtleTogJ3dhcm5pbmcnLCBsYWJlbDogJ1dhcm5pbmcgKEFtYmVyKScgfSxcbiAgICAgICAgICB7IGtleTogJ2RhbmdlcicsIGxhYmVsOiAnRGFuZ2VyIChSZWQpJyB9LFxuICAgICAgICAgIHsga2V5OiAnaW5mbycsIGxhYmVsOiAnSW5mbyAoQ3lhbiknIH0sXG4gICAgICAgICAgeyBrZXk6ICduZXV0cmFsJywgbGFiZWw6ICdOZXV0cmFsIChTbGF0ZSknIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnRGlzcGxheScsXG4gICAgICB9LFxuICAgICAgeyBrZXk6ICdpY29uJywgbGFiZWw6ICdJY29uIChlLmcuIGRvbGxhciwgY2hlY2ssIGNoYXJ0LWJhciwgYm94KScsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ0Rpc3BsYXknIH0sXG4gICAgICB7IGtleTogJ3RyZW5kVmFsdWUnLCBsYWJlbDogJ1RyZW5kIFZhbHVlICglKScsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1RyZW5kJyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd0cmVuZERpcmVjdGlvbicsXG4gICAgICAgIGxhYmVsOiAnVHJlbmQgRGlyZWN0aW9uJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ25ldXRyYWwnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICd1cCcsIGxhYmVsOiAnVXAgKEdyb3d0aCknIH0sXG4gICAgICAgICAgeyBrZXk6ICdkb3duJywgbGFiZWw6ICdEb3duIChEZWNsaW5lKScgfSxcbiAgICAgICAgICB7IGtleTogJ25ldXRyYWwnLCBsYWJlbDogJ05ldXRyYWwnIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnVHJlbmQnLFxuICAgICAgfSxcbiAgICAgIHsga2V5OiAndHJlbmRMYWJlbCcsIGxhYmVsOiAnVHJlbmQgTGFiZWwnLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdUcmVuZCcgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA4LiBDaGFydCBCcmlkZ2VcbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdjaGFydCcsXG4gICAgZGlzcGxheU5hbWU6ICdDaGFydCBWaXN1YWxpemF0aW9uJyxcbiAgICBjYXRlZ29yeTogJ2Rpc3BsYXknLFxuICAgIGljb246ICdiYXJfY2hhcnQnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnY2hhcnQnKSxcbiAgICAgIHR5cGU6ICdjaGFydCcsXG4gICAgICBsYWJlbDogJ1BlcmZvcm1hbmNlIEJyZWFrZG93bicsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHRpdGxlOiAnTW9udGhseSBQZXJmb3JtYW5jZScsXG4gICAgICAgIGNoYXJ0VHlwZTogJ2JhcicsXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7IGxhYmVsOiAnUTEnLCB2YWx1ZTogNDUgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnUTInLCB2YWx1ZTogNjggfSxcbiAgICAgICAgICB7IGxhYmVsOiAnUTMnLCB2YWx1ZTogODUgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnUTQnLCB2YWx1ZTogMTEwIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBjb2x1bW5TcGFuOiA2LFxuICAgICAgfVxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUmVwb3J0Q2hhcnRCcmlkZ2VDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAndGl0bGUnLCBsYWJlbDogJ0NoYXJ0IFRpdGxlJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2NoYXJ0VHlwZScsXG4gICAgICAgIGxhYmVsOiAnQ2hhcnQgVHlwZScsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICdiYXInLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICdiYXInLCBsYWJlbDogJ0JhciBDaGFydCcgfSxcbiAgICAgICAgICB7IGtleTogJ2RvbnV0JywgbGFiZWw6ICdEb251dCBDaGFydCcgfSxcbiAgICAgICAgICB7IGtleTogJ2xpbmUnLCBsYWJlbDogJ0xpbmUgLyBBcmVhIENoYXJ0JyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0dlbmVyYWwnLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcbn1cblxuXG4iXX0=
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reporting library root provider function.
|
|
3
|
+
*
|
|
4
|
+
* Configures the library, its tokens, and registers built-in primitives.
|
|
5
|
+
*/
|
|
6
|
+
import { ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders, } from '@angular/core';
|
|
7
|
+
import { CHART_COMPONENT, GRID_COMPONENT, REPORTING_CONFIG, } from './core/tokens/reporting-config.token';
|
|
8
|
+
import { REPORT_SESSION_CONTEXT, REPORT_SESSION_PROVIDER, } from './core/tokens/session-context.token';
|
|
9
|
+
import { ReportDataSourceAdapter } from './data-access/contracts/data-source.contract';
|
|
10
|
+
import { MasterDataProvider } from './data-access/contracts/master-data.provider';
|
|
11
|
+
import { ReportPersistenceAdapter } from './data-access/contracts/report-persistence.contract';
|
|
12
|
+
import { ReportSchemaDiscoveryAdapter } from './data-access/contracts/schema-discovery.contract';
|
|
13
|
+
import { ReportLookupAdapter } from './data-access/contracts/lookup.contract';
|
|
14
|
+
import { HttpReportSchemaDiscoveryAdapter } from './data-access/adapters/http-schema-discovery.adapter';
|
|
15
|
+
import { HttpReportLookupAdapter } from './data-access/adapters/http-lookup.adapter';
|
|
16
|
+
import { ComponentRegistry } from './core/registry/component-registry';
|
|
17
|
+
import { registerBuiltinComponents } from './primitives/register-builtins';
|
|
18
|
+
/** Default configuration values. */
|
|
19
|
+
const DEFAULT_CONFIG = {
|
|
20
|
+
defaultPageSize: 25,
|
|
21
|
+
dateFormat: 'dd/MM/yyyy',
|
|
22
|
+
enableDesigner: false,
|
|
23
|
+
schemaVersion: 1,
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Provides the BWays-Report library to the application.
|
|
27
|
+
*
|
|
28
|
+
* @param options - Configuration and adapter implementations.
|
|
29
|
+
* @returns Environment providers for the reporting library.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // app.config.ts
|
|
34
|
+
* export const appConfig: ApplicationConfig = {
|
|
35
|
+
* providers: [
|
|
36
|
+
* provideReporting({
|
|
37
|
+
* apiBaseUrl: 'http://localhost:3000/api/reporting',
|
|
38
|
+
* gridComponent: BwaysGridComponent,
|
|
39
|
+
* defaultPageSize: 50,
|
|
40
|
+
* }),
|
|
41
|
+
* ],
|
|
42
|
+
* };
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export function provideReporting(options = {}) {
|
|
46
|
+
const config = { ...DEFAULT_CONFIG, ...options };
|
|
47
|
+
const providers = [
|
|
48
|
+
{ provide: REPORTING_CONFIG, useValue: config },
|
|
49
|
+
{
|
|
50
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
51
|
+
multi: true,
|
|
52
|
+
useValue: () => {
|
|
53
|
+
const registry = inject(ComponentRegistry);
|
|
54
|
+
registerBuiltinComponents(registry);
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
provide: ReportSchemaDiscoveryAdapter,
|
|
59
|
+
useClass: options.schemaDiscoveryAdapter ?? HttpReportSchemaDiscoveryAdapter,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
provide: ReportLookupAdapter,
|
|
63
|
+
useClass: options.lookupAdapter ?? HttpReportLookupAdapter,
|
|
64
|
+
},
|
|
65
|
+
];
|
|
66
|
+
if (options.gridComponent) {
|
|
67
|
+
providers.push({ provide: GRID_COMPONENT, useValue: options.gridComponent });
|
|
68
|
+
}
|
|
69
|
+
if (options.chartComponent) {
|
|
70
|
+
providers.push({ provide: CHART_COMPONENT, useValue: options.chartComponent });
|
|
71
|
+
}
|
|
72
|
+
if (options.dataSourceAdapter) {
|
|
73
|
+
providers.push({ provide: ReportDataSourceAdapter, useClass: options.dataSourceAdapter });
|
|
74
|
+
}
|
|
75
|
+
if (options.masterDataProvider) {
|
|
76
|
+
providers.push({ provide: MasterDataProvider, useClass: options.masterDataProvider });
|
|
77
|
+
}
|
|
78
|
+
if (options.persistenceAdapter) {
|
|
79
|
+
providers.push({ provide: ReportPersistenceAdapter, useClass: options.persistenceAdapter });
|
|
80
|
+
}
|
|
81
|
+
if (options.sessionContextProvider) {
|
|
82
|
+
providers.push({ provide: REPORT_SESSION_PROVIDER, useClass: options.sessionContextProvider });
|
|
83
|
+
}
|
|
84
|
+
if (options.sessionContextFactory) {
|
|
85
|
+
providers.push({ provide: REPORT_SESSION_CONTEXT, useFactory: options.sessionContextFactory });
|
|
86
|
+
}
|
|
87
|
+
else if (options.sessionContext !== undefined) {
|
|
88
|
+
providers.push({ provide: REPORT_SESSION_CONTEXT, useValue: options.sessionContext });
|
|
89
|
+
}
|
|
90
|
+
return makeEnvironmentProviders(providers);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1yZXBvcnRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9wcm92aWRlLXJlcG9ydGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixNQUFNLEVBQ04sd0JBQXdCLEdBR3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsY0FBYyxFQUNkLGdCQUFnQixHQUVqQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEdBR3hCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDeEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0Usb0NBQW9DO0FBQ3BDLE1BQU0sY0FBYyxHQUFvQjtJQUN0QyxlQUFlLEVBQUUsRUFBRTtJQUNuQixVQUFVLEVBQUUsWUFBWTtJQUN4QixjQUFjLEVBQUUsS0FBSztJQUNyQixhQUFhLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBcURGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFVBQW1DLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQW9CLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUNsRSxNQUFNLFNBQVMsR0FBZTtRQUM1QixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQy9DO1lBQ0UsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7U0FDRjtRQUNEO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxRQUFRLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixJQUFJLGdDQUFnQztTQUM3RTtRQUNEO1lBQ0UsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixRQUFRLEVBQUUsT0FBTyxDQUFDLGFBQWEsSUFBSSx1QkFBdUI7U0FDM0Q7S0FDRixDQUFDO0lBRUYsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwb3J0aW5nIGxpYnJhcnkgcm9vdCBwcm92aWRlciBmdW5jdGlvbi5cbiAqXG4gKiBDb25maWd1cmVzIHRoZSBsaWJyYXJ5LCBpdHMgdG9rZW5zLCBhbmQgcmVnaXN0ZXJzIGJ1aWx0LWluIHByaW1pdGl2ZXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBpbmplY3QsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgUHJvdmlkZXIsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ0hBUlRfQ09NUE9ORU5ULFxuICBHUklEX0NPTVBPTkVOVCxcbiAgUkVQT1JUSU5HX0NPTkZJRyxcbiAgUmVwb3J0aW5nQ29uZmlnLFxufSBmcm9tICcuL2NvcmUvdG9rZW5zL3JlcG9ydGluZy1jb25maWcudG9rZW4nO1xuaW1wb3J0IHtcbiAgUkVQT1JUX1NFU1NJT05fQ09OVEVYVCxcbiAgUkVQT1JUX1NFU1NJT05fUFJPVklERVIsXG4gIFNlc3Npb25Db250ZXh0UHJvdmlkZXIsXG4gIFNlc3Npb25Db250ZXh0U291cmNlLFxufSBmcm9tICcuL2NvcmUvdG9rZW5zL3Nlc3Npb24tY29udGV4dC50b2tlbic7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL2RhdGEtc291cmNlLmNvbnRyYWN0JztcbmltcG9ydCB7IE1hc3RlckRhdGFQcm92aWRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL21hc3Rlci1kYXRhLnByb3ZpZGVyJztcbmltcG9ydCB7IFJlcG9ydFBlcnNpc3RlbmNlQWRhcHRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL3JlcG9ydC1wZXJzaXN0ZW5jZS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnRMb29rdXBBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvbG9va3VwLmNvbnRyYWN0JztcbmltcG9ydCB7IEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlcic7XG5pbXBvcnQgeyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvYWRhcHRlcnMvaHR0cC1sb29rdXAuYWRhcHRlcic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeSB9IGZyb20gJy4vY29yZS9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnknO1xuaW1wb3J0IHsgcmVnaXN0ZXJCdWlsdGluQ29tcG9uZW50cyB9IGZyb20gJy4vcHJpbWl0aXZlcy9yZWdpc3Rlci1idWlsdGlucyc7XG5cbi8qKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gdmFsdWVzLiAqL1xuY29uc3QgREVGQVVMVF9DT05GSUc6IFJlcG9ydGluZ0NvbmZpZyA9IHtcbiAgZGVmYXVsdFBhZ2VTaXplOiAyNSxcbiAgZGF0ZUZvcm1hdDogJ2RkL01NL3l5eXknLFxuICBlbmFibGVEZXNpZ25lcjogZmFsc2UsXG4gIHNjaGVtYVZlcnNpb246IDEsXG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYHByb3ZpZGVSZXBvcnRpbmcoKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZVJlcG9ydGluZ09wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFJlcG9ydGluZ0NvbmZpZz4ge1xuICAvKipcbiAgICogVGhlIEFuZ3VsYXIgY29tcG9uZW50IHRvIHVzZSBmb3IgcmVuZGVyaW5nIHJlcG9ydCByZXN1bHQgZ3JpZHMuXG4gICAqIEJXYXlzLWdyaWQgaXMgdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQuIEhvc3QgY2FuIHByb3ZpZGUgYW55IGdyaWQgY29tcG9uZW50LlxuICAgKi9cbiAgZ3JpZENvbXBvbmVudD86IFR5cGU8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRoZSBBbmd1bGFyIGNvbXBvbmVudCB0byB1c2UgZm9yIHJlbmRlcmluZyByZXBvcnQgdmlzdWFsIGNoYXJ0cy5cbiAgICogSG9zdCBjYW4gcHJvdmlkZSB0aGVpciBwcmVmZXJyZWQgY2hhcnQgY29tcG9uZW50LCBvciB1c2UgdGhlIGJ1aWx0LWluIFNWRyBjaGFydHMuXG4gICAqL1xuICBjaGFydENvbXBvbmVudD86IFR5cGU8dW5rbm93bj47XG5cbiAgLyoqIEhvc3QncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGF0YSBzb3VyY2UgYWRhcHRlci4gKi9cbiAgZGF0YVNvdXJjZUFkYXB0ZXI/OiBUeXBlPFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyPjtcblxuICAvKiogSG9zdCdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtYXN0ZXIgZGF0YSBwcm92aWRlci4gKi9cbiAgbWFzdGVyRGF0YVByb3ZpZGVyPzogVHlwZTxNYXN0ZXJEYXRhUHJvdmlkZXI+O1xuXG4gIC8qKiBIb3N0J3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIHBlcnNpc3RlbmNlIGFkYXB0ZXIuICovXG4gIHBlcnNpc3RlbmNlQWRhcHRlcj86IFR5cGU8UmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyPjtcblxuICAvKiogSG9zdCdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzY2hlbWEgZGlzY292ZXJ5IGFkYXB0ZXIgKGRlZmF1bHRzIHRvIEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyKS4gKi9cbiAgc2NoZW1hRGlzY292ZXJ5QWRhcHRlcj86IFR5cGU8UmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlcj47XG5cbiAgLyoqIEhvc3QncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbG9va3VwIGFkYXB0ZXIgKGRlZmF1bHRzIHRvIEh0dHBSZXBvcnRMb29rdXBBZGFwdGVyKS4gKi9cbiAgbG9va3VwQWRhcHRlcj86IFR5cGU8UmVwb3J0TG9va3VwQWRhcHRlcj47XG5cbiAgLyoqXG4gICAqIEhvc3QgYXBwbGljYXRpb24ncyBzZXNzaW9uIGNvbnRleHQgcGFyYW1ldGVycyAoZS5nLiB7IGJyYW5jaElkOiAxLCBjb21wYW55SWQ6IDEwLCB1c2VySWQ6ICd1c3ItMScgfSkuXG4gICAqIENhbiBiZSBhIHN0YXRpYyBvYmplY3QsIGFuIEFuZ3VsYXIgU2lnbmFsLCBhbiBPYnNlcnZhYmxlLCBvciBhIGR5bmFtaWMgZ2V0dGVyIGZ1bmN0aW9uLlxuICAgKiBTdG9yZWQgcHJvY2VkdXJlcyBhdXRvbWF0aWNhbGx5IGJpbmQgbWF0Y2hpbmcgcGFyYW1ldGVycyAobGlrZSBAQnJhbmNoSWQsIEBDb21wYW55SWQpIHRvIHRoaXMgY29udGV4dC5cbiAgICovXG4gIHNlc3Npb25Db250ZXh0PzogU2Vzc2lvbkNvbnRleHRTb3VyY2U7XG5cbiAgLyoqXG4gICAqIEhvc3QgYXBwbGljYXRpb24gc2VydmljZSBjbGFzcyBpbXBsZW1lbnRpbmcgYFNlc3Npb25Db250ZXh0UHJvdmlkZXJgLlxuICAgKiBSZXNvbHZlcyBzZXNzaW9uIHBhcmFtZXRlcnMgZHluYW1pY2FsbHkgYXQgcnVudGltZSAoZS5nLiBmcm9tIHVzZXIgYXV0aCBzdGF0ZSwgYWN0aXZlIGJyYW5jaCBzd2l0Y2hlcikuXG4gICAqL1xuICBzZXNzaW9uQ29udGV4dFByb3ZpZGVyPzogVHlwZTxTZXNzaW9uQ29udGV4dFByb3ZpZGVyPjtcblxuICAvKipcbiAgICogRmFjdG9yeSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBTZXNzaW9uQ29udGV4dFNvdXJjZSB3aXRoIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGNvbnRleHQuXG4gICAqIEUuZy4gYHNlc3Npb25Db250ZXh0RmFjdG9yeTogKCkgPT4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5jdXJyZW50U2Vzc2lvblNpZ25hbGBcbiAgICovXG4gIHNlc3Npb25Db250ZXh0RmFjdG9yeT86ICgpID0+IFNlc3Npb25Db250ZXh0U291cmNlO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBCV2F5cy1SZXBvcnQgbGlicmFyeSB0byB0aGUgYXBwbGljYXRpb24uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGFuZCBhZGFwdGVyIGltcGxlbWVudGF0aW9ucy5cbiAqIEByZXR1cm5zIEVudmlyb25tZW50IHByb3ZpZGVycyBmb3IgdGhlIHJlcG9ydGluZyBsaWJyYXJ5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBhcHAuY29uZmlnLnRzXG4gKiBleHBvcnQgY29uc3QgYXBwQ29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZyA9IHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVJlcG9ydGluZyh7XG4gKiAgICAgICBhcGlCYXNlVXJsOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS9yZXBvcnRpbmcnLFxuICogICAgICAgZ3JpZENvbXBvbmVudDogQndheXNHcmlkQ29tcG9uZW50LFxuICogICAgICAgZGVmYXVsdFBhZ2VTaXplOiA1MCxcbiAqICAgICB9KSxcbiAqICAgXSxcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSZXBvcnRpbmcob3B0aW9uczogUHJvdmlkZVJlcG9ydGluZ09wdGlvbnMgPSB7fSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgY29uZmlnOiBSZXBvcnRpbmdDb25maWcgPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5vcHRpb25zIH07XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICB7IHByb3ZpZGU6IFJFUE9SVElOR19DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlVmFsdWU6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBpbmplY3QoQ29tcG9uZW50UmVnaXN0cnkpO1xuICAgICAgICByZWdpc3RlckJ1aWx0aW5Db21wb25lbnRzKHJlZ2lzdHJ5KTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IG9wdGlvbnMuc2NoZW1hRGlzY292ZXJ5QWRhcHRlciA/PyBIdHRwUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlcixcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJlcG9ydExvb2t1cEFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogb3B0aW9ucy5sb29rdXBBZGFwdGVyID8/IEh0dHBSZXBvcnRMb29rdXBBZGFwdGVyLFxuICAgIH0sXG4gIF07XG5cbiAgaWYgKG9wdGlvbnMuZ3JpZENvbXBvbmVudCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHsgcHJvdmlkZTogR1JJRF9DT01QT05FTlQsIHVzZVZhbHVlOiBvcHRpb25zLmdyaWRDb21wb25lbnQgfSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5jaGFydENvbXBvbmVudCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHsgcHJvdmlkZTogQ0hBUlRfQ09NUE9ORU5ULCB1c2VWYWx1ZTogb3B0aW9ucy5jaGFydENvbXBvbmVudCB9KTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmRhdGFTb3VyY2VBZGFwdGVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSZXBvcnREYXRhU291cmNlQWRhcHRlciwgdXNlQ2xhc3M6IG9wdGlvbnMuZGF0YVNvdXJjZUFkYXB0ZXIgfSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5tYXN0ZXJEYXRhUHJvdmlkZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IE1hc3RlckRhdGFQcm92aWRlciwgdXNlQ2xhc3M6IG9wdGlvbnMubWFzdGVyRGF0YVByb3ZpZGVyIH0pO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMucGVyc2lzdGVuY2VBZGFwdGVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIsIHVzZUNsYXNzOiBvcHRpb25zLnBlcnNpc3RlbmNlQWRhcHRlciB9KTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnNlc3Npb25Db250ZXh0UHJvdmlkZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX1BST1ZJREVSLCB1c2VDbGFzczogb3B0aW9ucy5zZXNzaW9uQ29udGV4dFByb3ZpZGVyIH0pO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2Vzc2lvbkNvbnRleHRGYWN0b3J5KSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSRVBPUlRfU0VTU0lPTl9DT05URVhULCB1c2VGYWN0b3J5OiBvcHRpb25zLnNlc3Npb25Db250ZXh0RmFjdG9yeSB9KTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLnNlc3Npb25Db250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX0NPTlRFWFQsIHVzZVZhbHVlOiBvcHRpb25zLnNlc3Npb25Db250ZXh0IH0pO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of bways-report
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/core';
|
|
5
|
+
export * from './lib/data-access';
|
|
6
|
+
export * from './lib/primitives';
|
|
7
|
+
export * from './lib/features';
|
|
8
|
+
export * from './lib/provide-reporting';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGJ3YXlzLXJlcG9ydFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1hY2Nlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJpbWl0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mZWF0dXJlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm92aWRlLXJlcG9ydGluZyc7XG4iXX0=
|