bways-report 0.1.9 → 0.2.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/README.md +463 -316
- package/esm2022/lib/core/config/bways-report-config.mjs +29 -32
- package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
- package/esm2022/lib/core/services/report-api-execution.service.mjs +33 -11
- package/esm2022/lib/core/services/report-session-context.service.mjs +72 -3
- package/esm2022/lib/core/tokens/designer-config.token.mjs +4 -0
- package/esm2022/lib/core/tokens/reporting-config.token.mjs +1 -1
- package/esm2022/lib/core/utils/report-endpoint.util.mjs +22 -0
- package/esm2022/lib/core/utils/report-request-scope.mjs +48 -0
- package/esm2022/lib/data-access/adapters/endpoint-datasource.adapter.mjs +8 -1
- package/esm2022/lib/data-access/adapters/endpoint-lookup.adapter.mjs +5 -2
- package/esm2022/lib/data-access/adapters/endpoint-masterdata.adapter.mjs +5 -2
- package/esm2022/lib/data-access/adapters/endpoint-persistence.adapter.mjs +30 -14
- package/esm2022/lib/data-access/adapters/endpoint-schema-discovery.adapter.mjs +32 -28
- package/esm2022/lib/data-access/adapters/endpoint-tokens.mjs +1 -1
- package/esm2022/lib/data-access/adapters/http-datasource.adapter.mjs +4 -37
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +4 -50
- package/esm2022/lib/data-access/adapters/http-persistence.adapter.mjs +43 -194
- package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +17 -65
- package/esm2022/lib/data-access/adapters/index.mjs +1 -1
- package/esm2022/lib/data-access/adapters/local-storage-persistence.adapter.mjs +13 -4
- package/esm2022/lib/data-access/adapters/report-id-availability.mjs +20 -0
- package/esm2022/lib/data-access/adapters/session-headers.mjs +11 -0
- package/esm2022/lib/data-access/contracts/index.mjs +1 -1
- package/esm2022/lib/data-access/contracts/report-persistence.contract.mjs +13 -1
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +50 -40
- package/esm2022/lib/features/designer/components/dialogs/report-saved-dialog.component.mjs +546 -119
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +12 -6
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +9 -8
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +9 -4
- package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +54 -32
- package/esm2022/lib/features/designer/designer.component.mjs +100 -67
- package/esm2022/lib/features/designer/rpt-report-designer.component.mjs +10 -4
- package/esm2022/lib/features/designer/services/designer-config.service.mjs +56 -0
- package/esm2022/lib/features/designer/services/designer-endpoints.service.mjs +155 -0
- package/esm2022/lib/features/designer/services/designer-state.service.mjs +3 -2
- package/esm2022/lib/features/embed/bways-report-builder.component.mjs +3 -3
- package/esm2022/lib/features/export/services/report-export.service.mjs +11 -6
- package/esm2022/lib/features/persistence/services/report-store.service.mjs +78 -23
- package/esm2022/lib/features/persistence/services/schema-validator.service.mjs +59 -3
- package/esm2022/lib/features/routing/components/routed-report-designer.component.mjs +12 -17
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +5 -3
- package/esm2022/lib/features/routing/report-routes.mjs +6 -6
- package/esm2022/lib/features/routing/resolvers/report-route-identifier.mjs +5 -0
- package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +3 -2
- package/esm2022/lib/features/runtime/report-execution.service.mjs +18 -5
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +4 -2
- package/esm2022/lib/features/runtime/report-runtime.component.mjs +94 -71
- package/esm2022/lib/features/runtime/rpt-report.component.mjs +49 -41
- package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +7 -2
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +13 -1
- package/esm2022/lib/provide-reporting.mjs +9 -29
- package/fesm2022/bways-report.mjs +1789 -1041
- package/fesm2022/bways-report.mjs.map +1 -1
- package/lib/core/config/bways-report-config.d.ts +14 -5
- package/lib/core/models/report-datasource.model.d.ts +5 -0
- package/lib/core/services/report-session-context.service.d.ts +9 -0
- package/lib/core/tokens/designer-config.token.d.ts +4 -0
- package/lib/core/tokens/reporting-config.token.d.ts +4 -0
- package/lib/core/utils/report-endpoint.util.d.ts +12 -0
- package/lib/core/utils/report-request-scope.d.ts +14 -0
- package/lib/data-access/adapters/endpoint-persistence.adapter.d.ts +6 -2
- package/lib/data-access/adapters/endpoint-schema-discovery.adapter.d.ts +4 -2
- package/lib/data-access/adapters/endpoint-tokens.d.ts +4 -0
- package/lib/data-access/adapters/http-datasource.adapter.d.ts +1 -3
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +1 -3
- package/lib/data-access/adapters/http-persistence.adapter.d.ts +11 -16
- package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +3 -5
- package/lib/data-access/adapters/index.d.ts +1 -1
- package/lib/data-access/adapters/local-storage-persistence.adapter.d.ts +2 -2
- package/lib/data-access/adapters/report-id-availability.d.ts +6 -0
- package/lib/data-access/adapters/session-headers.d.ts +3 -0
- package/lib/data-access/contracts/index.d.ts +1 -0
- package/lib/data-access/contracts/report-persistence.contract.d.ts +16 -1
- package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +2 -0
- package/lib/features/designer/components/dialogs/report-saved-dialog.component.d.ts +37 -5
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +4 -3
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +1 -0
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +1 -0
- package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +7 -1
- package/lib/features/designer/designer.component.d.ts +15 -2
- package/lib/features/designer/rpt-report-designer.component.d.ts +5 -1
- package/lib/features/designer/services/designer-config.service.d.ts +13 -0
- package/lib/features/designer/services/designer-endpoints.service.d.ts +25 -0
- package/lib/features/persistence/services/report-store.service.d.ts +15 -1
- package/lib/features/persistence/services/schema-validator.service.d.ts +2 -0
- package/lib/features/routing/resolvers/report-route-identifier.d.ts +2 -0
- package/lib/features/runtime/report-execution.service.d.ts +3 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +1 -0
- package/lib/features/runtime/report-runtime.component.d.ts +1 -0
- package/lib/features/runtime/rpt-report.component.d.ts +5 -0
- package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +3 -1
- package/package.json +2 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { ReportDefinition, ReportSummary } from '../../../core/models/report-definition.model';
|
|
3
|
+
import { ReportSaveOptions, ReportIdStatus } from '../../../data-access/contracts/report-persistence.contract';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* ReportStoreService manages application-wide cached report states,
|
|
@@ -8,6 +9,12 @@ import * as i0 from "@angular/core";
|
|
|
8
9
|
export declare class ReportStoreService {
|
|
9
10
|
private readonly adapter;
|
|
10
11
|
private readonly validator;
|
|
12
|
+
private readonly session;
|
|
13
|
+
private readonly endpoints;
|
|
14
|
+
private cacheContext;
|
|
15
|
+
private currentCacheContext;
|
|
16
|
+
private guardCacheContext;
|
|
17
|
+
private ensureCacheContext;
|
|
11
18
|
/** List of all known report summaries */
|
|
12
19
|
readonly summaries: import("@angular/core").WritableSignal<ReportSummary[]>;
|
|
13
20
|
/** In-memory cache of loaded full report definitions by ID */
|
|
@@ -39,7 +46,14 @@ export declare class ReportStoreService {
|
|
|
39
46
|
/**
|
|
40
47
|
* Saves a report definition, validates it, and updates local cache.
|
|
41
48
|
*/
|
|
42
|
-
|
|
49
|
+
/** Opaque endpoint/session identity for pending user confirmations. */
|
|
50
|
+
getStorageContextKey(): string;
|
|
51
|
+
inspectReportId(id: string): Observable<ReportIdStatus>;
|
|
52
|
+
checkReportId(id: string): Observable<boolean>;
|
|
53
|
+
/** Saves a validated report definition and updates the local cache. */
|
|
54
|
+
saveReport(report: ReportDefinition, options?: ReportSaveOptions): Observable<ReportDefinition>;
|
|
55
|
+
/** Accepts an already persisted report without issuing another database write. */
|
|
56
|
+
cacheSavedReport(report: ReportDefinition): void;
|
|
43
57
|
/**
|
|
44
58
|
* Deletes a report definition by ID.
|
|
45
59
|
*/
|
|
@@ -16,6 +16,8 @@ export interface SchemaValidationResult {
|
|
|
16
16
|
* - Column span boundary violations
|
|
17
17
|
*/
|
|
18
18
|
export declare function validateReportSchema(definition: ReportDefinition): SchemaValidationResult;
|
|
19
|
+
/** Normalize legacy optional collections only after verifying unknown input is safe. */
|
|
20
|
+
export declare function normalizeReportDefinition(value: unknown): ReportDefinition;
|
|
19
21
|
/**
|
|
20
22
|
* SchemaValidatorService provides schema verification methods.
|
|
21
23
|
*/
|
|
@@ -6,6 +6,9 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
* Live Preview and the designer canvas so all three behave identically.
|
|
7
7
|
*/
|
|
8
8
|
export declare class ReportExecutionService {
|
|
9
|
+
private readonly config;
|
|
10
|
+
private readonly endpoints;
|
|
11
|
+
private guard;
|
|
9
12
|
private readonly adapter;
|
|
10
13
|
private readonly session;
|
|
11
14
|
private readonly apiExecutionService;
|
|
@@ -30,6 +30,7 @@ export declare class RptGridOutletDirective implements OnDestroy {
|
|
|
30
30
|
static ɵdir: i0.ɵɵDirectiveDeclaration<RptGridOutletDirective, "[rptGridOutlet]", never, { "componentType": { "alias": "rptGridOutlet"; "required": false; "isSignal": true; }; "instanceKey": { "alias": "instanceKey"; "required": false; "isSignal": true; }; "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; }, { "gridStateChange": "gridStateChange"; "columnDefsChange": "columnDefsChange"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
31
31
|
}
|
|
32
32
|
export declare class ReportGridBridgeComponent {
|
|
33
|
+
private readonly designerConfig;
|
|
33
34
|
private readonly injectedGrid;
|
|
34
35
|
private readonly storage;
|
|
35
36
|
constructor();
|
|
@@ -4,6 +4,7 @@ import { ComponentActionDefinition } from '../../core/models/component-event.mod
|
|
|
4
4
|
import { GridRowClickAction } from '../../core/models/report-grid.model';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class ReportRuntimeComponent {
|
|
7
|
+
private readonly requests;
|
|
7
8
|
private readonly persistenceAdapter;
|
|
8
9
|
private readonly dataSourceAdapter;
|
|
9
10
|
private readonly sessionService;
|
|
@@ -10,6 +10,10 @@ export interface ReportViewPreset {
|
|
|
10
10
|
createdAt?: string;
|
|
11
11
|
}
|
|
12
12
|
export declare class RptReportComponent {
|
|
13
|
+
private readonly requests;
|
|
14
|
+
readonly presetError: import("@angular/core").WritableSignal<string | null>;
|
|
15
|
+
readonly isSavingPreset: import("@angular/core").WritableSignal<boolean>;
|
|
16
|
+
private readonly persistedDefinition;
|
|
13
17
|
private readonly exportService;
|
|
14
18
|
private readonly persistence;
|
|
15
19
|
readonly id: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -61,6 +65,7 @@ export declare class RptReportComponent {
|
|
|
61
65
|
closeSavePresetModal(): void;
|
|
62
66
|
saveCurrentPreset(): void;
|
|
63
67
|
deletePreset(presetId: string): void;
|
|
68
|
+
private persistPresets;
|
|
64
69
|
onExportExcel(): void;
|
|
65
70
|
onExportCsv(): void;
|
|
66
71
|
onPrintReport(): void;
|
|
@@ -8,7 +8,9 @@ export interface ChartDataItem {
|
|
|
8
8
|
}
|
|
9
9
|
export type ChartType = 'bar' | 'line' | 'donut';
|
|
10
10
|
export declare class ReportChartBridgeComponent {
|
|
11
|
-
readonly
|
|
11
|
+
private readonly injectedChart;
|
|
12
|
+
private readonly designerConfig;
|
|
13
|
+
get hostChartComponent(): Type<unknown> | null;
|
|
12
14
|
readonly definition: import("@angular/core").InputSignal<ReportComponentDefinition | undefined>;
|
|
13
15
|
readonly customData: import("@angular/core").InputSignal<ChartDataItem[] | undefined>;
|
|
14
16
|
readonly customChartType: import("@angular/core").InputSignal<ChartType | undefined>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bways-report",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Enterprise-grade, metadata-driven reporting engine and visual page builder for Angular 18+ ERP applications.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"@angular/common": ">=18.0.0",
|
|
28
28
|
"@angular/core": ">=18.0.0",
|
|
29
29
|
"@angular/forms": ">=18.0.0",
|
|
30
|
+
"@angular/router": ">=18.0.0",
|
|
30
31
|
"@angular/cdk": ">=18.0.0",
|
|
31
32
|
"rxjs": "^7.8.0"
|
|
32
33
|
},
|