@firestitch/report 18.9.0 → 18.10.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 (190) hide show
  1. package/app/reports/anchor-at-point.d.ts +14 -0
  2. package/app/reports/canvas-landing-page.d.ts +2 -0
  3. package/app/reports/components/component-chart/component-chart.component.d.ts +18 -2
  4. package/app/reports/components/component-kpi/component-kpi.component.d.ts +4 -1
  5. package/app/reports/components/report-canvas/report-canvas.component.d.ts +3 -0
  6. package/app/reports/components/report-component/report-component.component.d.ts +35 -1
  7. package/app/reports/components/report-view-picker/report-view-picker.component.d.ts +21 -0
  8. package/app/reports/data/report.data.d.ts +17 -2
  9. package/app/reports/dialogs/component-settings/component-settings.component.d.ts +18 -3
  10. package/app/reports/dialogs/report-settings/report-settings.component.d.ts +15 -6
  11. package/app/reports/dialogs/report-view/report-view-dialog.component.d.ts +13 -0
  12. package/app/reports/drill-crumbs.d.ts +12 -0
  13. package/app/reports/export/report-export-collector.service.d.ts +13 -4
  14. package/app/reports/export/report-filter-lines.d.ts +18 -0
  15. package/app/reports/filter-settings-rules.d.ts +33 -0
  16. package/app/reports/format.d.ts +0 -1
  17. package/app/reports/interfaces/canvas-landing-input.interface.d.ts +8 -0
  18. package/app/reports/interfaces/component-data-applied.interface.d.ts +13 -0
  19. package/app/reports/interfaces/component-data-drill.interface.d.ts +22 -0
  20. package/app/reports/interfaces/filter-bar-placement.type.d.ts +1 -0
  21. package/app/reports/interfaces/filter-component-toggle-state.interface.d.ts +4 -0
  22. package/app/reports/interfaces/filter-settings-option.interface.d.ts +4 -0
  23. package/app/reports/interfaces/filter-type-select-state.interface.d.ts +5 -0
  24. package/app/reports/interfaces/report-chart-hit.interface.d.ts +5 -0
  25. package/app/reports/interfaces/report-chat-viewer-cross-filter-field.interface.d.ts +4 -0
  26. package/app/reports/interfaces/report-chat-viewer-cross-filter.interface.d.ts +7 -0
  27. package/app/reports/interfaces/report-chat-viewer-detail.interface.d.ts +4 -0
  28. package/app/reports/interfaces/report-chat-viewer-drill-step.interface.d.ts +5 -0
  29. package/app/reports/interfaces/report-chat-viewer-drill.interface.d.ts +5 -0
  30. package/app/reports/interfaces/report-chat-viewer-filter.interface.d.ts +3 -0
  31. package/app/reports/interfaces/report-chat-viewer-selection.interface.d.ts +5 -0
  32. package/app/reports/interfaces/report-chat-viewer-state.interface.d.ts +12 -0
  33. package/app/reports/interfaces/report-drill-crumb.interface.d.ts +6 -0
  34. package/app/reports/interfaces/report-drill-refusal.type.d.ts +1 -0
  35. package/app/reports/interfaces/report-drill-step.interface.d.ts +5 -0
  36. package/app/reports/interfaces/report-export-line-kind.type.d.ts +1 -0
  37. package/app/reports/interfaces/report-export-line.interface.d.ts +8 -0
  38. package/app/reports/interfaces/report-export-lines-input.interface.d.ts +9 -0
  39. package/app/reports/interfaces/report-export-snapshot.interface.d.ts +15 -0
  40. package/app/reports/interfaces/report-filter-line-context.interface.d.ts +8 -0
  41. package/app/reports/interfaces/report-filter-line-form.type.d.ts +1 -0
  42. package/app/reports/interfaces/report-filter-match.type.d.ts +1 -0
  43. package/app/reports/interfaces/report-filter-option-pair.interface.d.ts +4 -0
  44. package/app/reports/interfaces/report-filter-options-ask.interface.d.ts +6 -0
  45. package/app/reports/interfaces/report-filter-options-list.interface.d.ts +7 -0
  46. package/app/reports/interfaces/report-filter-options-request.interface.d.ts +6 -0
  47. package/app/reports/interfaces/report-filter-options-stream.interface.d.ts +11 -0
  48. package/app/reports/interfaces/report-filter-options.interface.d.ts +7 -0
  49. package/app/reports/interfaces/report-filter-skip.type.d.ts +1 -0
  50. package/app/reports/interfaces/report-mark-action.type.d.ts +1 -0
  51. package/app/reports/interfaces/report-mark-click.interface.d.ts +13 -0
  52. package/app/reports/interfaces/report-mark-context.interface.d.ts +6 -0
  53. package/app/reports/interfaces/report-mark-decision.interface.d.ts +6 -0
  54. package/app/reports/interfaces/report-mark-event.interface.d.ts +11 -0
  55. package/app/reports/interfaces/report-mark-point.interface.d.ts +8 -0
  56. package/app/reports/interfaces/report-temporary-state.interface.d.ts +4 -0
  57. package/app/reports/interfaces/report-tile-state.interface.d.ts +8 -0
  58. package/app/reports/interfaces/report-url-link.interface.d.ts +4 -0
  59. package/app/reports/interfaces/report-url-value-name.type.d.ts +1 -0
  60. package/app/reports/interfaces/report-url-write.interface.d.ts +4 -0
  61. package/app/reports/interfaces/report-view-config.interface.d.ts +11 -0
  62. package/app/reports/interfaces/report-view-create.interface.d.ts +7 -0
  63. package/app/reports/interfaces/report-view-deleted.interface.d.ts +4 -0
  64. package/app/reports/interfaces/report-view-dialog-data.interface.d.ts +7 -0
  65. package/app/reports/interfaces/report-view-dropped.interface.d.ts +5 -0
  66. package/app/reports/interfaces/report-view-menu-item.interface.d.ts +10 -0
  67. package/app/reports/interfaces/report-view-summary.interface.d.ts +11 -0
  68. package/app/reports/interfaces/report-view.interface.d.ts +7 -0
  69. package/app/reports/interfaces/report-viewer-feature.type.d.ts +1 -0
  70. package/app/reports/interfaces/report-views.interface.d.ts +7 -0
  71. package/app/reports/interfaces/report.interface.d.ts +27 -3
  72. package/app/reports/interfaces/tile-load-result.interface.d.ts +4 -0
  73. package/app/reports/mark-click.d.ts +20 -0
  74. package/app/reports/option-builder.d.ts +12 -1
  75. package/app/reports/report-chat-viewer-state.d.ts +8 -0
  76. package/app/reports/report-date-presets.d.ts +2 -0
  77. package/app/reports/report-filter-items.d.ts +27 -22
  78. package/app/reports/report-tile.d.ts +2 -0
  79. package/app/reports/report-url-state.d.ts +27 -10
  80. package/app/reports/report-view-config.d.ts +36 -0
  81. package/app/reports/report-view-menu.d.ts +15 -0
  82. package/app/reports/report-viewer-features.d.ts +5 -0
  83. package/app/reports/services/report-filter-options.service.d.ts +26 -0
  84. package/app/reports/services/report-filter-state.service.d.ts +64 -1
  85. package/app/reports/services/report-view.service.d.ts +51 -0
  86. package/app/reports/tile-data-state.d.ts +7 -0
  87. package/app/reports/tile-loads.d.ts +4 -0
  88. package/app/reports/views/report/fs-ai-report.component.d.ts +9 -1
  89. package/app/reports/views/report/report.component.d.ts +6 -0
  90. package/esm2022/app/reports/anchor-at-point.mjs +49 -0
  91. package/esm2022/app/reports/canvas-landing-page.mjs +25 -0
  92. package/esm2022/app/reports/components/component-chart/component-chart.component.mjs +97 -5
  93. package/esm2022/app/reports/components/component-kpi/component-kpi.component.mjs +11 -4
  94. package/esm2022/app/reports/components/component-list/component-list.component.mjs +7 -1
  95. package/esm2022/app/reports/components/report-canvas/report-canvas.component.mjs +47 -32
  96. package/esm2022/app/reports/components/report-component/report-component.component.mjs +257 -61
  97. package/esm2022/app/reports/components/report-view-picker/report-view-picker.component.mjs +115 -0
  98. package/esm2022/app/reports/data/report.data.mjs +87 -10
  99. package/esm2022/app/reports/dialogs/component-settings/component-settings.component.mjs +106 -51
  100. package/esm2022/app/reports/dialogs/report-settings/report-settings.component.mjs +86 -90
  101. package/esm2022/app/reports/dialogs/report-view/report-view-dialog.component.mjs +52 -0
  102. package/esm2022/app/reports/drill-crumbs.mjs +73 -0
  103. package/esm2022/app/reports/export/report-export-collector.service.mjs +187 -117
  104. package/esm2022/app/reports/export/report-filter-lines.mjs +235 -0
  105. package/esm2022/app/reports/export/report-pdf.service.mjs +12 -7
  106. package/esm2022/app/reports/export/report-pptx.service.mjs +18 -14
  107. package/esm2022/app/reports/filter-settings-rules.mjs +283 -0
  108. package/esm2022/app/reports/format.mjs +2 -22
  109. package/esm2022/app/reports/interfaces/canvas-landing-input.interface.mjs +2 -0
  110. package/esm2022/app/reports/interfaces/component-data-applied.interface.mjs +2 -0
  111. package/esm2022/app/reports/interfaces/component-data-drill.interface.mjs +2 -0
  112. package/esm2022/app/reports/interfaces/filter-bar-placement.type.mjs +2 -0
  113. package/esm2022/app/reports/interfaces/filter-component-toggle-state.interface.mjs +2 -0
  114. package/esm2022/app/reports/interfaces/filter-settings-option.interface.mjs +2 -0
  115. package/esm2022/app/reports/interfaces/filter-type-select-state.interface.mjs +2 -0
  116. package/esm2022/app/reports/interfaces/report-chart-hit.interface.mjs +2 -0
  117. package/esm2022/app/reports/interfaces/report-chat-viewer-cross-filter-field.interface.mjs +2 -0
  118. package/esm2022/app/reports/interfaces/report-chat-viewer-cross-filter.interface.mjs +2 -0
  119. package/esm2022/app/reports/interfaces/report-chat-viewer-detail.interface.mjs +2 -0
  120. package/esm2022/app/reports/interfaces/report-chat-viewer-drill-step.interface.mjs +2 -0
  121. package/esm2022/app/reports/interfaces/report-chat-viewer-drill.interface.mjs +2 -0
  122. package/esm2022/app/reports/interfaces/report-chat-viewer-filter.interface.mjs +1 -1
  123. package/esm2022/app/reports/interfaces/report-chat-viewer-selection.interface.mjs +2 -0
  124. package/esm2022/app/reports/interfaces/report-chat-viewer-state.interface.mjs +1 -1
  125. package/esm2022/app/reports/interfaces/report-drill-crumb.interface.mjs +2 -0
  126. package/esm2022/app/reports/interfaces/report-drill-refusal.type.mjs +2 -0
  127. package/esm2022/app/reports/interfaces/report-drill-step.interface.mjs +2 -0
  128. package/esm2022/app/reports/interfaces/report-export-line-kind.type.mjs +2 -0
  129. package/esm2022/app/reports/interfaces/report-export-line.interface.mjs +2 -0
  130. package/esm2022/app/reports/interfaces/report-export-lines-input.interface.mjs +2 -0
  131. package/esm2022/app/reports/interfaces/report-export-snapshot.interface.mjs +2 -0
  132. package/esm2022/app/reports/interfaces/report-filter-line-context.interface.mjs +2 -0
  133. package/esm2022/app/reports/interfaces/report-filter-line-form.type.mjs +2 -0
  134. package/esm2022/app/reports/interfaces/report-filter-match.type.mjs +2 -0
  135. package/esm2022/app/reports/interfaces/report-filter-option-pair.interface.mjs +2 -0
  136. package/esm2022/app/reports/interfaces/report-filter-options-ask.interface.mjs +2 -0
  137. package/esm2022/app/reports/interfaces/report-filter-options-list.interface.mjs +2 -0
  138. package/esm2022/app/reports/interfaces/report-filter-options-request.interface.mjs +2 -0
  139. package/esm2022/app/reports/interfaces/report-filter-options-stream.interface.mjs +2 -0
  140. package/esm2022/app/reports/interfaces/report-filter-options.interface.mjs +2 -0
  141. package/esm2022/app/reports/interfaces/report-filter-skip.type.mjs +2 -0
  142. package/esm2022/app/reports/interfaces/report-mark-action.type.mjs +2 -0
  143. package/esm2022/app/reports/interfaces/report-mark-click.interface.mjs +2 -0
  144. package/esm2022/app/reports/interfaces/report-mark-context.interface.mjs +2 -0
  145. package/esm2022/app/reports/interfaces/report-mark-decision.interface.mjs +2 -0
  146. package/esm2022/app/reports/interfaces/report-mark-event.interface.mjs +2 -0
  147. package/esm2022/app/reports/interfaces/report-mark-point.interface.mjs +2 -0
  148. package/esm2022/app/reports/interfaces/report-temporary-state.interface.mjs +2 -0
  149. package/esm2022/app/reports/interfaces/report-tile-state.interface.mjs +2 -0
  150. package/esm2022/app/reports/interfaces/report-url-link.interface.mjs +2 -0
  151. package/esm2022/app/reports/interfaces/report-url-value-name.type.mjs +2 -0
  152. package/esm2022/app/reports/interfaces/report-url-write.interface.mjs +2 -0
  153. package/esm2022/app/reports/interfaces/report-view-config.interface.mjs +2 -0
  154. package/esm2022/app/reports/interfaces/report-view-create.interface.mjs +2 -0
  155. package/esm2022/app/reports/interfaces/report-view-deleted.interface.mjs +2 -0
  156. package/esm2022/app/reports/interfaces/report-view-dialog-data.interface.mjs +2 -0
  157. package/esm2022/app/reports/interfaces/report-view-dropped.interface.mjs +2 -0
  158. package/esm2022/app/reports/interfaces/report-view-menu-item.interface.mjs +2 -0
  159. package/esm2022/app/reports/interfaces/report-view-summary.interface.mjs +2 -0
  160. package/esm2022/app/reports/interfaces/report-view.interface.mjs +2 -0
  161. package/esm2022/app/reports/interfaces/report-viewer-feature.type.mjs +2 -0
  162. package/esm2022/app/reports/interfaces/report-views.interface.mjs +2 -0
  163. package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
  164. package/esm2022/app/reports/interfaces/tile-load-result.interface.mjs +2 -0
  165. package/esm2022/app/reports/mark-click.mjs +193 -0
  166. package/esm2022/app/reports/option-builder.mjs +159 -15
  167. package/esm2022/app/reports/report-chat-viewer-state.mjs +34 -0
  168. package/esm2022/app/reports/report-date-presets.mjs +18 -0
  169. package/esm2022/app/reports/report-filter-items.mjs +343 -72
  170. package/esm2022/app/reports/report-tile.mjs +12 -0
  171. package/esm2022/app/reports/report-url-state.mjs +596 -108
  172. package/esm2022/app/reports/report-view-config.mjs +697 -0
  173. package/esm2022/app/reports/report-view-menu.mjs +119 -0
  174. package/esm2022/app/reports/report-viewer-features.mjs +42 -0
  175. package/esm2022/app/reports/services/report-filter-options.service.mjs +238 -0
  176. package/esm2022/app/reports/services/report-filter-state.service.mjs +697 -62
  177. package/esm2022/app/reports/services/report-view.service.mjs +358 -0
  178. package/esm2022/app/reports/tile-data-state.mjs +127 -0
  179. package/esm2022/app/reports/tile-loads.mjs +38 -0
  180. package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +177 -46
  181. package/esm2022/app/reports/views/report/report.component.mjs +103 -23
  182. package/esm2022/public_api.mjs +23 -1
  183. package/fesm2022/{firestitch-report-echarts-DBMOHmBF.mjs → firestitch-report-echarts-UBg8Wlhd.mjs} +2 -2
  184. package/fesm2022/{firestitch-report-echarts-DBMOHmBF.mjs.map → firestitch-report-echarts-UBg8Wlhd.mjs.map} +1 -1
  185. package/fesm2022/{firestitch-report-firestitch-report-CqbXT1gh.mjs → firestitch-report-firestitch-report-B1keNrcK.mjs} +9063 -4272
  186. package/fesm2022/firestitch-report-firestitch-report-B1keNrcK.mjs.map +1 -0
  187. package/fesm2022/firestitch-report.mjs +1 -1
  188. package/package.json +1 -1
  189. package/public_api.d.ts +22 -0
  190. 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;
@@ -0,0 +1,2 @@
1
+ import { CanvasLandingInput } from './interfaces/canvas-landing-input.interface';
2
+ export declare function canvasLandingPage(input: CanvasLandingInput): number;
@@ -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,5 +1,12 @@
1
1
  import { RequestConfig } from '@firestitch/api';
2
2
  import { Observable } from 'rxjs';
3
+ import { ReportExportLine } from '../interfaces/report-export-line.interface';
4
+ import { ReportFilterOptionsRequest } from '../interfaces/report-filter-options-request.interface';
5
+ import { ReportFilterOptions } from '../interfaces/report-filter-options.interface';
6
+ import { ReportViewCreate } from '../interfaces/report-view-create.interface';
7
+ import { ReportViewDeleted } from '../interfaces/report-view-deleted.interface';
8
+ import { ReportView } from '../interfaces/report-view.interface';
9
+ import { ReportViews } from '../interfaces/report-views.interface';
3
10
  import { ChartGranularity, ComponentDataState, ComponentExportResponse, FilterGroupDefault, ReportComponentSql, ReportFilterLevel, ReportLocales, ReportPageValue, ReportTree, ResolvedFilterValue } from '../interfaces/report.interface';
4
11
  import * as i0 from "@angular/core";
5
12
  export declare class ReportData<T = any> {
@@ -48,9 +55,9 @@ export declare class ReportData<T = any> {
48
55
  h: number;
49
56
  }>)[], config?: RequestConfig): Observable<T>;
50
57
  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[]>;
58
+ pageValues(reportId: number, pageId: number, filters?: ResolvedFilterValue[], isExport?: boolean, config?: RequestConfig, matchAnyGroupIds?: number[]): Observable<ReportPageValue[]>;
52
59
  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, filterSummary?: string[], config?: RequestConfig): Observable<T>;
60
+ 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
61
  filterOptions(reportId: number, filterId: number, config?: RequestConfig): Observable<T>;
55
62
  componentSql(reportId: number, componentId: number, config?: RequestConfig): Observable<ReportComponentSql>;
56
63
  componentColumns(reportId: number, componentId: number, config?: RequestConfig): Observable<T>;
@@ -84,6 +91,14 @@ export declare class ReportData<T = any> {
84
91
  level?: ReportFilterLevel;
85
92
  default?: FilterGroupDefault | null;
86
93
  }, config?: RequestConfig): Observable<T>;
94
+ filterOptionsNarrowed(reportId: number, filterId: number, body: ReportFilterOptionsRequest, config?: RequestConfig): Observable<ReportFilterOptions>;
95
+ views(reportId: number, config?: RequestConfig): Observable<ReportViews>;
96
+ view(reportId: number, reportViewId: number, config?: RequestConfig): Observable<ReportView>;
97
+ createView(reportId: number, view: ReportViewCreate, config?: RequestConfig): Observable<ReportView>;
98
+ updateView(reportId: number, reportViewId: number, changes: Partial<Pick<ReportViewCreate, 'name' | 'config'>>, config?: RequestConfig): Observable<ReportView>;
99
+ deleteView(reportId: number, reportViewId: number, config?: RequestConfig): Observable<ReportViewDeleted>;
100
+ shareView(reportId: number, reportViewId: number, shared: boolean, config?: RequestConfig): Observable<ReportView>;
101
+ setViewDefault(reportId: number, reportViewId: number, personalDefault: boolean, config?: RequestConfig): Observable<ReportView>;
87
102
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportData<any>, never>;
88
103
  static ɵprov: i0.ɵɵInjectableDeclaration<ReportData<any>>;
89
104
  }
@@ -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
- report: boolean;
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
- setExposure(row: FilterRow, target: 'report' | 'component', on: boolean): void;
77
- private _setValueExposure;
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,7 +1,8 @@
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 { relativeLabel } from '../../report-filter-items';
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';
@@ -9,14 +10,19 @@ export interface ReportSettingsResult {
9
10
  interface FilterDefaultRow {
10
11
  group: ReportFilterGroup;
11
12
  label: string;
13
+ period: string;
14
+ periodOptions: FilterSettingsOption[];
12
15
  start: Date | null;
13
16
  end: Date | null;
14
- relative: string | null;
15
17
  values: {
16
18
  name: string;
17
19
  value: unknown;
18
20
  }[];
21
+ exclude: boolean;
22
+ showExclude: boolean;
19
23
  value: string;
24
+ min: number | string | null;
25
+ max: number | string | null;
20
26
  fetch: (keyword?: string) => Observable<{
21
27
  name: string;
22
28
  value: unknown;
@@ -46,7 +52,10 @@ export declare class ReportSettingsComponent implements OnInit {
46
52
  readonly currencyOptions: import("@angular/core").Signal<LocaleSelectOption[]>;
47
53
  readonly formatExample: import("@angular/core").Signal<string>;
48
54
  readonly filterRows: import("@angular/core").WritableSignal<FilterDefaultRow[]>;
49
- readonly relativeLabel: typeof relativeLabel;
55
+ readonly fixedDatesPeriod = "fixed";
56
+ readonly boundScale = 6;
57
+ readonly minBoundValidator: (control: AbstractControl, max: unknown) => void;
58
+ readonly maxBoundValidator: (control: AbstractControl, min: unknown) => void;
50
59
  private readonly _data;
51
60
  private readonly _dialogRef;
52
61
  private readonly _reportData;
@@ -60,17 +69,17 @@ export declare class ReportSettingsComponent implements OnInit {
60
69
  private readonly _defaultCurrency;
61
70
  private readonly _appliedCurrency;
62
71
  ngOnInit(): void;
72
+ patchRow(row: FilterDefaultRow, patch: Partial<FilterDefaultRow>): void;
63
73
  delete(): void;
64
74
  save: () => Observable<[any, ...any[]]>;
65
- clearRelative(row: FilterDefaultRow): void;
66
75
  private _pageDimension;
67
76
  private _timezoneSetting;
68
77
  private _storedOption;
78
+ private _throwBoundsError;
69
79
  private _buildFilterRows;
80
+ private _filterRow;
70
81
  private _publishFilterRows;
71
82
  private _rowDefault;
72
- private _defaultChanged;
73
- private _normalize;
74
83
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportSettingsComponent, never>;
75
84
  static ɵcmp: i0.ɵɵComponentDeclaration<ReportSettingsComponent, "ng-component", never, {}, {}, never, never, true, never>;
76
85
  }
@@ -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
- getFilterSummary(report: Report): Observable<string[]>;
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 _selectLine;
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,33 @@
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 function parseDefaultBound(raw: unknown): number | null;
14
+ export declare function boundsError(min: number | null, max: number | null): string | null;
15
+ export declare function typeSelectState(types: ReportFilterType[] | null | undefined, hasFilterOnThisComponent: boolean, features: ReportViewerFeature[] | null | undefined): FilterTypeSelectState;
16
+ export declare function filterLevelChoices(features: ReportViewerFeature[] | null | undefined, onPage: boolean): ReportFilterLevel[];
17
+ export declare function barPlacementOptions(levelChoices: ReportFilterLevel[], current?: FilterBarPlacement): FilterSettingsOption<FilterBarPlacement>[];
18
+ export declare function valuePlacementOptions(levelChoices: ReportFilterLevel[], current: ReportFilterLevel | null | undefined): FilterSettingsOption<FilterBarPlacement>[];
19
+ export declare function valueFilterLevel(placement: FilterBarPlacement, current: ReportFilterLevel | null | undefined): ReportFilterLevel | null;
20
+ export declare function barPlacement(level: ReportFilterLevel | null | undefined): FilterBarPlacement;
21
+ export declare function shownOnComponent(level: ReportFilterLevel | null | undefined): boolean;
22
+ export declare function filterLevel(placement: FilterBarPlacement, component: boolean): ReportFilterLevel | null;
23
+ export declare function componentToggleState(placement: FilterBarPlacement): FilterComponentToggleState;
24
+ export declare function defaultRowGroups(groups: ReportFilterGroup[] | null | undefined): ReportFilterGroup[];
25
+ export declare function defaultRowLabel(group: ReportFilterGroup, pages: ReportPage[] | null | undefined): string;
26
+ export declare function defaultPeriodOptions(labels: (relative: ReportRelativeRange) => string, stored?: string | null): FilterSettingsOption[];
27
+ export declare function defaultPeriod(stored: FilterGroupDefault | null | undefined): string;
28
+ export declare function dateRangeDefault(period: string, start: string | null, end: string | null): FilterGroupDefault | null;
29
+ export declare function selectDefault(values: unknown[], exclude: boolean): FilterGroupDefault | null;
30
+ export declare function numberRangeDefault(rawMin: unknown, rawMax: unknown): FilterGroupDefault | null;
31
+ export declare function showExcludeToggle(group: ReportFilterGroup, features: ReportViewerFeature[] | null | undefined): boolean;
32
+ export declare function normalizeDefault(value: FilterGroupDefault | null | undefined): FilterGroupDefault | null;
33
+ export declare function defaultChanged(stored: FilterGroupDefault | null | undefined, draft: FilterGroupDefault | null | undefined): boolean;
@@ -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,8 @@
1
+ export interface CanvasLandingInput {
2
+ reportId: number | null;
3
+ previousReportId: number | null;
4
+ previousPageCount: number;
5
+ pageIds: number[];
6
+ pageId: number | null;
7
+ activePageIndex: number;
8
+ }
@@ -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';
@@ -0,0 +1,4 @@
1
+ export interface FilterComponentToggleState {
2
+ disabled: boolean;
3
+ tooltip: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ export interface FilterSettingsOption<T = string> {
2
+ value: T;
3
+ name: string;
4
+ }
@@ -0,0 +1,5 @@
1
+ export interface FilterTypeSelectState {
2
+ show: boolean;
3
+ disabled: boolean;
4
+ tooltip: string | null;
5
+ }
@@ -0,0 +1,5 @@
1
+ export interface ReportChartHit {
2
+ seriesIndex: number | null;
3
+ seriesId: string | null;
4
+ dataIndex: number;
5
+ }
@@ -0,0 +1,4 @@
1
+ export interface ReportChatViewerCrossFilterField {
2
+ column: string;
3
+ valueLabel: string;
4
+ }
@@ -0,0 +1,7 @@
1
+ import { ReportChatViewerCrossFilterField } from './report-chat-viewer-cross-filter-field.interface';
2
+ export interface ReportChatViewerCrossFilter {
3
+ sourceComponentId: number;
4
+ fields: ReportChatViewerCrossFilterField[];
5
+ affected: number;
6
+ onPage: number;
7
+ }
@@ -0,0 +1,4 @@
1
+ export interface ReportChatViewerDetail {
2
+ componentId: number;
3
+ label: string;
4
+ }
@@ -0,0 +1,5 @@
1
+ import { ChartGranularity } from './report.interface';
2
+ export interface ReportChatViewerDrillStep {
3
+ level: ChartGranularity;
4
+ label: string;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ReportChatViewerDrillStep } from './report-chat-viewer-drill-step.interface';
2
+ export interface ReportChatViewerDrill {
3
+ componentId: number;
4
+ path: ReportChatViewerDrillStep[];
5
+ }