bways-report 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/esm2022/lib/core/models/report-grid.model.mjs +1 -1
  2. package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +24 -3
  3. package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +20 -13
  4. package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +64 -5
  5. package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +161 -3
  6. package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +91 -11
  7. package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +88 -25
  8. package/esm2022/lib/features/designer/designer.component.mjs +194 -65
  9. package/esm2022/lib/features/designer/services/designer-state.service.mjs +9 -2
  10. package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +2 -2
  11. package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +11 -3
  12. package/esm2022/lib/features/runtime/report-execution.service.mjs +1 -9
  13. package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +214 -19
  14. package/esm2022/lib/features/runtime/report-runtime.component.mjs +11 -3
  15. package/esm2022/lib/features/runtime/rpt-report.component.mjs +11 -3
  16. package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +3 -3
  17. package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +3 -3
  18. package/esm2022/lib/primitives/components/date-range/rpt-date-range.component.mjs +3 -3
  19. package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +4 -4
  20. package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +23 -1
  21. package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +3 -3
  22. package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +3 -3
  23. package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +3 -3
  24. package/fesm2022/bways-report.mjs +920 -162
  25. package/fesm2022/bways-report.mjs.map +1 -1
  26. package/lib/core/models/report-grid.model.d.ts +23 -1
  27. package/lib/features/designer/components/component-palette/component-palette.component.d.ts +2 -1
  28. package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +9 -0
  29. package/lib/features/designer/components/property-editor/property-editor.component.d.ts +4 -1
  30. package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +5 -1
  31. package/lib/features/designer/designer.component.d.ts +6 -0
  32. package/lib/features/runtime/dynamic-renderer.component.d.ts +4 -1
  33. package/lib/features/runtime/report-grid-bridge.component.d.ts +46 -4
  34. package/lib/features/runtime/report-runtime.component.d.ts +4 -1
  35. package/lib/features/runtime/rpt-report.component.d.ts +4 -1
  36. package/package.json +1 -1
@@ -77,6 +77,10 @@ export interface GridColumnDefinition {
77
77
  order?: number;
78
78
  /** Aggregate function to display in a footer row. */
79
79
  aggregate?: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'none';
80
+ /** Whether to render a selection checkbox in this column's cells. */
81
+ checkboxSelection?: boolean;
82
+ /** Whether to render a select-all checkbox in this column's header. */
83
+ headerCheckboxSelection?: boolean;
80
84
  /** Optional cell-specific click action (overrides grid-level rowClickAction for this column). */
81
85
  action?: GridRowClickAction;
82
86
  }
@@ -90,8 +94,14 @@ export interface GridOptionsDefinition {
90
94
  pagination?: boolean;
91
95
  /** Whether row selection is enabled. */
92
96
  selectable?: boolean;
93
- /** Selection mode when selectable is true. */
97
+ /** Selection mode when selectable is true. Defaults to 'multiple'. */
94
98
  selectionMode?: 'single' | 'multiple';
99
+ /** Selection mode alias (compatible with UltraGrid and AG Grid rowSelection). */
100
+ rowSelection?: 'single' | 'multiple';
101
+ /** Whether to render selection checkboxes on rows. Defaults to true when selectable is true. */
102
+ checkboxSelection?: boolean;
103
+ /** Whether to render a select-all checkbox in the header. Defaults to true when multi-row checkbox selection is active. */
104
+ headerCheckboxSelection?: boolean;
95
105
  /** Whether to show row numbers. */
96
106
  showRowNumbers?: boolean;
97
107
  /** Whether to allow column reordering. */
@@ -112,6 +122,18 @@ export interface GridOptionsDefinition {
112
122
  reportState?: Record<string, unknown>;
113
123
  /** View presets / saved custom grid views. */
114
124
  presets?: unknown[];
125
+ /**
126
+ * Whether the grid side panel (tool panels for columns, filters, highlights, export, analytics, AI chat) is enabled.
127
+ * Standard BWays-grid / UltraGrid feature. Defaults to `true`.
128
+ */
129
+ sideBar?: boolean | {
130
+ visible?: boolean;
131
+ panel?: ('columns' | 'filters' | 'highlights' | 'export' | 'analytics' | 'chat')[];
132
+ };
133
+ /** Whether the real-time global search bar is enabled. Defaults to `true`. */
134
+ globalSearch?: boolean;
135
+ /** Whether the bottom status bar is enabled. Defaults to `true`. */
136
+ statusBar?: boolean;
115
137
  /** Declarative row-click action for master-detail drill-downs. */
116
138
  rowClickAction?: GridRowClickAction;
117
139
  }
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export declare class ComponentPaletteComponent {
4
4
  private readonly registry;
5
5
  private readonly designerState;
6
+ readonly collapseRequested: import("@angular/core").OutputEmitterRef<void>;
6
7
  readonly searchQuery: import("@angular/core").WritableSignal<string>;
7
8
  /** Layout view mode: 'grid' (2-column side-by-side grid) or 'list' (compact row list). Defaults to 'grid'. */
8
9
  readonly layoutMode: import("@angular/core").WritableSignal<"grid" | "list">;
@@ -27,7 +28,7 @@ export declare class ComponentPaletteComponent {
27
28
  onItemDoubleClick(type: string): void;
28
29
  onAddClick(event: MouseEvent, type: string): void;
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<ComponentPaletteComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<ComponentPaletteComponent, "rpt-component-palette", never, {}, {}, never, never, true, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<ComponentPaletteComponent, "rpt-component-palette", never, {}, { "collapseRequested": "collapseRequested"; }, never, never, true, never>;
31
32
  }
32
33
  /** Dictionary of synonyms for component types and UI concepts */
33
34
  export declare const COMPONENT_SYNONYMS: Record<string, string[]>;
@@ -51,6 +51,15 @@ export declare class PropertyEditorDatasourceComponent implements OnInit {
51
51
  ngOnInit(): void;
52
52
  loadEntities(): void;
53
53
  loadEntityDetails(entityName: string, type: DropdownSourceType): void;
54
+ /**
55
+ * Non-destructive linking: binds parameters to session or already-existing canvas fields.
56
+ * Never mutates or adds new components to the canvas.
57
+ */
58
+ autoLinkExistingParameters(paramsList?: ProcedureParameterMetadata[]): void;
59
+ /**
60
+ * Explicit user-initiated action: links existing fields, and creates missing filter inputs on canvas.
61
+ * Restores selection to the current dropdown component so the user stays in this property editor.
62
+ */
54
63
  autoWireAllParameters(paramsList?: ProcedureParameterMetadata[]): void;
55
64
  setSourceType(type: DropdownSourceType): void;
56
65
  onEntitySelected(entityName: string): void;
@@ -17,12 +17,15 @@ export declare class PropertyEditorComponent {
17
17
  readonly definition: import("@angular/core").WritableSignal<import("bways-report").ReportDefinition>;
18
18
  readonly activeTab: import("@angular/core").WritableSignal<DesignerActiveTab>;
19
19
  readonly selectedComponent: import("@angular/core").Signal<ReportComponentDefinition | null>;
20
+ readonly collapseRequested: import("@angular/core").OutputEmitterRef<void>;
20
21
  readonly maxColumns: import("@angular/core").Signal<number>;
21
22
  readonly allComponents: import("@angular/core").Signal<ReportComponentDefinition[]>;
22
23
  readonly propertySchema: import("@angular/core").Signal<PropertyDefinition[]>;
23
24
  setTab(tab: DesignerActiveTab): void;
24
25
  updateCompDataSource(id: string, dataSource: ComponentDataSourceDefinition): void;
25
26
  deselect(): void;
27
+ duplicateComponent(id: string): void;
28
+ deleteComponent(id: string): void;
26
29
  updateComp(field: string, value: unknown): void;
27
30
  updateProp(id: string, key: string, value: unknown): void;
28
31
  updateLayout(key: keyof ComponentLayoutDefinition, value: unknown): void;
@@ -47,5 +50,5 @@ export declare class PropertyEditorComponent {
47
50
  getLayoutBadge(comp: ReportComponentDefinition): string;
48
51
  getValidationBadge(comp: ReportComponentDefinition): string;
49
52
  static ɵfac: i0.ɵɵFactoryDeclaration<PropertyEditorComponent, never>;
50
- static ɵcmp: i0.ɵɵComponentDeclaration<PropertyEditorComponent, "rpt-property-editor", never, {}, {}, never, never, true, never>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<PropertyEditorComponent, "rpt-property-editor", never, {}, { "collapseRequested": "collapseRequested"; }, never, never, true, never>;
51
54
  }
@@ -11,6 +11,10 @@ export declare class DesignerToolbarComponent {
11
11
  readonly canRedo: import("@angular/core").Signal<boolean>;
12
12
  readonly isTemplatesModalOpen: import("@angular/core").WritableSignal<boolean>;
13
13
  readonly availableBlueprints: ReportBlueprint[];
14
+ readonly isLeftPanelCollapsed: import("@angular/core").InputSignal<boolean>;
15
+ readonly isRightPanelCollapsed: import("@angular/core").InputSignal<boolean>;
16
+ readonly toggleLeftPanel: import("@angular/core").OutputEmitterRef<void>;
17
+ readonly toggleRightPanel: import("@angular/core").OutputEmitterRef<void>;
14
18
  readonly saveRequested: import("@angular/core").OutputEmitterRef<void>;
15
19
  setMode(mode: DesignerViewMode): void;
16
20
  undo(): void;
@@ -23,5 +27,5 @@ export declare class DesignerToolbarComponent {
23
27
  selectGridSettings(): void;
24
28
  exportJson(): void;
25
29
  static ɵfac: i0.ɵɵFactoryDeclaration<DesignerToolbarComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<DesignerToolbarComponent, "rpt-designer-toolbar", never, {}, { "saveRequested": "saveRequested"; }, never, never, true, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<DesignerToolbarComponent, "rpt-designer-toolbar", never, { "isLeftPanelCollapsed": { "alias": "isLeftPanelCollapsed"; "required": false; "isSignal": true; }; "isRightPanelCollapsed": { "alias": "isRightPanelCollapsed"; "required": false; "isSignal": true; }; }, { "toggleLeftPanel": "toggleLeftPanel"; "toggleRightPanel": "toggleRightPanel"; "saveRequested": "saveRequested"; }, never, never, true, never>;
27
31
  }
@@ -24,9 +24,15 @@ export declare class DesignerComponent implements OnInit {
24
24
  readonly isRightPanelCollapsed: import("@angular/core").WritableSignal<boolean>;
25
25
  toggleLeftPanel(): void;
26
26
  toggleRightPanel(): void;
27
+ openLeftPanelOnly(): void;
28
+ openRightPanelOnly(): void;
29
+ closeAllPanels(): void;
30
+ onResize(): void;
31
+ onKeyDown(event: KeyboardEvent): void;
27
32
  readonly formattedJson: import("@angular/core").Signal<string>;
28
33
  private loadedReportId;
29
34
  private loadedReportDef;
35
+ private lastEmittedDef;
30
36
  constructor();
31
37
  ngOnInit(): void;
32
38
  onSave(): void;
@@ -39,6 +39,8 @@ export declare class DynamicRendererComponent {
39
39
  }>;
40
40
  readonly gridStateChanged: import("@angular/core").OutputEmitterRef<any>;
41
41
  readonly columnDefsChanged: import("@angular/core").OutputEmitterRef<any>;
42
+ readonly selectionChange: import("@angular/core").OutputEmitterRef<any[]>;
43
+ readonly selectionChanged: import("@angular/core").OutputEmitterRef<any[]>;
42
44
  readonly rowActionTriggered: import("@angular/core").OutputEmitterRef<{
43
45
  action: GridRowClickAction;
44
46
  row: Record<string, unknown>;
@@ -62,6 +64,7 @@ export declare class DynamicRendererComponent {
62
64
  column?: GridColumnDefinition;
63
65
  event?: MouseEvent;
64
66
  }): void;
67
+ onGridSelectionChange(rows: any[]): void;
65
68
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicRendererComponent, never>;
66
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicRendererComponent, "rpt-dynamic-renderer", never, { "definition": { "alias": "definition"; "required": true; "isSignal": true; }; "initialValues": { "alias": "initialValues"; "required": false; "isSignal": true; }; "resultData": { "alias": "resultData"; "required": false; "isSignal": true; }; }, { "executeRequested": "executeRequested"; "resetRequested": "resetRequested"; "exportRequested": "exportRequested"; "printRequested": "printRequested"; "customActionTriggered": "customActionTriggered"; "gridStateChanged": "gridStateChanged"; "columnDefsChanged": "columnDefsChanged"; "rowActionTriggered": "rowActionTriggered"; }, never, never, true, never>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicRendererComponent, "rpt-dynamic-renderer", never, { "definition": { "alias": "definition"; "required": true; "isSignal": true; }; "initialValues": { "alias": "initialValues"; "required": false; "isSignal": true; }; "resultData": { "alias": "resultData"; "required": false; "isSignal": true; }; }, { "executeRequested": "executeRequested"; "resetRequested": "resetRequested"; "exportRequested": "exportRequested"; "printRequested": "printRequested"; "customActionTriggered": "customActionTriggered"; "gridStateChanged": "gridStateChanged"; "columnDefsChanged": "columnDefsChanged"; "selectionChange": "selectionChange"; "selectionChanged": "selectionChanged"; "rowActionTriggered": "rowActionTriggered"; }, never, never, true, never>;
67
70
  }
@@ -14,12 +14,13 @@ export declare class RptGridOutletDirective implements OnDestroy {
14
14
  column?: any;
15
15
  event?: any;
16
16
  }>;
17
+ readonly selectionChange: import("@angular/core").OutputEmitterRef<any[]>;
17
18
  constructor();
18
19
  private recreateComponent;
19
20
  private clear;
20
21
  ngOnDestroy(): void;
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<RptGridOutletDirective, never>;
22
- static ɵdir: i0.ɵɵDirectiveDeclaration<RptGridOutletDirective, "[rptGridOutlet]", never, { "componentType": { "alias": "rptGridOutlet"; "required": false; "isSignal": true; }; "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; }, { "gridStateChange": "gridStateChange"; "columnDefsChange": "columnDefsChange"; "rowClick": "rowClick"; }, never, never, true, never>;
23
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RptGridOutletDirective, "[rptGridOutlet]", never, { "componentType": { "alias": "rptGridOutlet"; "required": false; "isSignal": true; }; "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; }, { "gridStateChange": "gridStateChange"; "columnDefsChange": "columnDefsChange"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; }, never, never, true, never>;
23
24
  }
24
25
  export declare class ReportGridBridgeComponent {
25
26
  private readonly injectedGrid;
@@ -33,8 +34,14 @@ export declare class ReportGridBridgeComponent {
33
34
  column?: GridColumnDefinition;
34
35
  event?: MouseEvent;
35
36
  }>;
37
+ readonly selectionChange: import("@angular/core").OutputEmitterRef<any[]>;
36
38
  readonly customGridComponent: import("@angular/core").Signal<Type<unknown> | null>;
39
+ readonly selectedRows: import("@angular/core").WritableSignal<any[]>;
37
40
  readonly hasRowClickAction: import("@angular/core").Signal<boolean>;
41
+ readonly isCheckboxSelectionEnabled: import("@angular/core").Signal<boolean>;
42
+ readonly effectiveRowSelection: import("@angular/core").Signal<"single" | "multiple">;
43
+ readonly isHeaderCheckboxSelectionEnabled: import("@angular/core").Signal<boolean>;
44
+ readonly isSelectionEnabled: import("@angular/core").Signal<boolean>;
38
45
  readonly sortColumn: import("@angular/core").WritableSignal<string | null>;
39
46
  readonly sortDirection: import("@angular/core").WritableSignal<"desc" | "asc">;
40
47
  readonly currentPage: import("@angular/core").WritableSignal<number>;
@@ -46,6 +53,8 @@ export declare class ReportGridBridgeComponent {
46
53
  hide: boolean;
47
54
  width: number | undefined;
48
55
  aggFunc: "sum" | "avg" | "count" | "min" | "max" | undefined;
56
+ checkboxSelection: boolean | undefined;
57
+ headerCheckboxSelection: boolean | undefined;
49
58
  field: string;
50
59
  label: string;
51
60
  dataType?: "string" | "number" | "date" | "boolean" | "currency";
@@ -62,11 +71,14 @@ export declare class ReportGridBridgeComponent {
62
71
  readonly gridInstanceKey: import("@angular/core").Signal<string>;
63
72
  readonly gridStateKey: import("@angular/core").Signal<string>;
64
73
  readonly gridConfig: import("@angular/core").Signal<{
74
+ rowSelection: "single" | "multiple";
75
+ selectionMode: "single" | "multiple";
76
+ checkboxSelection: boolean;
77
+ headerCheckboxSelection: boolean;
65
78
  stateKey: string;
66
79
  pageSize?: number;
67
80
  pagination?: boolean;
68
81
  selectable?: boolean;
69
- selectionMode?: "single" | "multiple";
70
82
  showRowNumbers?: boolean;
71
83
  allowColumnReorder?: boolean;
72
84
  allowExport?: boolean;
@@ -77,6 +89,12 @@ export declare class ReportGridBridgeComponent {
77
89
  sortModel?: unknown[];
78
90
  reportState?: Record<string, unknown>;
79
91
  presets?: unknown[];
92
+ sideBar: boolean | {
93
+ visible?: boolean;
94
+ panel?: ("columns" | "filters" | "highlights" | "export" | "analytics" | "chat")[];
95
+ };
96
+ globalSearch: boolean;
97
+ statusBar: boolean;
80
98
  rowClickAction?: import("../../core/models/report-grid.model").GridRowClickAction;
81
99
  }>;
82
100
  readonly gridReportState: import("@angular/core").Signal<{
@@ -88,6 +106,8 @@ export declare class ReportGridBridgeComponent {
88
106
  hide: boolean;
89
107
  width: number | undefined;
90
108
  aggFunc: "sum" | "avg" | "count" | "min" | "max" | undefined;
109
+ checkboxSelection: boolean | undefined;
110
+ headerCheckboxSelection: boolean | undefined;
91
111
  field: string;
92
112
  label: string;
93
113
  dataType?: "string" | "number" | "date" | "boolean" | "currency";
@@ -114,6 +134,8 @@ export declare class ReportGridBridgeComponent {
114
134
  hide: boolean;
115
135
  width: number | undefined;
116
136
  aggFunc: "sum" | "avg" | "count" | "min" | "max" | undefined;
137
+ checkboxSelection: boolean | undefined;
138
+ headerCheckboxSelection: boolean | undefined;
117
139
  field: string;
118
140
  label: string;
119
141
  dataType?: "string" | "number" | "date" | "boolean" | "currency";
@@ -134,6 +156,8 @@ export declare class ReportGridBridgeComponent {
134
156
  hide: boolean;
135
157
  width: number | undefined;
136
158
  aggFunc: "sum" | "avg" | "count" | "min" | "max" | undefined;
159
+ checkboxSelection: boolean | undefined;
160
+ headerCheckboxSelection: boolean | undefined;
137
161
  field: string;
138
162
  label: string;
139
163
  dataType?: "string" | "number" | "date" | "boolean" | "currency";
@@ -149,11 +173,14 @@ export declare class ReportGridBridgeComponent {
149
173
  }[];
150
174
  rowData: unknown[];
151
175
  config: {
176
+ rowSelection: "single" | "multiple";
177
+ selectionMode: "single" | "multiple";
178
+ checkboxSelection: boolean;
179
+ headerCheckboxSelection: boolean;
152
180
  stateKey: string;
153
181
  pageSize?: number;
154
182
  pagination?: boolean;
155
183
  selectable?: boolean;
156
- selectionMode?: "single" | "multiple";
157
184
  showRowNumbers?: boolean;
158
185
  allowColumnReorder?: boolean;
159
186
  allowExport?: boolean;
@@ -164,6 +191,12 @@ export declare class ReportGridBridgeComponent {
164
191
  sortModel?: unknown[];
165
192
  reportState?: Record<string, unknown>;
166
193
  presets?: unknown[];
194
+ sideBar: boolean | {
195
+ visible?: boolean;
196
+ panel?: ("columns" | "filters" | "highlights" | "export" | "analytics" | "chat")[];
197
+ };
198
+ globalSearch: boolean;
199
+ statusBar: boolean;
167
200
  rowClickAction?: import("../../core/models/report-grid.model").GridRowClickAction;
168
201
  };
169
202
  reportState: {
@@ -175,6 +208,8 @@ export declare class ReportGridBridgeComponent {
175
208
  hide: boolean;
176
209
  width: number | undefined;
177
210
  aggFunc: "sum" | "avg" | "count" | "min" | "max" | undefined;
211
+ checkboxSelection: boolean | undefined;
212
+ headerCheckboxSelection: boolean | undefined;
178
213
  field: string;
179
214
  label: string;
180
215
  dataType?: "string" | "number" | "date" | "boolean" | "currency";
@@ -195,6 +230,7 @@ export declare class ReportGridBridgeComponent {
195
230
  };
196
231
  pagination: boolean;
197
232
  pageSize: number;
233
+ rowSelection: "single" | "multiple";
198
234
  }>;
199
235
  readonly showRowNumbers: import("@angular/core").Signal<boolean>;
200
236
  readonly isPaginationEnabled: import("@angular/core").Signal<boolean>;
@@ -210,8 +246,14 @@ export declare class ReportGridBridgeComponent {
210
246
  nextPage(): void;
211
247
  formatValue(value: unknown, col: GridColumnDefinition): string;
212
248
  computeAggregate(col: GridColumnDefinition): string;
249
+ onSelectionChange(selected: any): void;
250
+ isRowSelected(row: Record<string, unknown>): boolean;
251
+ isAllSelected(): boolean;
252
+ isPartiallySelected(): boolean;
253
+ toggleSelectAll(event: Event): void;
254
+ toggleRowSelection(row: Record<string, unknown>, event: Event): void;
213
255
  onRowClick(row: Record<string, unknown>, event: MouseEvent): void;
214
256
  onCellClick(row: Record<string, unknown>, col: GridColumnDefinition, event: MouseEvent): void;
215
257
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportGridBridgeComponent, never>;
216
- static ɵcmp: i0.ɵɵComponentDeclaration<ReportGridBridgeComponent, "rpt-grid-bridge", never, { "gridDefinition": { "alias": "gridDefinition"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "gridStateChange": "gridStateChange"; "columnDefsChange": "columnDefsChange"; "rowClick": "rowClick"; }, never, never, true, never>;
258
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReportGridBridgeComponent, "rpt-grid-bridge", never, { "gridDefinition": { "alias": "gridDefinition"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "gridStateChange": "gridStateChange"; "columnDefsChange": "columnDefsChange"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; }, never, never, true, never>;
217
259
  }
@@ -33,6 +33,8 @@ export declare class ReportRuntimeComponent {
33
33
  }>;
34
34
  readonly gridStateChange: import("@angular/core").OutputEmitterRef<any>;
35
35
  readonly columnDefsChange: import("@angular/core").OutputEmitterRef<any>;
36
+ readonly selectionChange: import("@angular/core").OutputEmitterRef<any[]>;
37
+ readonly selectionChanged: import("@angular/core").OutputEmitterRef<any[]>;
36
38
  readonly rowActionTriggered: import("@angular/core").OutputEmitterRef<{
37
39
  action: GridRowClickAction;
38
40
  row: Record<string, unknown>;
@@ -88,6 +90,7 @@ export declare class ReportRuntimeComponent {
88
90
  component: ReportComponentDefinition;
89
91
  parameters: Record<string, unknown>;
90
92
  }): void;
93
+ onSelectionChange(rows: any[]): void;
91
94
  onRowActionTriggered(event: {
92
95
  action: GridRowClickAction;
93
96
  row: Record<string, unknown>;
@@ -104,5 +107,5 @@ export declare class ReportRuntimeComponent {
104
107
  retryDrawer(): void;
105
108
  retry(): void;
106
109
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportRuntimeComponent, never>;
107
- static ɵcmp: i0.ɵɵComponentDeclaration<ReportRuntimeComponent, "rpt-report-runtime, rpt-runtime", never, { "reportId": { "alias": "reportId"; "required": false; "isSignal": true; }; "definition": { "alias": "report"; "required": false; "isSignal": true; }; }, { "resetRequested": "resetRequested"; "exportRequested": "exportRequested"; "printRequested": "printRequested"; "customActionTriggered": "customActionTriggered"; "gridStateChange": "gridStateChange"; "columnDefsChange": "columnDefsChange"; "rowActionTriggered": "rowActionTriggered"; "drilldownRequested": "drilldownRequested"; }, never, never, true, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReportRuntimeComponent, "rpt-report-runtime, rpt-runtime", never, { "reportId": { "alias": "reportId"; "required": false; "isSignal": true; }; "definition": { "alias": "report"; "required": false; "isSignal": true; }; }, { "resetRequested": "resetRequested"; "exportRequested": "exportRequested"; "printRequested": "printRequested"; "customActionTriggered": "customActionTriggered"; "gridStateChange": "gridStateChange"; "columnDefsChange": "columnDefsChange"; "selectionChange": "selectionChange"; "selectionChanged": "selectionChanged"; "rowActionTriggered": "rowActionTriggered"; "drilldownRequested": "drilldownRequested"; }, never, never, true, never>;
108
111
  }
@@ -25,6 +25,8 @@ export declare class RptReportComponent {
25
25
  }>;
26
26
  readonly dataLoaded: import("@angular/core").OutputEmitterRef<unknown[]>;
27
27
  readonly gridStateChange: import("@angular/core").OutputEmitterRef<any>;
28
+ readonly selectionChange: import("@angular/core").OutputEmitterRef<any[]>;
29
+ readonly selectionChanged: import("@angular/core").OutputEmitterRef<any[]>;
28
30
  readonly presetSaved: import("@angular/core").OutputEmitterRef<{
29
31
  name: string;
30
32
  preset: ReportViewPreset;
@@ -49,6 +51,7 @@ export declare class RptReportComponent {
49
51
  parameters: Record<string, unknown>;
50
52
  }): void;
51
53
  onGridStateChanged(state: any): void;
54
+ onSelectionChange(rows: any[]): void;
52
55
  onSelectPreset(presetId: string): void;
53
56
  confirmSavePreset(): void;
54
57
  exportExcel(): void;
@@ -62,5 +65,5 @@ export declare class RptReportComponent {
62
65
  onExportCsv(): void;
63
66
  onPrintReport(): void;
64
67
  static ɵfac: i0.ɵɵFactoryDeclaration<RptReportComponent, never>;
65
- static ɵcmp: i0.ɵɵComponentDeclaration<RptReportComponent, "rpt-report, rpt-view", never, { "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; }; }, { "rowClick": "rowClick"; "dataLoaded": "dataLoaded"; "gridStateChange": "gridStateChange"; "presetSaved": "presetSaved"; "presetChange": "presetChange"; "exportRequested": "exportRequested"; "printRequested": "printRequested"; }, never, never, true, never>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<RptReportComponent, "rpt-report, rpt-view", never, { "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; }; }, { "rowClick": "rowClick"; "dataLoaded": "dataLoaded"; "gridStateChange": "gridStateChange"; "selectionChange": "selectionChange"; "selectionChanged": "selectionChanged"; "presetSaved": "presetSaved"; "presetChange": "presetChange"; "exportRequested": "exportRequested"; "printRequested": "printRequested"; }, never, never, true, never>;
66
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bways-report",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Enterprise-grade, metadata-driven reporting engine and visual page builder for Angular 18+ ERP applications.",
5
5
  "keywords": [
6
6
  "angular",