@firestitch/report 18.10.2 → 18.11.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 (81) hide show
  1. package/app/reports/components/report-canvas/report-canvas.component.d.ts +0 -1
  2. package/app/reports/data/report.data.d.ts +8 -12
  3. package/app/reports/export/report-export-collector.service.d.ts +0 -1
  4. package/app/reports/export/report-filter-lines.d.ts +0 -2
  5. package/app/reports/interfaces/report-chat-viewer-state.interface.d.ts +0 -2
  6. package/app/reports/interfaces/report-export-snapshot.interface.d.ts +2 -3
  7. package/app/reports/interfaces/report-saved-filter-changes.interface.d.ts +4 -0
  8. package/app/reports/interfaces/report-saved-filter.interface.d.ts +6 -0
  9. package/app/reports/interfaces/{report-view-config.interface.d.ts → report-state-snapshot.interface.d.ts} +1 -2
  10. package/app/reports/interfaces/report-viewer-feature.type.d.ts +1 -1
  11. package/app/reports/report-chat-viewer-state.d.ts +3 -3
  12. package/app/reports/report-saved-filters.d.ts +3 -0
  13. package/app/reports/report-state.d.ts +15 -0
  14. package/app/reports/services/report-filter-state.service.d.ts +9 -25
  15. package/app/reports/tile-data-state.d.ts +5 -5
  16. package/app/reports/views/report/fs-ai-report.component.d.ts +10 -5
  17. package/esm2022/app/reports/canvas-landing-page.mjs +3 -3
  18. package/esm2022/app/reports/components/component-list/component-list.component.mjs +3 -3
  19. package/esm2022/app/reports/components/report-canvas/report-canvas.component.mjs +8 -12
  20. package/esm2022/app/reports/components/report-component/report-component.component.mjs +16 -21
  21. package/esm2022/app/reports/data/report.data.mjs +24 -41
  22. package/esm2022/app/reports/export/report-export-collector.service.mjs +11 -18
  23. package/esm2022/app/reports/export/report-filter-lines.mjs +5 -15
  24. package/esm2022/app/reports/filter-settings-rules.mjs +2 -2
  25. package/esm2022/app/reports/interfaces/canvas-landing-input.interface.mjs +1 -1
  26. package/esm2022/app/reports/interfaces/report-chat-viewer-state.interface.mjs +1 -1
  27. package/esm2022/app/reports/interfaces/report-export-snapshot.interface.mjs +1 -1
  28. package/esm2022/app/reports/interfaces/report-saved-filter-changes.interface.mjs +2 -0
  29. package/esm2022/app/reports/interfaces/report-saved-filter.interface.mjs +2 -0
  30. package/esm2022/app/reports/interfaces/report-state-snapshot.interface.mjs +2 -0
  31. package/esm2022/app/reports/interfaces/report-temporary-state.interface.mjs +1 -1
  32. package/esm2022/app/reports/interfaces/report-tile-state.interface.mjs +1 -1
  33. package/esm2022/app/reports/interfaces/report-viewer-feature.type.mjs +1 -1
  34. package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
  35. package/esm2022/app/reports/mark-click.mjs +2 -2
  36. package/esm2022/app/reports/report-chat-viewer-state.mjs +3 -3
  37. package/esm2022/app/reports/report-date-presets.mjs +2 -2
  38. package/esm2022/app/reports/report-saved-filters.mjs +92 -0
  39. package/esm2022/app/reports/report-state.mjs +169 -0
  40. package/esm2022/app/reports/report-viewer-features.mjs +2 -4
  41. package/esm2022/app/reports/services/report-filter-state.service.mjs +83 -310
  42. package/esm2022/app/reports/tile-data-state.mjs +4 -4
  43. package/esm2022/app/reports/tile-loads.mjs +5 -6
  44. package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +165 -94
  45. package/esm2022/app/reports/views/report/report.component.mjs +14 -16
  46. package/esm2022/public_api.mjs +4 -8
  47. package/fesm2022/{firestitch-report-echarts-CyHkFToO.mjs → firestitch-report-echarts-DKXlgu1D.mjs} +2 -2
  48. package/fesm2022/{firestitch-report-echarts-CyHkFToO.mjs.map → firestitch-report-echarts-DKXlgu1D.mjs.map} +1 -1
  49. package/fesm2022/{firestitch-report-firestitch-report-DftB7M1o.mjs → firestitch-report-firestitch-report-Bnv62suw.mjs} +445 -1434
  50. package/fesm2022/firestitch-report-firestitch-report-Bnv62suw.mjs.map +1 -0
  51. package/fesm2022/firestitch-report.mjs +1 -1
  52. package/package.json +1 -1
  53. package/public_api.d.ts +3 -7
  54. package/app/reports/components/report-view-picker/report-view-picker.component.d.ts +0 -21
  55. package/app/reports/dialogs/report-view/report-view-dialog.component.d.ts +0 -13
  56. package/app/reports/interfaces/report-view-create.interface.d.ts +0 -7
  57. package/app/reports/interfaces/report-view-deleted.interface.d.ts +0 -4
  58. package/app/reports/interfaces/report-view-dialog-data.interface.d.ts +0 -7
  59. package/app/reports/interfaces/report-view-dropped.interface.d.ts +0 -5
  60. package/app/reports/interfaces/report-view-menu-item.interface.d.ts +0 -10
  61. package/app/reports/interfaces/report-view-summary.interface.d.ts +0 -11
  62. package/app/reports/interfaces/report-view.interface.d.ts +0 -7
  63. package/app/reports/interfaces/report-views.interface.d.ts +0 -7
  64. package/app/reports/report-view-config.d.ts +0 -34
  65. package/app/reports/report-view-menu.d.ts +0 -15
  66. package/app/reports/services/report-view.service.d.ts +0 -39
  67. package/esm2022/app/reports/components/report-view-picker/report-view-picker.component.mjs +0 -115
  68. package/esm2022/app/reports/dialogs/report-view/report-view-dialog.component.mjs +0 -52
  69. package/esm2022/app/reports/interfaces/report-view-config.interface.mjs +0 -2
  70. package/esm2022/app/reports/interfaces/report-view-create.interface.mjs +0 -2
  71. package/esm2022/app/reports/interfaces/report-view-deleted.interface.mjs +0 -2
  72. package/esm2022/app/reports/interfaces/report-view-dialog-data.interface.mjs +0 -2
  73. package/esm2022/app/reports/interfaces/report-view-dropped.interface.mjs +0 -2
  74. package/esm2022/app/reports/interfaces/report-view-menu-item.interface.mjs +0 -2
  75. package/esm2022/app/reports/interfaces/report-view-summary.interface.mjs +0 -2
  76. package/esm2022/app/reports/interfaces/report-view.interface.mjs +0 -2
  77. package/esm2022/app/reports/interfaces/report-views.interface.mjs +0 -2
  78. package/esm2022/app/reports/report-view-config.mjs +0 -587
  79. package/esm2022/app/reports/report-view-menu.mjs +0 -119
  80. package/esm2022/app/reports/services/report-view.service.mjs +0 -218
  81. package/fesm2022/firestitch-report-firestitch-report-DftB7M1o.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- export { d as FsAiReportComponent, F as FsAiReportsComponent, G as GRANULARITY_OPTIONS, s as ReportChangePolarity, o as ReportChartColor, n as ReportChartDataLabels, r as ReportChartDateLabel, p as ReportChartLineStyle, q as ReportChartMarkStat, c as ReportComponent, e as ReportData, g as ReportFilterStateService, l as ReportListColumnFormat, h as ReportNodeType, m as ReportNumberUnits, f as ReportService, i as ReportState, j as ReportValueFormat, k as ReportValueFormula } from './firestitch-report-firestitch-report-DftB7M1o.mjs';
1
+ export { d as FsAiReportComponent, F as FsAiReportsComponent, G as GRANULARITY_OPTIONS, s as ReportChangePolarity, o as ReportChartColor, n as ReportChartDataLabels, r as ReportChartDateLabel, p as ReportChartLineStyle, q as ReportChartMarkStat, c as ReportComponent, e as ReportData, g as ReportFilterStateService, l as ReportListColumnFormat, h as ReportNodeType, m as ReportNumberUnits, f as ReportService, i as ReportState, j as ReportValueFormat, k as ReportValueFormula } from './firestitch-report-firestitch-report-Bnv62suw.mjs';
2
2
  //# sourceMappingURL=firestitch-report.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/report",
3
- "version": "18.10.2",
3
+ "version": "18.11.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-report"
package/public_api.d.ts CHANGED
@@ -5,7 +5,7 @@ export { ReportData } from './app/reports/data/report.data';
5
5
  export { ReportService } from './app/reports/services/report.service';
6
6
  export { ReportFilterStateService } from './app/reports/services/report-filter-state.service';
7
7
  export * from './app/reports/interfaces/report.interface';
8
- export * from './app/reports/interfaces/report-view-config.interface';
8
+ export * from './app/reports/interfaces/report-state-snapshot.interface';
9
9
  export * from './app/reports/interfaces/report-tile-state.interface';
10
10
  export * from './app/reports/interfaces/report-drill-step.interface';
11
11
  export * from './app/reports/interfaces/report-drill-crumb.interface';
@@ -17,12 +17,8 @@ export * from './app/reports/interfaces/component-data-applied.interface';
17
17
  export * from './app/reports/interfaces/component-data-drill.interface';
18
18
  export * from './app/reports/interfaces/report-filter-options.interface';
19
19
  export * from './app/reports/interfaces/report-filter-options-request.interface';
20
- export * from './app/reports/interfaces/report-view.interface';
21
- export * from './app/reports/interfaces/report-view-summary.interface';
22
- export * from './app/reports/interfaces/report-views.interface';
23
- export * from './app/reports/interfaces/report-view-dropped.interface';
24
- export * from './app/reports/interfaces/report-view-create.interface';
25
- export * from './app/reports/interfaces/report-view-deleted.interface';
20
+ export * from './app/reports/interfaces/report-saved-filter.interface';
21
+ export * from './app/reports/interfaces/report-saved-filter-changes.interface';
26
22
  export * from './app/reports/interfaces/report-mark-point.interface';
27
23
  export * from './app/reports/interfaces/report-mark-click.interface';
28
24
  export * from './app/reports/interfaces/report-export-line.interface';
@@ -1,21 +0,0 @@
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,13 +0,0 @@
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
- }
@@ -1,7 +0,0 @@
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
- }
@@ -1,4 +0,0 @@
1
- export interface ReportViewDeleted {
2
- id: number;
3
- state: string;
4
- }
@@ -1,7 +0,0 @@
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
- }
@@ -1,5 +0,0 @@
1
- export interface ReportViewDropped {
2
- groups: number[];
3
- tiles: number[];
4
- page: boolean;
5
- }
@@ -1,10 +0,0 @@
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
- }
@@ -1,11 +0,0 @@
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
- }
@@ -1,7 +0,0 @@
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
- }
@@ -1,7 +0,0 @@
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
- }
@@ -1,34 +0,0 @@
1
- import { ReportChatViewerState } from './interfaces/report-chat-viewer-state.interface';
2
- import { ReportDrillStep } from './interfaces/report-drill-step.interface';
3
- import { ReportViewConfig } from './interfaces/report-view-config.interface';
4
- import { ReportViewSummary } from './interfaces/report-view-summary.interface';
5
- import { ReportView } from './interfaces/report-view.interface';
6
- import { ChartGranularity, FilterGroupDefault, FilterGroupValue, ReportFilterType, ReportRelativeRange } from './interfaces/report.interface';
7
- export declare const REPORT_VIEW_CONFIG_VERSION = 1;
8
- export declare const VIEW_CONFIG_MAX_BYTES: number;
9
- export declare const VIEW_CONFIG_MAX_GROUPS = 100;
10
- export declare const VIEW_CONFIG_MAX_TILES = 200;
11
- export declare const GROUP_VALUE_MAX_PICKS = 500;
12
- export declare const DRILL_MAX_DEPTH = 5;
13
- export declare const RELATIVE_RANGE_NAMES: ReportRelativeRange[];
14
- export declare function isRelativeRange(name: unknown): name is ReportRelativeRange;
15
- export declare function isChartGranularity(value: unknown): value is ChartGranularity;
16
- export declare function isCalendarDay(text: string): boolean;
17
- export declare function numberFromText(text: string): number | null;
18
- export declare function groupValueFromArray(value: Record<string, unknown>, type: ReportFilterType): FilterGroupDefault;
19
- export declare function groupValueFromStored(value: unknown, type: ReportFilterType): FilterGroupDefault | null;
20
- export declare function viewConfigFromArray(input: unknown): ReportViewConfig;
21
- export declare function toStoredGroupValue(type: ReportFilterType, value: FilterGroupValue | null | undefined): FilterGroupDefault | null;
22
- export declare function toLiveGroupValue(type: ReportFilterType, stored: FilterGroupDefault | null | undefined, resolveRelative: (name: string) => {
23
- start: Date;
24
- end: Date;
25
- } | null): FilterGroupValue | null;
26
- export declare function viewDiffers(base: ReportViewConfig, current: ReportViewConfig, authored?: ReportViewConfig | null): boolean;
27
- export declare function sameStoredGroupValue(a: FilterGroupDefault | null | undefined, b: FilterGroupDefault | null | undefined): boolean;
28
- export declare function cleanDrillPath(path: readonly unknown[] | null | undefined): ReportDrillStep[];
29
- export declare function sameDrillPath(a: readonly ReportDrillStep[] | null | undefined, b: readonly ReportDrillStep[] | null | undefined): boolean;
30
- export declare function withStoredKeys(stored: ReportViewConfig | null | undefined, screen: ReportViewConfig): ReportViewConfig;
31
- export declare function viewDroppedCount(view: Pick<ReportView, 'config' | 'dropped'>, applied: ReportViewConfig): number;
32
- export declare function viewDroppedMessage(count: number, canChange?: boolean): string | null;
33
- export declare function chatViewFields(openView: Pick<ReportViewSummary, 'id'> | null, viewChanged: boolean): Pick<ReportChatViewerState, 'viewId' | 'viewChanged'>;
34
- export declare function finiteNumber(value: unknown): number | undefined;
@@ -1,15 +0,0 @@
1
- import { ReportViewMenuItem } from './interfaces/report-view-menu-item.interface';
2
- import { ReportViewSummary } from './interfaces/report-view-summary.interface';
3
- export declare const VIEWS_LABEL = "Views";
4
- export declare const EDITED_TOOLTIP = "The screen differs from this view";
5
- export declare const SAVE_AS_TITLE = "Save as new view";
6
- export declare const RENAME_TITLE = "Rename view";
7
- export declare const CROSS_FILTER_NOTE = "Cross-filters are temporary and are not saved.";
8
- export declare const VIEW_NAME_BLANK = "Enter a name";
9
- export declare const VIEW_NAME_MAX_LENGTH = 100;
10
- export declare function viewMenuItems(open: ReportViewSummary | null, views: readonly ReportViewSummary[], edited: boolean, canShare: boolean): ReportViewMenuItem[];
11
- export declare function pickerLabel(open: Pick<ReportViewSummary, 'name'> | null, edited: boolean): string;
12
- export declare function pickerTooltip(open: Pick<ReportViewSummary, 'name'> | null, edited: boolean): string | null;
13
- export declare function deletePromptText(view: Pick<ReportViewSummary, 'name' | 'shared'>): string;
14
- export declare function saveDialogNote(hasCrossFilter: boolean): string | null;
15
- export declare function viewNameError(name: string | null | undefined): string | null;
@@ -1,39 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { ReportViewCreate } from '../interfaces/report-view-create.interface';
3
- import { ReportViewDeleted } from '../interfaces/report-view-deleted.interface';
4
- import { ReportViewSummary } from '../interfaces/report-view-summary.interface';
5
- import { ReportView } from '../interfaces/report-view.interface';
6
- import { Report } from '../interfaces/report.interface';
7
- import * as i0 from "@angular/core";
8
- export declare class ReportViewService {
9
- readonly views: import("@angular/core").Signal<ReportViewSummary[]>;
10
- readonly canShare: import("@angular/core").Signal<boolean>;
11
- readonly openView: import("@angular/core").Signal<ReportView>;
12
- readonly viewChanged: import("@angular/core").Signal<boolean>;
13
- private _reportData;
14
- private _filterState;
15
- private _message;
16
- private _destroyRef;
17
- private _views;
18
- private _canShare;
19
- private _openView;
20
- private _reportId;
21
- serves(report: Report | null): boolean;
22
- open(report: Report, pageId: number | null): Observable<void>;
23
- refresh(report: Report): void;
24
- pick(reportViewId: number): Observable<ReportView>;
25
- openDefaults(): void;
26
- saveAsNew(view: Omit<ReportViewCreate, 'config'>): Observable<ReportView>;
27
- saveChanges(): Observable<ReportView>;
28
- rename(name: string): Observable<ReportView>;
29
- share(shared: boolean): Observable<ReportView>;
30
- setDefault(personalDefault: boolean): Observable<ReportView>;
31
- deleteOpen(): Observable<ReportViewDeleted>;
32
- private _start;
33
- private _openOn;
34
- private _changeOpen;
35
- private _putRow;
36
- private _readViews;
37
- static ɵfac: i0.ɵɵFactoryDeclaration<ReportViewService, never>;
38
- static ɵprov: i0.ɵɵInjectableDeclaration<ReportViewService>;
39
- }
@@ -1,115 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, DestroyRef, computed, inject, viewChild } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatDialog } from '@angular/material/dialog';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { MatTooltipModule } from '@angular/material/tooltip';
7
- import { FsMenuComponent, FsMenuModule } from '@firestitch/menu';
8
- import { FsPrompt } from '@firestitch/prompt';
9
- import { EMPTY } from 'rxjs';
10
- import { catchError, switchMap } from 'rxjs/operators';
11
- import { ReportViewDialogComponent } from '../../dialogs/report-view/report-view-dialog.component';
12
- import { RENAME_TITLE, SAVE_AS_TITLE, deletePromptText, pickerLabel, pickerTooltip, saveDialogNote, viewMenuItems, } from '../../report-view-menu';
13
- import { ReportFilterStateService } from '../../services/report-filter-state.service';
14
- import { ReportViewService } from '../../services/report-view.service';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@firestitch/menu";
17
- import * as i2 from "@angular/material/button";
18
- import * as i3 from "@angular/material/icon";
19
- import * as i4 from "@angular/material/tooltip";
20
- // The Views button in the report's header and its menu: the saved views to
21
- // open and the actions on the open one. What the menu holds is decided in
22
- // report-view-menu.ts; this draws it and runs the row clicked through
23
- // ReportViewService, which says 'View saved' and 'View deleted' itself.
24
- export class ReportViewPickerComponent {
25
- label = computed(() => pickerLabel(this._views.openView(), this._views.viewChanged()));
26
- tooltip = computed(() => pickerTooltip(this._views.openView(), this._views.viewChanged()) ?? '');
27
- items = computed(() => viewMenuItems(this._views.openView(), this._views.views(), this._views.viewChanged(), this._views.canShare()));
28
- // fs-menu's phone sheet has no divider row and would draw an empty one,
29
- // so the lines show only in the desktop menu. Read when the menu opens.
30
- dividerShown = () => !this._menu()?.mobile;
31
- _menu = viewChild(FsMenuComponent);
32
- _views = inject(ReportViewService);
33
- _filterState = inject(ReportFilterStateService);
34
- _dialog = inject(MatDialog);
35
- _prompt = inject(FsPrompt);
36
- _destroyRef = inject(DestroyRef);
37
- run(item) {
38
- switch (item.kind) {
39
- case 'view':
40
- if (item.viewId !== null) {
41
- this._subscribe(this._views.pick(item.viewId));
42
- }
43
- break;
44
- case 'saveChanges':
45
- this._subscribe(this._views.saveChanges());
46
- break;
47
- case 'saveAsNew':
48
- this._name(SAVE_AS_TITLE, '', (name) => this._views.saveAsNew({ name }));
49
- break;
50
- case 'rename':
51
- this._name(RENAME_TITLE, this._views.openView()?.name ?? '', (name) => this._views.rename(name));
52
- break;
53
- case 'setDefault':
54
- case 'clearDefault':
55
- this._subscribe(this._views.setDefault(item.kind === 'setDefault'));
56
- break;
57
- case 'share':
58
- case 'unshare':
59
- this._subscribe(this._views.share(item.kind === 'share'));
60
- break;
61
- case 'delete':
62
- this._delete();
63
- break;
64
- case 'resetToView':
65
- this._filterState.resetToBase();
66
- break;
67
- case 'resetToDefaults':
68
- this._views.openDefaults();
69
- break;
70
- }
71
- }
72
- // Opens the name dialog, which saves through `save`.
73
- _name(title, name, save) {
74
- this._dialog.open(ReportViewDialogComponent, {
75
- data: { title, name, note: saveDialogNote(this._hasCrossFilter()), save },
76
- width: '400px',
77
- });
78
- }
79
- _delete() {
80
- const open = this._views.openView();
81
- if (!open) {
82
- return;
83
- }
84
- this._prompt.confirm({
85
- title: 'Delete view',
86
- template: deletePromptText(open),
87
- })
88
- .pipe(switchMap(() => this._views.deleteOpen()), catchError(() => EMPTY), takeUntilDestroyed(this._destroyRef))
89
- .subscribe();
90
- }
91
- // Runs a call on the views. A failure is shown by the API layer and ends
92
- // here, so the menu stays usable.
93
- _subscribe(call) {
94
- call
95
- .pipe(catchError(() => EMPTY), takeUntilDestroyed(this._destroyRef))
96
- .subscribe();
97
- }
98
- // Whether a cross-filter is on. The viewer has none yet: the temporary
99
- // layer gets its cross-filter, and this its reader, with cross-filtering.
100
- _hasCrossFilter() {
101
- return false;
102
- }
103
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportViewPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ReportViewPickerComponent, isStandalone: true, selector: "app-report-view-picker", viewQueries: [{ propertyName: "_menu", first: true, predicate: FsMenuComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<button\n mat-button\n type=\"button\"\n [matTooltip]=\"tooltip()\"\n [fsMenuTriggerFor]=\"viewsMenu\">\n <span class=\"report-view-picker__label\">{{ label() }}</span>\n <mat-icon iconPositionEnd>arrow_drop_down</mat-icon>\n</button>\n<fs-menu #viewsMenu>\n @for (item of items(); track item.kind + ':' + item.viewId) {\n @if (item.divider) {\n <ng-template\n fs-menu-divider-item\n [show]=\"dividerShown\">\n </ng-template>\n }\n <ng-template\n fs-menu-item\n [disabled]=\"item.disabled\"\n [tooltip]=\"item.tooltip ?? ''\"\n (click)=\"run(item)\">\n @if (item.open) {\n <mat-icon>check</mat-icon>\n }\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n {{ item.label }}\n </ng-template>\n }\n</fs-menu>\n", styles: [":host{flex:0 0 auto}.report-view-picker__label{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}\n"], dependencies: [{ kind: "ngmodule", type: FsMenuModule }, { kind: "component", type: i1.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i1.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { kind: "directive", type: i1.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { kind: "directive", type: i1.FsMenuDividerItemDirective, selector: "[fs-menu-divider-item]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
- }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportViewPickerComponent, decorators: [{
107
- type: Component,
108
- args: [{ selector: 'app-report-view-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
109
- FsMenuModule,
110
- MatButtonModule,
111
- MatIconModule,
112
- MatTooltipModule,
113
- ], template: "<button\n mat-button\n type=\"button\"\n [matTooltip]=\"tooltip()\"\n [fsMenuTriggerFor]=\"viewsMenu\">\n <span class=\"report-view-picker__label\">{{ label() }}</span>\n <mat-icon iconPositionEnd>arrow_drop_down</mat-icon>\n</button>\n<fs-menu #viewsMenu>\n @for (item of items(); track item.kind + ':' + item.viewId) {\n @if (item.divider) {\n <ng-template\n fs-menu-divider-item\n [show]=\"dividerShown\">\n </ng-template>\n }\n <ng-template\n fs-menu-item\n [disabled]=\"item.disabled\"\n [tooltip]=\"item.tooltip ?? ''\"\n (click)=\"run(item)\">\n @if (item.open) {\n <mat-icon>check</mat-icon>\n }\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n {{ item.label }}\n </ng-template>\n }\n</fs-menu>\n", styles: [":host{flex:0 0 auto}.report-view-picker__label{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}\n"] }]
114
- }] });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9jb21wb25lbnRzL3JlcG9ydC12aWV3LXBpY2tlci9yZXBvcnQtdmlldy1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2NvbXBvbmVudHMvcmVwb3J0LXZpZXctcGlja2VyL3JlcG9ydC12aWV3LXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHbkcsT0FBTyxFQUNMLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsV0FB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YUFDQyxJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDekMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUN2QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELHlFQUF5RTtJQUN6RSxrQ0FBa0M7SUFDMUIsVUFBVSxDQUFDLElBQXlCO1FBQzFDLElBQUk7YUFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUN2QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELHVFQUF1RTtJQUN2RSwwRUFBMEU7SUFDbEUsZUFBZTtRQUNyQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0dBbkdVLHlCQUF5Qjs0RkFBekIseUJBQXlCLHlIQWVWLGVBQWUsZ0VDeEQzQyw2MEJBK0JBLCtORElJLFlBQVksdWZBQ1osZUFBZSwyTkFDZixhQUFhLG1MQUNiLGdCQUFnQjs7NEZBR1AseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgRnNNZW51Q29tcG9uZW50LCBGc01lbnVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9tZW51JztcbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcblxuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUmVwb3J0Vmlld0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvcmVwb3J0LXZpZXcvcmVwb3J0LXZpZXctZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXBvcnRWaWV3RGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LXZpZXctZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydFZpZXdNZW51SXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LXZpZXctbWVudS1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBSRU5BTUVfVElUTEUsIFNBVkVfQVNfVElUTEUsIGRlbGV0ZVByb21wdFRleHQsIHBpY2tlckxhYmVsLCBwaWNrZXJUb29sdGlwLCBzYXZlRGlhbG9nTm90ZSwgdmlld01lbnVJdGVtcyxcbn0gZnJvbSAnLi4vLi4vcmVwb3J0LXZpZXctbWVudSc7XG5pbXBvcnQgeyBSZXBvcnRGaWx0ZXJTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXBvcnQtZmlsdGVyLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwb3J0Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXBvcnQtdmlldy5zZXJ2aWNlJztcblxuXG4vLyBUaGUgVmlld3MgYnV0dG9uIGluIHRoZSByZXBvcnQncyBoZWFkZXIgYW5kIGl0cyBtZW51OiB0aGUgc2F2ZWQgdmlld3MgdG9cbi8vIG9wZW4gYW5kIHRoZSBhY3Rpb25zIG9uIHRoZSBvcGVuIG9uZS4gV2hhdCB0aGUgbWVudSBob2xkcyBpcyBkZWNpZGVkIGluXG4vLyByZXBvcnQtdmlldy1tZW51LnRzOyB0aGlzIGRyYXdzIGl0IGFuZCBydW5zIHRoZSByb3cgY2xpY2tlZCB0aHJvdWdoXG4vLyBSZXBvcnRWaWV3U2VydmljZSwgd2hpY2ggc2F5cyAnVmlldyBzYXZlZCcgYW5kICdWaWV3IGRlbGV0ZWQnIGl0c2VsZi5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZXBvcnQtdmlldy1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVwb3J0LXZpZXctcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVwb3J0LXZpZXctcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRnNNZW51TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdQaWNrZXJDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBsYWJlbCA9IGNvbXB1dGVkKCgpID0+IHBpY2tlckxhYmVsKHRoaXMuX3ZpZXdzLm9wZW5WaWV3KCksIHRoaXMuX3ZpZXdzLnZpZXdDaGFuZ2VkKCkpKTtcbiAgcHVibGljIHJlYWRvbmx5IHRvb2x0aXAgPSBjb21wdXRlZCgoKSA9PiBwaWNrZXJUb29sdGlwKHRoaXMuX3ZpZXdzLm9wZW5WaWV3KCksIHRoaXMuX3ZpZXdzLnZpZXdDaGFuZ2VkKCkpID8/ICcnKTtcbiAgcHVibGljIHJlYWRvbmx5IGl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gdmlld01lbnVJdGVtcyhcbiAgICB0aGlzLl92aWV3cy5vcGVuVmlldygpLFxuICAgIHRoaXMuX3ZpZXdzLnZpZXdzKCksXG4gICAgdGhpcy5fdmlld3Mudmlld0NoYW5nZWQoKSxcbiAgICB0aGlzLl92aWV3cy5jYW5TaGFyZSgpLFxuICApKTtcblxuICAvLyBmcy1tZW51J3MgcGhvbmUgc2hlZXQgaGFzIG5vIGRpdmlkZXIgcm93IGFuZCB3b3VsZCBkcmF3IGFuIGVtcHR5IG9uZSxcbiAgLy8gc28gdGhlIGxpbmVzIHNob3cgb25seSBpbiB0aGUgZGVza3RvcCBtZW51LiBSZWFkIHdoZW4gdGhlIG1lbnUgb3BlbnMuXG4gIHB1YmxpYyByZWFkb25seSBkaXZpZGVyU2hvd24gPSAoKTogYm9vbGVhbiA9PiAhdGhpcy5fbWVudSgpPy5tb2JpbGU7XG5cbiAgcHJpdmF0ZSBfbWVudSA9IHZpZXdDaGlsZChGc01lbnVDb21wb25lbnQpO1xuICBwcml2YXRlIF92aWV3cyA9IGluamVjdChSZXBvcnRWaWV3U2VydmljZSk7XG4gIHByaXZhdGUgX2ZpbHRlclN0YXRlID0gaW5qZWN0KFJlcG9ydEZpbHRlclN0YXRlU2VydmljZSk7XG4gIHByaXZhdGUgX2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIF9wcm9tcHQgPSBpbmplY3QoRnNQcm9tcHQpO1xuICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHB1YmxpYyBydW4oaXRlbTogUmVwb3J0Vmlld01lbnVJdGVtKTogdm9pZCB7XG4gICAgc3dpdGNoIChpdGVtLmtpbmQpIHtcbiAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICBpZiAoaXRlbS52aWV3SWQgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLl9zdWJzY3JpYmUodGhpcy5fdmlld3MucGljayhpdGVtLnZpZXdJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2F2ZUNoYW5nZXMnOlxuICAgICAgICB0aGlzLl9zdWJzY3JpYmUodGhpcy5fdmlld3Muc2F2ZUNoYW5nZXMoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2F2ZUFzTmV3JzpcbiAgICAgICAgdGhpcy5fbmFtZShTQVZFX0FTX1RJVExFLCAnJywgKG5hbWUpID0+IHRoaXMuX3ZpZXdzLnNhdmVBc05ldyh7IG5hbWUgfSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlbmFtZSc6XG4gICAgICAgIHRoaXMuX25hbWUoUkVOQU1FX1RJVExFLCB0aGlzLl92aWV3cy5vcGVuVmlldygpPy5uYW1lID8/ICcnLCAobmFtZSkgPT4gdGhpcy5fdmlld3MucmVuYW1lKG5hbWUpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZXREZWZhdWx0JzpcbiAgICAgIGNhc2UgJ2NsZWFyRGVmYXVsdCc6XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZSh0aGlzLl92aWV3cy5zZXREZWZhdWx0KGl0ZW0ua2luZCA9PT0gJ3NldERlZmF1bHQnKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2hhcmUnOlxuICAgICAgY2FzZSAndW5zaGFyZSc6XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZSh0aGlzLl92aWV3cy5zaGFyZShpdGVtLmtpbmQgPT09ICdzaGFyZScpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICB0aGlzLl9kZWxldGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNldFRvVmlldyc6XG4gICAgICAgIHRoaXMuX2ZpbHRlclN0YXRlLnJlc2V0VG9CYXNlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzZXRUb0RlZmF1bHRzJzpcbiAgICAgICAgdGhpcy5fdmlld3Mub3BlbkRlZmF1bHRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9wZW5zIHRoZSBuYW1lIGRpYWxvZywgd2hpY2ggc2F2ZXMgdGhyb3VnaCBgc2F2ZWAuXG4gIHByaXZhdGUgX25hbWUodGl0bGU6IHN0cmluZywgbmFtZTogc3RyaW5nLCBzYXZlOiAobmFtZTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHVua25vd24+KTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW48UmVwb3J0Vmlld0RpYWxvZ0NvbXBvbmVudCwgUmVwb3J0Vmlld0RpYWxvZ0RhdGEsIGJvb2xlYW4+KFJlcG9ydFZpZXdEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHsgdGl0bGUsIG5hbWUsIG5vdGU6IHNhdmVEaWFsb2dOb3RlKHRoaXMuX2hhc0Nyb3NzRmlsdGVyKCkpLCBzYXZlIH0sXG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGV0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBvcGVuID0gdGhpcy5fdmlld3Mub3BlblZpZXcoKTtcbiAgICBpZiAoIW9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9wcm9tcHQuY29uZmlybSh7XG4gICAgICB0aXRsZTogJ0RlbGV0ZSB2aWV3JyxcbiAgICAgIHRlbXBsYXRlOiBkZWxldGVQcm9tcHRUZXh0KG9wZW4pLFxuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX3ZpZXdzLmRlbGV0ZU9wZW4oKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gRU1QVFkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvLyBSdW5zIGEgY2FsbCBvbiB0aGUgdmlld3MuIEEgZmFpbHVyZSBpcyBzaG93biBieSB0aGUgQVBJIGxheWVyIGFuZCBlbmRzXG4gIC8vIGhlcmUsIHNvIHRoZSBtZW51IHN0YXlzIHVzYWJsZS5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlKGNhbGw6IE9ic2VydmFibGU8dW5rbm93bj4pOiB2b2lkIHtcbiAgICBjYWxsXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBFTVBUWSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vIFdoZXRoZXIgYSBjcm9zcy1maWx0ZXIgaXMgb24uIFRoZSB2aWV3ZXIgaGFzIG5vbmUgeWV0OiB0aGUgdGVtcG9yYXJ5XG4gIC8vIGxheWVyIGdldHMgaXRzIGNyb3NzLWZpbHRlciwgYW5kIHRoaXMgaXRzIHJlYWRlciwgd2l0aCBjcm9zcy1maWx0ZXJpbmcuXG4gIHByaXZhdGUgX2hhc0Nyb3NzRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAgIG1hdC1idXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKClcIlxuICAgIFtmc01lbnVUcmlnZ2VyRm9yXT1cInZpZXdzTWVudVwiPlxuICA8c3BhbiBjbGFzcz1cInJlcG9ydC12aWV3LXBpY2tlcl9fbGFiZWxcIj57eyBsYWJlbCgpIH19PC9zcGFuPlxuICA8bWF0LWljb24gaWNvblBvc2l0aW9uRW5kPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+XG48L2J1dHRvbj5cbjxmcy1tZW51ICN2aWV3c01lbnU+XG4gIEBmb3IgKGl0ZW0gb2YgaXRlbXMoKTsgdHJhY2sgaXRlbS5raW5kICsgJzonICsgaXRlbS52aWV3SWQpIHtcbiAgICBAaWYgKGl0ZW0uZGl2aWRlcikge1xuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgZnMtbWVudS1kaXZpZGVyLWl0ZW1cbiAgICAgICAgICBbc2hvd109XCJkaXZpZGVyU2hvd25cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmcy1tZW51LWl0ZW1cbiAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICBbdG9vbHRpcF09XCJpdGVtLnRvb2x0aXAgPz8gJydcIlxuICAgICAgICAoY2xpY2spPVwicnVuKGl0ZW0pXCI+XG4gICAgICBAaWYgKGl0ZW0ub3Blbikge1xuICAgICAgICA8bWF0LWljb24+Y2hlY2s8L21hdC1pY29uPlxuICAgICAgfVxuICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgPG1hdC1pY29uPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICB9XG4gICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgfVxuPC9mcy1tZW51PlxuIl19
@@ -1,52 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef } from '@angular/material/dialog';
4
- import { MatFormField, MatHint, MatLabel } from '@angular/material/form-field';
5
- import { MatInput } from '@angular/material/input';
6
- import { FsDialogModule } from '@firestitch/dialog';
7
- import { FsFormModule } from '@firestitch/form';
8
- import { tap } from 'rxjs/operators';
9
- import { VIEW_NAME_MAX_LENGTH, viewNameError } from '../../report-view-menu';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/forms";
12
- import * as i2 from "@firestitch/dialog";
13
- import * as i3 from "@firestitch/form";
14
- // Names a saved view: Save as new view and Rename. One name field; the
15
- // caller's save call does the work, and the dialog closes once it answers.
16
- // A refusal from the server (a name taken, too many views) shows as the
17
- // API's own error and leaves the dialog open.
18
- export class ReportViewDialogComponent {
19
- data = inject(MAT_DIALOG_DATA);
20
- name = signal(this.data.name);
21
- nameMaxLength = VIEW_NAME_MAX_LENGTH;
22
- _dialogRef = inject(MatDialogRef);
23
- // A name of spaces only is refused here, where fsFormRequired lets it by.
24
- // It reads the control: the name signal catches up only after validation.
25
- validateName = (control) => {
26
- const error = viewNameError(control.value);
27
- if (error) {
28
- throw new Error(error);
29
- }
30
- };
31
- save = () => {
32
- return this.data.save(this.name().trim())
33
- .pipe(tap(() => this._dialogRef.close(true)));
34
- };
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportViewDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ReportViewDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<form\n fsForm\n [submit]=\"save\">\n <fs-dialog>\n <fs-dialog-title>\n {{ data.title }}\n </fs-dialog-title>\n <mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field class=\"full-width\">\n <mat-label>\n Name\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"name\"\n name=\"name\"\n cdkFocusInitial\n [fsFormRequired]=\"true\"\n [fsFormMaxLength]=\"nameMaxLength\"\n [validate]=\"validateName\">\n @if (data.note) {\n <mat-hint>\n {{ data.note }}\n </mat-hint>\n }\n </mat-form-field>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <fs-form-dialog-actions></fs-form-dialog-actions>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FsDialogModule }, { kind: "component", type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { kind: "component", type: i2.FsDialogTitleComponent, selector: "fs-dialog-title", inputs: ["close", "dockToggle", "back"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i3.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { kind: "directive", type: i3.FsFormMaxLengthDirective, selector: "[fsFormMaxLength]", inputs: ["fsFormMaxLength", "fsFormMaxLengthMessage"] }, { kind: "directive", type: i3.FsFormValidateDirective, selector: "[validate]", inputs: ["validate", "validateData", "validateOnSubmit"] }, { kind: "component", type: i3.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportViewDialogComponent, decorators: [{
39
- type: Component,
40
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
41
- FormsModule,
42
- MatDialogContent,
43
- MatDialogActions,
44
- MatFormField,
45
- MatHint,
46
- MatLabel,
47
- MatInput,
48
- FsDialogModule,
49
- FsFormModule,
50
- ], template: "<form\n fsForm\n [submit]=\"save\">\n <fs-dialog>\n <fs-dialog-title>\n {{ data.title }}\n </fs-dialog-title>\n <mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field class=\"full-width\">\n <mat-label>\n Name\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"name\"\n name=\"name\"\n cdkFocusInitial\n [fsFormRequired]=\"true\"\n [fsFormMaxLength]=\"nameMaxLength\"\n [validate]=\"validateName\">\n @if (data.note) {\n <mat-hint>\n {{ data.note }}\n </mat-hint>\n }\n </mat-form-field>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <fs-form-dialog-actions></fs-form-dialog-actions>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n" }]
51
- }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9kaWFsb2dzL3JlcG9ydC12aWV3L3JlcG9ydC12aWV3LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvZGlhbG9ncy9yZXBvcnQtdmlldy9yZXBvcnQtdmlldy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBbUIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQUc3RSx1RUFBdUU7QUFDdkUsMkVBQTJFO0FBQzNFLHdFQUF3RTtBQUN4RSw4Q0FBOEM7QUFpQjlDLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEIsSUFBSSxHQUFHLE1BQU0sQ0FBdUIsZUFBZSxDQUFDLENBQUM7SUFDckQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQztJQUU3QyxVQUFVLEdBQUcsTUFBTSxDQUFtRCxZQUFZLENBQUMsQ0FBQztJQUU1RiwwRUFBMEU7SUFDMUUsMEVBQTBFO0lBQ25FLFlBQVksR0FBRyxDQUFDLE9BQXdCLEVBQVEsRUFBRTtRQUN2RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFSyxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3RDLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdkMsQ0FBQztJQUNOLENBQUMsQ0FBQzt3R0F0QlMseUJBQXlCOzRGQUF6Qix5QkFBeUIsd0VDcEN0QyxxNEJBa0NBLDJDRFRJLFdBQVcsd2lDQUNYLGdCQUFnQix5R0FDaEIsZ0JBQWdCLDRIQUNoQixZQUFZLDRMQUNaLE9BQU8sOEVBQ1AsUUFBUSxzREFDUixRQUFRLGdVQUNSLGNBQWMsOFRBQ2QsWUFBWTs7NEZBR0gseUJBQXlCO2tCQWhCckMsU0FBUztzQ0FFUyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsWUFBWTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEhpbnQsIE1hdExhYmVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuaW1wb3J0IHsgRnNEaWFsb2dNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kaWFsb2cnO1xuaW1wb3J0IHsgRnNGb3JtTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5cbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUmVwb3J0Vmlld0RpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC12aWV3LWRpYWxvZy1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBWSUVXX05BTUVfTUFYX0xFTkdUSCwgdmlld05hbWVFcnJvciB9IGZyb20gJy4uLy4uL3JlcG9ydC12aWV3LW1lbnUnO1xuXG5cbi8vIE5hbWVzIGEgc2F2ZWQgdmlldzogU2F2ZSBhcyBuZXcgdmlldyBhbmQgUmVuYW1lLiBPbmUgbmFtZSBmaWVsZDsgdGhlXG4vLyBjYWxsZXIncyBzYXZlIGNhbGwgZG9lcyB0aGUgd29yaywgYW5kIHRoZSBkaWFsb2cgY2xvc2VzIG9uY2UgaXQgYW5zd2Vycy5cbi8vIEEgcmVmdXNhbCBmcm9tIHRoZSBzZXJ2ZXIgKGEgbmFtZSB0YWtlbiwgdG9vIG1hbnkgdmlld3MpIHNob3dzIGFzIHRoZVxuLy8gQVBJJ3Mgb3duIGVycm9yIGFuZCBsZWF2ZXMgdGhlIGRpYWxvZyBvcGVuLlxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtdmlldy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXG4gICAgTWF0RGlhbG9nQWN0aW9ucyxcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0SGludCxcbiAgICBNYXRMYWJlbCxcbiAgICBNYXRJbnB1dCxcbiAgICBGc0RpYWxvZ01vZHVsZSxcbiAgICBGc0Zvcm1Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdEaWFsb2dDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhID0gaW5qZWN0PFJlcG9ydFZpZXdEaWFsb2dEYXRhPihNQVRfRElBTE9HX0RBVEEpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZSA9IHNpZ25hbCh0aGlzLmRhdGEubmFtZSk7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lTWF4TGVuZ3RoID0gVklFV19OQU1FX01BWF9MRU5HVEg7XG5cbiAgcHJpdmF0ZSBfZGlhbG9nUmVmID0gaW5qZWN0PE1hdERpYWxvZ1JlZjxSZXBvcnRWaWV3RGlhbG9nQ29tcG9uZW50LCBib29sZWFuPj4oTWF0RGlhbG9nUmVmKTtcblxuICAvLyBBIG5hbWUgb2Ygc3BhY2VzIG9ubHkgaXMgcmVmdXNlZCBoZXJlLCB3aGVyZSBmc0Zvcm1SZXF1aXJlZCBsZXRzIGl0IGJ5LlxuICAvLyBJdCByZWFkcyB0aGUgY29udHJvbDogdGhlIG5hbWUgc2lnbmFsIGNhdGNoZXMgdXAgb25seSBhZnRlciB2YWxpZGF0aW9uLlxuICBwdWJsaWMgdmFsaWRhdGVOYW1lID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gdmlld05hbWVFcnJvcihjb250cm9sLnZhbHVlKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyBzYXZlID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGEuc2F2ZSh0aGlzLm5hbWUoKS50cmltKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh0cnVlKSksXG4gICAgICApO1xuICB9O1xufVxuIiwiPGZvcm1cbiAgICBmc0Zvcm1cbiAgICBbc3VibWl0XT1cInNhdmVcIj5cbiAgPGZzLWRpYWxvZz5cbiAgICA8ZnMtZGlhbG9nLXRpdGxlPlxuICAgICAge3sgZGF0YS50aXRsZSB9fVxuICAgIDwvZnMtZGlhbG9nLXRpdGxlPlxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtY29sdW1uXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgTmFtZVxuICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5hbWVcIlxuICAgICAgICAgICAgICBuYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgIGNka0ZvY3VzSW5pdGlhbFxuICAgICAgICAgICAgICBbZnNGb3JtUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtmc0Zvcm1NYXhMZW5ndGhdPVwibmFtZU1heExlbmd0aFwiXG4gICAgICAgICAgICAgIFt2YWxpZGF0ZV09XCJ2YWxpZGF0ZU5hbWVcIj5cbiAgICAgICAgICBAaWYgKGRhdGEubm90ZSkge1xuICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICB7eyBkYXRhLm5vdGUgfX1cbiAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxmcy1mb3JtLWRpYWxvZy1hY3Rpb25zPjwvZnMtZm9ybS1kaWFsb2ctYWN0aW9ucz5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgPC9mcy1kaWFsb2c+XG48L2Zvcm0+XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC12aWV3LWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydEZpbHRlck1hdGNoIH0gZnJvbSAnLi9yZXBvcnQtZmlsdGVyLW1hdGNoLnR5cGUnO1xuaW1wb3J0IHsgUmVwb3J0VGlsZVN0YXRlIH0gZnJvbSAnLi9yZXBvcnQtdGlsZS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hhcnRHcmFudWxhcml0eSwgRmlsdGVyR3JvdXBEZWZhdWx0IH0gZnJvbSAnLi9yZXBvcnQuaW50ZXJmYWNlJztcblxuXG4vLyBUaGUgdmlld2VyJ3MgZHVyYWJsZSBzdGF0ZSBhcyBvbmUgSlNPTiBkb2N1bWVudDogYSBzYXZlZCB2aWV3J3MgY29uZmlnLlxuLy8gS2V5cyB0aGlzIHZpZXdlciBkb2VzIG5vdCBrbm93LCBhdCB0aGUgdG9wIGFuZCBpbiBhIHRpbGUsIGFyZSBrZXB0IGFzIHRoZXlcbi8vIHdlcmUgc3RvcmVkIGFuZCBuZXZlciByZWFkIChyZXBvcnQtdmlldy1jb25maWcudHMpLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRWaWV3Q29uZmlnIHtcbiAgLy8gVGhlIHZlcnNpb24gdGhlIGRvY3VtZW50IHdhcyB3cml0dGVuIGluIChSRVBPUlRfVklFV19DT05GSUdfVkVSU0lPTikuXG4gIHY6IG51bWJlcjtcbiAgLy8gVGhlIG9wZW4gcGFnZS5cbiAgcGFnZUlkPzogbnVtYmVyO1xuICAvLyBUaGUgcmVwb3J0J3MgZ3JvdXAtYnkgZ3JhaW4uXG4gIGdyb3VwQnk/OiBDaGFydEdyYW51bGFyaXR5O1xuICAvLyBBYnNlbnQgPSAnYWxsJy5cbiAgbWF0Y2g/OiBSZXBvcnRGaWx0ZXJNYXRjaDtcbiAgLy8gR3JvdXAgaWQgLT4gaXRzIHZhbHVlIGluIHRoZSBzdG9yZWQgc2hhcGU7IG51bGwgPSBjbGVhcmVkIG9uIHB1cnBvc2UuXG4gIGdyb3Vwcz86IFJlY29yZDxudW1iZXIsIEZpbHRlckdyb3VwRGVmYXVsdCB8IG51bGw+O1xuICAvLyBDb21wb25lbnQgaWQgLT4gdGhhdCB0aWxlJ3Mgb3duIHN0YXRlLlxuICB0aWxlcz86IFJlY29yZDxudW1iZXIsIFJlcG9ydFRpbGVTdGF0ZT47XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctY3JlYXRlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC12aWV3LWNyZWF0ZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydFZpZXdDb25maWcgfSBmcm9tICcuL3JlcG9ydC12aWV3LWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5cbi8vIEEgbmV3IHNhdmVkIHZpZXcgKFBPU1QgOnJlcG9ydElkL3ZpZXdzKS5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0Vmlld0NyZWF0ZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29uZmlnOiBSZXBvcnRWaWV3Q29uZmlnO1xuICAvLyBTaGFyZSBpdCB3aXRoIGV2ZXJ5b25lIHdobyBtYXkgb3BlbiB0aGUgcmVwb3J0LlxuICBzaGFyZWQ/OiBib29sZWFuO1xuICAvLyBPcGVuIGl0IGZvciB0aGUgdmlld2VyIGluc3RlYWQgb2YgdGhlIHJlcG9ydCdzIGRlZmF1bHRzLlxuICBwZXJzb25hbERlZmF1bHQ/OiBib29sZWFuO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctZGVsZXRlZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtdmlldy1kZWxldGVkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gV2hhdCB0aGUgc2VydmVyIGFuc3dlcnMgd2hlbiBhIHNhdmVkIHZpZXcgaXMgZGVsZXRlZDogaXRzIGlkIGFuZCBpdHMgbmV3XG4vLyBzdGF0ZS5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0Vmlld0RlbGV0ZWQge1xuICBpZDogbnVtYmVyO1xuICBzdGF0ZTogc3RyaW5nO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctZGlhbG9nLWRhdGEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2ludGVyZmFjZXMvcmVwb3J0LXZpZXctZGlhbG9nLWRhdGEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cblxuLy8gV2hhdCB0aGUgc2F2ZS1hcyBhbmQgcmVuYW1lIGRpYWxvZyAoUmVwb3J0Vmlld0RpYWxvZ0NvbXBvbmVudCkgaXMgb3BlbmVkXG4vLyB3aXRoOiBpdHMgdGl0bGUsIHRoZSBuYW1lIGl0IHN0YXJ0cyBvbiwgdGhlIGxpbmUgaXQgc2hvd3MgdW5kZXIgdGhlIG5hbWVcbi8vIChvciBudWxsKSwgYW5kIHRoZSBjYWxsIHRoYXQgc2F2ZXMgdGhlIG5hbWUuIFRoZSBkaWFsb2cgY2xvc2VzIG9uY2UgdGhhdFxuLy8gY2FsbCBhbnN3ZXJzLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRWaWV3RGlhbG9nRGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbm90ZTogc3RyaW5nIHwgbnVsbDtcbiAgc2F2ZTogKG5hbWU6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTx1bmtub3duPjtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctZHJvcHBlZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtdmlldy1kcm9wcGVkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gV2hhdCB0aGUgc2VydmVyIGxlZnQgb3V0IG9mIGEgc3RvcmVkIHZpZXcgd2hlbiBpdCByZWFkIGl0LCBiZWNhdXNlIHRoZVxuLy8gcmVwb3J0IGNoYW5nZWQgc2luY2UgdGhlIHZpZXcgd2FzIHNhdmVkOiBncm91cHMgdGhlIHJlcG9ydCBubyBsb25nZXIgaGFzXG4vLyAob3Igd2hvc2UgdHlwZSBjaGFuZ2VkKSwgdGlsZXMgaXQgbm8gbG9uZ2VyIGhhcywgYW5kIGEgcGFnZSBpdCBubyBsb25nZXJcbi8vIGhhcy4gVGhlIHN0b3JlZCB2aWV3IGtlZXBzIHRoZW0gdW50aWwgc29tZW9uZSBzYXZlcyBpdCBhZ2Fpbi5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0Vmlld0Ryb3BwZWQge1xuICBncm91cHM6IG51bWJlcltdO1xuICB0aWxlczogbnVtYmVyW107XG4gIHBhZ2U6IGJvb2xlYW47XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctbWVudS1pdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC12aWV3LW1lbnUtaXRlbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE9uZSByb3cgb2YgdGhlIFZpZXdzIG1lbnUgKHZpZXdNZW51SXRlbXMpOiBhIHNhdmVkIHZpZXcgdG8gb3Blbiwgb3IgYW5cbi8vIGFjdGlvbiBvbiB0aGUgb3BlbiB2aWV3LiBUaGUgcGlja2VyIGRyYXdzIHRoZSByb3dzIGluIG9yZGVyIGFuZCBydW5zIHRoZVxuLy8gcm93J3Mga2luZCB3aGVuIGl0IGlzIGNsaWNrZWQuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFZpZXdNZW51SXRlbSB7XG4gIGtpbmQ6XG4gICAgfCAndmlldydcbiAgICB8ICdzYXZlQ2hhbmdlcydcbiAgICB8ICdzYXZlQXNOZXcnXG4gICAgfCAncmVuYW1lJ1xuICAgIHwgJ3NldERlZmF1bHQnXG4gICAgfCAnY2xlYXJEZWZhdWx0J1xuICAgIHwgJ3NoYXJlJ1xuICAgIHwgJ3Vuc2hhcmUnXG4gICAgfCAnZGVsZXRlJ1xuICAgIHwgJ3Jlc2V0VG9WaWV3J1xuICAgIHwgJ3Jlc2V0VG9EZWZhdWx0cyc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8vIFNob3duIGJ1dCBub3QgY2xpY2thYmxlLlxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgdG9vbHRpcDogc3RyaW5nIHwgbnVsbDtcbiAgLy8gQSBsaW5lIGlzIGRyYXduIGFib3ZlIHRoZSByb3cuXG4gIGRpdmlkZXI6IGJvb2xlYW47XG4gIC8vIFRoZSB2aWV3IGEgJ3ZpZXcnIHJvdyBvcGVuczsgbnVsbCBvbiBhbiBhY3Rpb24uXG4gIHZpZXdJZDogbnVtYmVyIHwgbnVsbDtcbiAgLy8gVGhlIHJvdyBpcyB0aGUgb3BlbiB2aWV3OiBhIGNoZWNrIGlzIGRyYXduIGJlZm9yZSBpdHMgaWNvbi5cbiAgb3BlbjogYm9vbGVhbjtcbiAgLy8gV2hvc2UgdmlldyBpdCBpcywgYXMgdGhlIG1hdC1pY29uIGRyYXduIGJlZm9yZSB0aGUgbGFiZWw6IHRoZSB2aWV3ZXInc1xuICAvLyBkZWZhdWx0LCBhIHZpZXcgc29tZW9uZSBlbHNlIHNoYXJlczsgb3Igbm9uZS5cbiAgaWNvbjogJ3N0YXInIHwgJ3Blb3BsZScgfCBudWxsO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctc3VtbWFyeS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtdmlldy1zdW1tYXJ5LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gT25lIHNhdmVkIHZpZXcgb2YgYSByZXBvcnQgYXMgaXRzIGxpc3QgbmFtZXMgaXQgKEdFVCA6cmVwb3J0SWQvdmlld3MpOlxuLy8gbmFtZXMgYW5kIGZsYWdzIG9ubHkuIFRoZSB2aWV3J3MgY29uZmlnIGlzIHJlYWQgd2hlbiBpdCBpcyBwaWNrZWRcbi8vIChSZXBvcnRWaWV3KS5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0Vmlld1N1bW1hcnkge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8vIEV2ZXJ5b25lIHdobyBtYXkgb3BlbiB0aGUgcmVwb3J0IHNlZXMgaXQuXG4gIHNoYXJlZDogYm9vbGVhbjtcbiAgLy8gVGhlIHZpZXdlciBvd25zIGl0LlxuICBtaW5lOiBib29sZWFuO1xuICAvLyBJdCBvcGVucyBmb3IgdGhlIHZpZXdlciBpbnN0ZWFkIG9mIHRoZSByZXBvcnQncyBkZWZhdWx0cy4gT25seSBldmVyIHRydWVcbiAgLy8gb24gdGhlIHZpZXdlcidzIG93biB2aWV3LlxuICBwZXJzb25hbERlZmF1bHQ6IGJvb2xlYW47XG4gIC8vIFdobyBvd25zIGl0OyBzZXQgb24gYSB2aWV3IHRoZSB2aWV3ZXIgZG9lcyBub3Qgb3duLlxuICBvd25lck5hbWU6IHN0cmluZyB8IG51bGw7XG4gIC8vIFRoZSB2aWV3ZXIgbWF5IHNhdmUgY2hhbmdlcyB0byBpdCBhbmQgcmVuYW1lIGl0LlxuICBjYW5DaGFuZ2U6IGJvb2xlYW47XG4gIC8vIFRoZSB2aWV3ZXIgbWF5IGRlbGV0ZSBpdCAob25seSBpdHMgb3duZXIpLlxuICBjYW5EZWxldGU6IGJvb2xlYW47XG4gIG1vZGlmeURhdGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2ludGVyZmFjZXMvcmVwb3J0LXZpZXcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBvcnRWaWV3Q29uZmlnIH0gZnJvbSAnLi9yZXBvcnQtdmlldy1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydFZpZXdEcm9wcGVkIH0gZnJvbSAnLi9yZXBvcnQtdmlldy1kcm9wcGVkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXBvcnRWaWV3U3VtbWFyeSB9IGZyb20gJy4vcmVwb3J0LXZpZXctc3VtbWFyeS5pbnRlcmZhY2UnO1xuXG5cbi8vIE9uZSBzYXZlZCB2aWV3IHdpdGggaXRzIGNvbmZpZyAoR0VUIDpyZXBvcnRJZC92aWV3cy86cmVwb3J0Vmlld0lkLCBhbmRcbi8vIGV2ZXJ5IHdyaXRlJ3MgYW5zd2VyKS4gVGhlIGNvbmZpZyBpcyB1cGdyYWRlZCBhbmQgcHJ1bmVkIHRvIHRoZSByZXBvcnQgYXNcbi8vIGl0IGlzIG5vdzsgYGRyb3BwZWRgIHNheXMgd2hhdCB0aGUgcHJ1bmluZyBsZWZ0IG91dC5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0VmlldyBleHRlbmRzIFJlcG9ydFZpZXdTdW1tYXJ5IHtcbiAgY29uZmlnOiBSZXBvcnRWaWV3Q29uZmlnO1xuICBkcm9wcGVkOiBSZXBvcnRWaWV3RHJvcHBlZDtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC12aWV3cy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydFZpZXdTdW1tYXJ5IH0gZnJvbSAnLi9yZXBvcnQtdmlldy1zdW1tYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXBvcnRWaWV3IH0gZnJvbSAnLi9yZXBvcnQtdmlldy5pbnRlcmZhY2UnO1xuXG5cbi8vIEEgcmVwb3J0J3Mgc2F2ZWQgdmlld3MgYXMgdGhlIHZpZXdlciBtYXkgc2VlIHRoZW0gKEdFVCA6cmVwb3J0SWQvdmlld3MpOlxuLy8gaXRzIG93biB2aWV3cyBmaXJzdCwgdGhlbiB0aGUgdmlld3Mgb3RoZXJzIHNoYXJlLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRWaWV3cyB7XG4gIHZpZXdzOiBSZXBvcnRWaWV3U3VtbWFyeVtdO1xuICAvLyBUaGUgdmlld2VyIG1heSBzaGFyZSBpdHMgdmlld3Mgd2l0aCBldmVyeW9uZS5cbiAgY2FuU2hhcmU6IGJvb2xlYW47XG4gIC8vIFRoZSB2aWV3ZXIncyBkZWZhdWx0IHZpZXcgaW4gZnVsbCwgc28gdGhlIHJlcG9ydCBvcGVucyBvbiBpdCB3aXRob3V0IGFcbiAgLy8gc2Vjb25kIHJlcXVlc3Q7IG51bGwgd2hlbiBpdCBoYXMgbm9uZS5cbiAgbXlEZWZhdWx0OiBSZXBvcnRWaWV3IHwgbnVsbDtcbn1cbiJdfQ==