@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
@@ -6,4 +6,7 @@ export interface ReportChatViewerFilter {
6
6
  values?: unknown[];
7
7
  value?: string;
8
8
  preset?: ReportRelativeRange;
9
+ excludeValues?: unknown[];
10
+ min?: number;
11
+ max?: number;
9
12
  }
@@ -0,0 +1,5 @@
1
+ export interface ReportChatViewerSelection {
2
+ componentId: number;
3
+ valueKey?: string | null;
4
+ text?: string | null;
5
+ }
@@ -1,7 +1,19 @@
1
+ import { ReportChatViewerCrossFilter } from './report-chat-viewer-cross-filter.interface';
2
+ import { ReportChatViewerDetail } from './report-chat-viewer-detail.interface';
3
+ import { ReportChatViewerDrill } from './report-chat-viewer-drill.interface';
1
4
  import { ReportChatViewerFilter } from './report-chat-viewer-filter.interface';
5
+ import { ReportChatViewerSelection } from './report-chat-viewer-selection.interface';
6
+ import { ReportFilterMatch } from './report-filter-match.type';
2
7
  import { ChartGranularity } from './report.interface';
3
8
  export interface ReportChatViewerState {
4
9
  granularity: ChartGranularity | null;
5
10
  selectedComponentId: number | null;
6
11
  filters: ReportChatViewerFilter[];
12
+ match?: ReportFilterMatch;
13
+ viewId?: number | null;
14
+ viewChanged?: boolean;
15
+ crossFilters?: ReportChatViewerCrossFilter[];
16
+ drills?: ReportChatViewerDrill[];
17
+ detail?: ReportChatViewerDetail | null;
18
+ selection?: ReportChatViewerSelection;
7
19
  }
@@ -0,0 +1,6 @@
1
+ import { ChartGranularity } from './report.interface';
2
+ export interface ReportDrillCrumb {
3
+ level: ChartGranularity;
4
+ value: string | number | null;
5
+ label: string | null;
6
+ }
@@ -0,0 +1 @@
1
+ export type ReportDrillRefusal = 'notDrillable' | 'topChanged' | 'notChild' | 'badValue' | 'outsideParent' | 'tooDeep';
@@ -0,0 +1,5 @@
1
+ import { ChartGranularity } from './report.interface';
2
+ export interface ReportDrillStep {
3
+ level: ChartGranularity;
4
+ value: string | number | null;
5
+ }
@@ -0,0 +1 @@
1
+ export type ReportExportLineKind = 'group' | 'groupBy' | 'cross' | 'drill';
@@ -0,0 +1,8 @@
1
+ import { ReportExportLineKind } from './report-export-line-kind.type';
2
+ export interface ReportExportLine {
3
+ kind: ReportExportLineKind;
4
+ text: string;
5
+ groupId?: number;
6
+ crossFilterId?: number;
7
+ componentId?: number;
8
+ }
@@ -0,0 +1,9 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ReportExportSnapshot } from './report-export-snapshot.interface';
3
+ import { Report, ReportFilterGroup } from './report.interface';
4
+ export interface ReportExportLinesInput {
5
+ report: Report;
6
+ snapshot: ReportExportSnapshot;
7
+ pageId: number | null;
8
+ names: (group: ReportFilterGroup, values: unknown[]) => Observable<string[]>;
9
+ }
@@ -0,0 +1,15 @@
1
+ import { ReportViewConfig } from './report-view-config.interface';
2
+ import { ReportViewerFeature } from './report-viewer-feature.type';
3
+ import { ChartGranularity, ComponentDataState, FilterGroupValue, ReportFormatContext, ReportRelativeRange, ResolvedFilterValue } from './report.interface';
4
+ export interface ReportExportSnapshot {
5
+ view: ReportViewConfig;
6
+ values: Record<number, FilterGroupValue>;
7
+ presets: Record<number, ReportRelativeRange>;
8
+ filters: Record<number, ResolvedFilterValue[]>;
9
+ valueFilters: Record<number, ResolvedFilterValue[]>;
10
+ states: Record<number, ComponentDataState>;
11
+ frequency: ChartGranularity | null;
12
+ features: ReportViewerFeature[];
13
+ formatContext: ReportFormatContext;
14
+ viewLine: string | null;
15
+ }
@@ -0,0 +1,8 @@
1
+ import { ReportLocaleTag, ReportRelativeRange } from './report.interface';
2
+ export interface ReportFilterLineContext {
3
+ locale: ReportLocaleTag;
4
+ names?: readonly string[] | null;
5
+ preset?: ReportRelativeRange | null;
6
+ pageName?: string | null;
7
+ blankLabel?: string | null;
8
+ }
@@ -0,0 +1 @@
1
+ export type ReportFilterLineForm = 'chip' | 'line';
@@ -0,0 +1 @@
1
+ export type ReportFilterMatch = 'all' | 'any';
@@ -0,0 +1,4 @@
1
+ export interface ReportFilterOptionPair {
2
+ name: string;
3
+ value: unknown;
4
+ }
@@ -0,0 +1,6 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ReportFilterOptionsList } from './report-filter-options-list.interface';
3
+ export interface ReportFilterOptionsAsk {
4
+ seq: number;
5
+ fetch: Observable<ReportFilterOptionsList>;
6
+ }
@@ -0,0 +1,7 @@
1
+ import { ReportFilterOptionPair } from './report-filter-option-pair.interface';
2
+ export interface ReportFilterOptionsList {
3
+ seq: number;
4
+ options: ReportFilterOptionPair[];
5
+ truncated: boolean;
6
+ failed: boolean;
7
+ }
@@ -0,0 +1,6 @@
1
+ import { ResolvedFilterValue } from './report.interface';
2
+ export interface ReportFilterOptionsRequest {
3
+ filters: ResolvedFilterValue[];
4
+ matchAnyGroupIds?: number[];
5
+ selected?: (string | number)[];
6
+ }
@@ -0,0 +1,11 @@
1
+ import { Observable, Subject } from 'rxjs';
2
+ import { ReportFilterOptionsAsk } from './report-filter-options-ask.interface';
3
+ import { ReportFilterOptionsList } from './report-filter-options-list.interface';
4
+ export interface ReportFilterOptionsStream {
5
+ signature: string | null;
6
+ seq: number;
7
+ truncated: boolean;
8
+ failed: boolean;
9
+ requests$: Subject<ReportFilterOptionsAsk>;
10
+ lists$: Observable<ReportFilterOptionsList>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { ReportFilterOption } from './report.interface';
2
+ export interface ReportFilterOptions {
3
+ options: ReportFilterOption[];
4
+ truncated: boolean;
5
+ narrowedBy: number[];
6
+ selected: ReportFilterOption[];
7
+ }
@@ -0,0 +1 @@
1
+ export type ReportFilterSkip = 'windowedAxis' | 'comparedAxis' | 'multiColumn' | 'notOwned';
@@ -0,0 +1 @@
1
+ export type ReportMarkAction = 'drill' | 'crossFilter' | 'detail';
@@ -0,0 +1,13 @@
1
+ import { ReportMarkPoint } from './report-mark-point.interface';
2
+ export interface ReportMarkClick {
3
+ componentId: number;
4
+ points: ReportMarkPoint[];
5
+ measure: string | null;
6
+ value: number | null;
7
+ additive: boolean;
8
+ pointer: {
9
+ x: number;
10
+ y: number;
11
+ type: 'mouse' | 'touch' | 'pen';
12
+ };
13
+ }
@@ -0,0 +1,6 @@
1
+ import { ReportViewerFeature } from './report-viewer-feature.type';
2
+ import { ComponentData } from './report.interface';
3
+ export interface ReportMarkContext {
4
+ data: ComponentData | null;
5
+ features: readonly ReportViewerFeature[];
6
+ }
@@ -0,0 +1,6 @@
1
+ import { ReportMarkAction } from './report-mark-action.type';
2
+ export interface ReportMarkDecision {
3
+ outcome: 'none' | 'tooltip' | 'run' | 'menu';
4
+ actions: ReportMarkAction[];
5
+ touched: string | null;
6
+ }
@@ -0,0 +1,11 @@
1
+ export interface ReportMarkEvent {
2
+ pageX?: number;
3
+ pageY?: number;
4
+ ctrlKey?: boolean;
5
+ metaKey?: boolean;
6
+ pointerType?: string;
7
+ changedTouches?: ArrayLike<{
8
+ pageX: number;
9
+ pageY: number;
10
+ }>;
11
+ }
@@ -0,0 +1,8 @@
1
+ import { ChartGranularity } from './report.interface';
2
+ export interface ReportMarkPoint {
3
+ column: string;
4
+ raw: unknown;
5
+ label: string;
6
+ period?: string;
7
+ grain?: ChartGranularity;
8
+ }
@@ -0,0 +1,4 @@
1
+ export interface ReportTemporaryState {
2
+ crossFilters: unknown[];
3
+ detail: unknown;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { ReportDrillStep } from './report-drill-step.interface';
2
+ import { ReportSort } from './report.interface';
3
+ export interface ReportTileState {
4
+ sort?: ReportSort;
5
+ search?: string;
6
+ hidden?: string[];
7
+ drill?: ReportDrillStep[];
8
+ }
@@ -0,0 +1,4 @@
1
+ export interface ReportUrlLink {
2
+ viewId?: number | null;
3
+ personalViewId?: number | null;
4
+ }
@@ -0,0 +1 @@
1
+ export type ReportUrlValueName = (groupId: number, value: unknown) => string | null;
@@ -0,0 +1,4 @@
1
+ export interface ReportUrlWrite {
2
+ params: Record<string, string>;
3
+ tooLong: boolean;
4
+ }
@@ -0,0 +1,11 @@
1
+ import { ReportFilterMatch } from './report-filter-match.type';
2
+ import { ReportTileState } from './report-tile-state.interface';
3
+ import { ChartGranularity, FilterGroupDefault } from './report.interface';
4
+ export interface ReportViewConfig {
5
+ v: number;
6
+ pageId?: number;
7
+ groupBy?: ChartGranularity;
8
+ match?: ReportFilterMatch;
9
+ groups?: Record<number, FilterGroupDefault | null>;
10
+ tiles?: Record<number, ReportTileState>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { ReportViewConfig } from './report-view-config.interface';
2
+ export interface ReportViewCreate {
3
+ name: string;
4
+ config: ReportViewConfig;
5
+ shared?: boolean;
6
+ personalDefault?: boolean;
7
+ }
@@ -0,0 +1,4 @@
1
+ export interface ReportViewDeleted {
2
+ id: number;
3
+ state: string;
4
+ }
@@ -0,0 +1,7 @@
1
+ import { Observable } from 'rxjs';
2
+ export interface ReportViewDialogData {
3
+ title: string;
4
+ name: string;
5
+ note: string | null;
6
+ save: (name: string) => Observable<unknown>;
7
+ }
@@ -0,0 +1,5 @@
1
+ export interface ReportViewDropped {
2
+ groups: number[];
3
+ tiles: number[];
4
+ page: boolean;
5
+ }
@@ -0,0 +1,10 @@
1
+ export interface ReportViewMenuItem {
2
+ kind: 'view' | 'saveChanges' | 'saveAsNew' | 'rename' | 'setDefault' | 'clearDefault' | 'share' | 'unshare' | 'delete' | 'resetToView' | 'resetToDefaults';
3
+ label: string;
4
+ disabled: boolean;
5
+ tooltip: string | null;
6
+ divider: boolean;
7
+ viewId: number | null;
8
+ open: boolean;
9
+ icon: 'star' | 'people' | null;
10
+ }
@@ -0,0 +1,11 @@
1
+ export interface ReportViewSummary {
2
+ id: number;
3
+ name: string;
4
+ shared: boolean;
5
+ mine: boolean;
6
+ personalDefault: boolean;
7
+ ownerName: string | null;
8
+ canChange: boolean;
9
+ canDelete: boolean;
10
+ modifyDate: string;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { ReportViewConfig } from './report-view-config.interface';
2
+ import { ReportViewDropped } from './report-view-dropped.interface';
3
+ import { ReportViewSummary } from './report-view-summary.interface';
4
+ export interface ReportView extends ReportViewSummary {
5
+ config: ReportViewConfig;
6
+ dropped: ReportViewDropped;
7
+ }
@@ -0,0 +1 @@
1
+ export type ReportViewerFeature = 'excludeValues' | 'numberRange' | 'matchAny' | 'pageScope' | 'cascadingOptions' | 'scopeFilters' | 'views' | 'drill' | 'crossFilter' | 'detail';
@@ -0,0 +1,7 @@
1
+ import { ReportViewSummary } from './report-view-summary.interface';
2
+ import { ReportView } from './report-view.interface';
3
+ export interface ReportViews {
4
+ views: ReportViewSummary[];
5
+ canShare: boolean;
6
+ myDefault: ReportView | null;
7
+ }
@@ -8,6 +8,10 @@ import { ReportListColumnFormat } from '../enums/report-list-column-format.enum'
8
8
  import { ReportNumberUnits } from '../enums/report-number-units.enum';
9
9
  import { ReportValueFormat } from '../enums/report-value-format.enum';
10
10
  import { ReportValueFormula } from '../enums/report-value-formula.enum';
11
+ import { ComponentDataApplied } from './component-data-applied.interface';
12
+ import { ComponentDataDrill } from './component-data-drill.interface';
13
+ import { ReportDrillStep } from './report-drill-step.interface';
14
+ import { ReportViewerFeature } from './report-viewer-feature.type';
11
15
  export type ReportLocaleTag = string;
12
16
  export type ReportCurrencyCode = string;
13
17
  export interface Report {
@@ -26,6 +30,7 @@ export interface Report {
26
30
  pages: ReportPage[];
27
31
  master: ReportMaster | null;
28
32
  filterGroups: ReportFilterGroup[];
33
+ viewerFeatures?: ReportViewerFeature[];
29
34
  }
30
35
  export interface ReportMaster {
31
36
  id: number;
@@ -240,11 +245,12 @@ export interface ReportSort {
240
245
  column: string;
241
246
  direction?: 'asc' | 'desc';
242
247
  }
243
- export type ReportFilterType = 'dateRange' | 'select' | 'keyword';
244
- export type ReportFilterLevel = 'component' | 'report' | 'both';
248
+ export type ReportFilterType = 'dateRange' | 'select' | 'keyword' | 'numberRange';
249
+ export type ReportFilterLevel = 'component' | 'report' | 'both' | 'page';
245
250
  export interface ReportFilterableColumn {
246
251
  column: string;
247
252
  type: ReportFilterType;
253
+ types?: ReportFilterType[];
248
254
  }
249
255
  export interface ReportFilter {
250
256
  id: number;
@@ -270,6 +276,10 @@ export interface ReportFilterGroup {
270
276
  default?: FilterGroupDefault;
271
277
  } & Record<string, unknown>;
272
278
  filters: ReportFilter[];
279
+ pageId?: number | null;
280
+ componentIds?: number[];
281
+ multiColumn?: boolean;
282
+ blankLabel?: string | null;
273
283
  }
274
284
  export interface FilterGroupDefault {
275
285
  relative?: string;
@@ -277,6 +287,9 @@ export interface FilterGroupDefault {
277
287
  end?: string;
278
288
  values?: unknown[];
279
289
  value?: string;
290
+ excludeValues?: unknown[];
291
+ min?: number;
292
+ max?: number;
280
293
  }
281
294
  export interface FilterGroupValue {
282
295
  start?: Date | string | null;
@@ -284,10 +297,13 @@ export interface FilterGroupValue {
284
297
  values?: unknown[];
285
298
  value?: string;
286
299
  preset?: string;
300
+ excludeValues?: unknown[];
301
+ min?: number | null;
302
+ max?: number | null;
287
303
  }
288
304
  export type ReportRelativeRange = 'thisWeek' | 'lastWeek' | 'last7Days' | 'last30Days' | 'last3Months' | 'last6Months' | 'last12Months' | 'thisMonth' | 'thisQuarter' | 'thisYear' | 'yearToDate';
289
305
  export interface ReportUrlParams {
290
- groups: Map<number, string>;
306
+ groups: Map<number, FilterGroupDefault | null>;
291
307
  listSorts: Map<number, string>;
292
308
  listSearches: Map<number, string>;
293
309
  listHidden: Map<number, string>;
@@ -307,6 +323,9 @@ export interface ResolvedFilterValue {
307
323
  values?: unknown[];
308
324
  value?: string;
309
325
  preset?: ReportRelativeRange;
326
+ excludeValues?: unknown[];
327
+ min?: number;
328
+ max?: number;
310
329
  }
311
330
  export interface ComponentDataState {
312
331
  sort?: ReportSort;
@@ -315,6 +334,9 @@ export interface ComponentDataState {
315
334
  frequency?: ChartGranularity;
316
335
  search?: string;
317
336
  hiddenColumns?: string[];
337
+ drill?: ReportDrillStep[];
338
+ matchAnyGroupIds?: number[];
339
+ unchangedIfUnreached?: true;
318
340
  }
319
341
  export interface ComponentData {
320
342
  columns: string[];
@@ -336,6 +358,8 @@ export interface ComponentData {
336
358
  windows?: Record<string, WindowMeta>;
337
359
  kpi?: ComponentKpi | null;
338
360
  partialPeriod?: string | null;
361
+ applied?: ComponentDataApplied;
362
+ drill?: ComponentDataDrill;
339
363
  }
340
364
  export type TimeframeSource = 'filter' | 'range' | 'fixed' | 'none';
341
365
  export interface ComponentTimeframe {
@@ -0,0 +1,4 @@
1
+ export interface TileLoadResult<T> {
2
+ data: T | null;
3
+ error: string | null;
4
+ }
@@ -0,0 +1,20 @@
1
+ import { ComponentDataDrill } from './interfaces/component-data-drill.interface';
2
+ import { ReportChartHit } from './interfaces/report-chart-hit.interface';
3
+ import { ReportDrillStep } from './interfaces/report-drill-step.interface';
4
+ import { ReportMarkAction } from './interfaces/report-mark-action.type';
5
+ import { ReportMarkClick } from './interfaces/report-mark-click.interface';
6
+ import { ReportMarkContext } from './interfaces/report-mark-context.interface';
7
+ import { ReportMarkDecision } from './interfaces/report-mark-decision.interface';
8
+ import { ReportMarkEvent } from './interfaces/report-mark-event.interface';
9
+ import { ReportMarkPoint } from './interfaces/report-mark-point.interface';
10
+ import { ComponentData, ReportComponent, ReportFormatContext } from './interfaces/report.interface';
11
+ export declare const MARK_ACTION_LABELS: Record<ReportMarkAction, string>;
12
+ export declare function markPointer(event: ReportMarkEvent | null | undefined): ReportMarkClick['pointer'];
13
+ export declare function chartMarkClick(component: ReportComponent, data: ComponentData, context: ReportFormatContext, hit: ReportChartHit, event: ReportMarkEvent | null | undefined): ReportMarkClick | null;
14
+ export declare function kpiMarkClick(component: ReportComponent, data: ComponentData | null, event: ReportMarkEvent | null | undefined): ReportMarkClick;
15
+ export declare function tileMarkActions(context: ReportMarkContext): ReportMarkAction[];
16
+ export declare function markActions(click: ReportMarkClick, context: ReportMarkContext): ReportMarkAction[];
17
+ export declare function decideMarkClick(click: ReportMarkClick, actions: readonly ReportMarkAction[], touched: string | null): ReportMarkDecision;
18
+ export declare function markKey(click: ReportMarkClick): string;
19
+ export declare function drillPoint(click: ReportMarkClick, drill: ComponentDataDrill | null | undefined): ReportMarkPoint | null;
20
+ export declare function drillDownPath(drill: ComponentDataDrill | null | undefined, click: ReportMarkClick): ReportDrillStep[] | null;
@@ -4,6 +4,7 @@ import { ReportChartDateLabel } from './enums/report-chart-date-label.enum';
4
4
  import { ReportChartLineStyle } from './enums/report-chart-line-style.enum';
5
5
  import { ReportChartMarkStat } from './enums/report-chart-mark-stat.enum';
6
6
  import { AxisChartType, ChartConfig, ChartGranularity, ChartMeasure, ChartValueAxis, ComponentData, LegendPosition, ListColumn, ListConfig, ReportComponent, ReportFormatContext, ReportLocaleTag, WaterfallStepKind } from './interfaces/report.interface';
7
+ import { ReportMarkAction } from './interfaces/report-mark-action.type';
7
8
  export declare const PERCENT_AXIS_MAX = 1;
8
9
  export declare const PERCENT_AXIS_INTERVAL = 0.25;
9
10
  export declare const RANK_AXIS_MIN = 1;
@@ -40,6 +41,8 @@ export declare function colorByColumn(config: ChartConfig): string | undefined;
40
41
  export interface ExtractedChartSeries {
41
42
  categories: string[];
42
43
  series: ExtractedChartSeriesItem[];
44
+ rawCategories: unknown[];
45
+ rawGroups: unknown[];
43
46
  }
44
47
  export interface ExtractedChartSeriesItem {
45
48
  name: string;
@@ -49,6 +52,10 @@ export interface ExtractedChartSeriesItem {
49
52
  measureIndex: number;
50
53
  }
51
54
  export declare function extractChartSeries(component: ReportComponent, data: ComponentData): ExtractedChartSeries;
55
+ export declare function chartColumns(config: ChartConfig, data: ComponentData): {
56
+ xColumn: string;
57
+ groupColumn: string | undefined;
58
+ };
52
59
  export declare function seriesColor(series: ExtractedChartSeriesItem): string | undefined;
53
60
  export declare function seriesHex(series: ExtractedChartSeriesItem, index: number): string;
54
61
  export declare function measureLineStyle(measure: ChartMeasure | undefined): ReportChartLineStyle | undefined;
@@ -74,13 +81,17 @@ export interface ExtractedWaterfall {
74
81
  }
75
82
  export declare const WATERFALL_TOTAL_LABEL = "Total";
76
83
  export declare function extractWaterfall(component: ReportComponent, data: ComponentData): ExtractedWaterfall;
77
- export declare function buildChartOption(component: ReportComponent, data: ComponentData, context: ReportFormatContext): EChartsOption;
84
+ export declare function buildChartOption(component: ReportComponent, data: ComponentData, context: ReportFormatContext, legendSelected?: Readonly<Record<string, boolean>>, actions?: readonly ReportMarkAction[]): EChartsOption;
85
+ export declare function markActionHint(actions: readonly ReportMarkAction[]): string | null;
86
+ export declare function partialSegmentId(owner: number): string;
87
+ export declare function partialSegmentOwner(seriesId: string | null | undefined): number | null;
78
88
  export declare function priorSeriesStyles(config: ChartConfig, data: ComponentData, extracted: ExtractedChartSeries): {
79
89
  colors: string[];
80
90
  priors: boolean[];
81
91
  } | null;
82
92
  export declare function rankValueAxes(extracted: ExtractedChartSeries, data: ComponentData, config: ChartConfig): boolean[];
83
93
  export declare function referencePeak(references: DrawnReference[], axisIndex: ValueAxisIndex): number;
94
+ export declare function categoryAxisTitle(config: ChartConfig, data: ComponentData): string | undefined;
84
95
  export declare function resolveLegendPosition(config: ChartConfig, seriesCount: number, colorBy?: boolean): LegendPosition;
85
96
  export declare function dataLabelOption(mode: ReportChartDataLabels | undefined, formatter: DataLabelFormatter): SeriesDataLabels | null;
86
97
  export declare function valueAxisRange(axis: ChartValueAxis | undefined): {
@@ -0,0 +1,8 @@
1
+ import { ReportChatViewerDrill } from './interfaces/report-chat-viewer-drill.interface';
2
+ import { ReportChatViewerState } from './interfaces/report-chat-viewer-state.interface';
3
+ import { ReportViewConfig } from './interfaces/report-view-config.interface';
4
+ import { ReportLocaleTag } from './interfaces/report.interface';
5
+ export declare const CHAT_DRILLS_MAX = 10;
6
+ export declare const CHAT_LABEL_MAX = 100;
7
+ export declare function chatViewerMatch(snapshot: ReportViewConfig): Pick<ReportChatViewerState, 'match'>;
8
+ export declare function chatViewerDrills(snapshot: ReportViewConfig, locale: ReportLocaleTag): ReportChatViewerDrill[];
@@ -0,0 +1,2 @@
1
+ import { Provider } from '@angular/core';
2
+ export declare function provideReportDatePicker(): Provider;
@@ -1,34 +1,38 @@
1
1
  import { IFilterConfigItem } from '@firestitch/filter';
2
2
  import { Observable } from 'rxjs';
3
3
  import { ReportData } from './data/report.data';
4
+ import { ReportFilterMatch } from './interfaces/report-filter-match.type';
5
+ import { ReportFilterOptionPair } from './interfaces/report-filter-option-pair.interface';
6
+ import { ReportViewerFeature } from './interfaces/report-viewer-feature.type';
4
7
  import { ChartGranularity, FilterGroupValue, Report, ReportFilterGroup, ReportLocaleTag } from './interfaces/report.interface';
8
+ import { ReportFilterOptionsService } from './services/report-filter-options.service';
5
9
  export declare function dateBoundString(value: Date | string | null | undefined): string | undefined;
6
10
  export declare function dateBoundLabel(value: Date | string | null | undefined, locale: ReportLocaleTag): string | null;
7
11
  export declare function dateFromBound(value: string | null | undefined): Date | null;
8
12
  export declare function dateToBound(value: Date | null | undefined): string | null;
9
13
  export declare function relativeLabel(relative: string): string;
10
- export declare const GROUP_PARAM_PREFIX = "g";
11
- export declare function groupItemName(group: Pick<ReportFilterGroup, 'id'>): string;
12
14
  export declare const GROUP_BY_ITEM = "groupBy";
13
- export declare function loadGroupOptions(group: ReportFilterGroup, reportData: ReportData, reportId: number): Observable<{
14
- name: string;
15
- value: unknown;
16
- }[]>;
17
- export declare function resolveOptionValues(options$: Observable<{
18
- name: string;
19
- value: unknown;
20
- }[]>, values: unknown[]): Observable<{
21
- name: string;
22
- value: unknown;
23
- }[]>;
24
- export declare function matchOptions(options$: Observable<{
25
- name: string;
26
- value: unknown;
27
- }[]>, keyword?: string): Observable<{
28
- name: string;
29
- value: unknown;
30
- }[]>;
31
- export declare function filterItemForGroup(group: ReportFilterGroup, reportData: ReportData, reportId: number, initial?: FilterGroupValue): IFilterConfigItem;
15
+ export declare const VIEW_PARAM = "rv";
16
+ export declare const PERSONAL_VIEW_PARAM = "rpv";
17
+ export declare const FORMAT_PARAM = "rf";
18
+ export declare const PAGE_PARAM = "page";
19
+ export type ItemRangeEnd = 'min' | 'max' | 'from' | 'to';
20
+ export declare function itemRangeName(name: string, end: ItemRangeEnd): string;
21
+ export declare function groupParamKeys(groups: readonly Pick<ReportFilterGroup, 'id' | 'label' | 'filters'>[]): Map<number, string>;
22
+ export declare function groupParamKey(group: Pick<ReportFilterGroup, 'id' | 'label' | 'filters'>, groups: readonly Pick<ReportFilterGroup, 'id' | 'label' | 'filters'>[]): string;
23
+ export declare function groupItemName(group: ReportFilterGroup, report: Report | null): string;
24
+ export declare function loadGroupOptions(group: ReportFilterGroup, reportData: ReportData, reportId: number): Observable<ReportFilterOptionPair[]>;
25
+ export declare function resolveOptionValues(options$: Observable<ReportFilterOptionPair[]>, values: unknown[], label?: (value: unknown) => string | null): Observable<ReportFilterOptionPair[]>;
26
+ export declare function matchOptions(options$: Observable<ReportFilterOptionPair[]>, keyword?: string): Observable<ReportFilterOptionPair[]>;
27
+ export declare const OPTIONS_TRUNCATED_NOTE = "Showing the first 500. Type to narrow.";
28
+ export declare const OPTIONS_FAILED_NOTE = "Could not load the list.";
29
+ export declare function filterItemForGroup(group: ReportFilterGroup, options: ReportFilterOptionsService, report: Report | null, initial?: FilterGroupValue, features?: readonly ReportViewerFeature[]): IFilterConfigItem;
30
+ export declare function isMatchAnyGroup(group: ReportFilterGroup, pageId: number | null): boolean;
31
+ export declare function reportBarGroups(report: Report | null, pageId: number | null): ReportFilterGroup[];
32
+ export declare function hasPageGroup(report: Report | null): boolean;
33
+ export declare const MATCH_ITEM = "match";
34
+ export declare function matchFilterItem(report: Report | null, groups: ReportFilterGroup[], pageId: number | null, match: ReportFilterMatch): IFilterConfigItem | null;
35
+ export declare function matchFromQuery(query: Record<string, unknown>): ReportFilterMatch;
32
36
  export declare const LIST_SEARCH_ITEM = "listSearch";
33
37
  export declare const LIST_SEARCH_MAX_LENGTH = 100;
34
38
  export declare function listSearchItem(value: string | null): IFilterConfigItem;
@@ -36,7 +40,8 @@ export declare function hasTimeSeriesChart(report: Report | null): boolean;
36
40
  export declare function isGranularityOffered(report: Report, granularity: ChartGranularity | null): boolean;
37
41
  export declare function groupByFilterItem(report: Report, initial?: ChartGranularity | null): IFilterConfigItem | null;
38
42
  export declare function groupBySignature(report: Report | null): string;
39
- export declare function groupValuesFromQuery(query: Record<string, any>, groups: ReportFilterGroup[]): {
43
+ export declare function groupValuesFromQuery(query: Record<string, any>, groups: ReportFilterGroup[], report: Report | null): {
40
44
  groupId: number;
41
45
  value: FilterGroupValue | null;
42
46
  }[];
47
+ export declare function groupValueSignature(value: FilterGroupValue | null | undefined): string;
@@ -0,0 +1,2 @@
1
+ import { ReportComponent } from './interfaces/report.interface';
2
+ export declare function isTile(component: Pick<ReportComponent, 'type'> | null | undefined): boolean;