@firestitch/report 18.8.1 → 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 (208) 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/component-text/component-text.component.d.ts +47 -2
  6. package/app/reports/components/component-text/value-embed.plugin.d.ts +67 -0
  7. package/app/reports/components/report-canvas/report-canvas.component.d.ts +37 -9
  8. package/app/reports/components/report-component/report-component.component.d.ts +45 -2
  9. package/app/reports/components/report-view-picker/report-view-picker.component.d.ts +21 -0
  10. package/app/reports/data/report.data.d.ts +18 -2
  11. package/app/reports/dialogs/component-settings/component-settings.component.d.ts +25 -2
  12. package/app/reports/dialogs/report-settings/report-settings.component.d.ts +15 -6
  13. package/app/reports/dialogs/report-view/report-view-dialog.component.d.ts +13 -0
  14. package/app/reports/drill-crumbs.d.ts +12 -0
  15. package/app/reports/enums/report-value-formula.enum.d.ts +6 -0
  16. package/app/reports/export/report-export-collector.service.d.ts +35 -4
  17. package/app/reports/export/report-export.service.d.ts +3 -1
  18. package/app/reports/export/report-filter-lines.d.ts +18 -0
  19. package/app/reports/export/report-pdf.service.d.ts +18 -2
  20. package/app/reports/export/report-pptx.service.d.ts +15 -2
  21. package/app/reports/export/report-text-layout.service.d.ts +35 -0
  22. package/app/reports/filter-settings-rules.d.ts +33 -0
  23. package/app/reports/format.d.ts +2 -1
  24. package/app/reports/interfaces/canvas-landing-input.interface.d.ts +8 -0
  25. package/app/reports/interfaces/component-data-applied.interface.d.ts +13 -0
  26. package/app/reports/interfaces/component-data-drill.interface.d.ts +22 -0
  27. package/app/reports/interfaces/filter-bar-placement.type.d.ts +1 -0
  28. package/app/reports/interfaces/filter-component-toggle-state.interface.d.ts +4 -0
  29. package/app/reports/interfaces/filter-settings-option.interface.d.ts +4 -0
  30. package/app/reports/interfaces/filter-type-select-state.interface.d.ts +5 -0
  31. package/app/reports/interfaces/report-chart-hit.interface.d.ts +5 -0
  32. package/app/reports/interfaces/report-chat-viewer-cross-filter-field.interface.d.ts +4 -0
  33. package/app/reports/interfaces/report-chat-viewer-cross-filter.interface.d.ts +7 -0
  34. package/app/reports/interfaces/report-chat-viewer-detail.interface.d.ts +4 -0
  35. package/app/reports/interfaces/report-chat-viewer-drill-step.interface.d.ts +5 -0
  36. package/app/reports/interfaces/report-chat-viewer-drill.interface.d.ts +5 -0
  37. package/app/reports/interfaces/report-chat-viewer-filter.interface.d.ts +3 -0
  38. package/app/reports/interfaces/report-chat-viewer-selection.interface.d.ts +5 -0
  39. package/app/reports/interfaces/report-chat-viewer-state.interface.d.ts +12 -0
  40. package/app/reports/interfaces/report-drill-crumb.interface.d.ts +6 -0
  41. package/app/reports/interfaces/report-drill-refusal.type.d.ts +1 -0
  42. package/app/reports/interfaces/report-drill-step.interface.d.ts +5 -0
  43. package/app/reports/interfaces/report-export-line-kind.type.d.ts +1 -0
  44. package/app/reports/interfaces/report-export-line.interface.d.ts +8 -0
  45. package/app/reports/interfaces/report-export-lines-input.interface.d.ts +9 -0
  46. package/app/reports/interfaces/report-export-snapshot.interface.d.ts +15 -0
  47. package/app/reports/interfaces/report-filter-line-context.interface.d.ts +8 -0
  48. package/app/reports/interfaces/report-filter-line-form.type.d.ts +1 -0
  49. package/app/reports/interfaces/report-filter-match.type.d.ts +1 -0
  50. package/app/reports/interfaces/report-filter-option-pair.interface.d.ts +4 -0
  51. package/app/reports/interfaces/report-filter-options-ask.interface.d.ts +6 -0
  52. package/app/reports/interfaces/report-filter-options-list.interface.d.ts +7 -0
  53. package/app/reports/interfaces/report-filter-options-request.interface.d.ts +6 -0
  54. package/app/reports/interfaces/report-filter-options-stream.interface.d.ts +11 -0
  55. package/app/reports/interfaces/report-filter-options.interface.d.ts +7 -0
  56. package/app/reports/interfaces/report-filter-skip.type.d.ts +1 -0
  57. package/app/reports/interfaces/report-mark-action.type.d.ts +1 -0
  58. package/app/reports/interfaces/report-mark-click.interface.d.ts +13 -0
  59. package/app/reports/interfaces/report-mark-context.interface.d.ts +6 -0
  60. package/app/reports/interfaces/report-mark-decision.interface.d.ts +6 -0
  61. package/app/reports/interfaces/report-mark-event.interface.d.ts +11 -0
  62. package/app/reports/interfaces/report-mark-point.interface.d.ts +8 -0
  63. package/app/reports/interfaces/report-temporary-state.interface.d.ts +4 -0
  64. package/app/reports/interfaces/report-tile-state.interface.d.ts +8 -0
  65. package/app/reports/interfaces/report-url-link.interface.d.ts +4 -0
  66. package/app/reports/interfaces/report-url-value-name.type.d.ts +1 -0
  67. package/app/reports/interfaces/report-url-write.interface.d.ts +4 -0
  68. package/app/reports/interfaces/report-view-config.interface.d.ts +11 -0
  69. package/app/reports/interfaces/report-view-create.interface.d.ts +7 -0
  70. package/app/reports/interfaces/report-view-deleted.interface.d.ts +4 -0
  71. package/app/reports/interfaces/report-view-dialog-data.interface.d.ts +7 -0
  72. package/app/reports/interfaces/report-view-dropped.interface.d.ts +5 -0
  73. package/app/reports/interfaces/report-view-menu-item.interface.d.ts +10 -0
  74. package/app/reports/interfaces/report-view-summary.interface.d.ts +11 -0
  75. package/app/reports/interfaces/report-view.interface.d.ts +7 -0
  76. package/app/reports/interfaces/report-viewer-feature.type.d.ts +1 -0
  77. package/app/reports/interfaces/report-views.interface.d.ts +7 -0
  78. package/app/reports/interfaces/report.interface.d.ts +48 -5
  79. package/app/reports/interfaces/tile-load-result.interface.d.ts +4 -0
  80. package/app/reports/layout.d.ts +2 -0
  81. package/app/reports/mark-click.d.ts +20 -0
  82. package/app/reports/option-builder.d.ts +12 -1
  83. package/app/reports/report-chat-viewer-state.d.ts +8 -0
  84. package/app/reports/report-date-presets.d.ts +2 -0
  85. package/app/reports/report-filter-items.d.ts +27 -22
  86. package/app/reports/report-tile.d.ts +2 -0
  87. package/app/reports/report-url-state.d.ts +27 -10
  88. package/app/reports/report-view-config.d.ts +36 -0
  89. package/app/reports/report-view-menu.d.ts +15 -0
  90. package/app/reports/report-viewer-features.d.ts +5 -0
  91. package/app/reports/services/report-filter-options.service.d.ts +26 -0
  92. package/app/reports/services/report-filter-state.service.d.ts +65 -2
  93. package/app/reports/services/report-view.service.d.ts +51 -0
  94. package/app/reports/text.d.ts +50 -0
  95. package/app/reports/tile-data-state.d.ts +7 -0
  96. package/app/reports/tile-loads.d.ts +4 -0
  97. package/app/reports/values.d.ts +17 -0
  98. package/app/reports/views/report/fs-ai-report.component.d.ts +9 -1
  99. package/app/reports/views/report/report.component.d.ts +6 -0
  100. package/esm2022/app/reports/anchor-at-point.mjs +49 -0
  101. package/esm2022/app/reports/canvas-landing-page.mjs +25 -0
  102. package/esm2022/app/reports/components/component-chart/component-chart.component.mjs +97 -5
  103. package/esm2022/app/reports/components/component-kpi/component-kpi.component.mjs +11 -4
  104. package/esm2022/app/reports/components/component-list/component-list.component.mjs +7 -1
  105. package/esm2022/app/reports/components/component-text/component-text.component.mjs +213 -16
  106. package/esm2022/app/reports/components/component-text/value-embed.plugin.mjs +484 -0
  107. package/esm2022/app/reports/components/report-canvas/report-canvas.component.mjs +296 -55
  108. package/esm2022/app/reports/components/report-component/report-component.component.mjs +318 -76
  109. package/esm2022/app/reports/components/report-view-picker/report-view-picker.component.mjs +115 -0
  110. package/esm2022/app/reports/data/report.data.mjs +103 -8
  111. package/esm2022/app/reports/dialogs/component-settings/component-settings.component.mjs +210 -44
  112. package/esm2022/app/reports/dialogs/report-settings/report-settings.component.mjs +86 -90
  113. package/esm2022/app/reports/dialogs/report-view/report-view-dialog.component.mjs +52 -0
  114. package/esm2022/app/reports/drill-crumbs.mjs +73 -0
  115. package/esm2022/app/reports/enums/report-value-formula.enum.mjs +14 -0
  116. package/esm2022/app/reports/export/report-export-collector.service.mjs +299 -125
  117. package/esm2022/app/reports/export/report-export.service.mjs +57 -19
  118. package/esm2022/app/reports/export/report-filter-lines.mjs +235 -0
  119. package/esm2022/app/reports/export/report-pdf.service.mjs +315 -71
  120. package/esm2022/app/reports/export/report-pptx.service.mjs +293 -71
  121. package/esm2022/app/reports/export/report-text-layout.service.mjs +241 -0
  122. package/esm2022/app/reports/filter-settings-rules.mjs +283 -0
  123. package/esm2022/app/reports/format.mjs +13 -30
  124. package/esm2022/app/reports/interfaces/canvas-landing-input.interface.mjs +2 -0
  125. package/esm2022/app/reports/interfaces/component-data-applied.interface.mjs +2 -0
  126. package/esm2022/app/reports/interfaces/component-data-drill.interface.mjs +2 -0
  127. package/esm2022/app/reports/interfaces/filter-bar-placement.type.mjs +2 -0
  128. package/esm2022/app/reports/interfaces/filter-component-toggle-state.interface.mjs +2 -0
  129. package/esm2022/app/reports/interfaces/filter-settings-option.interface.mjs +2 -0
  130. package/esm2022/app/reports/interfaces/filter-type-select-state.interface.mjs +2 -0
  131. package/esm2022/app/reports/interfaces/report-chart-hit.interface.mjs +2 -0
  132. package/esm2022/app/reports/interfaces/report-chat-viewer-cross-filter-field.interface.mjs +2 -0
  133. package/esm2022/app/reports/interfaces/report-chat-viewer-cross-filter.interface.mjs +2 -0
  134. package/esm2022/app/reports/interfaces/report-chat-viewer-detail.interface.mjs +2 -0
  135. package/esm2022/app/reports/interfaces/report-chat-viewer-drill-step.interface.mjs +2 -0
  136. package/esm2022/app/reports/interfaces/report-chat-viewer-drill.interface.mjs +2 -0
  137. package/esm2022/app/reports/interfaces/report-chat-viewer-filter.interface.mjs +1 -1
  138. package/esm2022/app/reports/interfaces/report-chat-viewer-selection.interface.mjs +2 -0
  139. package/esm2022/app/reports/interfaces/report-chat-viewer-state.interface.mjs +1 -1
  140. package/esm2022/app/reports/interfaces/report-drill-crumb.interface.mjs +2 -0
  141. package/esm2022/app/reports/interfaces/report-drill-refusal.type.mjs +2 -0
  142. package/esm2022/app/reports/interfaces/report-drill-step.interface.mjs +2 -0
  143. package/esm2022/app/reports/interfaces/report-export-line-kind.type.mjs +2 -0
  144. package/esm2022/app/reports/interfaces/report-export-line.interface.mjs +2 -0
  145. package/esm2022/app/reports/interfaces/report-export-lines-input.interface.mjs +2 -0
  146. package/esm2022/app/reports/interfaces/report-export-snapshot.interface.mjs +2 -0
  147. package/esm2022/app/reports/interfaces/report-filter-line-context.interface.mjs +2 -0
  148. package/esm2022/app/reports/interfaces/report-filter-line-form.type.mjs +2 -0
  149. package/esm2022/app/reports/interfaces/report-filter-match.type.mjs +2 -0
  150. package/esm2022/app/reports/interfaces/report-filter-option-pair.interface.mjs +2 -0
  151. package/esm2022/app/reports/interfaces/report-filter-options-ask.interface.mjs +2 -0
  152. package/esm2022/app/reports/interfaces/report-filter-options-list.interface.mjs +2 -0
  153. package/esm2022/app/reports/interfaces/report-filter-options-request.interface.mjs +2 -0
  154. package/esm2022/app/reports/interfaces/report-filter-options-stream.interface.mjs +2 -0
  155. package/esm2022/app/reports/interfaces/report-filter-options.interface.mjs +2 -0
  156. package/esm2022/app/reports/interfaces/report-filter-skip.type.mjs +2 -0
  157. package/esm2022/app/reports/interfaces/report-mark-action.type.mjs +2 -0
  158. package/esm2022/app/reports/interfaces/report-mark-click.interface.mjs +2 -0
  159. package/esm2022/app/reports/interfaces/report-mark-context.interface.mjs +2 -0
  160. package/esm2022/app/reports/interfaces/report-mark-decision.interface.mjs +2 -0
  161. package/esm2022/app/reports/interfaces/report-mark-event.interface.mjs +2 -0
  162. package/esm2022/app/reports/interfaces/report-mark-point.interface.mjs +2 -0
  163. package/esm2022/app/reports/interfaces/report-temporary-state.interface.mjs +2 -0
  164. package/esm2022/app/reports/interfaces/report-tile-state.interface.mjs +2 -0
  165. package/esm2022/app/reports/interfaces/report-url-link.interface.mjs +2 -0
  166. package/esm2022/app/reports/interfaces/report-url-value-name.type.mjs +2 -0
  167. package/esm2022/app/reports/interfaces/report-url-write.interface.mjs +2 -0
  168. package/esm2022/app/reports/interfaces/report-view-config.interface.mjs +2 -0
  169. package/esm2022/app/reports/interfaces/report-view-create.interface.mjs +2 -0
  170. package/esm2022/app/reports/interfaces/report-view-deleted.interface.mjs +2 -0
  171. package/esm2022/app/reports/interfaces/report-view-dialog-data.interface.mjs +2 -0
  172. package/esm2022/app/reports/interfaces/report-view-dropped.interface.mjs +2 -0
  173. package/esm2022/app/reports/interfaces/report-view-menu-item.interface.mjs +2 -0
  174. package/esm2022/app/reports/interfaces/report-view-summary.interface.mjs +2 -0
  175. package/esm2022/app/reports/interfaces/report-view.interface.mjs +2 -0
  176. package/esm2022/app/reports/interfaces/report-viewer-feature.type.mjs +2 -0
  177. package/esm2022/app/reports/interfaces/report-views.interface.mjs +2 -0
  178. package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
  179. package/esm2022/app/reports/interfaces/tile-load-result.interface.mjs +2 -0
  180. package/esm2022/app/reports/layout.mjs +11 -1
  181. package/esm2022/app/reports/mark-click.mjs +193 -0
  182. package/esm2022/app/reports/option-builder.mjs +159 -15
  183. package/esm2022/app/reports/report-chat-viewer-state.mjs +34 -0
  184. package/esm2022/app/reports/report-date-presets.mjs +18 -0
  185. package/esm2022/app/reports/report-filter-items.mjs +343 -72
  186. package/esm2022/app/reports/report-tile.mjs +12 -0
  187. package/esm2022/app/reports/report-url-state.mjs +596 -108
  188. package/esm2022/app/reports/report-view-config.mjs +697 -0
  189. package/esm2022/app/reports/report-view-menu.mjs +119 -0
  190. package/esm2022/app/reports/report-viewer-features.mjs +42 -0
  191. package/esm2022/app/reports/services/report-filter-options.service.mjs +238 -0
  192. package/esm2022/app/reports/services/report-filter-state.service.mjs +715 -71
  193. package/esm2022/app/reports/services/report-view.service.mjs +358 -0
  194. package/esm2022/app/reports/text.mjs +293 -85
  195. package/esm2022/app/reports/tile-data-state.mjs +127 -0
  196. package/esm2022/app/reports/tile-loads.mjs +38 -0
  197. package/esm2022/app/reports/values.mjs +183 -0
  198. package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +180 -46
  199. package/esm2022/app/reports/views/report/report.component.mjs +106 -23
  200. package/esm2022/public_api.mjs +24 -1
  201. package/fesm2022/{firestitch-report-echarts-CFnbJx44.mjs → firestitch-report-echarts-UBg8Wlhd.mjs} +2 -2
  202. package/fesm2022/{firestitch-report-echarts-CFnbJx44.mjs.map → firestitch-report-echarts-UBg8Wlhd.mjs.map} +1 -1
  203. package/fesm2022/{firestitch-report-firestitch-report-CSylkyko.mjs → firestitch-report-firestitch-report-B1keNrcK.mjs} +11315 -4201
  204. package/fesm2022/firestitch-report-firestitch-report-B1keNrcK.mjs.map +1 -0
  205. package/fesm2022/firestitch-report.mjs +1 -1
  206. package/package.json +1 -1
  207. package/public_api.d.ts +23 -0
  208. package/fesm2022/firestitch-report-firestitch-report-CSylkyko.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
  }
@@ -1,13 +1,36 @@
1
1
  import { SafeHtml } from '@angular/platform-browser';
2
2
  import { FsHtmlEditorConfig } from '@firestitch/html-editor';
3
- import { TextTokenContext } from '../../text';
3
+ import { FsPopoverRef } from '@firestitch/popover';
4
+ import { TextTokenContext, TextValue } from '../../text';
5
+ import { ValueEmbedBlock, ValueEmbedPlugin } from './value-embed.plugin';
4
6
  import * as i0 from "@angular/core";
7
+ type TextNotice = {
8
+ kind: 'blocked';
9
+ block: ValueEmbedBlock;
10
+ } | {
11
+ kind: 'unused';
12
+ count: number;
13
+ undo: () => void;
14
+ } | {
15
+ kind: 'message';
16
+ text: string;
17
+ };
18
+ interface ValuePopoverAnchor {
19
+ key: string;
20
+ chip: HTMLElement;
21
+ left: number;
22
+ top: number;
23
+ width: number;
24
+ height: number;
25
+ }
5
26
  export declare class ComponentTextComponent {
6
27
  readonly html: import("@angular/core").InputSignal<string>;
7
28
  readonly tokens: import("@angular/core").InputSignal<TextTokenContext>;
8
29
  readonly editing: import("@angular/core").InputSignal<boolean>;
30
+ readonly shownElsewhere: import("@angular/core").InputSignal<() => ReadonlySet<string>>;
9
31
  readonly saved: import("@angular/core").OutputEmitterRef<string>;
10
32
  readonly editEnded: import("@angular/core").OutputEmitterRef<void>;
33
+ readonly valueSettings: import("@angular/core").OutputEmitterRef<string>;
11
34
  readonly typeScale: {
12
35
  body: string;
13
36
  h1: string;
@@ -15,20 +38,42 @@ export declare class ComponentTextComponent {
15
38
  h3: string;
16
39
  color: string;
17
40
  };
41
+ readonly tableLook: {
42
+ border: string;
43
+ padding: string;
44
+ margin: string;
45
+ };
46
+ readonly showValueNames: import("@angular/core").WritableSignal<boolean>;
47
+ readonly notice: import("@angular/core").WritableSignal<TextNotice>;
48
+ readonly valuePopover: import("@angular/core").WritableSignal<ValuePopoverAnchor>;
49
+ readonly valuePopoverValue: import("@angular/core").Signal<TextValue>;
50
+ readonly valueEmbeds: ValueEmbedPlugin;
18
51
  readonly editorConfig: FsHtmlEditorConfig;
19
52
  readonly displayHtml: import("@angular/core").Signal<SafeHtml>;
20
53
  draft: string;
21
54
  private readonly _editor;
55
+ private readonly _valuePopoverAnchor;
22
56
  private readonly _sanitizer;
23
57
  private readonly _host;
24
58
  private readonly _destroyRef;
25
59
  private _isOpen;
60
+ private _noticeTimer;
26
61
  constructor();
27
62
  onKeydown(event: KeyboardEvent): void;
63
+ removeValue(key: string): void;
64
+ openValueSettings(popover: FsPopoverRef): void;
65
+ removeBlockedSelection(): void;
66
+ undoValuesUnused(): void;
67
+ dismissNotice(): void;
68
+ private _openValuePopover;
69
+ private _showNotice;
70
+ private _clearNoticeTimer;
71
+ private _onValuesRemoved;
28
72
  private _onDocumentPress;
29
73
  private _close;
30
74
  private _syncDraft;
31
75
  private _finish;
32
76
  static ɵfac: i0.ɵɵFactoryDeclaration<ComponentTextComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<ComponentTextComponent, "app-report-component-text", never, { "html": { "alias": "html"; "required": false; "isSignal": true; }; "tokens": { "alias": "tokens"; "required": true; "isSignal": true; }; "editing": { "alias": "editing"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "editEnded": "editEnded"; }, never, never, true, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<ComponentTextComponent, "app-report-component-text", never, { "html": { "alias": "html"; "required": false; "isSignal": true; }; "tokens": { "alias": "tokens"; "required": true; "isSignal": true; }; "editing": { "alias": "editing"; "required": false; "isSignal": true; }; "shownElsewhere": { "alias": "shownElsewhere"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "editEnded": "editEnded"; "valueSettings": "valueSettings"; }, never, never, true, never>;
34
78
  }
79
+ export {};
@@ -0,0 +1,67 @@
1
+ import { Plugin, PluginConfig } from '@firestitch/html-editor';
2
+ import { TextValue } from '../../text';
3
+ export declare const VALUE_EMBED_ATTRIBUTES: string[];
4
+ export interface ValueEmbedBlock {
5
+ count: number;
6
+ removeSelection?: () => void;
7
+ }
8
+ export interface ValueEmbedRemoval {
9
+ before: string[];
10
+ after: string[];
11
+ undo: () => void;
12
+ }
13
+ export interface ValueEmbedPluginConfig extends PluginConfig {
14
+ host: () => HTMLElement;
15
+ values: () => Record<string, TextValue>;
16
+ scope: () => string;
17
+ showNames: () => boolean;
18
+ click: (key: string, chip: HTMLElement) => void;
19
+ blocked: (block: ValueEmbedBlock) => void;
20
+ removed: (removal: ValueEmbedRemoval) => void;
21
+ changed: () => void;
22
+ refused: (text: string) => void;
23
+ }
24
+ export declare class ValueEmbedPlugin extends Plugin {
25
+ config: ValueEmbedPluginConfig;
26
+ private _editor;
27
+ private _removing;
28
+ private _domListeners;
29
+ private _pasteScope;
30
+ private _before;
31
+ constructor(config: ValueEmbedPluginConfig);
32
+ initialize(): void;
33
+ destroy(): void;
34
+ refresh(): void;
35
+ hideToolbar(): void;
36
+ undo(): void;
37
+ removeKey(key: string): void;
38
+ remove(chip: HTMLElement): void;
39
+ private _chips;
40
+ private _chipCounts;
41
+ private _reportRemoved;
42
+ private _watchCommands;
43
+ private _onCommandBefore;
44
+ private _caretIn;
45
+ private _toChips;
46
+ private _keepsPasted;
47
+ private _splitText;
48
+ private _toTokenText;
49
+ private _createChip;
50
+ private _label;
51
+ private _toTokens;
52
+ private _onKeydown;
53
+ private _onBeforeInput;
54
+ private _guardSelection;
55
+ private _onCopy;
56
+ private _plainText;
57
+ private _onClick;
58
+ private _onChip;
59
+ private _block;
60
+ private _removeRange;
61
+ private _changed;
62
+ private _selection;
63
+ private _range;
64
+ private _chipsIn;
65
+ private _adjacentChip;
66
+ private _granularity;
67
+ }
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
1
+ import { AfterViewInit, EventEmitter, OnChanges, SimpleChanges, WritableSignal } from '@angular/core';
2
2
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
3
3
  import { FsZoomPanComponent } from '@firestitch/zoom-pan';
4
4
  import { ComponentSettings, Report, ReportComponent, ReportFilterGroup, ReportHeaderFooter, ReportPage } from '../../interfaces/report.interface';
@@ -39,34 +39,51 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
39
39
  private _viewport;
40
40
  private _guides;
41
41
  readonly PX = 96;
42
- readonly pages: import("@angular/core").WritableSignal<ReportPage[]>;
43
- readonly activePageIndex: import("@angular/core").WritableSignal<number>;
44
- readonly zoom: import("@angular/core").WritableSignal<number>;
45
- readonly masterMode: import("@angular/core").WritableSignal<boolean>;
42
+ readonly pages: WritableSignal<ReportPage[]>;
43
+ readonly activePageIndex: WritableSignal<number>;
44
+ readonly activePageId: import("@angular/core").Signal<number>;
45
+ readonly zoom: WritableSignal<number>;
46
+ readonly masterMode: WritableSignal<boolean>;
46
47
  groups: Map<number, ReportFilterGroup>;
47
- readonly selectedComponentId: import("@angular/core").WritableSignal<number>;
48
+ readonly selectedComponentId: WritableSignal<number>;
49
+ readonly appliedVersion: import("@angular/core").Signal<number>;
50
+ readonly activePageComponents: import("@angular/core").Signal<ReportComponent[]>;
51
+ readonly masterComponents: import("@angular/core").Signal<ReportComponent[]>;
52
+ readonly pageTokens: import("@angular/core").Signal<TextTokenContext>;
53
+ readonly masterTokens: import("@angular/core").Signal<TextTokenContext>;
48
54
  readonly snapper: CanvasSnapper;
55
+ readonly valueKeysElsewhere: (text: ReportComponent) => ReadonlySet<string>;
49
56
  private _reportData;
57
+ private _filterState;
50
58
  private _prompt;
51
59
  private _message;
52
60
  private _destroyRef;
53
61
  private _fitted;
54
- private _tokens;
55
62
  private _previousPageCount;
63
+ private _previousReportId;
56
64
  private _emittedPageId;
65
+ private _report;
66
+ private _pageValueComponents;
67
+ private _masterValueComponents;
68
+ private _masterNeeded;
69
+ private _pageValues;
70
+ private _masterValues;
71
+ private _valuesRevision;
72
+ private _valueKeysByLayer;
73
+ constructor();
57
74
  ngOnChanges(changes: SimpleChanges): void;
58
75
  get headingSizePx(): number;
59
76
  ngAfterViewInit(): void;
60
77
  get activePage(): ReportPage | null;
61
78
  get bands(): ReportHeaderFooter;
62
- get masterComponents(): ReportComponent[];
63
79
  get isMasterShown(): boolean;
64
80
  get isPageEditing(): boolean;
65
81
  get isMasterEditing(): boolean;
66
- get tokens(): TextTokenContext;
67
82
  toggleMasterMode(): void;
68
83
  addText(): void;
69
84
  onComponentRemoved(componentId: number): void;
85
+ onTextSaved(text: ReportComponent, html: string): void;
86
+ openValueSettings(text: ReportComponent, key: string): void;
70
87
  toggleMasterHidden(page: ReportPage): void;
71
88
  selectPage(index: number): void;
72
89
  addPage(): void;
@@ -85,6 +102,17 @@ export declare class ReportCanvasComponent implements OnChanges, AfterViewInit {
85
102
  onPositionChanged(position: {
86
103
  componentId: number;
87
104
  } & Record<string, number>): void;
105
+ private _init;
106
+ private _valueLayer;
107
+ private _watchValues;
108
+ private _reloadIfChanged;
109
+ private _requestMoved;
110
+ private _layerRequest;
111
+ private _shownValues;
112
+ private _loadValues;
113
+ private _tokenContext;
114
+ private _dropRemovedValueChips;
115
+ private _isMasterComponent;
88
116
  private get _snapThreshold();
89
117
  private _snapMove;
90
118
  private _snapResize;
@@ -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';
@@ -21,17 +24,39 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
21
24
  } & Record<string, number>>;
22
25
  openSettings: EventEmitter<ReportComponentModel>;
23
26
  readonly tokens: import("@angular/core").InputSignal<TextTokenContext>;
27
+ readonly valueKeysElsewhere: import("@angular/core").InputSignal<(text: ReportComponentModel) => ReadonlySet<string>>;
24
28
  readonly removed: import("@angular/core").OutputEmitterRef<number>;
29
+ readonly valueSettings: import("@angular/core").OutputEmitterRef<string>;
30
+ readonly textSaved: import("@angular/core").OutputEmitterRef<string>;
31
+ readonly valuesRemoved: import("@angular/core").OutputEmitterRef<number[]>;
25
32
  readonly textEditing: import("@angular/core").WritableSignal<boolean>;
33
+ readonly textHtml: import("@angular/core").WritableSignal<string>;
34
+ readonly shownElsewhere: () => ReadonlySet<string>;
26
35
  chartComponent: ComponentChartComponent;
27
36
  get resizeHandles(): readonly Handle[];
28
37
  readonly filterConfig: import("@angular/core").WritableSignal<FilterConfig>;
29
38
  readonly data: import("@angular/core").WritableSignal<ComponentData>;
30
39
  readonly loading: import("@angular/core").WritableSignal<boolean>;
40
+ readonly refreshing: import("@angular/core").WritableSignal<boolean>;
31
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>;
52
+ private readonly _text;
32
53
  private _refresh$;
54
+ private readonly _headerVersion;
55
+ private _shown;
56
+ private readonly _headerValues;
33
57
  private _reportData;
34
58
  private _filterState;
59
+ private _filterOptions;
35
60
  private _process;
36
61
  private _message;
37
62
  private _prompt;
@@ -40,11 +65,16 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
40
65
  private _destroyRef;
41
66
  private _zone;
42
67
  private _host;
68
+ private readonly _offeredFeatures;
69
+ private _touchedMark;
70
+ private _menuClick;
71
+ private _grainMoved;
43
72
  ngOnInit(): void;
44
73
  ngOnChanges(changes: SimpleChanges): void;
45
74
  get filterKey(): string;
46
75
  get isText(): boolean;
47
76
  editText(): void;
77
+ removeValue(key: string): void;
48
78
  onTextSaved(html: string): void;
49
79
  deleteText(): void;
50
80
  get truncated(): boolean;
@@ -55,11 +85,19 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
55
85
  chooseColumns(): void;
56
86
  applySettings(settings: ComponentSettings): void;
57
87
  exportCsv(): void;
88
+ onMarkClick(click: ReportMarkClick): void;
89
+ onMarkMiss(): void;
90
+ runMarkAction(action: ReportMarkAction): void;
91
+ drillTo(depth: number): void;
92
+ drillUp(): void;
58
93
  stopCanvasPan(event: Event): void;
59
94
  onComponentPointerDown(event: PointerEvent): void;
60
95
  onDragStart(event: PointerEvent): void;
61
96
  onResizeStart(event: PointerEvent, handle: Handle): void;
97
+ private _setTextHtml;
62
98
  private _buildFilterConfig;
99
+ private _rebuildHeaderOnNewState;
100
+ private _showsOtherValue;
63
101
  private _origin;
64
102
  private _track;
65
103
  private _emitGeometry;
@@ -70,7 +108,12 @@ export declare class ReportComponentComponent implements OnInit, OnChanges {
70
108
  private _round;
71
109
  private _applyGeometry;
72
110
  private _load;
111
+ private _loaded;
112
+ private _adoptDrill;
113
+ private _runMarkAction;
114
+ private _drillDown;
115
+ private _openMarkMenu;
73
116
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportComponentComponent, never>;
74
- 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; }; }, { "selectComponent": "selectComponent"; "positionChanged": "positionChanged"; "openSettings": "openSettings"; "removed": "removed"; }, never, never, true, never>;
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>;
75
118
  }
76
119
  export {};
@@ -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,13 @@
1
1
  import { RequestConfig } from '@firestitch/api';
2
2
  import { Observable } from 'rxjs';
3
- import { ChartGranularity, ComponentDataState, ComponentExportResponse, FilterGroupDefault, ReportComponentSql, ReportFilterLevel, ReportLocales, ReportTree, ResolvedFilterValue } from '../interfaces/report.interface';
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';
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> {
6
13
  private _api;
@@ -48,8 +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>;
58
+ pageValues(reportId: number, pageId: number, filters?: ResolvedFilterValue[], isExport?: boolean, config?: RequestConfig, matchAnyGroupIds?: number[]): Observable<ReportPageValue[]>;
51
59
  exportComponent(reportId: number, componentId: number, filters?: ResolvedFilterValue[], state?: ComponentDataState, config?: RequestConfig): Observable<ComponentExportResponse>;
52
- 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>;
53
61
  filterOptions(reportId: number, filterId: number, config?: RequestConfig): Observable<T>;
54
62
  componentSql(reportId: number, componentId: number, config?: RequestConfig): Observable<ReportComponentSql>;
55
63
  componentColumns(reportId: number, componentId: number, config?: RequestConfig): Observable<T>;
@@ -83,6 +91,14 @@ export declare class ReportData<T = any> {
83
91
  level?: ReportFilterLevel;
84
92
  default?: FilterGroupDefault | null;
85
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>;
86
102
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportData<any>, never>;
87
103
  static ɵprov: i0.ɵɵInjectableDeclaration<ReportData<any>>;
88
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>;
@@ -41,6 +48,9 @@ export declare class ComponentSettingsComponent implements OnInit {
41
48
  readonly sparklineMinPeriods = 2;
42
49
  readonly sparklineMaxPeriods = 60;
43
50
  readonly kpiCard: import("@angular/core").WritableSignal<boolean>;
51
+ readonly isValue: import("@angular/core").WritableSignal<boolean>;
52
+ readonly isFormula: import("@angular/core").WritableSignal<boolean>;
53
+ readonly formulaLine: import("@angular/core").Signal<string>;
44
54
  readonly increaseIs: import("@angular/core").WritableSignal<ReportChangePolarity>;
45
55
  readonly targetValue: import("@angular/core").WritableSignal<string | number>;
46
56
  readonly targetLabel: import("@angular/core").WritableSignal<string>;
@@ -55,9 +65,11 @@ export declare class ComponentSettingsComponent implements OnInit {
55
65
  readonly sqlError: import("@angular/core").WritableSignal<string>;
56
66
  readonly rows: import("@angular/core").WritableSignal<FilterRow[]>;
57
67
  readonly columnsError: import("@angular/core").WritableSignal<string>;
68
+ readonly typeOptions: FilterSettingsOption<ReportFilterType>[];
58
69
  private _filterableColumns;
59
70
  private _filters;
60
71
  private _groupsById;
72
+ private _pickedTypes;
61
73
  private readonly _typeLabels;
62
74
  private readonly _data;
63
75
  private readonly _dialogRef;
@@ -70,7 +82,17 @@ export declare class ComponentSettingsComponent implements OnInit {
70
82
  delete(): void;
71
83
  validateTarget: (control: AbstractControl) => void;
72
84
  save: () => Observable<ComponentSettingsResponse>;
73
- setExposure(row: FilterRow, target: 'report' | 'component', on: boolean): void;
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;
92
+ private _formulaLine;
93
+ private _dependentsNote;
94
+ private _layerValues;
95
+ private _valueName;
74
96
  private _seedKpiCard;
75
97
  private _savedKpiCard;
76
98
  private _kpiCardSettings;
@@ -80,6 +102,7 @@ export declare class ComponentSettingsComponent implements OnInit {
80
102
  private _padding;
81
103
  private _run;
82
104
  private _rebuildRows;
105
+ private _onPage;
83
106
  private _afterMutation;
84
107
  private _mutationError;
85
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;
@@ -0,0 +1,6 @@
1
+ export declare enum ReportValueFormula {
2
+ Change = "change",
3
+ PercentChange = "percent_change",
4
+ Ratio = "ratio",
5
+ Sum = "sum"
6
+ }