@firestitch/report 18.6.1 → 18.8.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 (97) hide show
  1. package/app/reports/components/component-chart/component-chart.component.d.ts +6 -7
  2. package/app/reports/components/component-kpi/component-kpi.component.d.ts +17 -9
  3. package/app/reports/components/component-kpi/components/sparkline/sparkline.component.d.ts +8 -0
  4. package/app/reports/components/component-list/component-list.component.d.ts +39 -10
  5. package/app/reports/components/component-note/component-note.component.d.ts +12 -0
  6. package/app/reports/components/report-canvas/report-canvas.component.d.ts +0 -10
  7. package/app/reports/components/report-component/report-component.component.d.ts +5 -12
  8. package/app/reports/data/report.data.d.ts +2 -3
  9. package/app/reports/dialogs/component-settings/component-settings.component.d.ts +34 -2
  10. package/app/reports/dialogs/list-columns/list-columns.component.d.ts +23 -0
  11. package/app/reports/dialogs/report-settings/report-locale-patch.d.ts +5 -0
  12. package/app/reports/dialogs/report-settings/report-settings.component.d.ts +20 -2
  13. package/app/reports/enums/report-change-polarity.enum.d.ts +5 -0
  14. package/app/reports/enums/report-chart-color.enum.d.ts +12 -0
  15. package/app/reports/enums/report-chart-data-labels.enum.d.ts +6 -0
  16. package/app/reports/enums/report-chart-date-label.enum.d.ts +5 -0
  17. package/app/reports/enums/report-chart-line-style.enum.d.ts +5 -0
  18. package/app/reports/enums/report-chart-mark-stat.enum.d.ts +6 -0
  19. package/app/reports/enums/report-kpi-trend.enum.d.ts +5 -0
  20. package/app/reports/enums/report-list-column-format.enum.d.ts +6 -0
  21. package/app/reports/enums/report-number-units.enum.d.ts +6 -0
  22. package/app/reports/enums/report-value-format.enum.d.ts +5 -0
  23. package/app/reports/export/offscreen-chart.d.ts +2 -2
  24. package/app/reports/export/report-export-collector.service.d.ts +37 -8
  25. package/app/reports/export/report-pdf.service.d.ts +6 -0
  26. package/app/reports/export/report-pptx.service.d.ts +24 -0
  27. package/app/reports/format.d.ts +64 -3
  28. package/app/reports/interfaces/report-chat-viewer-filter.interface.d.ts +2 -0
  29. package/app/reports/interfaces/report.interface.d.ts +205 -14
  30. package/app/reports/kpi-card.d.ts +48 -0
  31. package/app/reports/layout.d.ts +0 -9
  32. package/app/reports/list-config.d.ts +16 -0
  33. package/app/reports/option-builder.d.ts +76 -9
  34. package/app/reports/output-notes.d.ts +14 -0
  35. package/app/reports/pipes/report-date.pipe.d.ts +2 -1
  36. package/app/reports/pipes/report-number.pipe.d.ts +8 -0
  37. package/app/reports/pipes/report-output.pipe.d.ts +10 -0
  38. package/app/reports/report-filter-items.d.ts +5 -2
  39. package/app/reports/report-url-state.d.ts +4 -0
  40. package/app/reports/services/report-filter-state.service.d.ts +27 -2
  41. package/app/reports/theme/palette.d.ts +6 -0
  42. package/app/reports/theme/typography.d.ts +2 -0
  43. package/esm2022/app/reports/components/component-chart/component-chart.component.mjs +23 -20
  44. package/esm2022/app/reports/components/component-kpi/component-kpi.component.mjs +56 -29
  45. package/esm2022/app/reports/components/component-kpi/components/sparkline/sparkline.component.mjs +19 -0
  46. package/esm2022/app/reports/components/component-list/component-list.component.mjs +218 -32
  47. package/esm2022/app/reports/components/component-note/component-note.component.mjs +30 -0
  48. package/esm2022/app/reports/components/report-canvas/report-canvas.component.mjs +7 -61
  49. package/esm2022/app/reports/components/report-component/report-component.component.mjs +99 -100
  50. package/esm2022/app/reports/data/report.data.mjs +20 -7
  51. package/esm2022/app/reports/dialogs/component-settings/component-settings.component.mjs +133 -13
  52. package/esm2022/app/reports/dialogs/list-columns/list-columns.component.mjs +56 -0
  53. package/esm2022/app/reports/dialogs/report-settings/report-locale-patch.mjs +13 -0
  54. package/esm2022/app/reports/dialogs/report-settings/report-settings.component.mjs +138 -20
  55. package/esm2022/app/reports/enums/report-change-polarity.enum.mjs +11 -0
  56. package/esm2022/app/reports/enums/report-chart-color.enum.mjs +19 -0
  57. package/esm2022/app/reports/enums/report-chart-data-labels.enum.mjs +13 -0
  58. package/esm2022/app/reports/enums/report-chart-date-label.enum.mjs +13 -0
  59. package/esm2022/app/reports/enums/report-chart-line-style.enum.mjs +12 -0
  60. package/esm2022/app/reports/enums/report-chart-mark-stat.enum.mjs +12 -0
  61. package/esm2022/app/reports/enums/report-kpi-trend.enum.mjs +10 -0
  62. package/esm2022/app/reports/enums/report-list-column-format.enum.mjs +14 -0
  63. package/esm2022/app/reports/enums/report-number-units.enum.mjs +14 -0
  64. package/esm2022/app/reports/enums/report-value-format.enum.mjs +13 -0
  65. package/esm2022/app/reports/export/offscreen-chart.mjs +5 -4
  66. package/esm2022/app/reports/export/report-export-collector.service.mjs +186 -40
  67. package/esm2022/app/reports/export/report-pdf.service.mjs +332 -67
  68. package/esm2022/app/reports/export/report-pptx.service.mjs +765 -106
  69. package/esm2022/app/reports/format.mjs +917 -57
  70. package/esm2022/app/reports/interfaces/report-chat-viewer-filter.interface.mjs +1 -1
  71. package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
  72. package/esm2022/app/reports/kpi-card.mjs +174 -0
  73. package/esm2022/app/reports/layout.mjs +1 -46
  74. package/esm2022/app/reports/list-config.mjs +106 -0
  75. package/esm2022/app/reports/option-builder.mjs +1457 -117
  76. package/esm2022/app/reports/output-notes.mjs +158 -0
  77. package/esm2022/app/reports/pipes/report-date.pipe.mjs +7 -6
  78. package/esm2022/app/reports/pipes/report-number.pipe.mjs +25 -0
  79. package/esm2022/app/reports/pipes/report-output.pipe.mjs +28 -0
  80. package/esm2022/app/reports/report-filter-items.mjs +28 -3
  81. package/esm2022/app/reports/report-url-state.mjs +56 -15
  82. package/esm2022/app/reports/services/report-filter-state.service.mjs +274 -22
  83. package/esm2022/app/reports/theme/echarts.mjs +8 -2
  84. package/esm2022/app/reports/theme/palette.mjs +35 -1
  85. package/esm2022/app/reports/theme/typography.mjs +8 -1
  86. package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +2 -2
  87. package/esm2022/app/reports/views/report/report.component.mjs +3 -4
  88. package/esm2022/public_api.mjs +10 -1
  89. package/fesm2022/{firestitch-report-echarts-Djtmaxj1.mjs → firestitch-report-echarts-qCBE3LqM.mjs} +9 -3
  90. package/fesm2022/firestitch-report-echarts-qCBE3LqM.mjs.map +1 -0
  91. package/fesm2022/{firestitch-report-firestitch-report-D3zseBZc.mjs → firestitch-report-firestitch-report-DbsWbE-j.mjs} +5523 -875
  92. package/fesm2022/firestitch-report-firestitch-report-DbsWbE-j.mjs.map +1 -0
  93. package/fesm2022/firestitch-report.mjs +1 -1
  94. package/package.json +1 -1
  95. package/public_api.d.ts +9 -0
  96. package/fesm2022/firestitch-report-echarts-Djtmaxj1.mjs.map +0 -1
  97. package/fesm2022/firestitch-report-firestitch-report-D3zseBZc.mjs.map +0 -1
@@ -0,0 +1,56 @@
1
+ import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';
2
+ import { MatButton } from '@angular/material/button';
3
+ import { MatCheckbox } from '@angular/material/checkbox';
4
+ import { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent, MatDialogRef, } from '@angular/material/dialog';
5
+ import { FsDialogModule } from '@firestitch/dialog';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@firestitch/dialog";
8
+ // Which of a plain list's columns the viewer sees. One checkbox per column,
9
+ // and the last one still checked is disabled, so the list always keeps a
10
+ // column. Done closes with the hidden names, in the list's order; Cancel
11
+ // closes with nothing. Nothing here is validated, so there is no fsForm.
12
+ export class ListColumnsComponent {
13
+ data = inject(MAT_DIALOG_DATA);
14
+ columns = this.data.columns;
15
+ hidden = signal(new Set(this.data.hidden));
16
+ // How many columns are still checked.
17
+ shownCount = computed(() => this.columns
18
+ .filter((column) => !this.hidden().has(column.column))
19
+ .length);
20
+ _dialogRef = inject(MatDialogRef);
21
+ // Whether a column's box is the last one checked, which cannot be cleared.
22
+ isLastShown(name) {
23
+ return this.shownCount() === 1 && !this.hidden().has(name);
24
+ }
25
+ toggle(name, shown) {
26
+ this.hidden.update((hidden) => {
27
+ const next = new Set(hidden);
28
+ if (shown) {
29
+ next.delete(name);
30
+ }
31
+ else {
32
+ next.add(name);
33
+ }
34
+ return next;
35
+ });
36
+ }
37
+ done() {
38
+ this._dialogRef.close(this.columns
39
+ .map((column) => column.column)
40
+ .filter((name) => this.hidden().has(name)));
41
+ }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ListColumnsComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <fs-dialog-title>\n Columns\n </fs-dialog-title>\n <mat-dialog-content>\n <div class=\"fs-column.gap-xs\">\n @for (column of columns; track column.column) {\n <mat-checkbox\n class=\"column-option\"\n [checked]=\"!hidden().has(column.column)\"\n [disabled]=\"isLastShown(column.column)\"\n (change)=\"toggle(column.column, $event.checked)\">\n {{ column.label }}\n </mat-checkbox>\n }\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"done()\">\n Done\n </button>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [".column-option{overflow-wrap:anywhere}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FsDialogModule }, { kind: "component", type: i1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { kind: "component", type: i1.FsDialogTitleComponent, selector: "fs-dialog-title", inputs: ["close", "dockToggle", "back"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListColumnsComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
48
+ MatButton,
49
+ MatCheckbox,
50
+ MatDialogActions,
51
+ MatDialogClose,
52
+ MatDialogContent,
53
+ FsDialogModule,
54
+ ], template: "<fs-dialog>\n <fs-dialog-title>\n Columns\n </fs-dialog-title>\n <mat-dialog-content>\n <div class=\"fs-column.gap-xs\">\n @for (column of columns; track column.column) {\n <mat-checkbox\n class=\"column-option\"\n [checked]=\"!hidden().has(column.column)\"\n [disabled]=\"isLastShown(column.column)\"\n (change)=\"toggle(column.column, $event.checked)\">\n {{ column.label }}\n </mat-checkbox>\n }\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"done()\">\n Done\n </button>\n <button\n type=\"button\"\n mat-button\n [mat-dialog-close]=\"undefined\">\n Cancel\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [".column-option{overflow-wrap:anywhere}\n"] }]
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9kaWFsb2dzL2xpc3QtY29sdW1ucy9saXN0LWNvbHVtbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2RpYWxvZ3MvbGlzdC1jb2x1bW5zL2xpc3QtY29sdW1ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUNMLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxHQUNsRixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBV3BELDRFQUE0RTtBQUM1RSx5RUFBeUU7QUFDekUseUVBQXlFO0FBQ3pFLHlFQUF5RTtBQWV6RSxNQUFNLE9BQU8sb0JBQW9CO0lBRWYsSUFBSSxHQUFHLE1BQU0sQ0FBd0IsZUFBZSxDQUFDLENBQUM7SUFFdEQsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBRTVCLE1BQU0sR0FBRyxNQUFNLENBQXNCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUVoRixzQ0FBc0M7SUFDdEIsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTztTQUNyRCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckQsTUFBTSxDQUFDLENBQUM7SUFFTSxVQUFVLEdBQUcsTUFBTSxDQUErQyxZQUFZLENBQUMsQ0FBQztJQUVqRywyRUFBMkU7SUFDcEUsV0FBVyxDQUFDLElBQVk7UUFDN0IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVksRUFBRSxLQUFjO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFN0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTzthQUMvQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDOUIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO3dHQXRDVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RUNyQ2pDLDIxQkFpQ0Esa0dESkksU0FBUyxpTEFDVCxXQUFXLHdWQUNYLGdCQUFnQiw0SEFDaEIsY0FBYyxxTEFDZCxnQkFBZ0Isd0dBQ2hCLGNBQWM7OzRGQUdMLG9CQUFvQjtrQkFkaEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxTQUFTO3dCQUNULFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsY0FBYztxQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQge1xuICBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RDb2x1bW5zRGlhbG9nRGF0YSB7XG4gIC8vIFRoZSBsaXN0J3MgY29uZmlndXJlZCBjb2x1bW5zLCBpbiBvcmRlciwgZWFjaCB3aXRoIHRoZSBoZWFkaW5nIGl0IHNob3dzLlxuICBjb2x1bW5zOiB7IGNvbHVtbjogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXTtcbiAgLy8gVGhlIG5hbWVzIG9mIHRoZSBjb2x1bW5zIHRoZSB2aWV3ZXIgaGFzIGhpZGRlbi5cbiAgaGlkZGVuOiBzdHJpbmdbXTtcbn1cblxuXG4vLyBXaGljaCBvZiBhIHBsYWluIGxpc3QncyBjb2x1bW5zIHRoZSB2aWV3ZXIgc2Vlcy4gT25lIGNoZWNrYm94IHBlciBjb2x1bW4sXG4vLyBhbmQgdGhlIGxhc3Qgb25lIHN0aWxsIGNoZWNrZWQgaXMgZGlzYWJsZWQsIHNvIHRoZSBsaXN0IGFsd2F5cyBrZWVwcyBhXG4vLyBjb2x1bW4uIERvbmUgY2xvc2VzIHdpdGggdGhlIGhpZGRlbiBuYW1lcywgaW4gdGhlIGxpc3QncyBvcmRlcjsgQ2FuY2VsXG4vLyBjbG9zZXMgd2l0aCBub3RoaW5nLiBOb3RoaW5nIGhlcmUgaXMgdmFsaWRhdGVkLCBzbyB0aGVyZSBpcyBubyBmc0Zvcm0uXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtY29sdW1ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QtY29sdW1ucy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbixcbiAgICBNYXRDaGVja2JveCxcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxuICAgIE1hdERpYWxvZ0Nsb3NlLFxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXG4gICAgRnNEaWFsb2dNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExpc3RDb2x1bW5zQ29tcG9uZW50IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YSA9IGluamVjdDxMaXN0Q29sdW1uc0RpYWxvZ0RhdGE+KE1BVF9ESUFMT0dfREFUQSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbHVtbnMgPSB0aGlzLmRhdGEuY29sdW1ucztcblxuICBwdWJsaWMgcmVhZG9ubHkgaGlkZGVuID0gc2lnbmFsPFJlYWRvbmx5U2V0PHN0cmluZz4+KG5ldyBTZXQodGhpcy5kYXRhLmhpZGRlbikpO1xuXG4gIC8vIEhvdyBtYW55IGNvbHVtbnMgYXJlIHN0aWxsIGNoZWNrZWQuXG4gIHB1YmxpYyByZWFkb25seSBzaG93bkNvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb2x1bW5zXG4gICAgLmZpbHRlcigoY29sdW1uKSA9PiAhdGhpcy5oaWRkZW4oKS5oYXMoY29sdW1uLmNvbHVtbikpXG4gICAgLmxlbmd0aCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nUmVmID0gaW5qZWN0PE1hdERpYWxvZ1JlZjxMaXN0Q29sdW1uc0NvbXBvbmVudCwgc3RyaW5nW10+PihNYXREaWFsb2dSZWYpO1xuXG4gIC8vIFdoZXRoZXIgYSBjb2x1bW4ncyBib3ggaXMgdGhlIGxhc3Qgb25lIGNoZWNrZWQsIHdoaWNoIGNhbm5vdCBiZSBjbGVhcmVkLlxuICBwdWJsaWMgaXNMYXN0U2hvd24obmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd25Db3VudCgpID09PSAxICYmICF0aGlzLmhpZGRlbigpLmhhcyhuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGUobmFtZTogc3RyaW5nLCBzaG93bjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaGlkZGVuLnVwZGF0ZSgoaGlkZGVuKSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gbmV3IFNldChoaWRkZW4pO1xuXG4gICAgICBpZiAoc2hvd24pIHtcbiAgICAgICAgbmV4dC5kZWxldGUobmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0LmFkZChuYW1lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZG9uZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodGhpcy5jb2x1bW5zXG4gICAgICAubWFwKChjb2x1bW4pID0+IGNvbHVtbi5jb2x1bW4pXG4gICAgICAuZmlsdGVyKChuYW1lKSA9PiB0aGlzLmhpZGRlbigpLmhhcyhuYW1lKSkpO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nPlxuICA8ZnMtZGlhbG9nLXRpdGxlPlxuICAgIENvbHVtbnNcbiAgPC9mcy1kaWFsb2ctdGl0bGU+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImZzLWNvbHVtbi5nYXAteHNcIj5cbiAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW4uY29sdW1uKSB7XG4gICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uLW9wdGlvblwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCIhaGlkZGVuKCkuaGFzKGNvbHVtbi5jb2x1bW4pXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xhc3RTaG93bihjb2x1bW4uY29sdW1uKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZShjb2x1bW4uY29sdW1uLCAkZXZlbnQuY2hlY2tlZClcIj5cbiAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgKGNsaWNrKT1cImRvbmUoKVwiPlxuICAgICAgRG9uZVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidW5kZWZpbmVkXCI+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2ZzLWRpYWxvZz5cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ // The locale and currency keys for the report settings PUT: each is sent only
2
+ // when the dialog's value differs from the report's stored one ('' = follows
3
+ // the default). An untouched dialog sends neither, so a report that follows the
4
+ // default is never pinned to it, and a stored value the server no longer offers
5
+ // is never sent back to be refused: renaming such a report still saves. A
6
+ // changed value is sent as it is, and '' returns the report to the default.
7
+ export function reportLocalePatch(report, locale, currency) {
8
+ return {
9
+ ...(locale !== (report.locale ?? '') ? { locale } : {}),
10
+ ...(currency !== (report.currency ?? '') ? { currency } : {}),
11
+ };
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWxvY2FsZS1wYXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9kaWFsb2dzL3JlcG9ydC1zZXR0aW5ncy9yZXBvcnQtbG9jYWxlLXBhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLDhFQUE4RTtBQUM5RSw2RUFBNkU7QUFDN0UsZ0ZBQWdGO0FBQ2hGLGdGQUFnRjtBQUNoRiwwRUFBMEU7QUFDMUUsNEVBQTRFO0FBQzVFLE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsTUFBMkMsRUFDM0MsTUFBYyxFQUNkLFFBQWdCO0lBRWhCLE9BQU87UUFDTCxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZELEdBQUcsQ0FBQyxRQUFRLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDOUQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBvcnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC5pbnRlcmZhY2UnO1xuXG5cbi8vIFRoZSBsb2NhbGUgYW5kIGN1cnJlbmN5IGtleXMgZm9yIHRoZSByZXBvcnQgc2V0dGluZ3MgUFVUOiBlYWNoIGlzIHNlbnQgb25seVxuLy8gd2hlbiB0aGUgZGlhbG9nJ3MgdmFsdWUgZGlmZmVycyBmcm9tIHRoZSByZXBvcnQncyBzdG9yZWQgb25lICgnJyA9IGZvbGxvd3Ncbi8vIHRoZSBkZWZhdWx0KS4gQW4gdW50b3VjaGVkIGRpYWxvZyBzZW5kcyBuZWl0aGVyLCBzbyBhIHJlcG9ydCB0aGF0IGZvbGxvd3MgdGhlXG4vLyBkZWZhdWx0IGlzIG5ldmVyIHBpbm5lZCB0byBpdCwgYW5kIGEgc3RvcmVkIHZhbHVlIHRoZSBzZXJ2ZXIgbm8gbG9uZ2VyIG9mZmVyc1xuLy8gaXMgbmV2ZXIgc2VudCBiYWNrIHRvIGJlIHJlZnVzZWQ6IHJlbmFtaW5nIHN1Y2ggYSByZXBvcnQgc3RpbGwgc2F2ZXMuIEFcbi8vIGNoYW5nZWQgdmFsdWUgaXMgc2VudCBhcyBpdCBpcywgYW5kICcnIHJldHVybnMgdGhlIHJlcG9ydCB0byB0aGUgZGVmYXVsdC5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnRMb2NhbGVQYXRjaChcbiAgcmVwb3J0OiBQaWNrPFJlcG9ydCwgJ2xvY2FsZScgfCAnY3VycmVuY3knPixcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIGN1cnJlbmN5OiBzdHJpbmcsXG4pOiB7IGxvY2FsZT86IHN0cmluZzsgY3VycmVuY3k/OiBzdHJpbmcgfSB7XG4gIHJldHVybiB7XG4gICAgLi4uKGxvY2FsZSAhPT0gKHJlcG9ydC5sb2NhbGUgPz8gJycpID8geyBsb2NhbGUgfSA6IHt9KSxcbiAgICAuLi4oY3VycmVuY3kgIT09IChyZXBvcnQuY3VycmVuY3kgPz8gJycpID8geyBjdXJyZW5jeSB9IDoge30pLFxuICB9O1xufVxuIl19