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,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation factory — converts `ValidationDefinition` metadata
|
|
3
|
+
* into Angular `ValidatorFn[]`.
|
|
4
|
+
*
|
|
5
|
+
* This is a **pure function** — no DI, no Angular TestBed needed.
|
|
6
|
+
* Easily unit-testable.
|
|
7
|
+
*/
|
|
8
|
+
import { Validators } from '@angular/forms';
|
|
9
|
+
/**
|
|
10
|
+
* Converts a `ValidationDefinition` into an array of Angular validator functions.
|
|
11
|
+
*
|
|
12
|
+
* @param definition - Validation metadata from the report definition.
|
|
13
|
+
* @returns Array of Angular `ValidatorFn` to apply to a form control.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const validators = createValidators({ required: true, maxLength: 100 });
|
|
18
|
+
* const control = new FormControl('', validators);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export function createValidators(definition) {
|
|
22
|
+
if (!definition) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
const validators = [];
|
|
26
|
+
if (definition.required) {
|
|
27
|
+
validators.push(Validators.required);
|
|
28
|
+
}
|
|
29
|
+
if (definition.min !== undefined) {
|
|
30
|
+
validators.push(Validators.min(definition.min));
|
|
31
|
+
}
|
|
32
|
+
if (definition.max !== undefined) {
|
|
33
|
+
validators.push(Validators.max(definition.max));
|
|
34
|
+
}
|
|
35
|
+
if (definition.minLength !== undefined) {
|
|
36
|
+
validators.push(Validators.minLength(definition.minLength));
|
|
37
|
+
}
|
|
38
|
+
if (definition.maxLength !== undefined) {
|
|
39
|
+
validators.push(Validators.maxLength(definition.maxLength));
|
|
40
|
+
}
|
|
41
|
+
if (definition.pattern) {
|
|
42
|
+
validators.push(Validators.pattern(definition.pattern));
|
|
43
|
+
}
|
|
44
|
+
return validators;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Extracts a user-facing validation error message from a validation definition
|
|
48
|
+
* and error key.
|
|
49
|
+
*
|
|
50
|
+
* @param definition - Validation metadata.
|
|
51
|
+
* @param errorKey - The validation error key (e.g., 'required', 'maxlength').
|
|
52
|
+
* @returns The custom message if defined, or a default message.
|
|
53
|
+
*/
|
|
54
|
+
export function getValidationMessage(definition, errorKey) {
|
|
55
|
+
// Check for custom message first
|
|
56
|
+
if (definition?.messages?.[errorKey]) {
|
|
57
|
+
return definition.messages[errorKey];
|
|
58
|
+
}
|
|
59
|
+
// Default messages
|
|
60
|
+
const defaults = {
|
|
61
|
+
required: 'This field is required',
|
|
62
|
+
min: `Minimum value is ${definition?.min}`,
|
|
63
|
+
max: `Maximum value is ${definition?.max}`,
|
|
64
|
+
minlength: `Minimum length is ${definition?.minLength}`,
|
|
65
|
+
maxlength: `Maximum length is ${definition?.maxLength}`,
|
|
66
|
+
pattern: 'Invalid format',
|
|
67
|
+
};
|
|
68
|
+
return defaults[errorKey] ?? 'Invalid value';
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvY29yZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBaUM7SUFDaEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7SUFFckMsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNqQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNqQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFVBQTRDLEVBQzVDLFFBQWdCO0lBRWhCLGlDQUFpQztJQUNqQyxJQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLE1BQU0sUUFBUSxHQUEyQjtRQUN2QyxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLEdBQUcsRUFBRSxvQkFBb0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtRQUMxQyxHQUFHLEVBQUUsb0JBQW9CLFVBQVUsRUFBRSxHQUFHLEVBQUU7UUFDMUMsU0FBUyxFQUFFLHFCQUFxQixVQUFVLEVBQUUsU0FBUyxFQUFFO1FBQ3ZELFNBQVMsRUFBRSxxQkFBcUIsVUFBVSxFQUFFLFNBQVMsRUFBRTtRQUN2RCxPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxlQUFlLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmFsaWRhdGlvbiBmYWN0b3J5IOKAlCBjb252ZXJ0cyBgVmFsaWRhdGlvbkRlZmluaXRpb25gIG1ldGFkYXRhXG4gKiBpbnRvIEFuZ3VsYXIgYFZhbGlkYXRvckZuW11gLlxuICpcbiAqIFRoaXMgaXMgYSAqKnB1cmUgZnVuY3Rpb24qKiDigJQgbm8gREksIG5vIEFuZ3VsYXIgVGVzdEJlZCBuZWVkZWQuXG4gKiBFYXNpbHkgdW5pdC10ZXN0YWJsZS5cbiAqL1xuXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRpb25EZWZpbml0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3ZhbGlkYXRpb24ubW9kZWwnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYFZhbGlkYXRpb25EZWZpbml0aW9uYCBpbnRvIGFuIGFycmF5IG9mIEFuZ3VsYXIgdmFsaWRhdG9yIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gZGVmaW5pdGlvbiAtIFZhbGlkYXRpb24gbWV0YWRhdGEgZnJvbSB0aGUgcmVwb3J0IGRlZmluaXRpb24uXG4gKiBAcmV0dXJucyBBcnJheSBvZiBBbmd1bGFyIGBWYWxpZGF0b3JGbmAgdG8gYXBwbHkgdG8gYSBmb3JtIGNvbnRyb2wuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHZhbGlkYXRvcnMgPSBjcmVhdGVWYWxpZGF0b3JzKHsgcmVxdWlyZWQ6IHRydWUsIG1heExlbmd0aDogMTAwIH0pO1xuICogY29uc3QgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgdmFsaWRhdG9ycyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZhbGlkYXRvcnMoZGVmaW5pdGlvbj86IFZhbGlkYXRpb25EZWZpbml0aW9uKTogVmFsaWRhdG9yRm5bXSB7XG4gIGlmICghZGVmaW5pdGlvbikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICBpZiAoZGVmaW5pdGlvbi5yZXF1aXJlZCkge1xuICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gIGlmIChkZWZpbml0aW9uLm1pbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGRlZmluaXRpb24ubWluKSk7XG4gIH1cblxuICBpZiAoZGVmaW5pdGlvbi5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChkZWZpbml0aW9uLm1heCkpO1xuICB9XG5cbiAgaWYgKGRlZmluaXRpb24ubWluTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZGVmaW5pdGlvbi5taW5MZW5ndGgpKTtcbiAgfVxuXG4gIGlmIChkZWZpbml0aW9uLm1heExlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGRlZmluaXRpb24ubWF4TGVuZ3RoKSk7XG4gIH1cblxuICBpZiAoZGVmaW5pdGlvbi5wYXR0ZXJuKSB7XG4gICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihkZWZpbml0aW9uLnBhdHRlcm4pKTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0b3JzO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIGEgdXNlci1mYWNpbmcgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlIGZyb20gYSB2YWxpZGF0aW9uIGRlZmluaXRpb25cbiAqIGFuZCBlcnJvciBrZXkuXG4gKlxuICogQHBhcmFtIGRlZmluaXRpb24gLSBWYWxpZGF0aW9uIG1ldGFkYXRhLlxuICogQHBhcmFtIGVycm9yS2V5IC0gVGhlIHZhbGlkYXRpb24gZXJyb3Iga2V5IChlLmcuLCAncmVxdWlyZWQnLCAnbWF4bGVuZ3RoJykuXG4gKiBAcmV0dXJucyBUaGUgY3VzdG9tIG1lc3NhZ2UgaWYgZGVmaW5lZCwgb3IgYSBkZWZhdWx0IG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uTWVzc2FnZShcbiAgZGVmaW5pdGlvbjogVmFsaWRhdGlvbkRlZmluaXRpb24gfCB1bmRlZmluZWQsXG4gIGVycm9yS2V5OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIC8vIENoZWNrIGZvciBjdXN0b20gbWVzc2FnZSBmaXJzdFxuICBpZiAoZGVmaW5pdGlvbj8ubWVzc2FnZXM/LltlcnJvcktleV0pIHtcbiAgICByZXR1cm4gZGVmaW5pdGlvbi5tZXNzYWdlc1tlcnJvcktleV07XG4gIH1cblxuICAvLyBEZWZhdWx0IG1lc3NhZ2VzXG4gIGNvbnN0IGRlZmF1bHRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcsXG4gICAgbWluOiBgTWluaW11bSB2YWx1ZSBpcyAke2RlZmluaXRpb24/Lm1pbn1gLFxuICAgIG1heDogYE1heGltdW0gdmFsdWUgaXMgJHtkZWZpbml0aW9uPy5tYXh9YCxcbiAgICBtaW5sZW5ndGg6IGBNaW5pbXVtIGxlbmd0aCBpcyAke2RlZmluaXRpb24/Lm1pbkxlbmd0aH1gLFxuICAgIG1heGxlbmd0aDogYE1heGltdW0gbGVuZ3RoIGlzICR7ZGVmaW5pdGlvbj8ubWF4TGVuZ3RofWAsXG4gICAgcGF0dGVybjogJ0ludmFsaWQgZm9ybWF0JyxcbiAgfTtcblxuICByZXR1cm4gZGVmYXVsdHNbZXJyb3JLZXldID8/ICdJbnZhbGlkIHZhbHVlJztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import { catchError, tap } from 'rxjs/operators';
|
|
5
|
+
import { ReportLookupAdapter, } from '../contracts/lookup.contract';
|
|
6
|
+
import { REPORTING_CONFIG } from '../../core/tokens/reporting-config.token';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Built-in HTTP adapter for fetching dropdown options from backend database tables and SPs.
|
|
10
|
+
* Includes in-memory caching with TTL and rich fallback mock data for testing.
|
|
11
|
+
*/
|
|
12
|
+
export class HttpReportLookupAdapter extends ReportLookupAdapter {
|
|
13
|
+
http = inject(HttpClient, { optional: true });
|
|
14
|
+
config = inject(REPORTING_CONFIG, { optional: true });
|
|
15
|
+
cache = new Map();
|
|
16
|
+
mockDataStore = {
|
|
17
|
+
Customers: [
|
|
18
|
+
{ customerId: 101, customerName: 'Acme Corporation', branchId: 1, isActive: true },
|
|
19
|
+
{ customerId: 102, customerName: 'Globex Industries', branchId: 2, isActive: true },
|
|
20
|
+
{ customerId: 103, customerName: 'Initech Software', branchId: 1, isActive: true },
|
|
21
|
+
{ customerId: 104, customerName: 'Umbrella Corporation', branchId: 3, isActive: true },
|
|
22
|
+
{ customerId: 105, customerName: 'Wayne Enterprises', branchId: 2, isActive: true },
|
|
23
|
+
{ customerId: 106, customerName: 'Stark Industries', branchId: 1, isActive: true },
|
|
24
|
+
],
|
|
25
|
+
Branches: [
|
|
26
|
+
{ branchId: 1, branchName: 'North America HQ (New York)', region: 'North America' },
|
|
27
|
+
{ branchId: 2, branchName: 'EMEA Division (London)', region: 'Europe' },
|
|
28
|
+
{ branchId: 3, branchName: 'APAC Hub (Singapore)', region: 'Asia Pacific' },
|
|
29
|
+
{ branchId: 4, branchName: 'LATAM Office (São Paulo)', region: 'Latin America' },
|
|
30
|
+
],
|
|
31
|
+
Products: [
|
|
32
|
+
{ productId: 1, productName: 'Enterprise ERP Suite', category: 'Software', unitPrice: 2400 },
|
|
33
|
+
{ productId: 2, productName: 'Cloud Analytics Pro', category: 'SaaS', unitPrice: 1200 },
|
|
34
|
+
{ productId: 3, productName: 'Security Shield Endpoint', category: 'Security', unitPrice: 850 },
|
|
35
|
+
{ productId: 4, productName: 'Dedicated API Gateway', category: 'Infrastructure', unitPrice: 3100 },
|
|
36
|
+
],
|
|
37
|
+
PaymentMethods: [
|
|
38
|
+
{ code: 'BANK_TRANSFER', title: 'Direct Bank Wire' },
|
|
39
|
+
{ code: 'CREDIT_CARD', title: 'Corporate Credit Card' },
|
|
40
|
+
{ code: 'PAYPAL', title: 'PayPal Corporate' },
|
|
41
|
+
{ code: 'NET_30', title: 'Net 30 Invoicing' },
|
|
42
|
+
],
|
|
43
|
+
usp_GetCustomerList: [
|
|
44
|
+
{ id: 101, name: 'Acme Corporation (SP)', branchId: 1, branch: 'NA' },
|
|
45
|
+
{ id: 102, name: 'Globex Industries (SP)', branchId: 2, branch: 'EMEA' },
|
|
46
|
+
{ id: 105, name: 'Wayne Enterprises (SP)', branchId: 1, branch: 'NA' },
|
|
47
|
+
{ id: 106, name: 'Stark Industries (SP)', branchId: 3, branch: 'APAC' },
|
|
48
|
+
],
|
|
49
|
+
usp_GetBranchLookup: [
|
|
50
|
+
{ id: 1, name: 'North America HQ' },
|
|
51
|
+
{ id: 2, name: 'EMEA Division' },
|
|
52
|
+
{ id: 3, name: 'APAC Hub' },
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
fetchOptions(request) {
|
|
56
|
+
const cacheKey = this.generateCacheKey(request);
|
|
57
|
+
const cached = this.cache.get(cacheKey);
|
|
58
|
+
const now = Date.now();
|
|
59
|
+
if (cached && cached.expiresAt > now) {
|
|
60
|
+
return of(cached.data);
|
|
61
|
+
}
|
|
62
|
+
const baseUrl = this.config?.apiBaseUrl;
|
|
63
|
+
if (baseUrl && this.http) {
|
|
64
|
+
return this.http.post(`${baseUrl}/lookup`, request).pipe(tap((items) => this.setCache(cacheKey, items)), catchError((err) => {
|
|
65
|
+
console.warn('[HttpLookupAdapter] Remote lookup failed, falling back to mock:', err);
|
|
66
|
+
const fallback = this.resolveMockOptions(request);
|
|
67
|
+
this.setCache(cacheKey, fallback);
|
|
68
|
+
return of(fallback);
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
const fallback = this.resolveMockOptions(request);
|
|
72
|
+
this.setCache(cacheKey, fallback);
|
|
73
|
+
return of(fallback);
|
|
74
|
+
}
|
|
75
|
+
setCache(key, data, ttlSeconds = 300) {
|
|
76
|
+
this.cache.set(key, {
|
|
77
|
+
expiresAt: Date.now() + ttlSeconds * 1000,
|
|
78
|
+
data,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
generateCacheKey(req) {
|
|
82
|
+
return `${req.sourceType}:${req.entityName}:${req.valueField}:${req.displayField}:${JSON.stringify(req.filter ?? {})}:${JSON.stringify(req.parameters ?? {})}`;
|
|
83
|
+
}
|
|
84
|
+
resolveMockOptions(req) {
|
|
85
|
+
const entity = req.entityName || '';
|
|
86
|
+
const records = this.mockDataStore[entity] ?? [];
|
|
87
|
+
const valKey = req.valueField;
|
|
88
|
+
const labelKey = req.displayField;
|
|
89
|
+
let filteredRecords = records;
|
|
90
|
+
const branchParam = req.parameters?.['@BranchId'] ?? req.parameters?.['branchId'];
|
|
91
|
+
if (branchParam !== undefined && branchParam !== null && branchParam !== '') {
|
|
92
|
+
const matchNum = Number(branchParam);
|
|
93
|
+
filteredRecords = records.filter((r) => r['branchId'] === undefined || r['branchId'] === matchNum || r['branch'] === String(branchParam));
|
|
94
|
+
}
|
|
95
|
+
return filteredRecords.map((r) => ({
|
|
96
|
+
value: r[valKey] ?? String(r['id'] ?? r['code'] ?? ''),
|
|
97
|
+
label: r[labelKey] ?? String(r['name'] ?? r['title'] ?? ''),
|
|
98
|
+
raw: r,
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportLookupAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
102
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportLookupAdapter });
|
|
103
|
+
}
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportLookupAdapter, decorators: [{
|
|
105
|
+
type: Injectable
|
|
106
|
+
}] });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1sb29rdXAuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2RhdGEtYWNjZXNzL2FkYXB0ZXJzL2h0dHAtbG9va3VwLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBTyxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBR0wsbUJBQW1CLEdBQ3BCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBTzVFOzs7R0FHRztBQUVILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDN0MsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdEQsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO0lBRXRDLGFBQWEsR0FBc0Q7UUFDbEYsU0FBUyxFQUFFO1lBQ1QsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbEYsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbkYsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbEYsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDdEYsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbkYsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDbkY7UUFDRCxRQUFRLEVBQUU7WUFDUixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUU7WUFDbkYsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO1lBQ3ZFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRTtZQUMzRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUU7U0FDakY7UUFDRCxRQUFRLEVBQUU7WUFDUixFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUM1RixFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN2RixFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUMvRixFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO1NBQ3BHO1FBQ0QsY0FBYyxFQUFFO1lBQ2QsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtZQUNwRCxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFO1lBQ3ZELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7WUFDN0MsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtTQUM5QztRQUNELG1CQUFtQixFQUFFO1lBQ25CLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ3JFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1lBQ3hFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ3RFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1NBQ3hFO1FBQ0QsbUJBQW1CLEVBQUU7WUFDbkIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNuQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUNoQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtTQUM1QjtLQUNGLENBQUM7SUFFRixZQUFZLENBQUMsT0FBMkI7UUFDdEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUV2QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7UUFDeEMsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXFCLEdBQUcsT0FBTyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMxRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQzlDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU8sUUFBUSxDQUFDLEdBQVcsRUFBRSxJQUF3QixFQUFFLFVBQVUsR0FBRyxHQUFHO1FBQ3RFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsR0FBRyxJQUFJO1lBQ3pDLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsR0FBdUI7UUFDOUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ2pLLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxHQUF1QjtRQUNoRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFFbEMsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDO1FBQzlCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEYsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzVFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQyxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUN4RyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQyxLQUFLLEVBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBcUIsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0UsS0FBSyxFQUFHLENBQUMsQ0FBQyxRQUFRLENBQVksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkUsR0FBRyxFQUFFLENBQUM7U0FDUCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7d0dBeEdVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgTG9va3VwT3B0aW9uSXRlbSxcbiAgTG9va3VwUXVlcnlSZXF1ZXN0LFxuICBSZXBvcnRMb29rdXBBZGFwdGVyLFxufSBmcm9tICcuLi9jb250cmFjdHMvbG9va3VwLmNvbnRyYWN0JztcbmltcG9ydCB7IFJFUE9SVElOR19DT05GSUcgfSBmcm9tICcuLi8uLi9jb3JlL3Rva2Vucy9yZXBvcnRpbmctY29uZmlnLnRva2VuJztcblxuaW50ZXJmYWNlIENhY2hlRW50cnkge1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgZGF0YTogTG9va3VwT3B0aW9uSXRlbVtdO1xufVxuXG4vKipcbiAqIEJ1aWx0LWluIEhUVFAgYWRhcHRlciBmb3IgZmV0Y2hpbmcgZHJvcGRvd24gb3B0aW9ucyBmcm9tIGJhY2tlbmQgZGF0YWJhc2UgdGFibGVzIGFuZCBTUHMuXG4gKiBJbmNsdWRlcyBpbi1tZW1vcnkgY2FjaGluZyB3aXRoIFRUTCBhbmQgcmljaCBmYWxsYmFjayBtb2NrIGRhdGEgZm9yIHRlc3RpbmcuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciBleHRlbmRzIFJlcG9ydExvb2t1cEFkYXB0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoUkVQT1JUSU5HX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlRW50cnk+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb2NrRGF0YVN0b3JlOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7IFtrZXk6IHN0cmluZ106IHVua25vd24gfT4+ID0ge1xuICAgIEN1c3RvbWVyczogW1xuICAgICAgeyBjdXN0b21lcklkOiAxMDEsIGN1c3RvbWVyTmFtZTogJ0FjbWUgQ29ycG9yYXRpb24nLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTAyLCBjdXN0b21lck5hbWU6ICdHbG9iZXggSW5kdXN0cmllcycsIGJyYW5jaElkOiAyLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDMsIGN1c3RvbWVyTmFtZTogJ0luaXRlY2ggU29mdHdhcmUnLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTA0LCBjdXN0b21lck5hbWU6ICdVbWJyZWxsYSBDb3Jwb3JhdGlvbicsIGJyYW5jaElkOiAzLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDUsIGN1c3RvbWVyTmFtZTogJ1dheW5lIEVudGVycHJpc2VzJywgYnJhbmNoSWQ6IDIsIGlzQWN0aXZlOiB0cnVlIH0sXG4gICAgICB7IGN1c3RvbWVySWQ6IDEwNiwgY3VzdG9tZXJOYW1lOiAnU3RhcmsgSW5kdXN0cmllcycsIGJyYW5jaElkOiAxLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgQnJhbmNoZXM6IFtcbiAgICAgIHsgYnJhbmNoSWQ6IDEsIGJyYW5jaE5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRIChOZXcgWW9yayknLCByZWdpb246ICdOb3J0aCBBbWVyaWNhJyB9LFxuICAgICAgeyBicmFuY2hJZDogMiwgYnJhbmNoTmFtZTogJ0VNRUEgRGl2aXNpb24gKExvbmRvbiknLCByZWdpb246ICdFdXJvcGUnIH0sXG4gICAgICB7IGJyYW5jaElkOiAzLCBicmFuY2hOYW1lOiAnQVBBQyBIdWIgKFNpbmdhcG9yZSknLCByZWdpb246ICdBc2lhIFBhY2lmaWMnIH0sXG4gICAgICB7IGJyYW5jaElkOiA0LCBicmFuY2hOYW1lOiAnTEFUQU0gT2ZmaWNlIChTw6NvIFBhdWxvKScsIHJlZ2lvbjogJ0xhdGluIEFtZXJpY2EnIH0sXG4gICAgXSxcbiAgICBQcm9kdWN0czogW1xuICAgICAgeyBwcm9kdWN0SWQ6IDEsIHByb2R1Y3ROYW1lOiAnRW50ZXJwcmlzZSBFUlAgU3VpdGUnLCBjYXRlZ29yeTogJ1NvZnR3YXJlJywgdW5pdFByaWNlOiAyNDAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMiwgcHJvZHVjdE5hbWU6ICdDbG91ZCBBbmFseXRpY3MgUHJvJywgY2F0ZWdvcnk6ICdTYWFTJywgdW5pdFByaWNlOiAxMjAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMywgcHJvZHVjdE5hbWU6ICdTZWN1cml0eSBTaGllbGQgRW5kcG9pbnQnLCBjYXRlZ29yeTogJ1NlY3VyaXR5JywgdW5pdFByaWNlOiA4NTAgfSxcbiAgICAgIHsgcHJvZHVjdElkOiA0LCBwcm9kdWN0TmFtZTogJ0RlZGljYXRlZCBBUEkgR2F0ZXdheScsIGNhdGVnb3J5OiAnSW5mcmFzdHJ1Y3R1cmUnLCB1bml0UHJpY2U6IDMxMDAgfSxcbiAgICBdLFxuICAgIFBheW1lbnRNZXRob2RzOiBbXG4gICAgICB7IGNvZGU6ICdCQU5LX1RSQU5TRkVSJywgdGl0bGU6ICdEaXJlY3QgQmFuayBXaXJlJyB9LFxuICAgICAgeyBjb2RlOiAnQ1JFRElUX0NBUkQnLCB0aXRsZTogJ0NvcnBvcmF0ZSBDcmVkaXQgQ2FyZCcgfSxcbiAgICAgIHsgY29kZTogJ1BBWVBBTCcsIHRpdGxlOiAnUGF5UGFsIENvcnBvcmF0ZScgfSxcbiAgICAgIHsgY29kZTogJ05FVF8zMCcsIHRpdGxlOiAnTmV0IDMwIEludm9pY2luZycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRDdXN0b21lckxpc3Q6IFtcbiAgICAgIHsgaWQ6IDEwMSwgbmFtZTogJ0FjbWUgQ29ycG9yYXRpb24gKFNQKScsIGJyYW5jaElkOiAxLCBicmFuY2g6ICdOQScgfSxcbiAgICAgIHsgaWQ6IDEwMiwgbmFtZTogJ0dsb2JleCBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMiwgYnJhbmNoOiAnRU1FQScgfSxcbiAgICAgIHsgaWQ6IDEwNSwgbmFtZTogJ1dheW5lIEVudGVycHJpc2VzIChTUCknLCBicmFuY2hJZDogMSwgYnJhbmNoOiAnTkEnIH0sXG4gICAgICB7IGlkOiAxMDYsIG5hbWU6ICdTdGFyayBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMywgYnJhbmNoOiAnQVBBQycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgaWQ6IDEsIG5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRJyB9LFxuICAgICAgeyBpZDogMiwgbmFtZTogJ0VNRUEgRGl2aXNpb24nIH0sXG4gICAgICB7IGlkOiAzLCBuYW1lOiAnQVBBQyBIdWInIH0sXG4gICAgXSxcbiAgfTtcblxuICBmZXRjaE9wdGlvbnMocmVxdWVzdDogTG9va3VwUXVlcnlSZXF1ZXN0KTogT2JzZXJ2YWJsZTxMb29rdXBPcHRpb25JdGVtW10+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IHRoaXMuZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KTtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGlmIChjYWNoZWQgJiYgY2FjaGVkLmV4cGlyZXNBdCA+IG5vdykge1xuICAgICAgcmV0dXJuIG9mKGNhY2hlZC5kYXRhKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TG9va3VwT3B0aW9uSXRlbVtdPihgJHtiYXNlVXJsfS9sb29rdXBgLCByZXF1ZXN0KS5waXBlKFxuICAgICAgICB0YXAoKGl0ZW1zKSA9PiB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBpdGVtcykpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1tIdHRwTG9va3VwQWRhcHRlcl0gUmVtb3RlIGxvb2t1cCBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBtb2NrOicsIGVycik7XG4gICAgICAgICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLnJlc29sdmVNb2NrT3B0aW9ucyhyZXF1ZXN0KTtcbiAgICAgICAgICB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBmYWxsYmFjayk7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbGxiYWNrKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLnJlc29sdmVNb2NrT3B0aW9ucyhyZXF1ZXN0KTtcbiAgICB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBmYWxsYmFjayk7XG4gICAgcmV0dXJuIG9mKGZhbGxiYWNrKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FjaGUoa2V5OiBzdHJpbmcsIGRhdGE6IExvb2t1cE9wdGlvbkl0ZW1bXSwgdHRsU2Vjb25kcyA9IDMwMCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUuc2V0KGtleSwge1xuICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgdHRsU2Vjb25kcyAqIDEwMDAsXG4gICAgICBkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhY2hlS2V5KHJlcTogTG9va3VwUXVlcnlSZXF1ZXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cmVxLnNvdXJjZVR5cGV9OiR7cmVxLmVudGl0eU5hbWV9OiR7cmVxLnZhbHVlRmllbGR9OiR7cmVxLmRpc3BsYXlGaWVsZH06JHtKU09OLnN0cmluZ2lmeShyZXEuZmlsdGVyID8/IHt9KX06JHtKU09OLnN0cmluZ2lmeShyZXEucGFyYW1ldGVycyA/PyB7fSl9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZU1vY2tPcHRpb25zKHJlcTogTG9va3VwUXVlcnlSZXF1ZXN0KTogTG9va3VwT3B0aW9uSXRlbVtdIHtcbiAgICBjb25zdCBlbnRpdHkgPSByZXEuZW50aXR5TmFtZSB8fCAnJztcbiAgICBjb25zdCByZWNvcmRzID0gdGhpcy5tb2NrRGF0YVN0b3JlW2VudGl0eV0gPz8gW107XG4gICAgY29uc3QgdmFsS2V5ID0gcmVxLnZhbHVlRmllbGQ7XG4gICAgY29uc3QgbGFiZWxLZXkgPSByZXEuZGlzcGxheUZpZWxkO1xuXG4gICAgbGV0IGZpbHRlcmVkUmVjb3JkcyA9IHJlY29yZHM7XG4gICAgY29uc3QgYnJhbmNoUGFyYW0gPSByZXEucGFyYW1ldGVycz8uWydAQnJhbmNoSWQnXSA/PyByZXEucGFyYW1ldGVycz8uWydicmFuY2hJZCddO1xuICAgIGlmIChicmFuY2hQYXJhbSAhPT0gdW5kZWZpbmVkICYmIGJyYW5jaFBhcmFtICE9PSBudWxsICYmIGJyYW5jaFBhcmFtICE9PSAnJykge1xuICAgICAgY29uc3QgbWF0Y2hOdW0gPSBOdW1iZXIoYnJhbmNoUGFyYW0pO1xuICAgICAgZmlsdGVyZWRSZWNvcmRzID0gcmVjb3Jkcy5maWx0ZXIoXG4gICAgICAgIChyKSA9PiByWydicmFuY2hJZCddID09PSB1bmRlZmluZWQgfHwgclsnYnJhbmNoSWQnXSA9PT0gbWF0Y2hOdW0gfHwgclsnYnJhbmNoJ10gPT09IFN0cmluZyhicmFuY2hQYXJhbSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkUmVjb3Jkcy5tYXAoKHIpID0+ICh7XG4gICAgICB2YWx1ZTogKHJbdmFsS2V5XSBhcyBzdHJpbmcgfCBudW1iZXIpID8/IFN0cmluZyhyWydpZCddID8/IHJbJ2NvZGUnXSA/PyAnJyksXG4gICAgICBsYWJlbDogKHJbbGFiZWxLZXldIGFzIHN0cmluZykgPz8gU3RyaW5nKHJbJ25hbWUnXSA/PyByWyd0aXRsZSddID8/ICcnKSxcbiAgICAgIHJhdzogcixcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import { catchError } from 'rxjs/operators';
|
|
5
|
+
import { ReportSchemaDiscoveryAdapter, } from '../contracts/schema-discovery.contract';
|
|
6
|
+
import { REPORTING_CONFIG } from '../../core/tokens/reporting-config.token';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Built-in HTTP adapter for backend database schema discovery.
|
|
10
|
+
* Connects to NestJS / REST backend endpoints, with fallback mock schema for development.
|
|
11
|
+
*/
|
|
12
|
+
export class HttpReportSchemaDiscoveryAdapter extends ReportSchemaDiscoveryAdapter {
|
|
13
|
+
http = inject(HttpClient, { optional: true });
|
|
14
|
+
config = inject(REPORTING_CONFIG, { optional: true });
|
|
15
|
+
mockEntities = [
|
|
16
|
+
{ name: 'Customers', schema: 'dbo', type: 'table', friendlyName: 'Customer Directory', category: 'Sales & CRM', description: 'Active customer accounts and profiles' },
|
|
17
|
+
{ name: 'Branches', schema: 'dbo', type: 'table', friendlyName: 'Branch Locations', category: 'Master Data', description: 'Company branches and regional offices' },
|
|
18
|
+
{ name: 'Products', schema: 'dbo', type: 'table', friendlyName: 'Product Catalog', category: 'Inventory', description: 'Product catalog with category codes' },
|
|
19
|
+
{ name: 'PaymentMethods', schema: 'dbo', type: 'table', friendlyName: 'Payment Methods', category: 'Finance', description: 'Available payment modes' },
|
|
20
|
+
{ name: 'usp_GetCustomerList', schema: 'dbo', type: 'stored_procedure', friendlyName: 'Customer Directory (SP)', category: 'Sales & CRM', description: 'Returns filtered customers by branch' },
|
|
21
|
+
{ name: 'usp_GetBranchLookup', schema: 'dbo', type: 'stored_procedure', friendlyName: 'Active Branches (SP)', category: 'Master Data', description: 'Returns active branches' },
|
|
22
|
+
];
|
|
23
|
+
mockColumns = {
|
|
24
|
+
Customers: [
|
|
25
|
+
{ field: 'customerId', label: 'Customer ID', dataType: 'number', nullable: false },
|
|
26
|
+
{ field: 'customerName', label: 'Customer Name', dataType: 'string', nullable: false },
|
|
27
|
+
{ field: 'email', label: 'Email Address', dataType: 'string', nullable: true },
|
|
28
|
+
{ field: 'branchId', label: 'Branch ID', dataType: 'number', nullable: true },
|
|
29
|
+
{ field: 'isActive', label: 'Active Status', dataType: 'boolean', nullable: false },
|
|
30
|
+
],
|
|
31
|
+
Branches: [
|
|
32
|
+
{ field: 'branchId', label: 'Branch ID', dataType: 'number', nullable: false },
|
|
33
|
+
{ field: 'branchName', label: 'Branch Name', dataType: 'string', nullable: false },
|
|
34
|
+
{ field: 'region', label: 'Region', dataType: 'string', nullable: true },
|
|
35
|
+
],
|
|
36
|
+
Products: [
|
|
37
|
+
{ field: 'productId', label: 'Product ID', dataType: 'number', nullable: false },
|
|
38
|
+
{ field: 'productName', label: 'Product Name', dataType: 'string', nullable: false },
|
|
39
|
+
{ field: 'category', label: 'Category', dataType: 'string', nullable: true },
|
|
40
|
+
{ field: 'unitPrice', label: 'Unit Price', dataType: 'number', nullable: false },
|
|
41
|
+
],
|
|
42
|
+
PaymentMethods: [
|
|
43
|
+
{ field: 'code', label: 'Payment Code', dataType: 'string', nullable: false },
|
|
44
|
+
{ field: 'title', label: 'Method Title', dataType: 'string', nullable: false },
|
|
45
|
+
],
|
|
46
|
+
usp_GetCustomerList: [
|
|
47
|
+
{ field: 'id', label: 'ID', dataType: 'number', nullable: false },
|
|
48
|
+
{ field: 'name', label: 'Customer Name', dataType: 'string', nullable: false },
|
|
49
|
+
{ field: 'branch', label: 'Branch Code', dataType: 'string', nullable: true },
|
|
50
|
+
],
|
|
51
|
+
usp_GetBranchLookup: [
|
|
52
|
+
{ field: 'id', label: 'Branch ID', dataType: 'number', nullable: false },
|
|
53
|
+
{ field: 'name', label: 'Branch Name', dataType: 'string', nullable: false },
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
mockParameters = {
|
|
57
|
+
usp_GetCustomerList: [
|
|
58
|
+
{ name: '@BranchId', friendlyLabel: 'Branch Location', dataType: 'number', sqlType: 'INT', required: false, description: 'Filter customers belonging to this branch' },
|
|
59
|
+
{ name: '@ActiveOnly', friendlyLabel: 'Active Only', dataType: 'boolean', sqlType: 'BIT', required: false, defaultValue: true, description: 'Only show active customers' },
|
|
60
|
+
],
|
|
61
|
+
usp_GetBranchLookup: [
|
|
62
|
+
{ name: '@Region', friendlyLabel: 'Geographical Region', dataType: 'string', sqlType: 'VARCHAR(50)', required: false, description: 'Filter by geographical region' },
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
getEntities(types) {
|
|
66
|
+
const baseUrl = this.config?.apiBaseUrl;
|
|
67
|
+
if (baseUrl && this.http) {
|
|
68
|
+
const typeParam = types ? types.join(',') : '';
|
|
69
|
+
return this.http
|
|
70
|
+
.get(`${baseUrl}/schema/entities`, {
|
|
71
|
+
params: typeParam ? { types: typeParam } : {},
|
|
72
|
+
})
|
|
73
|
+
.pipe(catchError((err) => {
|
|
74
|
+
console.warn('[HttpSchemaDiscovery] API request failed, falling back to mock schema:', err);
|
|
75
|
+
return of(this.filterMockEntities(types));
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
return of(this.filterMockEntities(types));
|
|
79
|
+
}
|
|
80
|
+
getColumns(entityName, schema = 'dbo', type) {
|
|
81
|
+
const baseUrl = this.config?.apiBaseUrl;
|
|
82
|
+
if (baseUrl && this.http) {
|
|
83
|
+
return this.http
|
|
84
|
+
.get(`${baseUrl}/schema/columns`, {
|
|
85
|
+
params: { entityName, schema, ...(type ? { type } : {}) },
|
|
86
|
+
})
|
|
87
|
+
.pipe(catchError((err) => {
|
|
88
|
+
console.warn(`[HttpSchemaDiscovery] Failed to get columns for ${entityName}:`, err);
|
|
89
|
+
return of(this.mockColumns[entityName] ?? []);
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
return of(this.mockColumns[entityName] ?? []);
|
|
93
|
+
}
|
|
94
|
+
getParameters(entityName, schema = 'dbo') {
|
|
95
|
+
const baseUrl = this.config?.apiBaseUrl;
|
|
96
|
+
if (baseUrl && this.http) {
|
|
97
|
+
return this.http
|
|
98
|
+
.get(`${baseUrl}/schema/parameters`, {
|
|
99
|
+
params: { entityName, schema },
|
|
100
|
+
})
|
|
101
|
+
.pipe(catchError((err) => {
|
|
102
|
+
console.warn(`[HttpSchemaDiscovery] Failed to get parameters for ${entityName}:`, err);
|
|
103
|
+
return of(this.mockParameters[entityName] ?? []);
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
return of(this.mockParameters[entityName] ?? []);
|
|
107
|
+
}
|
|
108
|
+
filterMockEntities(types) {
|
|
109
|
+
if (!types || types.length === 0)
|
|
110
|
+
return this.mockEntities;
|
|
111
|
+
return this.mockEntities.filter((e) => types.includes(e.type));
|
|
112
|
+
}
|
|
113
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportSchemaDiscoveryAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
114
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportSchemaDiscoveryAdapter });
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportSchemaDiscoveryAdapter, decorators: [{
|
|
117
|
+
type: Injectable
|
|
118
|
+
}] });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1zY2hlbWEtZGlzY292ZXJ5LmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUtMLDRCQUE0QixHQUM3QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUU1RTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsNEJBQTRCO0lBQy9ELElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRELFlBQVksR0FBNkI7UUFDeEQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDdEssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDbkssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUU7UUFDOUosRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtRQUN0SixFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsc0NBQXNDLEVBQUU7UUFDL0wsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO0tBQ2hMLENBQUM7SUFFZSxXQUFXLEdBQTJDO1FBQ3JFLFNBQVMsRUFBRTtZQUNULEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNsRixFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDdEYsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzlFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUM3RSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7U0FDcEY7UUFDRCxRQUFRLEVBQUU7WUFDUixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDOUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ2xGLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUN6RTtRQUNELFFBQVEsRUFBRTtZQUNSLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNoRixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDcEYsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzVFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtTQUNqRjtRQUNELGNBQWMsRUFB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QUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO2FBQy9CLENBQUM7aUJBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxVQUFVLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkYsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQTRCO1FBQ3JELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzt3R0FwSFUsZ0NBQWdDOzRHQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIERhdGFiYXNlRW50aXR5TWV0YWRhdGEsXG4gIERhdGFiYXNlRW50aXR5VHlwZSxcbiAgRW50aXR5Q29sdW1uTWV0YWRhdGEsXG4gIFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhLFxuICBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyLFxufSBmcm9tICcuLi9jb250cmFjdHMvc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5pbXBvcnQgeyBSRVBPUlRJTkdfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29yZS90b2tlbnMvcmVwb3J0aW5nLWNvbmZpZy50b2tlbic7XG5cbi8qKlxuICogQnVpbHQtaW4gSFRUUCBhZGFwdGVyIGZvciBiYWNrZW5kIGRhdGFiYXNlIHNjaGVtYSBkaXNjb3ZlcnkuXG4gKiBDb25uZWN0cyB0byBOZXN0SlMgLyBSRVNUIGJhY2tlbmQgZW5kcG9pbnRzLCB3aXRoIGZhbGxiYWNrIG1vY2sgc2NoZW1hIGZvciBkZXZlbG9wbWVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIGV4dGVuZHMgUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChSRVBPUlRJTkdfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja0VudGl0aWVzOiBEYXRhYmFzZUVudGl0eU1ldGFkYXRhW10gPSBbXG4gICAgeyBuYW1lOiAnQ3VzdG9tZXJzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnQ3VzdG9tZXIgRGlyZWN0b3J5JywgY2F0ZWdvcnk6ICdTYWxlcyAmIENSTScsIGRlc2NyaXB0aW9uOiAnQWN0aXZlIGN1c3RvbWVyIGFjY291bnRzIGFuZCBwcm9maWxlcycgfSxcbiAgICB7IG5hbWU6ICdCcmFuY2hlcycsIHNjaGVtYTogJ2RibycsIHR5cGU6ICd0YWJsZScsIGZyaWVuZGx5TmFtZTogJ0JyYW5jaCBMb2NhdGlvbnMnLCBjYXRlZ29yeTogJ01hc3RlciBEYXRhJywgZGVzY3JpcHRpb246ICdDb21wYW55IGJyYW5jaGVzIGFuZCByZWdpb25hbCBvZmZpY2VzJyB9LFxuICAgIHsgbmFtZTogJ1Byb2R1Y3RzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnUHJvZHVjdCBDYXRhbG9nJywgY2F0ZWdvcnk6ICdJbnZlbnRvcnknLCBkZXNjcmlwdGlvbjogJ1Byb2R1Y3QgY2F0YWxvZyB3aXRoIGNhdGVnb3J5IGNvZGVzJyB9LFxuICAgIHsgbmFtZTogJ1BheW1lbnRNZXRob2RzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnUGF5bWVudCBNZXRob2RzJywgY2F0ZWdvcnk6ICdGaW5hbmNlJywgZGVzY3JpcHRpb246ICdBdmFpbGFibGUgcGF5bWVudCBtb2RlcycgfSxcbiAgICB7IG5hbWU6ICd1c3BfR2V0Q3VzdG9tZXJMaXN0Jywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3N0b3JlZF9wcm9jZWR1cmUnLCBmcmllbmRseU5hbWU6ICdDdXN0b21lciBEaXJlY3RvcnkgKFNQKScsIGNhdGVnb3J5OiAnU2FsZXMgJiBDUk0nLCBkZXNjcmlwdGlvbjogJ1JldHVybnMgZmlsdGVyZWQgY3VzdG9tZXJzIGJ5IGJyYW5jaCcgfSxcbiAgICB7IG5hbWU6ICd1c3BfR2V0QnJhbmNoTG9va3VwJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3N0b3JlZF9wcm9jZWR1cmUnLCBmcmllbmRseU5hbWU6ICdBY3RpdmUgQnJhbmNoZXMgKFNQKScsIGNhdGVnb3J5OiAnTWFzdGVyIERhdGEnLCBkZXNjcmlwdGlvbjogJ1JldHVybnMgYWN0aXZlIGJyYW5jaGVzJyB9LFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbHVtbnM6IFJlY29yZDxzdHJpbmcsIEVudGl0eUNvbHVtbk1ldGFkYXRhW10+ID0ge1xuICAgIEN1c3RvbWVyczogW1xuICAgICAgeyBmaWVsZDogJ2N1c3RvbWVySWQnLCBsYWJlbDogJ0N1c3RvbWVyIElEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICdjdXN0b21lck5hbWUnLCBsYWJlbDogJ0N1c3RvbWVyIE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCBBZGRyZXNzJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgICAgeyBmaWVsZDogJ2JyYW5jaElkJywgbGFiZWw6ICdCcmFuY2ggSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiB0cnVlIH0sXG4gICAgICB7IGZpZWxkOiAnaXNBY3RpdmUnLCBsYWJlbDogJ0FjdGl2ZSBTdGF0dXMnLCBkYXRhVHlwZTogJ2Jvb2xlYW4nLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICBdLFxuICAgIEJyYW5jaGVzOiBbXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoSWQnLCBsYWJlbDogJ0JyYW5jaCBJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoTmFtZScsIGxhYmVsOiAnQnJhbmNoIE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3JlZ2lvbicsIGxhYmVsOiAnUmVnaW9uJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgUHJvZHVjdHM6IFtcbiAgICAgIHsgZmllbGQ6ICdwcm9kdWN0SWQnLCBsYWJlbDogJ1Byb2R1Y3QgSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3Byb2R1Y3ROYW1lJywgbGFiZWw6ICdQcm9kdWN0IE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ2NhdGVnb3J5JywgbGFiZWw6ICdDYXRlZ29yeScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IHRydWUgfSxcbiAgICAgIHsgZmllbGQ6ICd1bml0UHJpY2UnLCBsYWJlbDogJ1VuaXQgUHJpY2UnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgIF0sXG4gICAgUGF5bWVudE1ldGhvZHM6IFtcbiAgICAgIHsgZmllbGQ6ICdjb2RlJywgbGFiZWw6ICdQYXltZW50IENvZGUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3RpdGxlJywgbGFiZWw6ICdNZXRob2QgVGl0bGUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgIF0sXG4gICAgdXNwX0dldEN1c3RvbWVyTGlzdDogW1xuICAgICAgeyBmaWVsZDogJ2lkJywgbGFiZWw6ICdJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnbmFtZScsIGxhYmVsOiAnQ3VzdG9tZXIgTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoJywgbGFiZWw6ICdCcmFuY2ggQ29kZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IHRydWUgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgZmllbGQ6ICdpZCcsIGxhYmVsOiAnQnJhbmNoIElEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICduYW1lJywgbGFiZWw6ICdCcmFuY2ggTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgXSxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vY2tQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBQcm9jZWR1cmVQYXJhbWV0ZXJNZXRhZGF0YVtdPiA9IHtcbiAgICB1c3BfR2V0Q3VzdG9tZXJMaXN0OiBbXG4gICAgICB7IG5hbWU6ICdAQnJhbmNoSWQnLCBmcmllbmRseUxhYmVsOiAnQnJhbmNoIExvY2F0aW9uJywgZGF0YVR5cGU6ICdudW1iZXInLCBzcWxUeXBlOiAnSU5UJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBjdXN0b21lcnMgYmVsb25naW5nIHRvIHRoaXMgYnJhbmNoJyB9LFxuICAgICAgeyBuYW1lOiAnQEFjdGl2ZU9ubHknLCBmcmllbmRseUxhYmVsOiAnQWN0aXZlIE9ubHknLCBkYXRhVHlwZTogJ2Jvb2xlYW4nLCBzcWxUeXBlOiAnQklUJywgcmVxdWlyZWQ6IGZhbHNlLCBkZWZhdWx0VmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnT25seSBzaG93IGFjdGl2ZSBjdXN0b21lcnMnIH0sXG4gICAgXSxcbiAgICB1c3BfR2V0QnJhbmNoTG9va3VwOiBbXG4gICAgICB7IG5hbWU6ICdAUmVnaW9uJywgZnJpZW5kbHlMYWJlbDogJ0dlb2dyYXBoaWNhbCBSZWdpb24nLCBkYXRhVHlwZTogJ3N0cmluZycsIHNxbFR5cGU6ICdWQVJDSEFSKDUwKScsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZ2VvZ3JhcGhpY2FsIHJlZ2lvbicgfSxcbiAgICBdLFxuICB9O1xuXG4gIGdldEVudGl0aWVzKHR5cGVzPzogRGF0YWJhc2VFbnRpdHlUeXBlW10pOiBPYnNlcnZhYmxlPERhdGFiYXNlRW50aXR5TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZz8uYXBpQmFzZVVybDtcbiAgICBpZiAoYmFzZVVybCAmJiB0aGlzLmh0dHApIHtcbiAgICAgIGNvbnN0IHR5cGVQYXJhbSA9IHR5cGVzID8gdHlwZXMuam9pbignLCcpIDogJyc7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8RGF0YWJhc2VFbnRpdHlNZXRhZGF0YVtdPihgJHtiYXNlVXJsfS9zY2hlbWEvZW50aXRpZXNgLCB7XG4gICAgICAgICAgcGFyYW1zOiB0eXBlUGFyYW0gPyB7IHR5cGVzOiB0eXBlUGFyYW0gfSA6IHt9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0h0dHBTY2hlbWFEaXNjb3ZlcnldIEFQSSByZXF1ZXN0IGZhaWxlZCwgZmFsbGluZyBiYWNrIHRvIG1vY2sgc2NoZW1hOicsIGVycik7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5maWx0ZXJNb2NrRW50aXRpZXModHlwZXMpKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YodGhpcy5maWx0ZXJNb2NrRW50aXRpZXModHlwZXMpKTtcbiAgfVxuXG4gIGdldENvbHVtbnMoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIHNjaGVtYSA9ICdkYm8nLFxuICAgIHR5cGU/OiBEYXRhYmFzZUVudGl0eVR5cGVcbiAgKTogT2JzZXJ2YWJsZTxFbnRpdHlDb2x1bW5NZXRhZGF0YVtdPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnPy5hcGlCYXNlVXJsO1xuICAgIGlmIChiYXNlVXJsICYmIHRoaXMuaHR0cCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEVudGl0eUNvbHVtbk1ldGFkYXRhW10+KGAke2Jhc2VVcmx9L3NjaGVtYS9jb2x1bW5zYCwge1xuICAgICAgICAgIHBhcmFtczogeyBlbnRpdHlOYW1lLCBzY2hlbWEsIC4uLih0eXBlID8geyB0eXBlIH0gOiB7fSkgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtIdHRwU2NoZW1hRGlzY292ZXJ5XSBGYWlsZWQgdG8gZ2V0IGNvbHVtbnMgZm9yICR7ZW50aXR5TmFtZX06YCwgZXJyKTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLm1vY2tDb2x1bW5zW2VudGl0eU5hbWVdID8/IFtdKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YodGhpcy5tb2NrQ29sdW1uc1tlbnRpdHlOYW1lXSA/PyBbXSk7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKGVudGl0eU5hbWU6IHN0cmluZywgc2NoZW1hID0gJ2RibycpOiBPYnNlcnZhYmxlPFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhW10+IHtcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8UHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGFbXT4oYCR7YmFzZVVybH0vc2NoZW1hL3BhcmFtZXRlcnNgLCB7XG4gICAgICAgICAgcGFyYW1zOiB7IGVudGl0eU5hbWUsIHNjaGVtYSB9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0h0dHBTY2hlbWFEaXNjb3ZlcnldIEZhaWxlZCB0byBnZXQgcGFyYW1ldGVycyBmb3IgJHtlbnRpdHlOYW1lfTpgLCBlcnIpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMubW9ja1BhcmFtZXRlcnNbZW50aXR5TmFtZV0gPz8gW10pO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZih0aGlzLm1vY2tQYXJhbWV0ZXJzW2VudGl0eU5hbWVdID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyTW9ja0VudGl0aWVzKHR5cGVzPzogRGF0YWJhc2VFbnRpdHlUeXBlW10pOiBEYXRhYmFzZUVudGl0eU1ldGFkYXRhW10ge1xuICAgIGlmICghdHlwZXMgfHwgdHlwZXMubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy5tb2NrRW50aXRpZXM7XG4gICAgcmV0dXJuIHRoaXMubW9ja0VudGl0aWVzLmZpbHRlcigoZSkgPT4gdHlwZXMuaW5jbHVkZXMoZS50eXBlKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { HttpReportSchemaDiscoveryAdapter } from './http-schema-discovery.adapter';
|
|
2
|
+
export { HttpReportLookupAdapter } from './http-lookup.adapter';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlcic7XG5leHBvcnQgeyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciB9IGZyb20gJy4vaHR0cC1sb29rdXAuYWRhcHRlcic7XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data-access contracts — abstract classes the host application implements.
|
|
3
|
+
*
|
|
4
|
+
* The library defines WHAT data it needs; the host defines HOW to get it.
|
|
5
|
+
* This keeps the library host-independent.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Contract for executing report data source queries.
|
|
9
|
+
*
|
|
10
|
+
* The host application provides a concrete implementation that
|
|
11
|
+
* calls the appropriate backend (REST API, stored procedures, etc.).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Host implementation
|
|
16
|
+
* @Injectable()
|
|
17
|
+
* export class MyDataSourceAdapter extends ReportDataSourceAdapter {
|
|
18
|
+
* constructor(private http: HttpClient) { super(); }
|
|
19
|
+
*
|
|
20
|
+
* execute(dataSource, parameters) {
|
|
21
|
+
* return this.http.post(dataSource.endpoint, parameters);
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class ReportDataSourceAdapter {
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvZGF0YS1zb3VyY2UuY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFLSDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxPQUFnQix1QkFBdUI7Q0FZNUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGEtYWNjZXNzIGNvbnRyYWN0cyDigJQgYWJzdHJhY3QgY2xhc3NlcyB0aGUgaG9zdCBhcHBsaWNhdGlvbiBpbXBsZW1lbnRzLlxuICpcbiAqIFRoZSBsaWJyYXJ5IGRlZmluZXMgV0hBVCBkYXRhIGl0IG5lZWRzOyB0aGUgaG9zdCBkZWZpbmVzIEhPVyB0byBnZXQgaXQuXG4gKiBUaGlzIGtlZXBzIHRoZSBsaWJyYXJ5IGhvc3QtaW5kZXBlbmRlbnQuXG4gKi9cblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGF0YXNvdXJjZS5tb2RlbCc7XG5cbi8qKlxuICogQ29udHJhY3QgZm9yIGV4ZWN1dGluZyByZXBvcnQgZGF0YSBzb3VyY2UgcXVlcmllcy5cbiAqXG4gKiBUaGUgaG9zdCBhcHBsaWNhdGlvbiBwcm92aWRlcyBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIHRoYXRcbiAqIGNhbGxzIHRoZSBhcHByb3ByaWF0ZSBiYWNrZW5kIChSRVNUIEFQSSwgc3RvcmVkIHByb2NlZHVyZXMsIGV0Yy4pLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBIb3N0IGltcGxlbWVudGF0aW9uXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlEYXRhU291cmNlQWRhcHRlciBleHRlbmRzIFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyIHtcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IHN1cGVyKCk7IH1cbiAqXG4gKiAgIGV4ZWN1dGUoZGF0YVNvdXJjZSwgcGFyYW1ldGVycykge1xuICogICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChkYXRhU291cmNlLmVuZHBvaW50LCBwYXJhbWV0ZXJzKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB7XG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgZGF0YSBzb3VyY2UgcXVlcnkgYW5kIHJldHVybiB0aGUgcmVzdWx0IHJvd3MuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhU291cmNlIC0gVGhlIGRhdGEgc291cmNlIGRlZmluaXRpb24gZnJvbSB0aGUgcmVwb3J0IG1ldGFkYXRhLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVycyAtIEN1cnJlbnQgcGFyYW1ldGVyIHZhbHVlcyBmcm9tIHRoZSByZXBvcnQgZm9ybS5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiByZXN1bHQgcm93cy5cbiAgICovXG4gIGFic3RyYWN0IGV4ZWN1dGUoXG4gICAgZGF0YVNvdXJjZTogUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24sXG4gICAgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogT2JzZXJ2YWJsZTx1bmtub3duW10+O1xufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ReportDataSourceAdapter } from './data-source.contract';
|
|
2
|
+
export { MasterDataProvider } from './master-data.provider';
|
|
3
|
+
export { ReportPersistenceAdapter } from './report-persistence.contract';
|
|
4
|
+
export { ReportTranslationAdapter } from './translation.contract';
|
|
5
|
+
export { ReportSchemaDiscoveryAdapter } from './schema-discovery.contract';
|
|
6
|
+
export { ReportLookupAdapter } from './lookup.contract';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB9IGZyb20gJy4vZGF0YS1zb3VyY2UuY29udHJhY3QnO1xuZXhwb3J0IHsgTWFzdGVyRGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9tYXN0ZXItZGF0YS5wcm92aWRlcic7XG5leHBvcnQgdHlwZSB7IE1hc3RlckRhdGFPcHRpb25zLCBNYXN0ZXJEYXRhSXRlbSB9IGZyb20gJy4vbWFzdGVyLWRhdGEucHJvdmlkZXInO1xuZXhwb3J0IHsgUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyIH0gZnJvbSAnLi9yZXBvcnQtcGVyc2lzdGVuY2UuY29udHJhY3QnO1xuZXhwb3J0IHsgUmVwb3J0VHJhbnNsYXRpb25BZGFwdGVyIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5jb250cmFjdCc7XG5leHBvcnQgeyBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9zY2hlbWEtZGlzY292ZXJ5LmNvbnRyYWN0JztcbmV4cG9ydCB0eXBlIHtcbiAgRGF0YWJhc2VFbnRpdHlUeXBlLFxuICBEYXRhYmFzZUVudGl0eU1ldGFkYXRhLFxuICBFbnRpdHlDb2x1bW5NZXRhZGF0YSxcbiAgUHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGEsXG59IGZyb20gJy4vc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5leHBvcnQgeyBSZXBvcnRMb29rdXBBZGFwdGVyIH0gZnJvbSAnLi9sb29rdXAuY29udHJhY3QnO1xuZXhwb3J0IHR5cGUgeyBMb29rdXBRdWVyeVJlcXVlc3QsIExvb2t1cE9wdGlvbkl0ZW0gfSBmcm9tICcuL2xvb2t1cC5jb250cmFjdCc7XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract contract for fetching dynamic lookup/option data for report dropdown components.
|
|
3
|
+
*/
|
|
4
|
+
export class ReportLookupAdapter {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvY29udHJhY3RzL2xvb2t1cC5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQkE7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLG1CQUFtQjtDQUt4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERyb3Bkb3duU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuXG4vKipcbiAqIFJlcXVlc3QgcGF5bG9hZCBmb3IgcXVlcnlpbmcgbG9va3VwIGRhdGEgZnJvbSB0aGUgaG9zdCBiYWNrZW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwUXVlcnlSZXF1ZXN0IHtcbiAgc291cmNlVHlwZTogRHJvcGRvd25Tb3VyY2VUeXBlO1xuICBlbnRpdHlOYW1lPzogc3RyaW5nO1xuICBzY2hlbWE/OiBzdHJpbmc7XG4gIHZhbHVlRmllbGQ6IHN0cmluZztcbiAgZGlzcGxheUZpZWxkOiBzdHJpbmc7XG4gIGZpbHRlcj86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGxpbWl0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZWQgb3B0aW9uIGl0ZW0gZm9yIGRyb3Bkb3ducyBhbmQgc2VsZWN0b3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwT3B0aW9uSXRlbSB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHJhdz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGNvbnRyYWN0IGZvciBmZXRjaGluZyBkeW5hbWljIGxvb2t1cC9vcHRpb24gZGF0YSBmb3IgcmVwb3J0IGRyb3Bkb3duIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnRMb29rdXBBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEZldGNoZXMgZHJvcGRvd24gb3B0aW9uIHJvd3MgZnJvbSBkYXRhYmFzZSB0YWJsZSBvciBzdG9yZWQgcHJvY2VkdXJlLlxuICAgKi9cbiAgYWJzdHJhY3QgZmV0Y2hPcHRpb25zKHJlcXVlc3Q6IExvb2t1cFF1ZXJ5UmVxdWVzdCk6IE9ic2VydmFibGU8TG9va3VwT3B0aW9uSXRlbVtdPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Master data provider contract.
|
|
3
|
+
*
|
|
4
|
+
* Provides lookup/reference data for report components
|
|
5
|
+
* (e.g., dropdown options for customers, products, branches).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Contract for providing master/lookup data to report components.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* @Injectable()
|
|
13
|
+
* export class MyMasterDataProvider extends MasterDataProvider {
|
|
14
|
+
* constructor(private http: HttpClient) { super(); }
|
|
15
|
+
*
|
|
16
|
+
* getMasterData(masterName, options) {
|
|
17
|
+
* return this.http.get(`/api/master/${masterName}`, { params: options });
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export class MasterDataProvider {
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyLWRhdGEucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvbWFzdGVyLWRhdGEucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFnQ0g7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLE9BQWdCLGtCQUFrQjtDQVl2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFzdGVyIGRhdGEgcHJvdmlkZXIgY29udHJhY3QuXG4gKlxuICogUHJvdmlkZXMgbG9va3VwL3JlZmVyZW5jZSBkYXRhIGZvciByZXBvcnQgY29tcG9uZW50c1xuICogKGUuZy4sIGRyb3Bkb3duIG9wdGlvbnMgZm9yIGN1c3RvbWVycywgcHJvZHVjdHMsIGJyYW5jaGVzKS5cbiAqL1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcXVlcnlpbmcgbWFzdGVyIGRhdGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFzdGVyRGF0YU9wdGlvbnMge1xuICAvKiogU2VhcmNoL2ZpbHRlciB0ZXh0LiAqL1xuICBzZWFyY2hUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4uICovXG4gIGxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGZpbHRlciBwYXJhbWV0ZXJzLiAqL1xuICBmaWx0ZXI/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBtYXN0ZXIgZGF0YSBpdGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hc3RlckRhdGFJdGVtIHtcbiAgLyoqIFRoZSB2YWx1ZSB0byBzdG9yZS4gKi9cbiAgdmFsdWU6IHVua25vd247XG5cbiAgLyoqIFRoZSBkaXNwbGF5IGxhYmVsLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGRhdGEgZmllbGRzLiAqL1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKipcbiAqIENvbnRyYWN0IGZvciBwcm92aWRpbmcgbWFzdGVyL2xvb2t1cCBkYXRhIHRvIHJlcG9ydCBjb21wb25lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlNYXN0ZXJEYXRhUHJvdmlkZXIgZXh0ZW5kcyBNYXN0ZXJEYXRhUHJvdmlkZXIge1xuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgc3VwZXIoKTsgfVxuICpcbiAqICAgZ2V0TWFzdGVyRGF0YShtYXN0ZXJOYW1lLCBvcHRpb25zKSB7XG4gKiAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYC9hcGkvbWFzdGVyLyR7bWFzdGVyTmFtZX1gLCB7IHBhcmFtczogb3B0aW9ucyB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNYXN0ZXJEYXRhUHJvdmlkZXIge1xuICAvKipcbiAgICogRmV0Y2ggbWFzdGVyIGRhdGEgaXRlbXMgYnkgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG1hc3Rlck5hbWUgLSBUaGUgbWFzdGVyIGRhdGEgc2V0IG5hbWUgKGUuZy4sICdjdXN0b21lcnMnLCAncHJvZHVjdHMnKS5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBmaWx0ZXJpbmcvcGFnaW5hdGlvbi5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiBtYXN0ZXIgZGF0YSBpdGVtcy5cbiAgICovXG4gIGFic3RyYWN0IGdldE1hc3RlckRhdGEoXG4gICAgbWFzdGVyTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBNYXN0ZXJEYXRhT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPE1hc3RlckRhdGFJdGVtW10+O1xufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report persistence contract.
|
|
3
|
+
*
|
|
4
|
+
* The host application implements this to save/load report definitions
|
|
5
|
+
* to/from their backend (database, file system, API, etc.).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Contract for persisting report definitions.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* @Injectable()
|
|
13
|
+
* export class MyPersistenceAdapter extends ReportPersistenceAdapter {
|
|
14
|
+
* constructor(private http: HttpClient) { super(); }
|
|
15
|
+
*
|
|
16
|
+
* load(reportId) {
|
|
17
|
+
* return this.http.get<ReportDefinition>(`/api/reports/${reportId}`);
|
|
18
|
+
* }
|
|
19
|
+
* // ... other methods
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export class ReportPersistenceAdapter {
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBlcnNpc3RlbmNlLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvY29udHJhY3RzL3JlcG9ydC1wZXJzaXN0ZW5jZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUtIOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBZ0Isd0JBQXdCO0NBZTdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnQgcGVyc2lzdGVuY2UgY29udHJhY3QuXG4gKlxuICogVGhlIGhvc3QgYXBwbGljYXRpb24gaW1wbGVtZW50cyB0aGlzIHRvIHNhdmUvbG9hZCByZXBvcnQgZGVmaW5pdGlvbnNcbiAqIHRvL2Zyb20gdGhlaXIgYmFja2VuZCAoZGF0YWJhc2UsIGZpbGUgc3lzdGVtLCBBUEksIGV0Yy4pLlxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb24sIFJlcG9ydFN1bW1hcnkgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGVmaW5pdGlvbi5tb2RlbCc7XG5cbi8qKlxuICogQ29udHJhY3QgZm9yIHBlcnNpc3RpbmcgcmVwb3J0IGRlZmluaXRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlQZXJzaXN0ZW5jZUFkYXB0ZXIgZXh0ZW5kcyBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIge1xuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgc3VwZXIoKTsgfVxuICpcbiAqICAgbG9hZChyZXBvcnRJZCkge1xuICogICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlcG9ydERlZmluaXRpb24+KGAvYXBpL3JlcG9ydHMvJHtyZXBvcnRJZH1gKTtcbiAqICAgfVxuICogICAvLyAuLi4gb3RoZXIgbWV0aG9kc1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIge1xuICAvKiogTG9hZCBhIGZ1bGwgcmVwb3J0IGRlZmluaXRpb24gYnkgSUQuICovXG4gIGFic3RyYWN0IGxvYWQocmVwb3J0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UmVwb3J0RGVmaW5pdGlvbj47XG5cbiAgLyoqIFNhdmUgKGNyZWF0ZSBvciB1cGRhdGUpIGEgcmVwb3J0IGRlZmluaXRpb24uICovXG4gIGFic3RyYWN0IHNhdmUocmVwb3J0OiBSZXBvcnREZWZpbml0aW9uKTogT2JzZXJ2YWJsZTxSZXBvcnREZWZpbml0aW9uPjtcblxuICAvKiogTGlzdCBhdmFpbGFibGUgcmVwb3J0cyAoc3VtbWFyaWVzIG9ubHkpLiAqL1xuICBhYnN0cmFjdCBsaXN0KCk6IE9ic2VydmFibGU8UmVwb3J0U3VtbWFyeVtdPjtcblxuICAvKiogRGVsZXRlIGEgcmVwb3J0IGJ5IElELiAqL1xuICBhYnN0cmFjdCBkZWxldGUocmVwb3J0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgLyoqIFB1Ymxpc2ggYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIGEgcmVwb3J0LiAqL1xuICBhYnN0cmFjdCBwdWJsaXNoKHJlcG9ydElkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD47XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract contract for discovering backend database schemas, entities, columns, and parameters.
|
|
3
|
+
* Enables the Visual Designer to discover tables and procedures without tight coupling.
|
|
4
|
+
*/
|
|
5
|
+
export class ReportSchemaDiscoveryAdapter {
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2RhdGEtYWNjZXNzL2NvbnRyYWN0cy9zY2hlbWEtZGlzY292ZXJ5LmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDQTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLDRCQUE0QjtDQXNCakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIERhdGFiYXNlRW50aXR5VHlwZSA9ICd0YWJsZScgfCAndmlldycgfCAnc3RvcmVkX3Byb2NlZHVyZSc7XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIGEgZGF0YWJhc2UgZW50aXR5ICh0YWJsZSwgdmlldywgb3Igc3RvcmVkIHByb2NlZHVyZSlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUVudGl0eU1ldGFkYXRhIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzY2hlbWE6IHN0cmluZztcbiAgdHlwZTogRGF0YWJhc2VFbnRpdHlUeXBlO1xuICBmcmllbmRseU5hbWU/OiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYW4gZW50aXR5IGNvbHVtbiBvciBzdG9yZWQgcHJvY2VkdXJlIHJldHVybiBmaWVsZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbHVtbk1ldGFkYXRhIHtcbiAgZmllbGQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZGF0YVR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgfCAnYm9vbGVhbic7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3Igc3RvcmVkIHByb2NlZHVyZSBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZyaWVuZGx5TGFiZWw/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkYXRhVHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJztcbiAgc3FsVHlwZTogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjb250cmFjdCBmb3IgZGlzY292ZXJpbmcgYmFja2VuZCBkYXRhYmFzZSBzY2hlbWFzLCBlbnRpdGllcywgY29sdW1ucywgYW5kIHBhcmFtZXRlcnMuXG4gKiBFbmFibGVzIHRoZSBWaXN1YWwgRGVzaWduZXIgdG8gZGlzY292ZXIgdGFibGVzIGFuZCBwcm9jZWR1cmVzIHdpdGhvdXQgdGlnaHQgY291cGxpbmcuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyBsaXN0IG9mIGRhdGFiYXNlIHRhYmxlcywgdmlld3MsIG9yIHN0b3JlZCBwcm9jZWR1cmVzLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0RW50aXRpZXModHlwZXM/OiBEYXRhYmFzZUVudGl0eVR5cGVbXSk6IE9ic2VydmFibGU8RGF0YWJhc2VFbnRpdHlNZXRhZGF0YVtdPjtcblxuICAvKipcbiAgICogUmV0cmlldmVzIGNvbHVtbnMgZm9yIGEgc3BlY2lmaWMgdGFibGUsIHZpZXcsIG9yIHN0b3JlZCBwcm9jZWR1cmUuXG4gICAqL1xuICBhYnN0cmFjdCBnZXRDb2x1bW5zKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICBzY2hlbWE/OiBzdHJpbmcsXG4gICAgdHlwZT86IERhdGFiYXNlRW50aXR5VHlwZVxuICApOiBPYnNlcnZhYmxlPEVudGl0eUNvbHVtbk1ldGFkYXRhW10+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgcGFyYW1ldGVycyBmb3IgYSBzdG9yZWQgcHJvY2VkdXJlLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0UGFyYW1ldGVycyhcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgc2NoZW1hPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8UHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGFbXT47XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translation adapter contract.
|
|
3
|
+
*
|
|
4
|
+
* Allows host ERP applications to plug in their own i18n/translation
|
|
5
|
+
* system (e.g. @ngx-translate, Transloco, or custom backend dictionary).
|
|
6
|
+
*/
|
|
7
|
+
export class ReportTranslationAdapter {
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvdHJhbnNsYXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQWdCLHdCQUF3QjtDQVM3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHJhbnNsYXRpb24gYWRhcHRlciBjb250cmFjdC5cbiAqXG4gKiBBbGxvd3MgaG9zdCBFUlAgYXBwbGljYXRpb25zIHRvIHBsdWcgaW4gdGhlaXIgb3duIGkxOG4vdHJhbnNsYXRpb25cbiAqIHN5c3RlbSAoZS5nLiBAbmd4LXRyYW5zbGF0ZSwgVHJhbnNsb2NvLCBvciBjdXN0b20gYmFja2VuZCBkaWN0aW9uYXJ5KS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlcG9ydFRyYW5zbGF0aW9uQWRhcHRlciB7XG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgYSBnaXZlbiBrZXkgaW50byB0aGUgY3VycmVudCBhY3RpdmUgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUcmFuc2xhdGlvbiBrZXkgb3IgZGVmYXVsdCBsYWJlbC5cbiAgICogQHBhcmFtIHBhcmFtcyAtIE9wdGlvbmFsIGludGVycG9sYXRpb24gcGFyYW1ldGVycy5cbiAgICogQHJldHVybnMgVHJhbnNsYXRlZCBzdHJpbmcsIG9yIGtleSBpZiBubyB0cmFuc2xhdGlvbiBmb3VuZC5cbiAgICovXG4gIGFic3RyYWN0IHRyYW5zbGF0ZShrZXk6IHN0cmluZywgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPik6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './contracts';
|
|
2
|
+
export * from './adapters';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udHJhY3RzJztcbmV4cG9ydCAqIGZyb20gJy4vYWRhcHRlcnMnO1xuIl19
|