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.
Files changed (185) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +477 -0
  3. package/esm2022/bways-report.mjs +5 -0
  4. package/esm2022/lib/core/errors/index.mjs +2 -0
  5. package/esm2022/lib/core/errors/reporting-errors.mjs +65 -0
  6. package/esm2022/lib/core/index.mjs +8 -0
  7. package/esm2022/lib/core/models/component-event.model.mjs +8 -0
  8. package/esm2022/lib/core/models/index.mjs +5 -0
  9. package/esm2022/lib/core/models/report-component.model.mjs +10 -0
  10. package/esm2022/lib/core/models/report-datasource.model.mjs +9 -0
  11. package/esm2022/lib/core/models/report-definition.model.mjs +13 -0
  12. package/esm2022/lib/core/models/report-grid.model.mjs +10 -0
  13. package/esm2022/lib/core/models/report-layout.model.mjs +9 -0
  14. package/esm2022/lib/core/models/report-parameter.model.mjs +9 -0
  15. package/esm2022/lib/core/models/validation.model.mjs +8 -0
  16. package/esm2022/lib/core/registry/component-category.mjs +8 -0
  17. package/esm2022/lib/core/registry/component-registry.mjs +90 -0
  18. package/esm2022/lib/core/registry/index.mjs +2 -0
  19. package/esm2022/lib/core/registry/property-definition.model.mjs +10 -0
  20. package/esm2022/lib/core/services/dynamic-form-builder.service.mjs +55 -0
  21. package/esm2022/lib/core/services/index.mjs +3 -0
  22. package/esm2022/lib/core/services/report-session-context.service.mjs +314 -0
  23. package/esm2022/lib/core/tokens/index.mjs +3 -0
  24. package/esm2022/lib/core/tokens/reporting-config.token.mjs +26 -0
  25. package/esm2022/lib/core/tokens/session-context.token.mjs +18 -0
  26. package/esm2022/lib/core/utilities/id-generator.mjs +17 -0
  27. package/esm2022/lib/core/utilities/index.mjs +3 -0
  28. package/esm2022/lib/core/utilities/schema-migration.mjs +38 -0
  29. package/esm2022/lib/core/utils/identifier-humanizer.mjs +88 -0
  30. package/esm2022/lib/core/validation/index.mjs +2 -0
  31. package/esm2022/lib/core/validation/validation-factory.mjs +70 -0
  32. package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +107 -0
  33. package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +119 -0
  34. package/esm2022/lib/data-access/adapters/index.mjs +3 -0
  35. package/esm2022/lib/data-access/contracts/data-source.contract.mjs +28 -0
  36. package/esm2022/lib/data-access/contracts/index.mjs +7 -0
  37. package/esm2022/lib/data-access/contracts/lookup.contract.mjs +6 -0
  38. package/esm2022/lib/data-access/contracts/master-data.provider.mjs +24 -0
  39. package/esm2022/lib/data-access/contracts/report-persistence.contract.mjs +25 -0
  40. package/esm2022/lib/data-access/contracts/schema-discovery.contract.mjs +7 -0
  41. package/esm2022/lib/data-access/contracts/translation.contract.mjs +9 -0
  42. package/esm2022/lib/data-access/index.mjs +3 -0
  43. package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +542 -0
  44. package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +843 -0
  45. package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +556 -0
  46. package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +845 -0
  47. package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +185 -0
  48. package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +452 -0
  49. package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +350 -0
  50. package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +175 -0
  51. package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +137 -0
  52. package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +608 -0
  53. package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +225 -0
  54. package/esm2022/lib/features/designer/designer.component.mjs +285 -0
  55. package/esm2022/lib/features/designer/index.mjs +7 -0
  56. package/esm2022/lib/features/designer/services/designer-state.service.mjs +310 -0
  57. package/esm2022/lib/features/designer/services/index.mjs +2 -0
  58. package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +124 -0
  59. package/esm2022/lib/features/export/index.mjs +2 -0
  60. package/esm2022/lib/features/export/models/export.models.mjs +2 -0
  61. package/esm2022/lib/features/export/services/report-export.service.mjs +107 -0
  62. package/esm2022/lib/features/index.mjs +6 -0
  63. package/esm2022/lib/features/persistence/index.mjs +2 -0
  64. package/esm2022/lib/features/persistence/services/index.mjs +4 -0
  65. package/esm2022/lib/features/persistence/services/report-store.service.mjs +183 -0
  66. package/esm2022/lib/features/persistence/services/report-versioning.service.mjs +81 -0
  67. package/esm2022/lib/features/persistence/services/schema-validator.service.mjs +102 -0
  68. package/esm2022/lib/features/routing/components/routed-report-designer.component.mjs +156 -0
  69. package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +163 -0
  70. package/esm2022/lib/features/routing/index.mjs +6 -0
  71. package/esm2022/lib/features/routing/models/report-route.models.mjs +2 -0
  72. package/esm2022/lib/features/routing/report-routes.mjs +49 -0
  73. package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +22 -0
  74. package/esm2022/lib/features/routing/services/report-menu.service.mjs +77 -0
  75. package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +222 -0
  76. package/esm2022/lib/features/runtime/index.mjs +4 -0
  77. package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +409 -0
  78. package/esm2022/lib/features/runtime/report-runtime.component.mjs +147 -0
  79. package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +88 -0
  80. package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +361 -0
  81. package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +86 -0
  82. package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +91 -0
  83. package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +204 -0
  84. package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +476 -0
  85. package/esm2022/lib/primitives/components/index.mjs +10 -0
  86. package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +88 -0
  87. package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +197 -0
  88. package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +110 -0
  89. package/esm2022/lib/primitives/index.mjs +3 -0
  90. package/esm2022/lib/primitives/register-builtins.mjs +328 -0
  91. package/esm2022/lib/provide-reporting.mjs +92 -0
  92. package/esm2022/public-api.mjs +9 -0
  93. package/fesm2022/bways-report.mjs +10360 -0
  94. package/fesm2022/bways-report.mjs.map +1 -0
  95. package/index.d.ts +5 -0
  96. package/lib/core/errors/index.d.ts +1 -0
  97. package/lib/core/errors/reporting-errors.d.ts +42 -0
  98. package/lib/core/index.d.ts +7 -0
  99. package/lib/core/models/component-event.model.d.ts +37 -0
  100. package/lib/core/models/index.d.ts +11 -0
  101. package/lib/core/models/report-component.model.d.ts +95 -0
  102. package/lib/core/models/report-datasource.model.d.ts +39 -0
  103. package/lib/core/models/report-definition.model.d.ts +100 -0
  104. package/lib/core/models/report-grid.model.d.ts +73 -0
  105. package/lib/core/models/report-layout.model.d.ts +43 -0
  106. package/lib/core/models/report-parameter.model.d.ts +22 -0
  107. package/lib/core/models/validation.model.d.ts +30 -0
  108. package/lib/core/registry/component-category.d.ts +16 -0
  109. package/lib/core/registry/component-registry.d.ts +101 -0
  110. package/lib/core/registry/index.d.ts +4 -0
  111. package/lib/core/registry/property-definition.model.d.ts +38 -0
  112. package/lib/core/services/dynamic-form-builder.service.d.ts +30 -0
  113. package/lib/core/services/index.d.ts +3 -0
  114. package/lib/core/services/report-session-context.service.d.ts +87 -0
  115. package/lib/core/tokens/index.d.ts +4 -0
  116. package/lib/core/tokens/reporting-config.token.d.ts +42 -0
  117. package/lib/core/tokens/session-context.token.d.ts +36 -0
  118. package/lib/core/utilities/id-generator.d.ts +9 -0
  119. package/lib/core/utilities/index.d.ts +3 -0
  120. package/lib/core/utilities/schema-migration.d.ts +10 -0
  121. package/lib/core/utils/identifier-humanizer.d.ts +22 -0
  122. package/lib/core/validation/index.d.ts +1 -0
  123. package/lib/core/validation/validation-factory.d.ts +31 -0
  124. package/lib/data-access/adapters/http-lookup.adapter.d.ts +19 -0
  125. package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +20 -0
  126. package/lib/data-access/adapters/index.d.ts +2 -0
  127. package/lib/data-access/contracts/data-source.contract.d.ts +37 -0
  128. package/lib/data-access/contracts/index.d.ts +9 -0
  129. package/lib/data-access/contracts/lookup.contract.d.ts +32 -0
  130. package/lib/data-access/contracts/master-data.provider.d.ts +54 -0
  131. package/lib/data-access/contracts/report-persistence.contract.d.ts +36 -0
  132. package/lib/data-access/contracts/schema-discovery.contract.d.ts +52 -0
  133. package/lib/data-access/contracts/translation.contract.d.ts +16 -0
  134. package/lib/data-access/index.d.ts +2 -0
  135. package/lib/features/designer/components/component-palette/component-palette.component.d.ts +39 -0
  136. package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +42 -0
  137. package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +36 -0
  138. package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +68 -0
  139. package/lib/features/designer/components/property-editor/property-editor-general.component.d.ts +20 -0
  140. package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +20 -0
  141. package/lib/features/designer/components/property-editor/property-editor-layout.component.d.ts +18 -0
  142. package/lib/features/designer/components/property-editor/property-editor-report.component.d.ts +15 -0
  143. package/lib/features/designer/components/property-editor/property-editor-validation.component.d.ts +12 -0
  144. package/lib/features/designer/components/property-editor/property-editor.component.d.ts +44 -0
  145. package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +18 -0
  146. package/lib/features/designer/designer.component.d.ts +36 -0
  147. package/lib/features/designer/index.d.ts +7 -0
  148. package/lib/features/designer/services/designer-state.service.d.ts +103 -0
  149. package/lib/features/designer/services/index.d.ts +2 -0
  150. package/lib/features/designer/utilities/canvas-layout.util.d.ts +55 -0
  151. package/lib/features/export/index.d.ts +2 -0
  152. package/lib/features/export/models/export.models.d.ts +16 -0
  153. package/lib/features/export/services/report-export.service.d.ts +27 -0
  154. package/lib/features/index.d.ts +5 -0
  155. package/lib/features/persistence/index.d.ts +1 -0
  156. package/lib/features/persistence/services/index.d.ts +5 -0
  157. package/lib/features/persistence/services/report-store.service.d.ts +53 -0
  158. package/lib/features/persistence/services/report-versioning.service.d.ts +29 -0
  159. package/lib/features/persistence/services/schema-validator.service.d.ts +34 -0
  160. package/lib/features/routing/components/routed-report-designer.component.d.ts +18 -0
  161. package/lib/features/routing/components/routed-report-runtime.component.d.ts +18 -0
  162. package/lib/features/routing/index.d.ts +6 -0
  163. package/lib/features/routing/models/report-route.models.d.ts +41 -0
  164. package/lib/features/routing/report-routes.d.ts +16 -0
  165. package/lib/features/routing/resolvers/report.resolver.d.ts +7 -0
  166. package/lib/features/routing/services/report-menu.service.d.ts +30 -0
  167. package/lib/features/runtime/dynamic-renderer.component.d.ts +30 -0
  168. package/lib/features/runtime/index.d.ts +3 -0
  169. package/lib/features/runtime/report-grid-bridge.component.d.ts +94 -0
  170. package/lib/features/runtime/report-runtime.component.d.ts +26 -0
  171. package/lib/primitives/components/button/rpt-button.component.d.ts +19 -0
  172. package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +45 -0
  173. package/lib/primitives/components/checkbox/rpt-checkbox.component.d.ts +14 -0
  174. package/lib/primitives/components/date/rpt-date.component.d.ts +17 -0
  175. package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +32 -0
  176. package/lib/primitives/components/icon/rpt-icon.component.d.ts +41 -0
  177. package/lib/primitives/components/index.d.ts +12 -0
  178. package/lib/primitives/components/input/rpt-input.component.d.ts +16 -0
  179. package/lib/primitives/components/kpi-card/rpt-kpi-card.component.d.ts +43 -0
  180. package/lib/primitives/components/number/rpt-number.component.d.ts +20 -0
  181. package/lib/primitives/index.d.ts +2 -0
  182. package/lib/primitives/register-builtins.d.ts +11 -0
  183. package/lib/provide-reporting.d.ts +75 -0
  184. package/package.json +55 -0
  185. 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=