@firestitch/report 18.9.0 → 18.10.1
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/app/reports/anchor-at-point.d.ts +14 -0
- package/app/reports/canvas-landing-page.d.ts +2 -0
- package/app/reports/components/component-chart/component-chart.component.d.ts +18 -2
- package/app/reports/components/component-kpi/component-kpi.component.d.ts +4 -1
- package/app/reports/components/report-canvas/report-canvas.component.d.ts +3 -0
- package/app/reports/components/report-component/report-component.component.d.ts +35 -1
- package/app/reports/components/report-view-picker/report-view-picker.component.d.ts +21 -0
- package/app/reports/data/report.data.d.ts +20 -7
- package/app/reports/dialogs/component-settings/component-settings.component.d.ts +18 -3
- package/app/reports/dialogs/report-settings/report-settings.component.d.ts +45 -8
- package/app/reports/dialogs/report-view/report-view-dialog.component.d.ts +13 -0
- package/app/reports/drill-crumbs.d.ts +12 -0
- package/app/reports/export/report-export-collector.service.d.ts +13 -4
- package/app/reports/export/report-filter-lines.d.ts +18 -0
- package/app/reports/filter-settings-rules.d.ts +37 -0
- package/app/reports/format.d.ts +0 -1
- package/app/reports/interfaces/canvas-landing-input.interface.d.ts +8 -0
- package/app/reports/interfaces/component-data-applied.interface.d.ts +13 -0
- package/app/reports/interfaces/component-data-drill.interface.d.ts +22 -0
- package/app/reports/interfaces/filter-bar-placement.type.d.ts +1 -0
- package/app/reports/interfaces/filter-component-toggle-state.interface.d.ts +4 -0
- package/app/reports/interfaces/filter-settings-option.interface.d.ts +4 -0
- package/app/reports/interfaces/filter-type-select-state.interface.d.ts +5 -0
- package/app/reports/interfaces/report-chart-hit.interface.d.ts +5 -0
- package/app/reports/interfaces/report-chat-viewer-cross-filter-field.interface.d.ts +4 -0
- package/app/reports/interfaces/report-chat-viewer-cross-filter.interface.d.ts +7 -0
- package/app/reports/interfaces/report-chat-viewer-detail.interface.d.ts +4 -0
- package/app/reports/interfaces/report-chat-viewer-drill-step.interface.d.ts +5 -0
- package/app/reports/interfaces/report-chat-viewer-drill.interface.d.ts +5 -0
- package/app/reports/interfaces/report-chat-viewer-filter.interface.d.ts +3 -0
- package/app/reports/interfaces/report-chat-viewer-selection.interface.d.ts +5 -0
- package/app/reports/interfaces/report-chat-viewer-state.interface.d.ts +12 -0
- package/app/reports/interfaces/report-drill-crumb.interface.d.ts +6 -0
- package/app/reports/interfaces/report-drill-refusal.type.d.ts +1 -0
- package/app/reports/interfaces/report-drill-step.interface.d.ts +5 -0
- package/app/reports/interfaces/report-export-line-kind.type.d.ts +1 -0
- package/app/reports/interfaces/report-export-line.interface.d.ts +8 -0
- package/app/reports/interfaces/report-export-lines-input.interface.d.ts +9 -0
- package/app/reports/interfaces/report-export-snapshot.interface.d.ts +15 -0
- package/app/reports/interfaces/report-filter-group-changes.interface.d.ts +7 -0
- package/app/reports/interfaces/report-filter-line-context.interface.d.ts +8 -0
- package/app/reports/interfaces/report-filter-line-form.type.d.ts +1 -0
- package/app/reports/interfaces/report-filter-match.type.d.ts +1 -0
- package/app/reports/interfaces/report-filter-option-pair.interface.d.ts +4 -0
- package/app/reports/interfaces/report-filter-options-ask.interface.d.ts +6 -0
- package/app/reports/interfaces/report-filter-options-list.interface.d.ts +7 -0
- package/app/reports/interfaces/report-filter-options-request.interface.d.ts +6 -0
- package/app/reports/interfaces/report-filter-options-stream.interface.d.ts +11 -0
- package/app/reports/interfaces/report-filter-options.interface.d.ts +7 -0
- package/app/reports/interfaces/report-filter-skip.type.d.ts +1 -0
- package/app/reports/interfaces/report-mark-action.type.d.ts +1 -0
- package/app/reports/interfaces/report-mark-click.interface.d.ts +13 -0
- package/app/reports/interfaces/report-mark-context.interface.d.ts +6 -0
- package/app/reports/interfaces/report-mark-decision.interface.d.ts +6 -0
- package/app/reports/interfaces/report-mark-event.interface.d.ts +11 -0
- package/app/reports/interfaces/report-mark-point.interface.d.ts +8 -0
- package/app/reports/interfaces/report-temporary-state.interface.d.ts +4 -0
- package/app/reports/interfaces/report-tile-state.interface.d.ts +8 -0
- package/app/reports/interfaces/report-view-config.interface.d.ts +11 -0
- package/app/reports/interfaces/report-view-create.interface.d.ts +7 -0
- package/app/reports/interfaces/report-view-deleted.interface.d.ts +4 -0
- package/app/reports/interfaces/report-view-dialog-data.interface.d.ts +7 -0
- package/app/reports/interfaces/report-view-dropped.interface.d.ts +5 -0
- package/app/reports/interfaces/report-view-menu-item.interface.d.ts +10 -0
- package/app/reports/interfaces/report-view-summary.interface.d.ts +11 -0
- package/app/reports/interfaces/report-view.interface.d.ts +7 -0
- package/app/reports/interfaces/report-viewer-feature.type.d.ts +1 -0
- package/app/reports/interfaces/report-views.interface.d.ts +7 -0
- package/app/reports/interfaces/report.interface.d.ts +27 -16
- package/app/reports/interfaces/tile-load-result.interface.d.ts +4 -0
- package/app/reports/mark-click.d.ts +20 -0
- package/app/reports/option-builder.d.ts +12 -1
- package/app/reports/report-chat-viewer-state.d.ts +8 -0
- package/app/reports/report-date-presets.d.ts +2 -0
- package/app/reports/report-filter-items.d.ts +20 -21
- package/app/reports/report-tile.d.ts +2 -0
- package/app/reports/report-view-config.d.ts +34 -0
- package/app/reports/report-view-menu.d.ts +15 -0
- package/app/reports/report-viewer-features.d.ts +5 -0
- package/app/reports/services/report-filter-options.service.d.ts +26 -0
- package/app/reports/services/report-filter-state.service.d.ts +65 -11
- package/app/reports/services/report-view.service.d.ts +39 -0
- package/app/reports/tile-data-state.d.ts +7 -0
- package/app/reports/tile-loads.d.ts +4 -0
- package/app/reports/views/report/fs-ai-report.component.d.ts +10 -8
- package/app/reports/views/report/report.component.d.ts +6 -0
- package/esm2022/app/reports/anchor-at-point.mjs +49 -0
- package/esm2022/app/reports/canvas-landing-page.mjs +26 -0
- package/esm2022/app/reports/components/component-chart/component-chart.component.mjs +97 -5
- package/esm2022/app/reports/components/component-kpi/component-kpi.component.mjs +11 -4
- package/esm2022/app/reports/components/component-list/component-list.component.mjs +11 -5
- package/esm2022/app/reports/components/report-canvas/report-canvas.component.mjs +56 -40
- package/esm2022/app/reports/components/report-component/report-component.component.mjs +261 -65
- package/esm2022/app/reports/components/report-view-picker/report-view-picker.component.mjs +115 -0
- package/esm2022/app/reports/data/report.data.mjs +94 -14
- package/esm2022/app/reports/dialogs/component-settings/component-settings.component.mjs +106 -51
- package/esm2022/app/reports/dialogs/report-settings/report-settings.component.mjs +248 -104
- package/esm2022/app/reports/dialogs/report-view/report-view-dialog.component.mjs +52 -0
- package/esm2022/app/reports/drill-crumbs.mjs +73 -0
- package/esm2022/app/reports/export/report-export-collector.service.mjs +187 -117
- package/esm2022/app/reports/export/report-filter-lines.mjs +235 -0
- package/esm2022/app/reports/export/report-pdf.service.mjs +12 -7
- package/esm2022/app/reports/export/report-pptx.service.mjs +18 -14
- package/esm2022/app/reports/filter-settings-rules.mjs +290 -0
- package/esm2022/app/reports/format.mjs +2 -22
- package/esm2022/app/reports/interfaces/canvas-landing-input.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/component-data-applied.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/component-data-drill.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/filter-bar-placement.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/filter-component-toggle-state.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/filter-settings-option.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/filter-type-select-state.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chart-hit.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chat-viewer-cross-filter-field.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chat-viewer-cross-filter.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chat-viewer-detail.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chat-viewer-drill-step.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chat-viewer-drill.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chat-viewer-filter.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/report-chat-viewer-selection.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-chat-viewer-state.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/report-drill-crumb.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-drill-refusal.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-drill-step.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-export-line-kind.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-export-line.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-export-lines-input.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-export-snapshot.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-group-changes.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-line-context.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-line-form.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-match.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-option-pair.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-options-ask.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-options-list.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-options-request.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-options-stream.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-options.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-filter-skip.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-mark-action.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-mark-click.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-mark-context.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-mark-decision.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-mark-event.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-mark-point.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-temporary-state.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-tile-state.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view-config.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view-create.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view-deleted.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view-dialog-data.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view-dropped.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view-menu-item.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view-summary.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-view.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-viewer-feature.type.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-views.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/tile-load-result.interface.mjs +2 -0
- package/esm2022/app/reports/mark-click.mjs +193 -0
- package/esm2022/app/reports/option-builder.mjs +159 -15
- package/esm2022/app/reports/report-chat-viewer-state.mjs +34 -0
- package/esm2022/app/reports/report-date-presets.mjs +18 -0
- package/esm2022/app/reports/report-filter-items.mjs +263 -72
- package/esm2022/app/reports/report-tile.mjs +12 -0
- package/esm2022/app/reports/report-view-config.mjs +587 -0
- package/esm2022/app/reports/report-view-menu.mjs +119 -0
- package/esm2022/app/reports/report-viewer-features.mjs +42 -0
- package/esm2022/app/reports/services/report-filter-options.service.mjs +238 -0
- package/esm2022/app/reports/services/report-filter-state.service.mjs +668 -210
- package/esm2022/app/reports/services/report-view.service.mjs +218 -0
- package/esm2022/app/reports/tile-data-state.mjs +127 -0
- package/esm2022/app/reports/tile-loads.mjs +38 -0
- package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +194 -127
- package/esm2022/app/reports/views/report/report.component.mjs +112 -29
- package/esm2022/public_api.mjs +23 -1
- package/fesm2022/{firestitch-report-echarts-DBMOHmBF.mjs → firestitch-report-echarts-DHEH_K_q.mjs} +2 -2
- package/fesm2022/{firestitch-report-echarts-DBMOHmBF.mjs.map → firestitch-report-echarts-DHEH_K_q.mjs.map} +1 -1
- package/fesm2022/{firestitch-report-firestitch-report-CqbXT1gh.mjs → firestitch-report-firestitch-report-ZcHTnNKq.mjs} +8222 -4447
- package/fesm2022/firestitch-report-firestitch-report-ZcHTnNKq.mjs.map +1 -0
- package/fesm2022/firestitch-report.mjs +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +22 -0
- package/app/reports/report-url-state.d.ts +0 -19
- package/esm2022/app/reports/report-url-state.mjs +0 -189
- package/fesm2022/firestitch-report-firestitch-report-CqbXT1gh.mjs.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function anchorOffset(point: {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}, corner: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}, zoom: number): {
|
|
8
|
+
left: number;
|
|
9
|
+
top: number;
|
|
10
|
+
};
|
|
11
|
+
export declare function openAtPoint(anchor: HTMLElement, point: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
}, zoom: number, open: () => void): void;
|
|
@@ -1,15 +1,31 @@
|
|
|
1
|
-
import type { EChartsOption, ECharts } from 'echarts';
|
|
1
|
+
import type { ECElementEvent, EChartsOption, ECharts } from 'echarts';
|
|
2
2
|
import { ComponentData, ReportComponent } from '../../interfaces/report.interface';
|
|
3
|
+
import { ReportMarkAction } from '../../interfaces/report-mark-action.type';
|
|
4
|
+
import { ReportMarkClick } from '../../interfaces/report-mark-click.interface';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
export declare class ComponentChartComponent {
|
|
5
7
|
readonly component: import("@angular/core").InputSignal<ReportComponent>;
|
|
6
8
|
readonly data: import("@angular/core").InputSignal<ComponentData>;
|
|
9
|
+
readonly legendSelected: import("@angular/core").ModelSignal<Readonly<Record<string, boolean>>>;
|
|
10
|
+
readonly actions: import("@angular/core").InputSignal<readonly ReportMarkAction[]>;
|
|
11
|
+
readonly markClick: import("@angular/core").OutputEmitterRef<ReportMarkClick>;
|
|
12
|
+
readonly markMiss: import("@angular/core").OutputEmitterRef<void>;
|
|
7
13
|
readonly options: import("@angular/core").Signal<EChartsOption>;
|
|
8
14
|
private _chart;
|
|
15
|
+
private _markEvent;
|
|
9
16
|
private readonly _filterState;
|
|
17
|
+
private readonly _zone;
|
|
10
18
|
onChartInit(chart: ECharts): void;
|
|
19
|
+
onLegendSelectChanged(event: {
|
|
20
|
+
selected?: Record<string, boolean>;
|
|
21
|
+
} | null): void;
|
|
22
|
+
onChartClick(params: ECElementEvent): void;
|
|
11
23
|
resize(): void;
|
|
12
24
|
getDataURL(pixelRatio?: number): string | null;
|
|
25
|
+
private _onBandClick;
|
|
26
|
+
private _bandIndex;
|
|
27
|
+
private _seriesId;
|
|
28
|
+
private _emit;
|
|
13
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentChartComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ComponentChartComponent, "app-report-component-chart", never, { "component": { "alias": "component"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComponentChartComponent, "app-report-component-chart", never, { "component": { "alias": "component"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "legendSelected": { "alias": "legendSelected"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; }, { "legendSelected": "legendSelectedChange"; "markClick": "markClick"; "markMiss": "markMiss"; }, never, never, true, never>;
|
|
15
31
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ReportKpiTrend } from '../../enums/report-kpi-trend.enum';
|
|
2
2
|
import { ComponentData, ReportComponent } from '../../interfaces/report.interface';
|
|
3
|
+
import { ReportMarkClick } from '../../interfaces/report-mark-click.interface';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class ComponentKpiComponent {
|
|
5
6
|
readonly component: import("@angular/core").InputSignal<ReportComponent>;
|
|
6
7
|
readonly data: import("@angular/core").InputSignal<ComponentData>;
|
|
8
|
+
readonly markClick: import("@angular/core").OutputEmitterRef<ReportMarkClick>;
|
|
7
9
|
readonly ReportKpiTrend: typeof ReportKpiTrend;
|
|
8
10
|
readonly tokens: {
|
|
9
11
|
valueSize: string;
|
|
@@ -16,6 +18,7 @@ export declare class ComponentKpiComponent {
|
|
|
16
18
|
readonly view: import("@angular/core").Signal<import("../../kpi-card").KpiCardView>;
|
|
17
19
|
readonly hasNote: import("@angular/core").Signal<boolean>;
|
|
18
20
|
private readonly _filterState;
|
|
21
|
+
onValueClick(event: MouseEvent): void;
|
|
19
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentKpiComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ComponentKpiComponent, "app-report-component-kpi", never, { "component": { "alias": "component"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComponentKpiComponent, "app-report-component-kpi", never, { "component": { "alias": "component"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "markClick": "markClick"; }, never, never, true, never>;
|
|
21
24
|
}
|
|
@@ -46,6 +46,7 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
|
|
|
46
46
|
readonly masterMode: WritableSignal<boolean>;
|
|
47
47
|
groups: Map<number, ReportFilterGroup>;
|
|
48
48
|
readonly selectedComponentId: WritableSignal<number>;
|
|
49
|
+
readonly appliedVersion: import("@angular/core").Signal<number>;
|
|
49
50
|
readonly activePageComponents: import("@angular/core").Signal<ReportComponent[]>;
|
|
50
51
|
readonly masterComponents: import("@angular/core").Signal<ReportComponent[]>;
|
|
51
52
|
readonly pageTokens: import("@angular/core").Signal<TextTokenContext>;
|
|
@@ -59,6 +60,7 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
|
|
|
59
60
|
private _destroyRef;
|
|
60
61
|
private _fitted;
|
|
61
62
|
private _previousPageCount;
|
|
63
|
+
private _previousReportId;
|
|
62
64
|
private _emittedPageId;
|
|
63
65
|
private _report;
|
|
64
66
|
private _pageValueComponents;
|
|
@@ -104,6 +106,7 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
|
|
|
104
106
|
private _valueLayer;
|
|
105
107
|
private _watchValues;
|
|
106
108
|
private _reloadIfChanged;
|
|
109
|
+
private _requestMoved;
|
|
107
110
|
private _layerRequest;
|
|
108
111
|
private _shownValues;
|
|
109
112
|
private _loadValues;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { FilterConfig } from '@firestitch/filter';
|
|
3
|
+
import { FsMenuComponent } from '@firestitch/menu';
|
|
3
4
|
import { ComponentData, ComponentSettings, ReportComponent as ReportComponentModel, ReportFilterGroup } from '../../interfaces/report.interface';
|
|
5
|
+
import { ReportMarkAction } from '../../interfaces/report-mark-action.type';
|
|
6
|
+
import { ReportMarkClick } from '../../interfaces/report-mark-click.interface';
|
|
4
7
|
import { ComponentChartComponent } from '../component-chart/component-chart.component';
|
|
5
8
|
import { TextTokenContext } from '../../text';
|
|
6
9
|
import { CanvasSnapper } from '../report-canvas/report-canvas.component';
|
|
@@ -34,11 +37,26 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
|
|
|
34
37
|
readonly filterConfig: import("@angular/core").WritableSignal<FilterConfig>;
|
|
35
38
|
readonly data: import("@angular/core").WritableSignal<ComponentData>;
|
|
36
39
|
readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
40
|
+
readonly refreshing: import("@angular/core").WritableSignal<boolean>;
|
|
37
41
|
readonly error: import("@angular/core").WritableSignal<string>;
|
|
42
|
+
readonly legendSelected: import("@angular/core").WritableSignal<Readonly<Record<string, boolean>>>;
|
|
43
|
+
readonly listResetKey: import("@angular/core").Signal<number>;
|
|
44
|
+
readonly tileActions: import("@angular/core").Signal<ReportMarkAction[]>;
|
|
45
|
+
readonly markMenuActions: import("@angular/core").WritableSignal<ReportMarkAction[]>;
|
|
46
|
+
readonly markActionLabels: Record<ReportMarkAction, string>;
|
|
47
|
+
readonly drillCrumbs: import("@angular/core").Signal<string[]>;
|
|
48
|
+
readonly drillSeparator = " \u203A ";
|
|
49
|
+
readonly emptyMessage: import("@angular/core").Signal<string>;
|
|
50
|
+
markMenu: FsMenuComponent;
|
|
51
|
+
markAnchor: ElementRef<HTMLElement>;
|
|
38
52
|
private readonly _text;
|
|
39
53
|
private _refresh$;
|
|
54
|
+
private readonly _headerVersion;
|
|
55
|
+
private _shown;
|
|
56
|
+
private readonly _headerValues;
|
|
40
57
|
private _reportData;
|
|
41
58
|
private _filterState;
|
|
59
|
+
private _filterOptions;
|
|
42
60
|
private _process;
|
|
43
61
|
private _message;
|
|
44
62
|
private _prompt;
|
|
@@ -47,6 +65,10 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
|
|
|
47
65
|
private _destroyRef;
|
|
48
66
|
private _zone;
|
|
49
67
|
private _host;
|
|
68
|
+
private readonly _offeredFeatures;
|
|
69
|
+
private _touchedMark;
|
|
70
|
+
private _menuClick;
|
|
71
|
+
private _grainMoved;
|
|
50
72
|
ngOnInit(): void;
|
|
51
73
|
ngOnChanges(changes: SimpleChanges): void;
|
|
52
74
|
get filterKey(): string;
|
|
@@ -63,12 +85,19 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
|
|
|
63
85
|
chooseColumns(): void;
|
|
64
86
|
applySettings(settings: ComponentSettings): void;
|
|
65
87
|
exportCsv(): void;
|
|
88
|
+
onMarkClick(click: ReportMarkClick): void;
|
|
89
|
+
onMarkMiss(): void;
|
|
90
|
+
runMarkAction(action: ReportMarkAction): void;
|
|
91
|
+
drillTo(depth: number): void;
|
|
92
|
+
drillUp(): void;
|
|
66
93
|
stopCanvasPan(event: Event): void;
|
|
67
94
|
onComponentPointerDown(event: PointerEvent): void;
|
|
68
95
|
onDragStart(event: PointerEvent): void;
|
|
69
96
|
onResizeStart(event: PointerEvent, handle: Handle): void;
|
|
70
97
|
private _setTextHtml;
|
|
71
98
|
private _buildFilterConfig;
|
|
99
|
+
private _rebuildHeaderOnNewState;
|
|
100
|
+
private _showsOtherValue;
|
|
72
101
|
private _origin;
|
|
73
102
|
private _track;
|
|
74
103
|
private _emitGeometry;
|
|
@@ -79,6 +108,11 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
|
|
|
79
108
|
private _round;
|
|
80
109
|
private _applyGeometry;
|
|
81
110
|
private _load;
|
|
111
|
+
private _loaded;
|
|
112
|
+
private _adoptDrill;
|
|
113
|
+
private _runMarkAction;
|
|
114
|
+
private _drillDown;
|
|
115
|
+
private _openMarkMenu;
|
|
82
116
|
static ɵfac: i0.ɵɵFactoryDeclaration<ReportComponentComponent, never>;
|
|
83
117
|
static ɵcmp: i0.ɵɵComponentDeclaration<ReportComponentComponent, "app-report-component", never, { "reportId": { "alias": "reportId"; "required": false; }; "component": { "alias": "component"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "editMode": { "alias": "editMode"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "snapper": { "alias": "snapper"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "tokens": { "alias": "tokens"; "required": false; "isSignal": true; }; "valueKeysElsewhere": { "alias": "valueKeysElsewhere"; "required": false; "isSignal": true; }; }, { "selectComponent": "selectComponent"; "positionChanged": "positionChanged"; "openSettings": "openSettings"; "removed": "removed"; "valueSettings": "valueSettings"; "textSaved": "textSaved"; "valuesRemoved": "valuesRemoved"; }, never, never, true, never>;
|
|
84
118
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReportViewMenuItem } from '../../interfaces/report-view-menu-item.interface';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ReportViewPickerComponent {
|
|
4
|
+
readonly label: import("@angular/core").Signal<string>;
|
|
5
|
+
readonly tooltip: import("@angular/core").Signal<string>;
|
|
6
|
+
readonly items: import("@angular/core").Signal<ReportViewMenuItem[]>;
|
|
7
|
+
readonly dividerShown: () => boolean;
|
|
8
|
+
private _menu;
|
|
9
|
+
private _views;
|
|
10
|
+
private _filterState;
|
|
11
|
+
private _dialog;
|
|
12
|
+
private _prompt;
|
|
13
|
+
private _destroyRef;
|
|
14
|
+
run(item: ReportViewMenuItem): void;
|
|
15
|
+
private _name;
|
|
16
|
+
private _delete;
|
|
17
|
+
private _subscribe;
|
|
18
|
+
private _hasCrossFilter;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ReportViewPickerComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ReportViewPickerComponent, "app-report-view-picker", never, {}, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { RequestConfig } from '@firestitch/api';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import {
|
|
3
|
+
import { ReportExportLine } from '../interfaces/report-export-line.interface';
|
|
4
|
+
import { ReportFilterGroupChanges } from '../interfaces/report-filter-group-changes.interface';
|
|
5
|
+
import { ReportFilterOptionsRequest } from '../interfaces/report-filter-options-request.interface';
|
|
6
|
+
import { ReportFilterOptions } from '../interfaces/report-filter-options.interface';
|
|
7
|
+
import { ReportViewCreate } from '../interfaces/report-view-create.interface';
|
|
8
|
+
import { ReportViewDeleted } from '../interfaces/report-view-deleted.interface';
|
|
9
|
+
import { ReportView } from '../interfaces/report-view.interface';
|
|
10
|
+
import { ReportViews } from '../interfaces/report-views.interface';
|
|
11
|
+
import { ChartGranularity, ComponentDataState, ComponentExportResponse, ReportComponentSql, ReportLocales, ReportPageValue, ReportTree, ResolvedFilterValue } from '../interfaces/report.interface';
|
|
4
12
|
import * as i0 from "@angular/core";
|
|
5
13
|
export declare class ReportData<T = any> {
|
|
6
14
|
private _api;
|
|
@@ -48,9 +56,9 @@ export declare class ReportData<T = any> {
|
|
|
48
56
|
h: number;
|
|
49
57
|
}>)[], config?: RequestConfig): Observable<T>;
|
|
50
58
|
componentData(reportId: number, componentId: number, filters?: ResolvedFilterValue[], state?: ComponentDataState, isExport?: boolean, config?: RequestConfig): Observable<T>;
|
|
51
|
-
pageValues(reportId: number, pageId: number, filters?: ResolvedFilterValue[], isExport?: boolean, config?: RequestConfig): Observable<ReportPageValue[]>;
|
|
59
|
+
pageValues(reportId: number, pageId: number, filters?: ResolvedFilterValue[], isExport?: boolean, config?: RequestConfig, matchAnyGroupIds?: number[]): Observable<ReportPageValue[]>;
|
|
52
60
|
exportComponent(reportId: number, componentId: number, filters?: ResolvedFilterValue[], state?: ComponentDataState, config?: RequestConfig): Observable<ComponentExportResponse>;
|
|
53
|
-
exportReport(reportId: number, filters?: ResolvedFilterValue[], pageId?: number | null, frequency?: ChartGranularity | null,
|
|
61
|
+
exportReport(reportId: number, filters?: ResolvedFilterValue[], pageId?: number | null, frequency?: ChartGranularity | null, filterLines?: ReportExportLine[], states?: Record<number, ComponentDataState>, viewId?: number | null, viewChanged?: boolean, config?: RequestConfig): Observable<T>;
|
|
54
62
|
filterOptions(reportId: number, filterId: number, config?: RequestConfig): Observable<T>;
|
|
55
63
|
componentSql(reportId: number, componentId: number, config?: RequestConfig): Observable<ReportComponentSql>;
|
|
56
64
|
componentColumns(reportId: number, componentId: number, config?: RequestConfig): Observable<T>;
|
|
@@ -80,10 +88,15 @@ export declare class ReportData<T = any> {
|
|
|
80
88
|
saveSettings(settings: {
|
|
81
89
|
semanticBuildConcurrency: number;
|
|
82
90
|
}, config?: RequestConfig): Observable<T>;
|
|
83
|
-
updateFilterGroup(reportId: number, groupId: number, changes:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
91
|
+
updateFilterGroup(reportId: number, groupId: number, changes: ReportFilterGroupChanges, config?: RequestConfig): Observable<T>;
|
|
92
|
+
filterOptionsNarrowed(reportId: number, filterId: number, body: ReportFilterOptionsRequest, config?: RequestConfig): Observable<ReportFilterOptions>;
|
|
93
|
+
views(reportId: number, config?: RequestConfig): Observable<ReportViews>;
|
|
94
|
+
view(reportId: number, reportViewId: number, config?: RequestConfig): Observable<ReportView>;
|
|
95
|
+
createView(reportId: number, view: ReportViewCreate, config?: RequestConfig): Observable<ReportView>;
|
|
96
|
+
updateView(reportId: number, reportViewId: number, changes: Partial<Pick<ReportViewCreate, 'name' | 'config'>>, config?: RequestConfig): Observable<ReportView>;
|
|
97
|
+
deleteView(reportId: number, reportViewId: number, config?: RequestConfig): Observable<ReportViewDeleted>;
|
|
98
|
+
shareView(reportId: number, reportViewId: number, shared: boolean, config?: RequestConfig): Observable<ReportView>;
|
|
99
|
+
setViewDefault(reportId: number, reportViewId: number, personalDefault: boolean, config?: RequestConfig): Observable<ReportView>;
|
|
87
100
|
static ɵfac: i0.ɵɵFactoryDeclaration<ReportData<any>, never>;
|
|
88
101
|
static ɵprov: i0.ɵɵInjectableDeclaration<ReportData<any>>;
|
|
89
102
|
}
|
|
@@ -3,6 +3,10 @@ import { AbstractControl } from '@angular/forms';
|
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { ReportChangePolarity } from '../../enums/report-change-polarity.enum';
|
|
5
5
|
import { ChartGranularity, ComponentSettings, Report, ReportComponent, ReportFilterType } from '../../interfaces/report.interface';
|
|
6
|
+
import { FilterBarPlacement } from '../../interfaces/filter-bar-placement.type';
|
|
7
|
+
import { FilterComponentToggleState } from '../../interfaces/filter-component-toggle-state.interface';
|
|
8
|
+
import { FilterSettingsOption } from '../../interfaces/filter-settings-option.interface';
|
|
9
|
+
import { FilterTypeSelectState } from '../../interfaces/filter-type-select-state.interface';
|
|
6
10
|
import * as i0 from "@angular/core";
|
|
7
11
|
export interface ComponentSettingsResult {
|
|
8
12
|
settings?: ComponentSettings;
|
|
@@ -16,8 +20,11 @@ interface FilterRow {
|
|
|
16
20
|
column: string;
|
|
17
21
|
type: ReportFilterType;
|
|
18
22
|
label: string;
|
|
19
|
-
|
|
23
|
+
placement: FilterBarPlacement;
|
|
20
24
|
component: boolean;
|
|
25
|
+
typeSelect: FilterTypeSelectState;
|
|
26
|
+
placementOptions: FilterSettingsOption<FilterBarPlacement>[];
|
|
27
|
+
componentToggle: FilterComponentToggleState;
|
|
21
28
|
}
|
|
22
29
|
export declare class ComponentSettingsComponent implements OnInit {
|
|
23
30
|
readonly filtersChanged: EventEmitter<void>;
|
|
@@ -58,9 +65,11 @@ export declare class ComponentSettingsComponent implements OnInit {
|
|
|
58
65
|
readonly sqlError: import("@angular/core").WritableSignal<string>;
|
|
59
66
|
readonly rows: import("@angular/core").WritableSignal<FilterRow[]>;
|
|
60
67
|
readonly columnsError: import("@angular/core").WritableSignal<string>;
|
|
68
|
+
readonly typeOptions: FilterSettingsOption<ReportFilterType>[];
|
|
61
69
|
private _filterableColumns;
|
|
62
70
|
private _filters;
|
|
63
71
|
private _groupsById;
|
|
72
|
+
private _pickedTypes;
|
|
64
73
|
private readonly _typeLabels;
|
|
65
74
|
private readonly _data;
|
|
66
75
|
private readonly _dialogRef;
|
|
@@ -73,8 +82,13 @@ export declare class ComponentSettingsComponent implements OnInit {
|
|
|
73
82
|
delete(): void;
|
|
74
83
|
validateTarget: (control: AbstractControl) => void;
|
|
75
84
|
save: () => Observable<ComponentSettingsResponse>;
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
setType(row: FilterRow, type: ReportFilterType): void;
|
|
86
|
+
setPlacement(row: FilterRow, placement: FilterBarPlacement): void;
|
|
87
|
+
setComponent(row: FilterRow, component: boolean): void;
|
|
88
|
+
private _applyLevel;
|
|
89
|
+
private _applyValueLevel;
|
|
90
|
+
private _addFilter;
|
|
91
|
+
private _patchRow;
|
|
78
92
|
private _formulaLine;
|
|
79
93
|
private _dependentsNote;
|
|
80
94
|
private _layerValues;
|
|
@@ -88,6 +102,7 @@ export declare class ComponentSettingsComponent implements OnInit {
|
|
|
88
102
|
private _padding;
|
|
89
103
|
private _run;
|
|
90
104
|
private _rebuildRows;
|
|
105
|
+
private _onPage;
|
|
91
106
|
private _afterMutation;
|
|
92
107
|
private _mutationError;
|
|
93
108
|
private _seedFilters;
|
|
@@ -1,22 +1,37 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
+
import { AbstractControl } from '@angular/forms';
|
|
2
3
|
import { Observable } from 'rxjs';
|
|
3
4
|
import { ReportFilterGroup, ReportLocales } from '../../interfaces/report.interface';
|
|
4
|
-
import {
|
|
5
|
+
import { FilterSettingsOption } from '../../interfaces/filter-settings-option.interface';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export interface ReportSettingsResult {
|
|
7
8
|
action: 'saved' | 'deleted';
|
|
8
9
|
}
|
|
10
|
+
interface FilterFieldRefusal {
|
|
11
|
+
value: string;
|
|
12
|
+
message: string;
|
|
13
|
+
}
|
|
9
14
|
interface FilterDefaultRow {
|
|
10
15
|
group: ReportFilterGroup;
|
|
16
|
+
heading: string;
|
|
11
17
|
label: string;
|
|
18
|
+
name: string;
|
|
19
|
+
showName: boolean;
|
|
20
|
+
labelRefusal: FilterFieldRefusal | null;
|
|
21
|
+
nameRefusal: FilterFieldRefusal | null;
|
|
22
|
+
period: string;
|
|
23
|
+
periodOptions: FilterSettingsOption[];
|
|
12
24
|
start: Date | null;
|
|
13
25
|
end: Date | null;
|
|
14
|
-
relative: string | null;
|
|
15
26
|
values: {
|
|
16
27
|
name: string;
|
|
17
28
|
value: unknown;
|
|
18
29
|
}[];
|
|
30
|
+
exclude: boolean;
|
|
31
|
+
showExclude: boolean;
|
|
19
32
|
value: string;
|
|
33
|
+
min: number | string | null;
|
|
34
|
+
max: number | string | null;
|
|
20
35
|
fetch: (keyword?: string) => Observable<{
|
|
21
36
|
name: string;
|
|
22
37
|
value: unknown;
|
|
@@ -27,7 +42,8 @@ interface LocaleSelectOption {
|
|
|
27
42
|
label: string;
|
|
28
43
|
}
|
|
29
44
|
export declare class ReportSettingsComponent implements OnInit {
|
|
30
|
-
selectedTab: string
|
|
45
|
+
readonly selectedTab: import("@angular/core").WritableSignal<string>;
|
|
46
|
+
readonly wrote: import("@angular/core").WritableSignal<boolean>;
|
|
31
47
|
name: string;
|
|
32
48
|
pageWidth: number | string;
|
|
33
49
|
pageHeight: number | string;
|
|
@@ -46,13 +62,26 @@ export declare class ReportSettingsComponent implements OnInit {
|
|
|
46
62
|
readonly currencyOptions: import("@angular/core").Signal<LocaleSelectOption[]>;
|
|
47
63
|
readonly formatExample: import("@angular/core").Signal<string>;
|
|
48
64
|
readonly filterRows: import("@angular/core").WritableSignal<FilterDefaultRow[]>;
|
|
49
|
-
readonly
|
|
65
|
+
readonly fixedDatesPeriod = "fixed";
|
|
66
|
+
readonly boundScale = 6;
|
|
67
|
+
readonly namePattern: RegExp;
|
|
68
|
+
readonly namePatternMessage = "A name starts with a letter and holds only letters and digits.";
|
|
69
|
+
readonly nameMaxLength = 50;
|
|
70
|
+
readonly labelMaxLength = 200;
|
|
71
|
+
readonly labelInputId: typeof labelInputId;
|
|
72
|
+
readonly nameInputId: typeof nameInputId;
|
|
73
|
+
readonly minBoundValidator: (control: AbstractControl, max: unknown) => void;
|
|
74
|
+
readonly maxBoundValidator: (control: AbstractControl, min: unknown) => void;
|
|
75
|
+
readonly refusalValidator: (control: AbstractControl, refusal: FilterFieldRefusal | null) => void;
|
|
50
76
|
private readonly _data;
|
|
51
77
|
private readonly _dialogRef;
|
|
52
78
|
private readonly _reportData;
|
|
53
79
|
private readonly _message;
|
|
54
80
|
private readonly _prompt;
|
|
55
81
|
private readonly _destroyRef;
|
|
82
|
+
private readonly _injector;
|
|
83
|
+
private readonly _document;
|
|
84
|
+
private _refusedInputId;
|
|
56
85
|
private readonly _serverHasLocale;
|
|
57
86
|
private readonly _localesSettled;
|
|
58
87
|
private readonly _filtersReady;
|
|
@@ -60,18 +89,26 @@ export declare class ReportSettingsComponent implements OnInit {
|
|
|
60
89
|
private readonly _defaultCurrency;
|
|
61
90
|
private readonly _appliedCurrency;
|
|
62
91
|
ngOnInit(): void;
|
|
92
|
+
patchRow(row: FilterDefaultRow, patch: Partial<FilterDefaultRow>): void;
|
|
93
|
+
focusRefusal(): void;
|
|
63
94
|
delete(): void;
|
|
64
|
-
save: () => Observable<
|
|
65
|
-
clearRelative(row: FilterDefaultRow): void;
|
|
95
|
+
save: () => Observable<any[]>;
|
|
66
96
|
private _pageDimension;
|
|
67
97
|
private _timezoneSetting;
|
|
68
98
|
private _storedOption;
|
|
99
|
+
private _groupChanges;
|
|
100
|
+
private _namesOrLabels;
|
|
101
|
+
private _renameOrder;
|
|
102
|
+
private _saveNamed;
|
|
103
|
+
private _showRefusal;
|
|
104
|
+
private _throwBoundsError;
|
|
69
105
|
private _buildFilterRows;
|
|
106
|
+
private _filterRow;
|
|
70
107
|
private _publishFilterRows;
|
|
71
108
|
private _rowDefault;
|
|
72
|
-
private _defaultChanged;
|
|
73
|
-
private _normalize;
|
|
74
109
|
static ɵfac: i0.ɵɵFactoryDeclaration<ReportSettingsComponent, never>;
|
|
75
110
|
static ɵcmp: i0.ɵɵComponentDeclaration<ReportSettingsComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
76
111
|
}
|
|
112
|
+
declare function labelInputId(groupId: number): string;
|
|
113
|
+
declare function nameInputId(groupId: number): string;
|
|
77
114
|
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AbstractControl } from '@angular/forms';
|
|
2
|
+
import { ReportViewDialogData } from '../../interfaces/report-view-dialog-data.interface';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ReportViewDialogComponent {
|
|
5
|
+
readonly data: ReportViewDialogData;
|
|
6
|
+
readonly name: import("@angular/core").WritableSignal<string>;
|
|
7
|
+
readonly nameMaxLength = 100;
|
|
8
|
+
private _dialogRef;
|
|
9
|
+
validateName: (control: AbstractControl) => void;
|
|
10
|
+
save: () => import("rxjs").Observable<unknown>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ReportViewDialogComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ReportViewDialogComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ComponentDataDrill } from './interfaces/component-data-drill.interface';
|
|
2
|
+
import { ReportDrillCrumb } from './interfaces/report-drill-crumb.interface';
|
|
3
|
+
import { ReportDrillStep } from './interfaces/report-drill-step.interface';
|
|
4
|
+
import { ReportFormatContext, ReportLocaleTag } from './interfaces/report.interface';
|
|
5
|
+
export declare const DRILL_CRUMB_SEPARATOR = " \u203A ";
|
|
6
|
+
export declare const DRILL_RESET_MESSAGE = "The drill was reset: this chart changed.";
|
|
7
|
+
export declare function drillCrumbLabels(drill: readonly (ReportDrillStep | ReportDrillCrumb)[], formatContext: Pick<ReportFormatContext, 'locale'>): string[];
|
|
8
|
+
export declare function crumbedTitle(title: string | null | undefined, crumbs?: readonly string[]): string;
|
|
9
|
+
export declare function drillStepLabel(step: ReportDrillStep | ReportDrillCrumb, locale: ReportLocaleTag): string;
|
|
10
|
+
export declare function drillOutsideMessage(drill: ComponentDataDrill | null | undefined, formatContext: Pick<ReportFormatContext, 'locale'>): string | null;
|
|
11
|
+
export declare function adoptedDrillPath(drill: ComponentDataDrill | null | undefined): ReportDrillStep[];
|
|
12
|
+
export declare function drillResetNoted(drill: ComponentDataDrill | null | undefined, grainMoved: boolean): boolean;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
+
import { ReportExportLine } from '../interfaces/report-export-line.interface';
|
|
3
|
+
import { ReportExportSnapshot } from '../interfaces/report-export-snapshot.interface';
|
|
2
4
|
import { ComponentData, ListColumn, Report, ReportComponent, ReportFormatContext, ReportLocaleTag, ReportPage } from '../interfaces/report.interface';
|
|
3
5
|
import { KpiCardView } from '../kpi-card';
|
|
4
6
|
import { ListOutputColumn } from '../list-config';
|
|
@@ -9,6 +11,7 @@ export interface CollectedComponent {
|
|
|
9
11
|
data: ComponentData | null;
|
|
10
12
|
search?: string;
|
|
11
13
|
hiddenColumns: string[];
|
|
14
|
+
crumbs?: string[];
|
|
12
15
|
}
|
|
13
16
|
export interface CollectedPage {
|
|
14
17
|
page: ReportPage;
|
|
@@ -58,7 +61,7 @@ export interface KpiExportParts {
|
|
|
58
61
|
}
|
|
59
62
|
export declare const HEADER_FOOTER_NAME = "Header & footer";
|
|
60
63
|
export declare function emptyLabel(item: CollectedComponent): string;
|
|
61
|
-
export declare function exportTitle(component: ReportComponent, search?: string | null): string;
|
|
64
|
+
export declare function exportTitle(component: ReportComponent, search?: string | null, crumbs?: readonly string[] | null): string;
|
|
62
65
|
export declare function isFailed(item: CollectedComponent): boolean;
|
|
63
66
|
export declare function textOverflow(component: ReportComponent, page: string, tokens: TextTokenContext): TextOverflow;
|
|
64
67
|
export declare function coverLines(collected: CollectedReport): string[];
|
|
@@ -76,20 +79,26 @@ export declare function scaledKpiHeights(heights: KpiExportHeights, scale: numbe
|
|
|
76
79
|
export declare function kpiExportHeight(view: KpiCardView, parts: KpiExportParts, heights: KpiExportHeights): number;
|
|
77
80
|
export declare function moreRowsNotice(remaining: number): string;
|
|
78
81
|
export declare function failedPageNames(collected: CollectedReport): string[];
|
|
82
|
+
export declare function coverFilterLines(snapshot: ReportExportSnapshot, lines: readonly ReportExportLine[], pages: readonly Pick<CollectedPage, 'components'>[]): string[];
|
|
83
|
+
export declare function isExportSlot(component: ReportComponent): boolean;
|
|
79
84
|
export declare class ReportExportCollectorService {
|
|
80
85
|
private _reportData;
|
|
81
86
|
private _filterState;
|
|
87
|
+
private _filterOptions;
|
|
88
|
+
private _views;
|
|
82
89
|
collect(report: Report, listRows: number): Observable<CollectedReport>;
|
|
83
|
-
|
|
90
|
+
snapshot(report: Report): ReportExportSnapshot;
|
|
91
|
+
filterLines(report: Report, snapshot: ReportExportSnapshot, pageId?: number | null): Observable<ReportExportLine[]>;
|
|
84
92
|
private _jobs;
|
|
85
93
|
private _valuesJobs;
|
|
86
94
|
private _runJob;
|
|
87
95
|
private _componentData;
|
|
96
|
+
private _collected;
|
|
97
|
+
private _groupValues;
|
|
88
98
|
private _pageValues;
|
|
89
99
|
private _file;
|
|
90
100
|
private _contextLines;
|
|
91
|
-
private
|
|
92
|
-
private _date;
|
|
101
|
+
private _pickNames;
|
|
93
102
|
static ɵfac: i0.ɵɵFactoryDeclaration<ReportExportCollectorService, never>;
|
|
94
103
|
static ɵprov: i0.ɵɵInjectableDeclaration<ReportExportCollectorService>;
|
|
95
104
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { ReportDrillStep } from '../interfaces/report-drill-step.interface';
|
|
3
|
+
import { ReportExportLine } from '../interfaces/report-export-line.interface';
|
|
4
|
+
import { ReportExportLinesInput } from '../interfaces/report-export-lines-input.interface';
|
|
5
|
+
import { ReportFilterLineContext } from '../interfaces/report-filter-line-context.interface';
|
|
6
|
+
import { ReportFilterLineForm } from '../interfaces/report-filter-line-form.type';
|
|
7
|
+
import { ReportFilterMatch } from '../interfaces/report-filter-match.type';
|
|
8
|
+
import { ReportViewSummary } from '../interfaces/report-view-summary.interface';
|
|
9
|
+
import { FilterGroupValue, Report, ReportComponent, ReportFilterGroup, ReportFormatContext } from '../interfaces/report.interface';
|
|
10
|
+
export declare const MATCH_ANY_CHIP = "Match: any filter";
|
|
11
|
+
export declare const MATCH_ANY_LINE = "Filters in the report bar: match any";
|
|
12
|
+
export declare const MATCH_ALL_CHIP = "Match: all filters";
|
|
13
|
+
export declare function filterLineText(group: Pick<ReportFilterGroup, 'label' | 'level'>, value: FilterGroupValue | null | undefined, context: ReportFilterLineContext, form: ReportFilterLineForm): string | null;
|
|
14
|
+
export declare function matchLineText(match: ReportFilterMatch | null | undefined, form: ReportFilterLineForm): string | null;
|
|
15
|
+
export declare function drillLineText(component: Pick<ReportComponent, 'title'>, path: readonly ReportDrillStep[], formatContext: Pick<ReportFormatContext, 'locale'>): string;
|
|
16
|
+
export declare function viewLineText(view: Pick<ReportViewSummary, 'name' | 'shared'> | null | undefined, changed: boolean): string | null;
|
|
17
|
+
export declare function exportLines(input: ReportExportLinesInput): Observable<ReportExportLine[]>;
|
|
18
|
+
export declare function exportGroups(report: Report, pageId: number | null): ReportFilterGroup[];
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FilterBarPlacement } from './interfaces/filter-bar-placement.type';
|
|
2
|
+
import { FilterComponentToggleState } from './interfaces/filter-component-toggle-state.interface';
|
|
3
|
+
import { FilterSettingsOption } from './interfaces/filter-settings-option.interface';
|
|
4
|
+
import { FilterTypeSelectState } from './interfaces/filter-type-select-state.interface';
|
|
5
|
+
import { ReportViewerFeature } from './interfaces/report-viewer-feature.type';
|
|
6
|
+
import { FilterGroupDefault, ReportFilterGroup, ReportFilterLevel, ReportFilterType, ReportPage, ReportRelativeRange } from './interfaces/report.interface';
|
|
7
|
+
export declare const FILTER_TYPE_OPTIONS: FilterSettingsOption<ReportFilterType>[];
|
|
8
|
+
export declare const TYPE_LOCKED_TOOLTIP = "Remove the filter to change its type.";
|
|
9
|
+
export declare const PAGE_FILTER_TOOLTIP = "A page filter shows in the page bar only.";
|
|
10
|
+
export declare const COMPONENT_TOGGLE_TOOLTIP = "Show on this component";
|
|
11
|
+
export declare const FIXED_DATES_PERIOD = "fixed";
|
|
12
|
+
export declare const DEFAULT_BOUND_SCALE = 6;
|
|
13
|
+
export declare const FILTER_NAME_PATTERN: RegExp;
|
|
14
|
+
export declare const FILTER_NAME_PATTERN_MESSAGE = "A name starts with a letter and holds only letters and digits.";
|
|
15
|
+
export declare const FILTER_NAME_MAX_LENGTH = 50;
|
|
16
|
+
export declare const FILTER_LABEL_MAX_LENGTH = 200;
|
|
17
|
+
export declare function parseDefaultBound(raw: unknown): number | null;
|
|
18
|
+
export declare function boundsError(min: number | null, max: number | null): string | null;
|
|
19
|
+
export declare function typeSelectState(types: ReportFilterType[] | null | undefined, hasFilterOnThisComponent: boolean, features: ReportViewerFeature[] | null | undefined): FilterTypeSelectState;
|
|
20
|
+
export declare function filterLevelChoices(features: ReportViewerFeature[] | null | undefined, onPage: boolean): ReportFilterLevel[];
|
|
21
|
+
export declare function barPlacementOptions(levelChoices: ReportFilterLevel[], current?: FilterBarPlacement): FilterSettingsOption<FilterBarPlacement>[];
|
|
22
|
+
export declare function valuePlacementOptions(levelChoices: ReportFilterLevel[], current: ReportFilterLevel | null | undefined): FilterSettingsOption<FilterBarPlacement>[];
|
|
23
|
+
export declare function valueFilterLevel(placement: FilterBarPlacement, current: ReportFilterLevel | null | undefined): ReportFilterLevel | null;
|
|
24
|
+
export declare function barPlacement(level: ReportFilterLevel | null | undefined): FilterBarPlacement;
|
|
25
|
+
export declare function shownOnComponent(level: ReportFilterLevel | null | undefined): boolean;
|
|
26
|
+
export declare function filterLevel(placement: FilterBarPlacement, component: boolean): ReportFilterLevel | null;
|
|
27
|
+
export declare function componentToggleState(placement: FilterBarPlacement): FilterComponentToggleState;
|
|
28
|
+
export declare function defaultRowGroups(groups: ReportFilterGroup[] | null | undefined): ReportFilterGroup[];
|
|
29
|
+
export declare function defaultRowLabel(group: ReportFilterGroup, pages: ReportPage[] | null | undefined): string;
|
|
30
|
+
export declare function defaultPeriodOptions(labels: (relative: ReportRelativeRange) => string, stored?: string | null): FilterSettingsOption[];
|
|
31
|
+
export declare function defaultPeriod(stored: FilterGroupDefault | null | undefined): string;
|
|
32
|
+
export declare function dateRangeDefault(period: string, start: string | null, end: string | null): FilterGroupDefault | null;
|
|
33
|
+
export declare function selectDefault(values: unknown[], exclude: boolean): FilterGroupDefault | null;
|
|
34
|
+
export declare function numberRangeDefault(rawMin: unknown, rawMax: unknown): FilterGroupDefault | null;
|
|
35
|
+
export declare function showExcludeToggle(group: ReportFilterGroup, features: ReportViewerFeature[] | null | undefined): boolean;
|
|
36
|
+
export declare function normalizeDefault(value: FilterGroupDefault | null | undefined): FilterGroupDefault | null;
|
|
37
|
+
export declare function defaultChanged(stored: FilterGroupDefault | null | undefined, draft: FilterGroupDefault | null | undefined): boolean;
|
package/app/reports/format.d.ts
CHANGED
|
@@ -69,5 +69,4 @@ export declare function comparisonNoteText(code: ComparisonNoteCode, comparison?
|
|
|
69
69
|
export declare function windowText(meta: WindowMeta, locale: ReportLocaleTag, granularity?: ChartGranularity | null): string;
|
|
70
70
|
export declare function windowNoteText(code: WindowNoteCode, meta: WindowMeta, locale: ReportLocaleTag, granularity?: ChartGranularity | null): string;
|
|
71
71
|
export declare function kpiNoteText(code: KpiNoteCode, against?: ComparisonAgainst | null): string;
|
|
72
|
-
export declare function getTimezoneLabel(timezone: string): string;
|
|
73
72
|
export declare function getZonedNow(timezone: string): Date;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReportFilterSkip } from './report-filter-skip.type';
|
|
2
|
+
export interface ComponentDataApplied {
|
|
3
|
+
filterIds: number[];
|
|
4
|
+
skipped?: {
|
|
5
|
+
filterId: number;
|
|
6
|
+
reason: ReportFilterSkip;
|
|
7
|
+
}[];
|
|
8
|
+
matchAny?: {
|
|
9
|
+
state: 'applied' | 'partial' | 'none';
|
|
10
|
+
missingGroupIds: number[];
|
|
11
|
+
} | null;
|
|
12
|
+
crossFilters: unknown[];
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReportDrillCrumb } from './report-drill-crumb.interface';
|
|
2
|
+
import { ReportDrillRefusal } from './report-drill-refusal.type';
|
|
3
|
+
import { ChartGranularity } from './report.interface';
|
|
4
|
+
export interface ComponentDataDrill {
|
|
5
|
+
axis: string;
|
|
6
|
+
hierarchy: null;
|
|
7
|
+
top: ChartGranularity;
|
|
8
|
+
level: ChartGranularity;
|
|
9
|
+
levelLabel: string;
|
|
10
|
+
next: {
|
|
11
|
+
level: ChartGranularity;
|
|
12
|
+
label: string;
|
|
13
|
+
} | null;
|
|
14
|
+
path: ReportDrillCrumb[];
|
|
15
|
+
window: {
|
|
16
|
+
start: string;
|
|
17
|
+
end: string;
|
|
18
|
+
} | null;
|
|
19
|
+
outsideWindow: boolean;
|
|
20
|
+
dropped: number;
|
|
21
|
+
refusal: ReportDrillRefusal | null;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type FilterBarPlacement = 'off' | 'every' | 'page';
|