bways-report 0.1.5 → 0.1.7
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 +291 -422
- package/esm2022/lib/core/config/bways-report-config.mjs +83 -0
- package/esm2022/lib/core/index.mjs +2 -1
- package/esm2022/lib/core/models/report-definition.model.mjs +1 -1
- package/esm2022/lib/core/services/index.mjs +2 -1
- package/esm2022/lib/core/services/report-data-discovery.service.mjs +138 -0
- package/esm2022/lib/core/services/report-session-context.service.mjs +11 -7
- package/esm2022/lib/core/tokens/reporting-config.token.mjs +1 -1
- package/esm2022/lib/core/utils/data-normalization.util.mjs +87 -1
- package/esm2022/lib/core/utils/identifier-humanizer.mjs +15 -4
- package/esm2022/lib/core/utils/report-parameter.util.mjs +119 -3
- package/esm2022/lib/data-access/adapters/endpoint-datasource.adapter.mjs +69 -0
- package/esm2022/lib/data-access/adapters/endpoint-lookup.adapter.mjs +98 -0
- package/esm2022/lib/data-access/adapters/endpoint-masterdata.adapter.mjs +57 -0
- package/esm2022/lib/data-access/adapters/endpoint-persistence.adapter.mjs +85 -0
- package/esm2022/lib/data-access/adapters/endpoint-schema-discovery.adapter.mjs +163 -0
- package/esm2022/lib/data-access/adapters/endpoint-tokens.mjs +12 -0
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +20 -30
- package/esm2022/lib/data-access/adapters/index.mjs +8 -1
- package/esm2022/lib/data-access/contracts/lookup.contract.mjs +1 -1
- package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +12 -2
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +71 -13
- package/esm2022/lib/features/designer/components/dialogs/report-saved-dialog.component.mjs +407 -0
- package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +403 -222
- package/esm2022/lib/features/designer/components/property-editor/property-editor-action.component.mjs +41 -34
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +142 -20
- package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +154 -5
- package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +11 -5
- package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +15 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +112 -39
- package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +204 -10
- package/esm2022/lib/features/designer/designer.component.mjs +44 -3
- package/esm2022/lib/features/designer/services/designer-state.service.mjs +70 -3
- package/esm2022/lib/features/embed/bways-report-builder.component.mjs +207 -0
- package/esm2022/lib/features/embed/bways-report-menu.component.mjs +433 -0
- package/esm2022/lib/features/embed/bways-report-page.component.mjs +204 -0
- package/esm2022/lib/features/embed/index.mjs +5 -0
- package/esm2022/lib/features/embed/inject-report-menu.mjs +99 -0
- package/esm2022/lib/features/index.mjs +2 -1
- package/esm2022/lib/features/persistence/services/report-store.service.mjs +43 -5
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +4 -4
- package/esm2022/lib/features/routing/index.mjs +2 -2
- package/esm2022/lib/features/routing/models/report-route.models.mjs +1 -1
- package/esm2022/lib/features/routing/report-routes.mjs +42 -1
- package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +6 -8
- package/esm2022/lib/features/routing/services/report-menu.service.mjs +14 -4
- package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +22 -3
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +121 -15
- package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +28 -5
- package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +113 -20
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +8 -1
- package/esm2022/lib/primitives/components/index.mjs +2 -1
- package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +9 -3
- package/esm2022/lib/primitives/components/searchable-select/rpt-searchable-select.component.mjs +386 -0
- package/esm2022/lib/provide-reporting.mjs +156 -11
- package/fesm2022/bways-report.mjs +5703 -1766
- package/fesm2022/bways-report.mjs.map +1 -1
- package/lib/core/config/bways-report-config.d.ts +161 -0
- package/lib/core/index.d.ts +1 -0
- package/lib/core/models/report-definition.model.d.ts +16 -0
- package/lib/core/services/index.d.ts +1 -0
- package/lib/core/services/report-data-discovery.service.d.ts +38 -0
- package/lib/core/services/report-session-context.service.d.ts +1 -0
- package/lib/core/tokens/reporting-config.token.d.ts +18 -0
- package/lib/core/utils/data-normalization.util.d.ts +10 -0
- package/lib/core/utils/report-parameter.util.d.ts +18 -1
- package/lib/data-access/adapters/endpoint-datasource.adapter.d.ts +13 -0
- package/lib/data-access/adapters/endpoint-lookup.adapter.d.ts +14 -0
- package/lib/data-access/adapters/endpoint-masterdata.adapter.d.ts +11 -0
- package/lib/data-access/adapters/endpoint-persistence.adapter.d.ts +15 -0
- package/lib/data-access/adapters/endpoint-schema-discovery.adapter.d.ts +21 -0
- package/lib/data-access/adapters/endpoint-tokens.d.ts +21 -0
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +2 -1
- package/lib/data-access/adapters/index.d.ts +7 -0
- package/lib/data-access/contracts/lookup.contract.d.ts +2 -2
- package/lib/features/designer/components/component-palette/component-palette.component.d.ts +1 -0
- package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +6 -2
- package/lib/features/designer/components/dialogs/report-saved-dialog.component.d.ts +34 -0
- package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +6 -0
- package/lib/features/designer/components/property-editor/property-editor-action.component.d.ts +3 -0
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +12 -2
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +41 -1
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +19 -0
- package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +13 -1
- package/lib/features/designer/designer.component.d.ts +4 -0
- package/lib/features/designer/services/designer-state.service.d.ts +12 -1
- package/lib/features/embed/bways-report-builder.component.d.ts +48 -0
- package/lib/features/embed/bways-report-menu.component.d.ts +40 -0
- package/lib/features/embed/bways-report-page.component.d.ts +61 -0
- package/lib/features/embed/index.d.ts +4 -0
- package/lib/features/embed/inject-report-menu.d.ts +44 -0
- package/lib/features/index.d.ts +1 -0
- package/lib/features/persistence/services/report-store.service.d.ts +5 -0
- package/lib/features/routing/index.d.ts +1 -1
- package/lib/features/routing/models/report-route.models.d.ts +3 -0
- package/lib/features/routing/report-routes.d.ts +40 -0
- package/lib/features/routing/resolvers/report.resolver.d.ts +1 -1
- package/lib/features/runtime/dynamic-renderer.component.d.ts +1 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +8 -59
- package/lib/primitives/components/button/rpt-button.component.d.ts +3 -0
- package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +18 -2
- package/lib/primitives/components/index.d.ts +2 -0
- package/lib/primitives/components/searchable-select/rpt-searchable-select.component.d.ts +89 -0
- package/lib/provide-reporting.d.ts +28 -6
- package/package.json +1 -1
package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import { GridColumnDefinition, GridRowClickAction, ReportGridDefinition } from '../../../../core/models/report-grid.model';
|
|
2
|
+
import { ReportDataSourceDefinition } from '../../../../core/models/report-datasource.model';
|
|
3
|
+
import { ReportComponentDefinition } from '../../../../core/models/report-component.model';
|
|
4
|
+
import { DatabaseEntityMetadata, ProcedureParameterMetadata } from '../../../../data-access/contracts/schema-discovery.contract';
|
|
5
|
+
import { SearchableSelectOption } from '../../../../primitives/components';
|
|
2
6
|
import * as i0 from "@angular/core";
|
|
3
7
|
export declare class PropertyEditorGridComponent {
|
|
8
|
+
private readonly dataDiscovery;
|
|
4
9
|
readonly grid: import("@angular/core").InputSignal<ReportGridDefinition | undefined>;
|
|
10
|
+
readonly dataSource: import("@angular/core").InputSignal<ReportDataSourceDefinition | undefined>;
|
|
11
|
+
readonly availableEntities: import("@angular/core").InputSignal<DatabaseEntityMetadata[]>;
|
|
12
|
+
readonly procedureParameters: import("@angular/core").InputSignal<ProcedureParameterMetadata[]>;
|
|
13
|
+
readonly allComponents: import("@angular/core").InputSignal<ReportComponentDefinition[]>;
|
|
14
|
+
readonly isDetecting: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
readonly statusMessage: import("@angular/core").InputSignal<string | null>;
|
|
16
|
+
readonly statusKind: import("@angular/core").InputSignal<"error" | "success" | "info" | null>;
|
|
5
17
|
readonly addGrid: import("@angular/core").OutputEmitterRef<void>;
|
|
6
18
|
readonly removeGrid: import("@angular/core").OutputEmitterRef<void>;
|
|
7
19
|
readonly addColumn: import("@angular/core").OutputEmitterRef<void>;
|
|
@@ -17,6 +29,30 @@ export declare class PropertyEditorGridComponent {
|
|
|
17
29
|
value: unknown;
|
|
18
30
|
}>;
|
|
19
31
|
readonly updateRowClickAction: import("@angular/core").OutputEmitterRef<GridRowClickAction | undefined>;
|
|
32
|
+
readonly setDataSource: import("@angular/core").OutputEmitterRef<ReportDataSourceDefinition>;
|
|
33
|
+
readonly updateDataSourceParameters: import("@angular/core").OutputEmitterRef<Record<string, unknown>>;
|
|
34
|
+
readonly entityChanged: import("@angular/core").OutputEmitterRef<{
|
|
35
|
+
name: string;
|
|
36
|
+
type: "stored_procedure" | "table";
|
|
37
|
+
}>;
|
|
38
|
+
readonly internalParameters: import("@angular/core").WritableSignal<ProcedureParameterMetadata[]>;
|
|
39
|
+
readonly effectiveParameters: import("@angular/core").Signal<ProcedureParameterMetadata[]>;
|
|
40
|
+
readonly selectedSourceType: import("@angular/core").WritableSignal<"table" | "stored_procedure">;
|
|
41
|
+
readonly isExecSnippetOpen: import("@angular/core").WritableSignal<boolean>;
|
|
42
|
+
readonly execSnippetText: import("@angular/core").WritableSignal<string>;
|
|
43
|
+
readonly execParseStatus: import("@angular/core").WritableSignal<{
|
|
44
|
+
message: string;
|
|
45
|
+
kind: "success" | "error";
|
|
46
|
+
} | null>;
|
|
47
|
+
toggleExecSnippet(): void;
|
|
48
|
+
applyExecSnippet(): void;
|
|
49
|
+
constructor();
|
|
50
|
+
readonly currentSourceType: import("@angular/core").Signal<"table" | "stored_procedure">;
|
|
51
|
+
readonly activeEntityName: import("@angular/core").Signal<string>;
|
|
52
|
+
readonly availableTables: import("@angular/core").Signal<DatabaseEntityMetadata[]>;
|
|
53
|
+
readonly availableProcedures: import("@angular/core").Signal<DatabaseEntityMetadata[]>;
|
|
54
|
+
readonly activeEntityList: import("@angular/core").Signal<DatabaseEntityMetadata[]>;
|
|
55
|
+
readonly gridEntitySelectOptions: import("@angular/core").Signal<SearchableSelectOption<any>[]>;
|
|
20
56
|
readonly columns: import("@angular/core").Signal<GridColumnDefinition[]>;
|
|
21
57
|
readonly rowClickAction: import("@angular/core").Signal<GridRowClickAction | undefined>;
|
|
22
58
|
readonly hasRowClickAction: import("@angular/core").Signal<boolean>;
|
|
@@ -24,6 +60,10 @@ export declare class PropertyEditorGridComponent {
|
|
|
24
60
|
key: string;
|
|
25
61
|
value: string;
|
|
26
62
|
}[]>;
|
|
63
|
+
onSourceTypeChange(type: 'stored_procedure' | 'table'): void;
|
|
64
|
+
onSelectEntity(entityName: string): void;
|
|
65
|
+
getParameterValue(paramName: string): string | number | boolean;
|
|
66
|
+
onParameterChange(paramName: string, value: string | number | boolean): void;
|
|
27
67
|
onUpdateCol(index: number, field: string, value: unknown): void;
|
|
28
68
|
toggleRowClickAction(enabled: boolean): void;
|
|
29
69
|
updateRowActionField(field: keyof GridRowClickAction, value: unknown): void;
|
|
@@ -32,5 +72,5 @@ export declare class PropertyEditorGridComponent {
|
|
|
32
72
|
updateMappingValue(index: number, newValue: string): void;
|
|
33
73
|
removeMapping(index: number): void;
|
|
34
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyEditorGridComponent, never>;
|
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyEditorGridComponent, "rpt-property-editor-grid", never, { "grid": { "alias": "grid"; "required": false; "isSignal": true; }; }, { "addGrid": "addGrid"; "removeGrid": "removeGrid"; "addColumn": "addColumn"; "autoDetectColumns": "autoDetectColumns"; "removeColumn": "removeColumn"; "updateColumn": "updateColumn"; "updateOption": "updateOption"; "updateRowClickAction": "updateRowClickAction"; }, never, never, true, never>;
|
|
75
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyEditorGridComponent, "rpt-property-editor-grid", never, { "grid": { "alias": "grid"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "availableEntities": { "alias": "availableEntities"; "required": false; "isSignal": true; }; "procedureParameters": { "alias": "procedureParameters"; "required": false; "isSignal": true; }; "allComponents": { "alias": "allComponents"; "required": false; "isSignal": true; }; "isDetecting": { "alias": "isDetecting"; "required": false; "isSignal": true; }; "statusMessage": { "alias": "statusMessage"; "required": false; "isSignal": true; }; "statusKind": { "alias": "statusKind"; "required": false; "isSignal": true; }; }, { "addGrid": "addGrid"; "removeGrid": "removeGrid"; "addColumn": "addColumn"; "autoDetectColumns": "autoDetectColumns"; "removeColumn": "removeColumn"; "updateColumn": "updateColumn"; "updateOption": "updateOption"; "updateRowClickAction": "updateRowClickAction"; "setDataSource": "setDataSource"; "updateDataSourceParameters": "updateDataSourceParameters"; "entityChanged": "entityChanged"; }, never, never, true, never>;
|
|
36
76
|
}
|
|
@@ -3,6 +3,8 @@ import { PropertyDefinition } from '../../../../core/registry/property-definitio
|
|
|
3
3
|
import { ComponentLayoutDefinition } from '../../../../core/models/report-layout.model';
|
|
4
4
|
import { GridRowClickAction } from '../../../../core/models/report-grid.model';
|
|
5
5
|
import { ComponentDataSourceDefinition, ReportComponentDefinition } from '../../../../core/models/report-component.model';
|
|
6
|
+
import { DatabaseEntityMetadata, ProcedureParameterMetadata } from '../../../../data-access/contracts/schema-discovery.contract';
|
|
7
|
+
import { ReportDataSourceDefinition } from '../../../../core/models/report-datasource.model';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
/**
|
|
8
10
|
* Property Editor coordinator component.
|
|
@@ -14,12 +16,24 @@ export declare class PropertyEditorComponent {
|
|
|
14
16
|
private readonly designerState;
|
|
15
17
|
private readonly registry;
|
|
16
18
|
private readonly discoveryAdapter;
|
|
19
|
+
private readonly lookupAdapter;
|
|
20
|
+
private readonly sessionService;
|
|
21
|
+
private readonly dataDiscovery;
|
|
22
|
+
readonly isDetectingColumns: import("@angular/core").WritableSignal<boolean>;
|
|
23
|
+
readonly gridDetectionStatus: import("@angular/core").WritableSignal<{
|
|
24
|
+
message: string;
|
|
25
|
+
kind: "info" | "success" | "error";
|
|
26
|
+
} | null>;
|
|
27
|
+
readonly availableEntities: import("@angular/core").WritableSignal<DatabaseEntityMetadata[]>;
|
|
28
|
+
readonly gridProcedureParameters: import("@angular/core").WritableSignal<ProcedureParameterMetadata[]>;
|
|
17
29
|
readonly definition: import("@angular/core").WritableSignal<import("bways-report").ReportDefinition>;
|
|
18
30
|
readonly activeTab: import("@angular/core").WritableSignal<DesignerActiveTab>;
|
|
19
31
|
readonly selectedComponent: import("@angular/core").Signal<ReportComponentDefinition | null>;
|
|
20
32
|
readonly collapseRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
21
33
|
readonly maxColumns: import("@angular/core").Signal<number>;
|
|
22
34
|
readonly allComponents: import("@angular/core").Signal<ReportComponentDefinition[]>;
|
|
35
|
+
readonly gridDataSource: import("@angular/core").Signal<ReportDataSourceDefinition | undefined>;
|
|
36
|
+
constructor();
|
|
23
37
|
readonly propertySchema: import("@angular/core").Signal<PropertyDefinition[]>;
|
|
24
38
|
setTab(tab: DesignerActiveTab): void;
|
|
25
39
|
updateCompDataSource(id: string, dataSource: ComponentDataSourceDefinition): void;
|
|
@@ -41,6 +55,11 @@ export declare class PropertyEditorComponent {
|
|
|
41
55
|
updateColumn(index: number, field: string, value: unknown): void;
|
|
42
56
|
updateGridOption(field: string, value: unknown): void;
|
|
43
57
|
updateGridRowClickAction(action: GridRowClickAction | undefined): void;
|
|
58
|
+
onGridEntityChanged(event: {
|
|
59
|
+
name: string;
|
|
60
|
+
type: 'stored_procedure' | 'table';
|
|
61
|
+
}): void;
|
|
62
|
+
onGridDataSourceParametersChanged(mappings: Record<string, unknown>): void;
|
|
44
63
|
autoDetectGridColumns(): void;
|
|
45
64
|
readonly expandedSections: import("@angular/core").WritableSignal<Record<string, boolean>>;
|
|
46
65
|
toggleSection(section: string): void;
|
|
@@ -1,21 +1,33 @@
|
|
|
1
1
|
import { DesignerViewMode } from '../../services/designer-state.service';
|
|
2
2
|
import { ReportBlueprint } from '../../services/report-template.service';
|
|
3
|
+
import { ReportDefinition } from '../../../../core/models/report-definition.model';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class DesignerToolbarComponent {
|
|
5
6
|
private readonly designerState;
|
|
6
7
|
private readonly templateService;
|
|
7
|
-
readonly
|
|
8
|
+
private readonly reportStore;
|
|
9
|
+
readonly definition: import("@angular/core").WritableSignal<ReportDefinition>;
|
|
8
10
|
readonly viewMode: import("@angular/core").WritableSignal<DesignerViewMode>;
|
|
9
11
|
readonly isDirty: import("@angular/core").WritableSignal<boolean>;
|
|
10
12
|
readonly canUndo: import("@angular/core").Signal<boolean>;
|
|
11
13
|
readonly canRedo: import("@angular/core").Signal<boolean>;
|
|
12
14
|
readonly isTemplatesModalOpen: import("@angular/core").WritableSignal<boolean>;
|
|
13
15
|
readonly availableBlueprints: ReportBlueprint[];
|
|
16
|
+
readonly isEditingName: import("@angular/core").WritableSignal<boolean>;
|
|
17
|
+
readonly nameDraft: import("@angular/core").WritableSignal<string>;
|
|
18
|
+
readonly reportSummaries: import("@angular/core").Signal<import("../../../../core/models/report-definition.model").ReportSummary[]>;
|
|
14
19
|
readonly isLeftPanelCollapsed: import("@angular/core").InputSignal<boolean>;
|
|
15
20
|
readonly isRightPanelCollapsed: import("@angular/core").InputSignal<boolean>;
|
|
16
21
|
readonly toggleLeftPanel: import("@angular/core").OutputEmitterRef<void>;
|
|
17
22
|
readonly toggleRightPanel: import("@angular/core").OutputEmitterRef<void>;
|
|
18
23
|
readonly saveRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
24
|
+
constructor();
|
|
25
|
+
startRename(): void;
|
|
26
|
+
saveRename(): void;
|
|
27
|
+
cancelRename(): void;
|
|
28
|
+
createNewReport(): void;
|
|
29
|
+
onSwitchReport(reportId: string): void;
|
|
30
|
+
private toSlug;
|
|
19
31
|
setMode(mode: DesignerViewMode): void;
|
|
20
32
|
undo(): void;
|
|
21
33
|
redo(): void;
|
|
@@ -7,6 +7,9 @@ export declare class DesignerComponent implements OnInit {
|
|
|
7
7
|
private readonly persistenceAdapter;
|
|
8
8
|
private readonly dataSourceAdapter;
|
|
9
9
|
private readonly sessionService;
|
|
10
|
+
private readonly dialog;
|
|
11
|
+
private readonly router;
|
|
12
|
+
private readonly reportingConfig;
|
|
10
13
|
/** Optional reportId to load from persistence adapter */
|
|
11
14
|
readonly reportId: import("@angular/core").InputSignal<string | undefined>;
|
|
12
15
|
/** Optional definition to load directly */
|
|
@@ -36,6 +39,7 @@ export declare class DesignerComponent implements OnInit {
|
|
|
36
39
|
constructor();
|
|
37
40
|
ngOnInit(): void;
|
|
38
41
|
onSave(): void;
|
|
42
|
+
private openSavedDialog;
|
|
39
43
|
onPreviewExecute(event: {
|
|
40
44
|
definition: ReportDefinition;
|
|
41
45
|
parameters: Record<string, unknown>;
|
|
@@ -2,6 +2,7 @@ import { ReportDefinition } from '../../../core/models/report-definition.model';
|
|
|
2
2
|
import { ReportComponentDefinition } from '../../../core/models/report-component.model';
|
|
3
3
|
import { ComponentLayoutDefinition } from '../../../core/models/report-layout.model';
|
|
4
4
|
import { ReportGridDefinition } from '../../../core/models/report-grid.model';
|
|
5
|
+
import { ReportDataSourceDefinition } from '../../../core/models/report-datasource.model';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export type DesignerViewMode = 'design' | 'preview' | 'json';
|
|
7
8
|
export type DesignerActiveTab = 'properties' | 'report' | 'grid';
|
|
@@ -80,7 +81,17 @@ export declare class DesignerStateService {
|
|
|
80
81
|
/**
|
|
81
82
|
* Updates grid definition settings.
|
|
82
83
|
*/
|
|
83
|
-
updateGridSettings(grid: ReportGridDefinition | undefined
|
|
84
|
+
updateGridSettings(grid: ReportGridDefinition | undefined, options?: {
|
|
85
|
+
skipHistory?: boolean;
|
|
86
|
+
}): void;
|
|
87
|
+
/**
|
|
88
|
+
* Sets or updates the primary data source for the report's result grid.
|
|
89
|
+
*/
|
|
90
|
+
setGridDataSource(ds: ReportDataSourceDefinition): void;
|
|
91
|
+
/**
|
|
92
|
+
* Updates the parameter mappings for the primary grid data source.
|
|
93
|
+
*/
|
|
94
|
+
updateGridDataSourceParameters(mappings: Record<string, unknown>): void;
|
|
84
95
|
/**
|
|
85
96
|
* Reverts to the previous state in history.
|
|
86
97
|
*/
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { ReportDefinition, ReportSummary } from '../../core/models/report-definition.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* `<bways-report-builder>`
|
|
6
|
+
*
|
|
7
|
+
* Drop-in, single-tag visual report designer component for host applications.
|
|
8
|
+
*
|
|
9
|
+
* Wraps the full visual builder with:
|
|
10
|
+
* - Direct width and height inputs (`width="100%" height="calc(100vh - 64px)"`)
|
|
11
|
+
* - Built-in report selector dropdown and "+ New Report" button
|
|
12
|
+
* - Automatic persistence and menu synchronization
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* ```html
|
|
16
|
+
* <!-- Drop anywhere in your admin or report management page -->
|
|
17
|
+
* <bways-report-builder width="100%" height="calc(100vh - 64px)" />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class BwaysReportBuilderComponent implements OnInit {
|
|
21
|
+
private readonly store;
|
|
22
|
+
private readonly destroyRef;
|
|
23
|
+
/** Width of the builder container. Defaults to '100%'. */
|
|
24
|
+
readonly width: import("@angular/core").InputSignal<string>;
|
|
25
|
+
/** Height of the builder container. Defaults to '100%'. */
|
|
26
|
+
readonly height: import("@angular/core").InputSignal<string>;
|
|
27
|
+
/** Initial report ID to open in the designer. */
|
|
28
|
+
readonly reportId: import("@angular/core").InputSignal<string | undefined>;
|
|
29
|
+
/** Whether to show the top switcher bar with report selector and "+ New" button. */
|
|
30
|
+
readonly showReportList: import("@angular/core").InputSignal<boolean>;
|
|
31
|
+
/** Emitted when a report definition is saved. */
|
|
32
|
+
readonly saved: import("@angular/core").OutputEmitterRef<ReportDefinition>;
|
|
33
|
+
/** Emitted when the report definition changes. */
|
|
34
|
+
readonly definitionChange: import("@angular/core").OutputEmitterRef<ReportDefinition>;
|
|
35
|
+
/** Emitted when a report is selected from the list. */
|
|
36
|
+
readonly reportSelect: import("@angular/core").OutputEmitterRef<string>;
|
|
37
|
+
readonly activeReportId: import("@angular/core").WritableSignal<string | null>;
|
|
38
|
+
readonly reportsList: import("@angular/core").WritableSignal<ReportSummary[]>;
|
|
39
|
+
readonly saveStatus: import("@angular/core").WritableSignal<string | null>;
|
|
40
|
+
readonly designerKey: import("@angular/core").WritableSignal<number>;
|
|
41
|
+
ngOnInit(): void;
|
|
42
|
+
onSelectReport(id: string): void;
|
|
43
|
+
createNewReport(): void;
|
|
44
|
+
onReportSaved(def: ReportDefinition): void;
|
|
45
|
+
private refreshReports;
|
|
46
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BwaysReportBuilderComponent, never>;
|
|
47
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BwaysReportBuilderComponent, "bways-report-builder", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "reportId": { "alias": "reportId"; "required": false; "isSignal": true; }; "showReportList": { "alias": "showReportList"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "definitionChange": "definitionChange"; "reportSelect": "reportSelect"; }, never, never, true, never>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ReportMenuGroup, ReportMenuItem } from '../routing/models/report-route.models';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type ReportMenuVariant = 'sidebar' | 'navbar' | 'dropdown';
|
|
4
|
+
/**
|
|
5
|
+
* Drop-in menu component for bways-report.
|
|
6
|
+
*
|
|
7
|
+
* Automatically displays saved and published report pages from the backend or storage.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* ```html
|
|
11
|
+
* <!-- Sidebar navigation -->
|
|
12
|
+
* <bways-report-menu variant="sidebar" />
|
|
13
|
+
*
|
|
14
|
+
* <!-- Horizontal navigation bar -->
|
|
15
|
+
* <bways-report-menu variant="navbar" />
|
|
16
|
+
*
|
|
17
|
+
* <!-- Header dropdown button -->
|
|
18
|
+
* <bways-report-menu variant="dropdown" />
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class BwaysReportMenuComponent {
|
|
22
|
+
readonly variant: import("@angular/core").InputSignal<ReportMenuVariant>;
|
|
23
|
+
readonly basePath: import("@angular/core").InputSignal<string | undefined>;
|
|
24
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
25
|
+
readonly showIcons: import("@angular/core").InputSignal<boolean>;
|
|
26
|
+
readonly allowSearch: import("@angular/core").InputSignal<boolean>;
|
|
27
|
+
readonly includeDrafts: import("@angular/core").InputSignal<boolean>;
|
|
28
|
+
readonly searchQuery: import("@angular/core").WritableSignal<string>;
|
|
29
|
+
readonly isOpen: import("@angular/core").WritableSignal<boolean>;
|
|
30
|
+
readonly collapsedGroups: import("@angular/core").WritableSignal<Set<string>>;
|
|
31
|
+
private readonly rawMenu;
|
|
32
|
+
private readonly rawGroups;
|
|
33
|
+
readonly totalItems: import("@angular/core").Signal<number>;
|
|
34
|
+
readonly filteredFlatItems: import("@angular/core").Signal<ReportMenuItem[]>;
|
|
35
|
+
readonly filteredGroups: import("@angular/core").Signal<ReportMenuGroup[]>;
|
|
36
|
+
isGroupCollapsed(category: string): boolean;
|
|
37
|
+
toggleGroup(category: string): void;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BwaysReportMenuComponent, never>;
|
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BwaysReportMenuComponent, "bways-report-menu", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "basePath": { "alias": "basePath"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; "allowSearch": { "alias": "allowSearch"; "required": false; "isSignal": true; }; "includeDrafts": { "alias": "includeDrafts"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ReportDefinition } from '../../core/models/report-definition.model';
|
|
2
|
+
import { GridRowClickAction } from '../../core/models/report-grid.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* `<bways-report-page>`
|
|
6
|
+
*
|
|
7
|
+
* Drop-in standalone component that loads a saved report by its slug (or ID)
|
|
8
|
+
* and renders the complete interactive live form, data filters, and grid.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```html
|
|
12
|
+
* <!-- By slug (recommended) -->
|
|
13
|
+
* <bways-report-page slug="sale-report" />
|
|
14
|
+
*
|
|
15
|
+
* <!-- Or pass parameters & overrides -->
|
|
16
|
+
* <bways-report-page
|
|
17
|
+
* [slug]="currentSlug"
|
|
18
|
+
* [parameters]="{ BranchId: 5 }"
|
|
19
|
+
* [showExport]="true"
|
|
20
|
+
* (rowClick)="onRowSelected($event)"
|
|
21
|
+
* />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class BwaysReportPageComponent {
|
|
25
|
+
private readonly store;
|
|
26
|
+
private readonly destroyRef;
|
|
27
|
+
/** Report slug (e.g. 'sale-report') or unique ID */
|
|
28
|
+
readonly slug: import("@angular/core").InputSignal<string | undefined>;
|
|
29
|
+
/** Alternative alias for ID or slug */
|
|
30
|
+
readonly id: import("@angular/core").InputSignal<string | undefined>;
|
|
31
|
+
/** Explicit in-memory ReportDefinition if already loaded */
|
|
32
|
+
readonly report: import("@angular/core").InputSignal<ReportDefinition | null>;
|
|
33
|
+
/** Default input parameter values for the report */
|
|
34
|
+
readonly parameters: import("@angular/core").InputSignal<Record<string, unknown>>;
|
|
35
|
+
/** Whether to show export controls (Excel, CSV, Print) */
|
|
36
|
+
readonly showExport: import("@angular/core").InputSignal<boolean>;
|
|
37
|
+
/** Whether to enable saved view presets */
|
|
38
|
+
readonly enablePresets: import("@angular/core").InputSignal<boolean>;
|
|
39
|
+
/** Whether to automatically execute the query when the page opens */
|
|
40
|
+
readonly autoExecute: import("@angular/core").InputSignal<boolean>;
|
|
41
|
+
/** Container width */
|
|
42
|
+
readonly width: import("@angular/core").InputSignal<string>;
|
|
43
|
+
/** Container height */
|
|
44
|
+
readonly height: import("@angular/core").InputSignal<string>;
|
|
45
|
+
readonly rowClick: import("@angular/core").OutputEmitterRef<{
|
|
46
|
+
row: Record<string, unknown>;
|
|
47
|
+
parameters: Record<string, unknown>;
|
|
48
|
+
action?: GridRowClickAction;
|
|
49
|
+
}>;
|
|
50
|
+
readonly dataLoaded: import("@angular/core").OutputEmitterRef<unknown[]>;
|
|
51
|
+
readonly selectionChange: import("@angular/core").OutputEmitterRef<any[]>;
|
|
52
|
+
readonly selectionChanged: import("@angular/core").OutputEmitterRef<any[]>;
|
|
53
|
+
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
54
|
+
readonly error: import("@angular/core").WritableSignal<string | null>;
|
|
55
|
+
readonly reportDefinition: import("@angular/core").WritableSignal<ReportDefinition | null>;
|
|
56
|
+
constructor();
|
|
57
|
+
reloadReport(): void;
|
|
58
|
+
private fetchReport;
|
|
59
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BwaysReportPageComponent, never>;
|
|
60
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BwaysReportPageComponent, "bways-report-page", never, { "slug": { "alias": "slug"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "report": { "alias": "report"; "required": false; "isSignal": true; }; "parameters": { "alias": "parameters"; "required": false; "isSignal": true; }; "showExport": { "alias": "showExport"; "required": false; "isSignal": true; }; "enablePresets": { "alias": "enablePresets"; "required": false; "isSignal": true; }; "autoExecute": { "alias": "autoExecute"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "rowClick": "rowClick"; "dataLoaded": "dataLoaded"; "selectionChange": "selectionChange"; "selectionChanged": "selectionChanged"; }, never, never, true, never>;
|
|
61
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { BwaysReportBuilderComponent } from './bways-report-builder.component';
|
|
2
|
+
export { BwaysReportPageComponent } from './bways-report-page.component';
|
|
3
|
+
export { BwaysReportMenuComponent, type ReportMenuVariant } from './bways-report-menu.component';
|
|
4
|
+
export { injectReportMenu, injectReportMenuGroups, type InjectReportMenuOptions, } from './inject-report-menu';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { ReportMenuGroup, ReportMenuItem } from '../routing/models/report-route.models';
|
|
3
|
+
/**
|
|
4
|
+
* Options for `injectReportMenu`.
|
|
5
|
+
*/
|
|
6
|
+
export interface InjectReportMenuOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Base route path for generated links.
|
|
9
|
+
* Defaults to configured `routeBase` (e.g. 'reports') or '/reports'.
|
|
10
|
+
*/
|
|
11
|
+
basePath?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Whether to include draft/unpublished reports.
|
|
14
|
+
* Default: false (only published reports appear in menus).
|
|
15
|
+
*/
|
|
16
|
+
includeDrafts?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Injects a reactive signal of published report menu items.
|
|
20
|
+
*
|
|
21
|
+
* Automatically triggers loading of report metadata from the persistence store/endpoint
|
|
22
|
+
* if not already loaded.
|
|
23
|
+
*
|
|
24
|
+
* Usage in component:
|
|
25
|
+
* ```typescript
|
|
26
|
+
* @Component({ ... })
|
|
27
|
+
* export class AppSidebarComponent {
|
|
28
|
+
* readonly reportMenu = injectReportMenu();
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
* Usage in template:
|
|
32
|
+
* ```html
|
|
33
|
+
* @for (item of reportMenu(); track item.slug) {
|
|
34
|
+
* <a [routerLink]="item.route">{{ item.name }}</a>
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function injectReportMenu(options?: InjectReportMenuOptions): Signal<ReportMenuItem[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Injects a reactive signal of published report menu groups (hierarchical).
|
|
41
|
+
*
|
|
42
|
+
* Useful for sidebars that organize reports under collapsible group headings.
|
|
43
|
+
*/
|
|
44
|
+
export declare function injectReportMenuGroups(options?: InjectReportMenuOptions): Signal<ReportMenuGroup[]>;
|
package/lib/features/index.d.ts
CHANGED
|
@@ -31,6 +31,11 @@ export declare class ReportStoreService {
|
|
|
31
31
|
* @param forceRefresh - If true, bypasses the in-memory cache.
|
|
32
32
|
*/
|
|
33
33
|
loadReport(reportId: string, forceRefresh?: boolean): Observable<ReportDefinition>;
|
|
34
|
+
/**
|
|
35
|
+
* Loads a report definition by slug or ID.
|
|
36
|
+
* Resolves from cache, loaded summaries, or adapter.
|
|
37
|
+
*/
|
|
38
|
+
loadReportBySlug(slugOrId: string, forceRefresh?: boolean): Observable<ReportDefinition>;
|
|
34
39
|
/**
|
|
35
40
|
* Saves a report definition, validates it, and updates local cache.
|
|
36
41
|
*/
|
|
@@ -2,5 +2,5 @@ export type { ReportRoutingConfig, ReportMenuItem, ReportMenuGroup } from './mod
|
|
|
2
2
|
export { reportResolver } from './resolvers/report.resolver';
|
|
3
3
|
export { RoutedReportRuntimeComponent } from './components/routed-report-runtime.component';
|
|
4
4
|
export { RoutedReportDesignerComponent } from './components/routed-report-designer.component';
|
|
5
|
-
export { createReportRoutes } from './report-routes';
|
|
5
|
+
export { createReportRoutes, bwaysReportRoutes, type BwaysReportRoutesOptions } from './report-routes';
|
|
6
6
|
export { ReportMenuService, groupReportsByCategory } from './services/report-menu.service';
|
|
@@ -14,3 +14,43 @@ import { ReportRoutingConfig } from './models/report-route.models';
|
|
|
14
14
|
* ```
|
|
15
15
|
*/
|
|
16
16
|
export declare function createReportRoutes(config?: ReportRoutingConfig): Routes;
|
|
17
|
+
/**
|
|
18
|
+
* Configuration options for `bwaysReportRoutes`.
|
|
19
|
+
*/
|
|
20
|
+
export interface BwaysReportRoutesOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Whether to include designer/builder routes ('new' and ':slug/edit').
|
|
23
|
+
* Defaults to false (since developers can embed <bways-report-builder> directly).
|
|
24
|
+
*/
|
|
25
|
+
includeBuilder?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Custom route guards for live report pages.
|
|
28
|
+
*/
|
|
29
|
+
runtimeGuards?: any[];
|
|
30
|
+
/**
|
|
31
|
+
* Custom route guards for builder/designer pages if enabled.
|
|
32
|
+
*/
|
|
33
|
+
builderGuards?: any[];
|
|
34
|
+
/**
|
|
35
|
+
* Optional custom route parameter name. Defaults to 'slug'.
|
|
36
|
+
*/
|
|
37
|
+
slugParam?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Extra static data passed into the route definitions.
|
|
40
|
+
*/
|
|
41
|
+
extraData?: Record<string, unknown>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Drop-in route definitions for bways-report.
|
|
45
|
+
*
|
|
46
|
+
* Example usage in host application `app.routes.ts`:
|
|
47
|
+
* ```typescript
|
|
48
|
+
* export const routes: Routes = [
|
|
49
|
+
* {
|
|
50
|
+
* path: 'reports',
|
|
51
|
+
* children: bwaysReportRoutes() // /reports/:slug -> live report page
|
|
52
|
+
* }
|
|
53
|
+
* ];
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function bwaysReportRoutes(options?: BwaysReportRoutesOptions): Routes;
|
|
@@ -2,6 +2,6 @@ import { ResolveFn } from '@angular/router';
|
|
|
2
2
|
import { ReportDefinition } from '../../../core/models';
|
|
3
3
|
/**
|
|
4
4
|
* Functional resolver that fetches a ReportDefinition using ReportStoreService
|
|
5
|
-
* based on the :reportId route parameter.
|
|
5
|
+
* based on the :slug or :reportId route parameter.
|
|
6
6
|
*/
|
|
7
7
|
export declare const reportResolver: ResolveFn<ReportDefinition | null>;
|
|
@@ -56,6 +56,7 @@ export declare class DynamicRendererComponent {
|
|
|
56
56
|
getGridRow(comp: ReportComponentDefinition): string;
|
|
57
57
|
getComponentHeight(comp: ReportComponentDefinition): string;
|
|
58
58
|
getComponentMinHeight(comp: ReportComponentDefinition): string;
|
|
59
|
+
isFormInput(type: string): boolean;
|
|
59
60
|
isComponentVisible(comp: ReportComponentDefinition): boolean;
|
|
60
61
|
onSubmit(): void;
|
|
61
62
|
handleAction(action: ComponentActionDefinition, comp?: ReportComponentDefinition): void;
|
|
@@ -5,6 +5,9 @@ export declare class RptGridOutletDirective implements OnDestroy {
|
|
|
5
5
|
private readonly vcr;
|
|
6
6
|
private compRef;
|
|
7
7
|
private subs;
|
|
8
|
+
private lastEmittedReportState;
|
|
9
|
+
private lastEmittedColumnDefs;
|
|
10
|
+
private readonly appliedInputs;
|
|
8
11
|
readonly componentType: import("@angular/core").InputSignal<Type<any> | null>;
|
|
9
12
|
readonly inputs: import("@angular/core").InputSignal<Record<string, unknown>>;
|
|
10
13
|
readonly gridStateChange: import("@angular/core").OutputEmitterRef<any>;
|
|
@@ -16,6 +19,9 @@ export declare class RptGridOutletDirective implements OnDestroy {
|
|
|
16
19
|
}>;
|
|
17
20
|
readonly selectionChange: import("@angular/core").OutputEmitterRef<any[]>;
|
|
18
21
|
constructor();
|
|
22
|
+
private canAcceptInput;
|
|
23
|
+
private isReportStateMatching;
|
|
24
|
+
private isColumnDefsMatching;
|
|
19
25
|
private recreateComponent;
|
|
20
26
|
private clear;
|
|
21
27
|
ngOnDestroy(): void;
|
|
@@ -98,35 +104,7 @@ export declare class ReportGridBridgeComponent {
|
|
|
98
104
|
statusBar: boolean;
|
|
99
105
|
rowClickAction?: import("../../core/models/report-grid.model").GridRowClickAction;
|
|
100
106
|
}>;
|
|
101
|
-
readonly gridReportState: import("@angular/core").Signal<
|
|
102
|
-
columnGroupDefs: null;
|
|
103
|
-
columnDefs: {
|
|
104
|
-
headerName: string;
|
|
105
|
-
header: string;
|
|
106
|
-
title: string;
|
|
107
|
-
hide: boolean;
|
|
108
|
-
width: number | undefined;
|
|
109
|
-
aggFunc: "sum" | "avg" | "count" | "min" | "max" | undefined;
|
|
110
|
-
checkboxSelection: boolean | undefined;
|
|
111
|
-
headerCheckboxSelection: boolean | undefined;
|
|
112
|
-
field: string;
|
|
113
|
-
label: string;
|
|
114
|
-
dataType?: "string" | "number" | "date" | "boolean" | "currency";
|
|
115
|
-
format?: string;
|
|
116
|
-
sortable?: boolean;
|
|
117
|
-
filterable?: boolean;
|
|
118
|
-
align?: "left" | "center" | "right";
|
|
119
|
-
visible?: boolean;
|
|
120
|
-
pinned?: "left" | "right" | false;
|
|
121
|
-
order?: number;
|
|
122
|
-
aggregate?: "sum" | "avg" | "count" | "min" | "max" | "none";
|
|
123
|
-
action?: import("../../core/models/report-grid.model").GridRowClickAction;
|
|
124
|
-
}[];
|
|
125
|
-
sortModel: any;
|
|
126
|
-
groupModel: string[];
|
|
127
|
-
activeFilters: {};
|
|
128
|
-
highlightRules: never[];
|
|
129
|
-
}>;
|
|
107
|
+
readonly gridReportState: import("@angular/core").Signal<any>;
|
|
130
108
|
readonly gridInputs: import("@angular/core").Signal<{
|
|
131
109
|
columns: {
|
|
132
110
|
headerName: string;
|
|
@@ -200,38 +178,9 @@ export declare class ReportGridBridgeComponent {
|
|
|
200
178
|
statusBar: boolean;
|
|
201
179
|
rowClickAction?: import("../../core/models/report-grid.model").GridRowClickAction;
|
|
202
180
|
};
|
|
203
|
-
reportState:
|
|
204
|
-
columnGroupDefs: null;
|
|
205
|
-
columnDefs: {
|
|
206
|
-
headerName: string;
|
|
207
|
-
header: string;
|
|
208
|
-
title: string;
|
|
209
|
-
hide: boolean;
|
|
210
|
-
width: number | undefined;
|
|
211
|
-
aggFunc: "sum" | "avg" | "count" | "min" | "max" | undefined;
|
|
212
|
-
checkboxSelection: boolean | undefined;
|
|
213
|
-
headerCheckboxSelection: boolean | undefined;
|
|
214
|
-
field: string;
|
|
215
|
-
label: string;
|
|
216
|
-
dataType?: "string" | "number" | "date" | "boolean" | "currency";
|
|
217
|
-
format?: string;
|
|
218
|
-
sortable?: boolean;
|
|
219
|
-
filterable?: boolean;
|
|
220
|
-
align?: "left" | "center" | "right";
|
|
221
|
-
visible?: boolean;
|
|
222
|
-
pinned?: "left" | "right" | false;
|
|
223
|
-
order?: number;
|
|
224
|
-
aggregate?: "sum" | "avg" | "count" | "min" | "max" | "none";
|
|
225
|
-
action?: import("../../core/models/report-grid.model").GridRowClickAction;
|
|
226
|
-
}[];
|
|
227
|
-
sortModel: any;
|
|
228
|
-
groupModel: string[];
|
|
229
|
-
activeFilters: {};
|
|
230
|
-
highlightRules: never[];
|
|
231
|
-
};
|
|
181
|
+
reportState: any;
|
|
232
182
|
pagination: boolean;
|
|
233
183
|
pageSize: number;
|
|
234
|
-
rowSelection: "single" | "multiple";
|
|
235
184
|
}>;
|
|
236
185
|
readonly showRowNumbers: import("@angular/core").Signal<boolean>;
|
|
237
186
|
readonly isPaginationEnabled: import("@angular/core").Signal<boolean>;
|
|
@@ -7,6 +7,9 @@ export declare class RptButtonComponent {
|
|
|
7
7
|
readonly onAction: import("@angular/core").InputSignal<((action: ComponentActionDefinition) => void) | undefined>;
|
|
8
8
|
readonly actionTriggered: import("@angular/core").OutputEmitterRef<ComponentActionDefinition>;
|
|
9
9
|
readonly elementId: import("@angular/core").Signal<string>;
|
|
10
|
+
readonly showFieldLabel: import("@angular/core").Signal<boolean>;
|
|
11
|
+
readonly fieldLabel: import("@angular/core").Signal<string>;
|
|
12
|
+
readonly hasLabelSpacer: import("@angular/core").Signal<boolean>;
|
|
10
13
|
readonly buttonLabel: import("@angular/core").Signal<string>;
|
|
11
14
|
readonly buttonHtmlType: import("@angular/core").Signal<"submit" | "button" | "reset">;
|
|
12
15
|
readonly isDisabled: import("@angular/core").Signal<boolean>;
|