@firestitch/report 18.0.30 → 18.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/app/reports/components/report-canvas/report-canvas.component.d.ts +9 -1
  2. package/app/reports/data/report.data.d.ts +8 -1
  3. package/app/reports/dialogs/component-settings/component-settings.component.d.ts +9 -4
  4. package/app/reports/dialogs/global-settings/components/semantic-database/semantic-database.component.d.ts +2 -0
  5. package/app/reports/dialogs/report-settings/report-settings.component.d.ts +3 -2
  6. package/app/reports/interfaces/report.interface.d.ts +8 -0
  7. package/app/reports/views/report/fs-ai-report.component.d.ts +8 -1
  8. package/esm2022/app/reports/components/report-canvas/report-canvas.component.mjs +105 -5
  9. package/esm2022/app/reports/data/report.data.mjs +42 -1
  10. package/esm2022/app/reports/dialogs/component-settings/component-settings.component.mjs +59 -10
  11. package/esm2022/app/reports/dialogs/global-settings/components/semantic-database/semantic-database.component.mjs +20 -3
  12. package/esm2022/app/reports/dialogs/report-settings/report-settings.component.mjs +27 -11
  13. package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
  14. package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +50 -4
  15. package/esm2022/app/reports/views/report/report.component.mjs +1 -1
  16. package/fesm2022/{firestitch-report-echarts-CvuyZRgq.mjs → firestitch-report-echarts-DPeQc3Lq.mjs} +2 -2
  17. package/fesm2022/{firestitch-report-echarts-CvuyZRgq.mjs.map → firestitch-report-echarts-DPeQc3Lq.mjs.map} +1 -1
  18. package/fesm2022/{firestitch-report-firestitch-report-C00Q9Orr.mjs → firestitch-report-firestitch-report-BSGrWdzK.mjs} +319 -58
  19. package/fesm2022/firestitch-report-firestitch-report-BSGrWdzK.mjs.map +1 -0
  20. package/fesm2022/firestitch-report.mjs +1 -1
  21. package/package.json +1 -1
  22. package/fesm2022/firestitch-report-firestitch-report-C00Q9Orr.mjs.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { AfterViewInit, EventEmitter, OnChanges } from '@angular/core';
2
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
2
3
  import { FsZoomPanComponent } from '@firestitch/zoom-pan';
3
4
  import { ComponentSettings, Report, ReportComponent, ReportFilterGroup, ReportPage } from '../../interfaces/report.interface';
4
5
  import * as i0 from "@angular/core";
@@ -28,9 +29,11 @@ export interface CanvasSnapper {
28
29
  export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
29
30
  report: Report;
30
31
  editMode: boolean;
32
+ pageId: number | null;
31
33
  componentSettings: EventEmitter<ReportComponent>;
32
34
  reportChanged: EventEmitter<void>;
33
35
  editDone: EventEmitter<void>;
36
+ pageChanged: EventEmitter<number>;
34
37
  zoomPan: FsZoomPanComponent;
35
38
  private _renderedComponents;
36
39
  private _viewport;
@@ -43,6 +46,8 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
43
46
  selectedComponentId: number | null;
44
47
  readonly snapper: CanvasSnapper;
45
48
  private _reportData;
49
+ private _prompt;
50
+ private _message;
46
51
  private _cdRef;
47
52
  private _destroyRef;
48
53
  private _fitted;
@@ -56,6 +61,9 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
56
61
  selectPage(index: number): void;
57
62
  addPage(): void;
58
63
  pageLabel(page: ReportPage, index: number): string;
64
+ renamePage(page: ReportPage): void;
65
+ deletePage(page: ReportPage): void;
66
+ onPageDropped(event: CdkDragDrop<unknown>): void;
59
67
  applyComponentSettings(componentId: number, settings: ComponentSettings): void;
60
68
  selectComponent(componentId: number | null): void;
61
69
  onCanvasPointerDown(): void;
@@ -82,5 +90,5 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
82
90
  private _renderGuides;
83
91
  private _clearGuides;
84
92
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportCanvasComponent, never>;
85
- static ɵcmp: i0.ɵɵComponentDeclaration<ReportCanvasComponent, "app-report-canvas", never, { "report": { "alias": "report"; "required": false; }; "editMode": { "alias": "editMode"; "required": false; }; }, { "componentSettings": "componentSettings"; "reportChanged": "reportChanged"; "editDone": "editDone"; }, never, never, true, never>;
93
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReportCanvasComponent, "app-report-canvas", never, { "report": { "alias": "report"; "required": false; }; "editMode": { "alias": "editMode"; "required": false; }; "pageId": { "alias": "pageId"; "required": false; }; }, { "componentSettings": "componentSettings"; "reportChanged": "reportChanged"; "editDone": "editDone"; "pageChanged": "pageChanged"; }, never, never, true, never>;
86
94
  }
@@ -1,6 +1,6 @@
1
1
  import { RequestConfig } from '@firestitch/api';
2
2
  import { Observable } from 'rxjs';
3
- import { ComponentDataState, FilterGroupDefault, ReportFilterLevel, ReportTree, ResolvedFilterValue } from '../interfaces/report.interface';
3
+ import { ComponentDataState, FilterGroupDefault, ReportComponentSql, ReportFilterLevel, ReportTree, ResolvedFilterValue } from '../interfaces/report.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ReportData<T = any> {
6
6
  private _api;
@@ -16,6 +16,12 @@ export declare class ReportData<T = any> {
16
16
  rename(reportId: number, name: string, config?: RequestConfig): Observable<T>;
17
17
  update(reportId: number, settings: Record<string, unknown>, config?: RequestConfig): Observable<T>;
18
18
  addPage(reportId: number, config?: RequestConfig): Observable<T>;
19
+ updatePage(reportId: number, pageId: number, name: string, config?: RequestConfig): Observable<T>;
20
+ deletePage(reportId: number, pageId: number, config?: RequestConfig): Observable<T>;
21
+ savePagePositions(reportId: number, positions: {
22
+ pageId: number;
23
+ order: number;
24
+ }[], config?: RequestConfig): Observable<T>;
19
25
  updateComponent(reportId: number, componentId: number, settings: Record<string, unknown>, config?: RequestConfig): Observable<T>;
20
26
  delete(reportId: number, config?: RequestConfig): Observable<T>;
21
27
  undelete(reportId: number, config?: RequestConfig): Observable<T>;
@@ -34,6 +40,7 @@ export declare class ReportData<T = any> {
34
40
  exportComponent(reportId: number, componentId: number, filters?: ResolvedFilterValue[], state?: ComponentDataState, config?: RequestConfig): Observable<T>;
35
41
  exportReport(reportId: number, filters?: ResolvedFilterValue[], pageId?: number | null, config?: RequestConfig): Observable<T>;
36
42
  filterOptions(reportId: number, filterId: number, config?: RequestConfig): Observable<T>;
43
+ componentSql(reportId: number, componentId: number, config?: RequestConfig): Observable<ReportComponentSql>;
37
44
  componentColumns(reportId: number, componentId: number, config?: RequestConfig): Observable<T>;
38
45
  addFilter(reportId: number, componentId: number, filter: {
39
46
  filterColumn: string;
@@ -18,11 +18,14 @@ export declare class ComponentSettingsComponent implements OnInit {
18
18
  report: Report;
19
19
  selectedTab: string;
20
20
  title: string;
21
- paddingTop: number;
22
- paddingRight: number;
23
- paddingBottom: number;
24
- paddingLeft: number;
21
+ paddingTop: number | string;
22
+ paddingRight: number | string;
23
+ paddingBottom: number | string;
24
+ paddingLeft: number | string;
25
25
  configJson: string;
26
+ sql: string | null;
27
+ sqlBaseline: boolean;
28
+ sqlError: string | null;
26
29
  rows: FilterRow[];
27
30
  columnsError: string | null;
28
31
  private _filterableColumns;
@@ -38,11 +41,13 @@ export declare class ComponentSettingsComponent implements OnInit {
38
41
  typeLabel(type: ReportFilterType): string;
39
42
  save: () => Observable<any>;
40
43
  setExposure(row: FilterRow, target: 'report' | 'component', on: boolean): void;
44
+ private _padding;
41
45
  private _run;
42
46
  private _rebuildRows;
43
47
  private _afterMutation;
44
48
  private _mutationError;
45
49
  private _seedFilters;
50
+ private _loadSql;
46
51
  private _loadColumns;
47
52
  private _humanize;
48
53
  static ɵfac: i0.ɵɵFactoryDeclaration<ComponentSettingsComponent, never>;
@@ -19,6 +19,8 @@ export declare class SemanticDatabaseComponent {
19
19
  readonly building: import("@angular/core").WritableSignal<boolean>;
20
20
  readonly buildActive: import("@angular/core").Signal<boolean>;
21
21
  readonly buildStateLabel: import("@angular/core").Signal<string>;
22
+ readonly buildComplete: import("@angular/core").Signal<boolean>;
23
+ readonly incompleteEntityCount: import("@angular/core").Signal<number>;
22
24
  readonly hasCatalog: import("@angular/core").Signal<boolean>;
23
25
  readonly excludedTables: import("@angular/core").Signal<SemanticBuildTable[]>;
24
26
  readonly unlinkedJunctions: import("@angular/core").Signal<SemanticBuildTable[]>;
@@ -23,8 +23,8 @@ interface FilterDefaultRow {
23
23
  export declare class ReportSettingsComponent implements OnInit {
24
24
  selectedTab: string;
25
25
  name: string;
26
- pageWidth: number;
27
- pageHeight: number;
26
+ pageWidth: number | string;
27
+ pageHeight: number | string;
28
28
  readonly pageDimensionMin = 1;
29
29
  readonly pageDimensionMax = 50;
30
30
  layout: 'freeform' | 'flow';
@@ -40,6 +40,7 @@ export declare class ReportSettingsComponent implements OnInit {
40
40
  ngOnInit(): void;
41
41
  delete(): void;
42
42
  save: () => Observable<[any, ...any[]]>;
43
+ private _pageDimension;
43
44
  private _buildFilterRows;
44
45
  private _rowDefault;
45
46
  private _defaultChanged;
@@ -52,6 +52,13 @@ export interface ReportComponent {
52
52
  config: ChartConfig & ListConfig & KpiConfig & ComponentLayoutConfig & Record<string, unknown>;
53
53
  filters: ReportFilter[];
54
54
  }
55
+ export interface ReportComponentSql {
56
+ sql: string | null;
57
+ origin: 'sql' | 'dbq' | 'derived';
58
+ baseline: boolean;
59
+ error: string | null;
60
+ errorType: string | null;
61
+ }
55
62
  export interface ComponentLayoutConfig {
56
63
  padding?: ComponentPadding;
57
64
  }
@@ -275,6 +282,7 @@ export interface SemanticBuildTable {
275
282
  reason: string | null;
276
283
  }
277
284
  export interface SemanticBuildDetail {
285
+ complete: boolean;
278
286
  generatedAt: Date | null;
279
287
  entityCount: number;
280
288
  classCount: number;
@@ -5,15 +5,20 @@ import * as i0 from "@angular/core";
5
5
  export declare class FsAiReportComponent {
6
6
  readonly reportId: import("@angular/core").InputSignal<number>;
7
7
  readonly basePath: import("@angular/core").InputSignal<string>;
8
+ readonly pageQueryParam: import("@angular/core").InputSignal<string>;
8
9
  readonly deleted: import("@angular/core").OutputEmitterRef<number>;
9
10
  readonly renamed: import("@angular/core").OutputEmitterRef<Report>;
11
+ readonly pageChanged: import("@angular/core").OutputEmitterRef<number>;
10
12
  report: Report | null;
11
13
  editMode: boolean;
14
+ pageId: number | null;
12
15
  reportFilterConfig: FilterConfig;
13
16
  private _split;
14
17
  private _chatPanel;
15
18
  private _canvas?;
16
19
  private _reportData;
20
+ private _router;
21
+ private _route;
17
22
  private _filterState;
18
23
  private _exportService;
19
24
  private _process;
@@ -25,6 +30,7 @@ export declare class FsAiReportComponent {
25
30
  toggleEditMode(): void;
26
31
  reportSettings(): void;
27
32
  componentSettings(component: ReportComponentModel): void;
33
+ onCanvasPageChanged(pageId: number | null): void;
28
34
  onCanvasReportChanged(): void;
29
35
  exportPowerpoint(): void;
30
36
  exportPdf(): void;
@@ -32,6 +38,7 @@ export declare class FsAiReportComponent {
32
38
  onChatResponse(response: FsAiChatResponse): void;
33
39
  onResizeStart(event: PointerEvent): void;
34
40
  private _resizeTo;
41
+ private _pageIdFromUrl;
35
42
  private _loadReport;
36
43
  private _reportGroups;
37
44
  get reportHasFilters(): boolean;
@@ -39,5 +46,5 @@ export declare class FsAiReportComponent {
39
46
  private _buildReportConfig;
40
47
  private _groupByItem;
41
48
  static ɵfac: i0.ɵɵFactoryDeclaration<FsAiReportComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<FsAiReportComponent, "fs-ai-report", never, { "reportId": { "alias": "reportId"; "required": false; "isSignal": true; }; "basePath": { "alias": "basePath"; "required": false; "isSignal": true; }; }, { "deleted": "deleted"; "renamed": "renamed"; }, never, never, true, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsAiReportComponent, "fs-ai-report", never, { "reportId": { "alias": "reportId"; "required": false; "isSignal": true; }; "basePath": { "alias": "basePath"; "required": false; "isSignal": true; }; "pageQueryParam": { "alias": "pageQueryParam"; "required": false; "isSignal": true; }; }, { "deleted": "deleted"; "renamed": "renamed"; "pageChanged": "pageChanged"; }, never, never, true, never>;
43
50
  }