phoenix-ui-components 3.0.4 → 4.0.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 (125) hide show
  1. package/README.md +66 -0
  2. package/dist/README.md +66 -0
  3. package/dist/fesm2022/phoenix-ui-components.mjs +3875 -490
  4. package/dist/fesm2022/phoenix-ui-components.mjs.map +1 -1
  5. package/dist/index.d.ts +1370 -3
  6. package/package.json +10 -19
  7. package/dist/components/embed-menu/embed-menu.component.d.ts +0 -5
  8. package/dist/components/embed-menu/experiment-link/experiment-link.component.d.ts +0 -9
  9. package/dist/components/file-explorer/file-explorer.component.d.ts +0 -35
  10. package/dist/components/loader/loader.component.d.ts +0 -11
  11. package/dist/components/nav/nav.component.d.ts +0 -8
  12. package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +0 -18
  13. package/dist/components/phoenix-menu/index.d.ts +0 -3
  14. package/dist/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.d.ts +0 -14
  15. package/dist/components/phoenix-menu/phoenix-menu.component.d.ts +0 -7
  16. package/dist/components/phoenix-ui.module.d.ts +0 -71
  17. package/dist/components/ring-loader/ring-loader.component.d.ts +0 -5
  18. package/dist/components/ui-menu/animate-camera/animate-camera.component.d.ts +0 -20
  19. package/dist/components/ui-menu/animate-event/animate-event.component.d.ts +0 -10
  20. package/dist/components/ui-menu/ar-toggle/ar-toggle.component.d.ts +0 -11
  21. package/dist/components/ui-menu/auto-rotate/auto-rotate.component.d.ts +0 -10
  22. package/dist/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.d.ts +0 -29
  23. package/dist/components/ui-menu/collections-info/collections-info.component.d.ts +0 -15
  24. package/dist/components/ui-menu/cycle-events/cycle-events.component.d.ts +0 -21
  25. package/dist/components/ui-menu/dark-theme/dark-theme.component.d.ts +0 -12
  26. package/dist/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.d.ts +0 -28
  27. package/dist/components/ui-menu/event-data-explorer/event-data-explorer.component.d.ts +0 -13
  28. package/dist/components/ui-menu/event-selector/event-selector.component.d.ts +0 -12
  29. package/dist/components/ui-menu/experiment-info/experiment-info.component.d.ts +0 -14
  30. package/dist/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.d.ts +0 -22
  31. package/dist/components/ui-menu/geometry-browser/geometry-browser.component.d.ts +0 -15
  32. package/dist/components/ui-menu/index.d.ts +0 -39
  33. package/dist/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.d.ts +0 -26
  34. package/dist/components/ui-menu/info-panel/info-panel.component.d.ts +0 -33
  35. package/dist/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.d.ts +0 -34
  36. package/dist/components/ui-menu/io-options/io-options.component.d.ts +0 -11
  37. package/dist/components/ui-menu/main-view-toggle/main-view-toggle.component.d.ts +0 -10
  38. package/dist/components/ui-menu/make-picture/make-picture.component.d.ts +0 -20
  39. package/dist/components/ui-menu/menu-toggle/menu-toggle.component.d.ts +0 -9
  40. package/dist/components/ui-menu/object-clipping/object-clipping.component.d.ts +0 -15
  41. package/dist/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.d.ts +0 -15
  42. package/dist/components/ui-menu/object-selection/object-selection.component.d.ts +0 -17
  43. package/dist/components/ui-menu/overlay/overlay.component.d.ts +0 -52
  44. package/dist/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.d.ts +0 -20
  45. package/dist/components/ui-menu/overlay-view/overlay-view.component.d.ts +0 -15
  46. package/dist/components/ui-menu/performance-toggle/performance-toggle.component.d.ts +0 -10
  47. package/dist/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.d.ts +0 -28
  48. package/dist/components/ui-menu/share-link/share-link.component.d.ts +0 -9
  49. package/dist/components/ui-menu/ss-mode/ss-mode.component.d.ts +0 -10
  50. package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +0 -19
  51. package/dist/components/ui-menu/tree-menu/tree-menu.component.d.ts +0 -10
  52. package/dist/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.d.ts +0 -6
  53. package/dist/components/ui-menu/ui-menu.component.d.ts +0 -10
  54. package/dist/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.d.ts +0 -51
  55. package/dist/components/ui-menu/view-options/view-options.component.d.ts +0 -33
  56. package/dist/components/ui-menu/vr-toggle/vr-toggle.component.d.ts +0 -11
  57. package/dist/components/ui-menu/zoom-controls/zoom-controls.component.d.ts +0 -39
  58. package/dist/esm2022/components/embed-menu/embed-menu.component.mjs +0 -22
  59. package/dist/esm2022/components/embed-menu/experiment-link/experiment-link.component.mjs +0 -27
  60. package/dist/esm2022/components/file-explorer/file-explorer.component.mjs +0 -109
  61. package/dist/esm2022/components/loader/loader.component.mjs +0 -71
  62. package/dist/esm2022/components/nav/nav.component.mjs +0 -19
  63. package/dist/esm2022/components/phoenix-menu/config/config-slider/config-slider.component.mjs +0 -82
  64. package/dist/esm2022/components/phoenix-menu/index.mjs +0 -4
  65. package/dist/esm2022/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +0 -308
  66. package/dist/esm2022/components/phoenix-menu/phoenix-menu.component.mjs +0 -23
  67. package/dist/esm2022/components/phoenix-ui.module.mjs +0 -257
  68. package/dist/esm2022/components/ring-loader/ring-loader.component.mjs +0 -16
  69. package/dist/esm2022/components/ui-menu/animate-camera/animate-camera.component.mjs +0 -120
  70. package/dist/esm2022/components/ui-menu/animate-event/animate-event.component.mjs +0 -33
  71. package/dist/esm2022/components/ui-menu/ar-toggle/ar-toggle.component.mjs +0 -83
  72. package/dist/esm2022/components/ui-menu/auto-rotate/auto-rotate.component.mjs +0 -29
  73. package/dist/esm2022/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +0 -274
  74. package/dist/esm2022/components/ui-menu/collections-info/collections-info.component.mjs +0 -47
  75. package/dist/esm2022/components/ui-menu/cycle-events/cycle-events.component.mjs +0 -90
  76. package/dist/esm2022/components/ui-menu/dark-theme/dark-theme.component.mjs +0 -32
  77. package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +0 -128
  78. package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +0 -35
  79. package/dist/esm2022/components/ui-menu/event-selector/event-selector.component.mjs +0 -54
  80. package/dist/esm2022/components/ui-menu/experiment-info/experiment-info.component.mjs +0 -100
  81. package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.mjs +0 -172
  82. package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser.component.mjs +0 -45
  83. package/dist/esm2022/components/ui-menu/index.mjs +0 -40
  84. package/dist/esm2022/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +0 -69
  85. package/dist/esm2022/components/ui-menu/info-panel/info-panel.component.mjs +0 -59
  86. package/dist/esm2022/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +0 -304
  87. package/dist/esm2022/components/ui-menu/io-options/io-options.component.mjs +0 -36
  88. package/dist/esm2022/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +0 -32
  89. package/dist/esm2022/components/ui-menu/make-picture/make-picture.component.mjs +0 -109
  90. package/dist/esm2022/components/ui-menu/menu-toggle/menu-toggle.component.mjs +0 -40
  91. package/dist/esm2022/components/ui-menu/object-clipping/object-clipping.component.mjs +0 -72
  92. package/dist/esm2022/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +0 -59
  93. package/dist/esm2022/components/ui-menu/object-selection/object-selection.component.mjs +0 -46
  94. package/dist/esm2022/components/ui-menu/overlay/overlay.component.mjs +0 -197
  95. package/dist/esm2022/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +0 -83
  96. package/dist/esm2022/components/ui-menu/overlay-view/overlay-view.component.mjs +0 -41
  97. package/dist/esm2022/components/ui-menu/performance-toggle/performance-toggle.component.mjs +0 -29
  98. package/dist/esm2022/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +0 -165
  99. package/dist/esm2022/components/ui-menu/share-link/share-link.component.mjs +0 -28
  100. package/dist/esm2022/components/ui-menu/ss-mode/ss-mode.component.mjs +0 -46
  101. package/dist/esm2022/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +0 -94
  102. package/dist/esm2022/components/ui-menu/tree-menu/tree-menu.component.mjs +0 -78
  103. package/dist/esm2022/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +0 -34
  104. package/dist/esm2022/components/ui-menu/ui-menu.component.mjs +0 -54
  105. package/dist/esm2022/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.mjs +0 -247
  106. package/dist/esm2022/components/ui-menu/view-options/view-options.component.mjs +0 -170
  107. package/dist/esm2022/components/ui-menu/vr-toggle/vr-toggle.component.mjs +0 -52
  108. package/dist/esm2022/components/ui-menu/zoom-controls/zoom-controls.component.mjs +0 -79
  109. package/dist/esm2022/phoenix-ui-components.mjs +0 -5
  110. package/dist/esm2022/public_api.mjs +0 -11
  111. package/dist/esm2022/services/error-message-service.mjs +0 -30
  112. package/dist/esm2022/services/event-display.service.mjs +0 -23
  113. package/dist/esm2022/services/extras/attribute.pipe.mjs +0 -33
  114. package/dist/esm2022/services/extras/event-data-import.mjs +0 -21
  115. package/dist/esm2022/services/file-loader.service.mjs +0 -93
  116. package/dist/esm2022/services/global-error-handler.mjs +0 -30
  117. package/dist/esm2022/services/index.mjs +0 -4
  118. package/dist/public_api.d.ts +0 -10
  119. package/dist/services/error-message-service.d.ts +0 -17
  120. package/dist/services/event-display.service.d.ts +0 -13
  121. package/dist/services/extras/attribute.pipe.d.ts +0 -16
  122. package/dist/services/extras/event-data-import.d.ts +0 -15
  123. package/dist/services/file-loader.service.d.ts +0 -17
  124. package/dist/services/global-error-handler.d.ts +0 -20
  125. package/dist/services/index.d.ts +0 -3
@@ -1,34 +0,0 @@
1
- import { type OnInit } from '@angular/core';
2
- import { EventDisplayService } from '../../../../services/event-display.service';
3
- import { MatDialogRef } from '@angular/material/dialog';
4
- import { type EventDataImportOption, ImportOption } from '../../../../services/extras/event-data-import';
5
- import * as i0 from "@angular/core";
6
- export declare class IOOptionsDialogComponent implements OnInit {
7
- private eventDisplay;
8
- dialogRef: MatDialogRef<IOOptionsDialogComponent>;
9
- eventDataImportOptions: EventDataImportOption[];
10
- eventDataOptionsWithHandler: ImportOption[];
11
- private supportedEventDataFormats;
12
- constructor(eventDisplay: EventDisplayService, dialogRef: MatDialogRef<IOOptionsDialogComponent>);
13
- ngOnInit(): void;
14
- getSupportedEventDataFormats(): string;
15
- onClose(): void;
16
- handleJSONEventDataInput(files: FileList): void;
17
- handleEDM4HEPJSONEventDataInput(files: FileList): void;
18
- handleJiveXMLDataInput(files: FileList): void;
19
- private getJiveXMLLoader;
20
- handleOBJInput(files: FileList): void;
21
- handleSceneInput(files: FileList): void;
22
- handleGLTFInput(files: FileList): void;
23
- handlePhoenixInput(files: FileList): void;
24
- handleROOTInput(files: FileList): Promise<void>;
25
- handleRootJSONInput(files: FileList): Promise<void>;
26
- handleIgEventDataInput(files: FileList): void;
27
- handleZipEventDataInput(files: FileList): Promise<void>;
28
- handleFileInput(file: File, extensions: string, callback: (result: string, fileName?: string) => void): void;
29
- private isFileOfExtension;
30
- saveScene(): void;
31
- exportOBJ(): void;
32
- static ɵfac: i0.ɵɵFactoryDeclaration<IOOptionsDialogComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<IOOptionsDialogComponent, "app-io-options-dialog", never, { "eventDataImportOptions": { "alias": "eventDataImportOptions"; "required": false; }; }, {}, never, never, false, never>;
34
- }
@@ -1,11 +0,0 @@
1
- import { MatDialog } from '@angular/material/dialog';
2
- import { type EventDataImportOption } from '../../../services/extras/event-data-import';
3
- import * as i0 from "@angular/core";
4
- export declare class IoOptionsComponent {
5
- private dialog;
6
- eventDataImportOptions: EventDataImportOption[];
7
- constructor(dialog: MatDialog);
8
- openIODialog(): void;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<IoOptionsComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<IoOptionsComponent, "app-io-options", never, { "eventDataImportOptions": { "alias": "eventDataImportOptions"; "required": false; }; }, {}, never, never, false, never>;
11
- }
@@ -1,10 +0,0 @@
1
- import { EventDisplayService } from '../../../services/event-display.service';
2
- import * as i0 from "@angular/core";
3
- export declare class MainViewToggleComponent {
4
- private eventDisplay;
5
- orthographicView: boolean;
6
- constructor(eventDisplay: EventDisplayService);
7
- switchMainView(): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<MainViewToggleComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<MainViewToggleComponent, "app-main-view-toggle", never, {}, {}, never, never, false, never>;
10
- }
@@ -1,20 +0,0 @@
1
- import { type OnInit } from '@angular/core';
2
- import { EventDisplayService } from '../../../services/event-display.service';
3
- import * as i0 from "@angular/core";
4
- export declare class MakePictureComponent implements OnInit {
5
- private eventDisplay;
6
- fittings: string[];
7
- fitting: string;
8
- width: number;
9
- height: number;
10
- disabled: boolean;
11
- constructor(eventDisplay: EventDisplayService);
12
- ngOnInit(): void;
13
- private checkSize;
14
- setWidth(value: any): void;
15
- setHeight(value: any): void;
16
- buttonText(): "Size too large" | "Create picture";
17
- makePicture(): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<MakePictureComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<MakePictureComponent, "app-make-picture", never, {}, {}, never, never, false, never>;
20
- }
@@ -1,9 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class MenuToggleComponent {
3
- icon: string;
4
- active: boolean;
5
- tooltip: string;
6
- disabled: boolean;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<MenuToggleComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuToggleComponent, "app-menu-toggle", never, { "icon": { "alias": "icon"; "required": false; }; "active": { "alias": "active"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
9
- }
@@ -1,15 +0,0 @@
1
- import { MatCheckboxChange } from '@angular/material/checkbox';
2
- import { EventDisplayService } from '../../../services/event-display.service';
3
- import * as i0 from "@angular/core";
4
- export declare class ObjectClippingComponent {
5
- private eventDisplay;
6
- clippingEnabled: boolean;
7
- startClippingAngle: number;
8
- openingClippingAngle: number;
9
- constructor(eventDisplay: EventDisplayService);
10
- changeStartClippingAngle(startingAngle: number): void;
11
- changeOpeningClippingAngle(openingAngle: number): void;
12
- toggleClipping(change: MatCheckboxChange): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<ObjectClippingComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<ObjectClippingComponent, "app-object-clipping", never, {}, {}, never, never, false, never>;
15
- }
@@ -1,15 +0,0 @@
1
- import { type OnInit } from '@angular/core';
2
- import { EventDisplayService } from '../../../../services/event-display.service';
3
- import * as i0 from "@angular/core";
4
- export declare class ObjectSelectionOverlayComponent implements OnInit {
5
- private eventDisplay;
6
- hiddenSelectedInfo: boolean;
7
- selectedObject: {
8
- name: string;
9
- attributes: any[];
10
- };
11
- constructor(eventDisplay: EventDisplayService);
12
- ngOnInit(): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<ObjectSelectionOverlayComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<ObjectSelectionOverlayComponent, "app-object-selection-overlay", never, { "hiddenSelectedInfo": { "alias": "hiddenSelectedInfo"; "required": false; }; }, {}, never, never, false, never>;
15
- }
@@ -1,17 +0,0 @@
1
- import { type OnInit, ComponentRef, type OnDestroy } from '@angular/core';
2
- import { Overlay } from '@angular/cdk/overlay';
3
- import { ObjectSelectionOverlayComponent } from './object-selection-overlay/object-selection-overlay.component';
4
- import { EventDisplayService } from '../../../services/event-display.service';
5
- import * as i0 from "@angular/core";
6
- export declare class ObjectSelectionComponent implements OnInit, OnDestroy {
7
- private overlay;
8
- private eventDisplay;
9
- hiddenSelectedInfo: boolean;
10
- overlayWindow: ComponentRef<ObjectSelectionOverlayComponent>;
11
- constructor(overlay: Overlay, eventDisplay: EventDisplayService);
12
- ngOnInit(): void;
13
- ngOnDestroy(): void;
14
- toggleOverlay(): void;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<ObjectSelectionComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<ObjectSelectionComponent, "app-object-selection", never, {}, {}, never, never, false, never>;
17
- }
@@ -1,52 +0,0 @@
1
- import { type AfterViewInit } from '@angular/core';
2
- import type { ElementRef } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Component for overlay panel.
6
- */
7
- export declare class OverlayComponent implements AfterViewInit {
8
- /** Title of the overlay. */
9
- overlayTitle: string;
10
- /** If the overlay is open or not. */
11
- active: boolean;
12
- /** Icon of the overlay header. */
13
- icon: string;
14
- /** If the overlay is resizable. */
15
- resizable: boolean;
16
- /** If the overlay body is transparent or not. */
17
- transparentBody: boolean;
18
- /** If the aspect ratio is kept fixed or not. */
19
- keepAspectRatioFixed: boolean;
20
- /** If the overlay body is visible or not. */
21
- showBody: boolean;
22
- /** Aspect ratio of the overlay view. */
23
- aspectRatio: number;
24
- /** Complete overlay card containing both header and body. */
25
- overlayCard: ElementRef;
26
- /** Handle for resizing the overlay. */
27
- resizeHandleCorner: ElementRef;
28
- /** Minimum resizable width. */
29
- private MIN_RES_WIDTH;
30
- /** Minimum resizable height */
31
- private MIN_RES_HEIGHT;
32
- /**
33
- * Move the resizable handle to the bottom right after the component is created.
34
- */
35
- ngAfterViewInit(): void;
36
- /**
37
- * Resize the overlay card when the resize handle is dragged.
38
- */
39
- onResize(): void;
40
- /**
41
- * Reset resize handle position.
42
- */
43
- resetHandlePosition(): void;
44
- /**
45
- * Set the position of the resize handle using transform3d.
46
- * @param overlayRect Bounding client rectangle of the overlay card.
47
- * @param dragRect Bounding client rectangle of the resize handle.
48
- */
49
- private setHandleTransform;
50
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayComponent, never>;
51
- static ɵcmp: i0.ɵɵComponentDeclaration<OverlayComponent, "app-overlay", never, { "overlayTitle": { "alias": "overlayTitle"; "required": false; }; "active": { "alias": "active"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "transparentBody": { "alias": "transparentBody"; "required": false; }; "keepAspectRatioFixed": { "alias": "keepAspectRatioFixed"; "required": false; }; }, {}, never, ["*"], false, never>;
52
- }
@@ -1,20 +0,0 @@
1
- import { type AfterViewInit } from '@angular/core';
2
- import type { ElementRef } from '@angular/core';
3
- import { EventDisplayService } from '../../../../services/event-display.service';
4
- import * as i0 from "@angular/core";
5
- export declare class OverlayViewWindowComponent implements AfterViewInit {
6
- private eventDisplay;
7
- showOverlay: boolean;
8
- transparentBody: boolean;
9
- orthographicView: boolean;
10
- overlayViewFixed: boolean;
11
- overlayWindow: ElementRef<HTMLCanvasElement>;
12
- constructor(eventDisplay: EventDisplayService);
13
- ngAfterViewInit(): void;
14
- initializeCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement;
15
- switchOverlayView(): void;
16
- fixOverlayView(): void;
17
- toggleBgTransparency(): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayViewWindowComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<OverlayViewWindowComponent, "app-overlay-view-window", never, { "showOverlay": { "alias": "showOverlay"; "required": false; }; }, {}, never, never, false, never>;
20
- }
@@ -1,15 +0,0 @@
1
- import { ComponentRef, type OnDestroy, type OnInit } from '@angular/core';
2
- import { Overlay } from '@angular/cdk/overlay';
3
- import { OverlayViewWindowComponent } from './overlay-view-window/overlay-view-window.component';
4
- import * as i0 from "@angular/core";
5
- export declare class OverlayViewComponent implements OnInit, OnDestroy {
6
- private overlay;
7
- overlayWindow: ComponentRef<OverlayViewWindowComponent>;
8
- showOverlay: boolean;
9
- constructor(overlay: Overlay);
10
- ngOnInit(): void;
11
- ngOnDestroy(): void;
12
- toggleOverlay(): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayViewComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<OverlayViewComponent, "app-overlay-view", never, {}, {}, never, never, false, never>;
15
- }
@@ -1,10 +0,0 @@
1
- import { EventDisplayService } from '../../../services/event-display.service';
2
- import * as i0 from "@angular/core";
3
- export declare class PerformanceToggleComponent {
4
- private eventDisplay;
5
- performanceMode: boolean;
6
- constructor(eventDisplay: EventDisplayService);
7
- togglePerformance(): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceToggleComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceToggleComponent, "app-performance-toggle", never, {}, {}, never, never, false, never>;
10
- }
@@ -1,28 +0,0 @@
1
- import { type AfterViewInit, ElementRef } from '@angular/core';
2
- import { MatDialogRef } from '@angular/material/dialog';
3
- import { ActiveVariable } from 'phoenix-event-display';
4
- import * as i0 from "@angular/core";
5
- export declare class ShareLinkDialogComponent implements AfterViewInit {
6
- private dialogRef;
7
- baseLink: string;
8
- shareLink: ActiveVariable<string>;
9
- embedLink: string;
10
- urlOptions: {
11
- file: string;
12
- type: string;
13
- config: string;
14
- hideWidgets: boolean;
15
- embed: boolean;
16
- };
17
- qrcodeCanvas: ElementRef<HTMLCanvasElement>;
18
- constructor(dialogRef: MatDialogRef<ShareLinkDialogComponent>);
19
- ngAfterViewInit(): void;
20
- onClose(): void;
21
- getEmbedLink(urlParametersString?: string): string;
22
- setOptionValue(option: string, value: string | boolean): void;
23
- onOptionsChange(): void;
24
- copyText(text: string, element: HTMLElement): void;
25
- updateQRCode(link: string): void;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<ShareLinkDialogComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<ShareLinkDialogComponent, "app-share-link-dialog", never, {}, {}, never, never, false, never>;
28
- }
@@ -1,9 +0,0 @@
1
- import { MatDialog } from '@angular/material/dialog';
2
- import * as i0 from "@angular/core";
3
- export declare class ShareLinkComponent {
4
- private dialog;
5
- constructor(dialog: MatDialog);
6
- openShareLinkDialog(): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<ShareLinkComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<ShareLinkComponent, "app-share-link", never, {}, {}, never, never, false, never>;
9
- }
@@ -1,10 +0,0 @@
1
- import { type OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class SSModeComponent implements OnInit {
4
- ssMode: boolean;
5
- ngOnInit(): void;
6
- toggleSSMode(): void;
7
- private onDocumentClick;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<SSModeComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<SSModeComponent, "app-ss-mode", never, {}, {}, never, never, false, never>;
10
- }
@@ -1,19 +0,0 @@
1
- import type { QueryList } from '@angular/core';
2
- import { EventDisplayService } from '../../../../services/event-display.service';
3
- import * as i0 from "@angular/core";
4
- export type TreeMenuNode = {
5
- name: string;
6
- geometryId: string;
7
- children?: TreeMenuNode[];
8
- };
9
- export declare class TreeMenuItemComponent {
10
- private eventDisplay;
11
- children: QueryList<TreeMenuItemComponent>;
12
- node: TreeMenuNode;
13
- isExpanded: boolean;
14
- visible: boolean;
15
- constructor(eventDisplay: EventDisplayService);
16
- toggleVisibility(visible: boolean): void;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<TreeMenuItemComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<TreeMenuItemComponent, "app-tree-menu-item", never, { "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
19
- }
@@ -1,10 +0,0 @@
1
- import { type OnInit } from '@angular/core';
2
- import { type TreeMenuNode } from './tree-menu-item/tree-menu-item.component';
3
- import * as i0 from "@angular/core";
4
- export declare class TreeMenuComponent implements OnInit {
5
- rootNode: TreeMenuNode;
6
- constructor();
7
- ngOnInit(): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<TreeMenuComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<TreeMenuComponent, "app-tree-menu", never, {}, {}, never, never, false, never>;
10
- }
@@ -1,6 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class UiMenuWrapperComponent {
3
- hideUIMenu: boolean;
4
- static ɵfac: i0.ɵɵFactoryDeclaration<UiMenuWrapperComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<UiMenuWrapperComponent, "app-ui-menu-wrapper", never, {}, {}, never, ["*"], false, never>;
6
- }
@@ -1,10 +0,0 @@
1
- import { type EventDataImportOption } from '../../services/extras/event-data-import';
2
- import * as i0 from "@angular/core";
3
- export declare class UiMenuComponent {
4
- eventDataImportOptions: EventDataImportOption[];
5
- animationPresets: {
6
- [key: string]: import("phoenix-event-display").AnimationPreset;
7
- };
8
- static ɵfac: i0.ɵɵFactoryDeclaration<UiMenuComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<UiMenuComponent, "app-ui-menu", never, { "eventDataImportOptions": { "alias": "eventDataImportOptions"; "required": false; }; "animationPresets": { "alias": "animationPresets"; "required": false; }; }, {}, never, ["*"], false, never>;
10
- }
@@ -1,51 +0,0 @@
1
- import { type OnInit } from '@angular/core';
2
- import { Vector3 } from 'three';
3
- import { MatCheckboxChange } from '@angular/material/checkbox';
4
- import { MatDialogRef } from '@angular/material/dialog';
5
- import { EventDisplayService } from '../../../../services/event-display.service';
6
- import { Subscription } from 'rxjs';
7
- import * as i0 from "@angular/core";
8
- export declare class CartesianGridConfigComponent implements OnInit {
9
- data: {
10
- gridVisible: boolean;
11
- scale: number;
12
- };
13
- private dialogRef;
14
- private eventDisplay;
15
- cartesianPos: Vector3;
16
- originChangedSub: Subscription;
17
- stopShiftingSub: Subscription;
18
- showCartesianGrid: boolean;
19
- gridConfig: {
20
- showXY: boolean;
21
- showYZ: boolean;
22
- showZX: boolean;
23
- xDistance: number;
24
- yDistance: number;
25
- zDistance: number;
26
- sparsity: number;
27
- };
28
- scale: number;
29
- shiftGrid: boolean;
30
- constructor(data: {
31
- gridVisible: boolean;
32
- scale: number;
33
- }, dialogRef: MatDialogRef<CartesianGridConfigComponent>, eventDisplay: EventDisplayService);
34
- ngOnInit(): void;
35
- onClose(): void;
36
- onSave(x: any, y: any, z: any): void;
37
- shiftCartesianGridByPointer(): void;
38
- shiftCartesianGridByValues(position: Vector3): void;
39
- translateGrid(position: Vector3): void;
40
- addXYPlanes(zDistance: Event): void;
41
- addYZPlanes(xDistance: Event): void;
42
- addZXPlanes(yDistance: Event): void;
43
- changeSparsity(sparsity: Event): void;
44
- showXYPlanes(change: MatCheckboxChange): void;
45
- showYZPlanes(change: MatCheckboxChange): void;
46
- showZXPlanes(change: MatCheckboxChange): void;
47
- callSetShowCartesianGrid(): void;
48
- calcPlanes(dis: number): number;
49
- static ɵfac: i0.ɵɵFactoryDeclaration<CartesianGridConfigComponent, never>;
50
- static ɵcmp: i0.ɵɵComponentDeclaration<CartesianGridConfigComponent, "app-cartesian-grid-config", never, {}, {}, never, never, false, never>;
51
- }
@@ -1,33 +0,0 @@
1
- import { type OnInit, type OnDestroy } from '@angular/core';
2
- import { PresetView } from 'phoenix-event-display';
3
- import { MatCheckboxChange } from '@angular/material/checkbox';
4
- import { EventDisplayService } from '../../../services/event-display.service';
5
- import { MatDialog } from '@angular/material/dialog';
6
- import { Subscription } from 'rxjs';
7
- import { Vector3 } from 'three';
8
- import { MatMenuTrigger } from '@angular/material/menu';
9
- import * as i0 from "@angular/core";
10
- export declare class ViewOptionsComponent implements OnInit, OnDestroy {
11
- private eventDisplay;
12
- private dialog;
13
- trigger: MatMenuTrigger;
14
- showCartesianGrid: boolean;
15
- scale: number;
16
- views: PresetView[];
17
- show3DPoints: boolean;
18
- origin: Vector3;
19
- sub: Subscription;
20
- constructor(eventDisplay: EventDisplayService, dialog: MatDialog);
21
- ngOnInit(): void;
22
- openCartesianGridConfigDialog(): void;
23
- displayView($event: any, view: PresetView): void;
24
- setAxis(change: MatCheckboxChange): void;
25
- setEtaPhiGrid(change: MatCheckboxChange): void;
26
- setCartesianGrid(change: MatCheckboxChange): void;
27
- showLabels(change: MatCheckboxChange): void;
28
- show3DMousePoints(change: MatCheckboxChange): void;
29
- toggleShowDistance(change: MatCheckboxChange): void;
30
- ngOnDestroy(): void;
31
- static ɵfac: i0.ɵɵFactoryDeclaration<ViewOptionsComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<ViewOptionsComponent, "app-view-options", never, {}, {}, never, never, false, never>;
33
- }
@@ -1,11 +0,0 @@
1
- import { EventDisplayService } from '../../../services/event-display.service';
2
- import * as i0 from "@angular/core";
3
- export declare class VrToggleComponent {
4
- private eventDisplay;
5
- vrSupported: boolean;
6
- vrActive: boolean;
7
- constructor(eventDisplay: EventDisplayService);
8
- toggleVr(): void;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<VrToggleComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<VrToggleComponent, "app-vr-toggle", never, {}, {}, never, never, false, never>;
11
- }
@@ -1,39 +0,0 @@
1
- import { EventDisplayService } from '../../../services/event-display.service';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Component for adding zoom controls for the main and overlay cameras.
5
- */
6
- export declare class ZoomControlsComponent {
7
- private eventDisplay;
8
- /** All camera being used by the scene. */
9
- allCameras: any[];
10
- /** Factor to zoom by. */
11
- private zoomFactor;
12
- /** Timeout for clearing mouse hold. */
13
- private zoomTimeout;
14
- /** The speed and time of zoom. */
15
- private zoomTime;
16
- constructor(eventDisplay: EventDisplayService);
17
- /**
18
- * Zoom all the cameras by a specific zoom factor.
19
- * The factor may either be greater (zoom in) or smaller (zoom out) than 1.
20
- * @param zoomFactor The factor to zoom by.
21
- */
22
- zoomTo(zoomFactor: number): void;
23
- /**
24
- * Zoom the camera in.
25
- * @param leftClick Whether the mouse click is left or not.
26
- */
27
- zoomIn(leftClick: boolean): void;
28
- /**
29
- * Zoom the camera out.
30
- * @param leftClick Whether the mouse click is left or not.s
31
- */
32
- zoomOut(leftClick: boolean): void;
33
- /**
34
- * Reset the zoom time which decreases upon hold and clear the zoom timeout.
35
- */
36
- clearZoom(): void;
37
- static ɵfac: i0.ɵɵFactoryDeclaration<ZoomControlsComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<ZoomControlsComponent, "app-zoom-controls", never, {}, {}, never, never, false, never>;
39
- }
@@ -1,22 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../ui-menu/dark-theme/dark-theme.component";
4
- import * as i2 from "../ui-menu/auto-rotate/auto-rotate.component";
5
- import * as i3 from "../ui-menu/main-view-toggle/main-view-toggle.component";
6
- import * as i4 from "../ui-menu/animate-camera/animate-camera.component";
7
- import * as i5 from "../ui-menu/animate-event/animate-event.component";
8
- import * as i6 from "./experiment-link/experiment-link.component";
9
- export class EmbedMenuComponent {
10
- static ɵfac = function EmbedMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EmbedMenuComponent)(); };
11
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EmbedMenuComponent, selectors: [["app-embed-menu"]], decls: 8, vars: 0, consts: [["id", "embedMenu"], ["id", "embedMenuInner"]], template: function EmbedMenuComponent_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
13
- i0.ɵɵelement(2, "app-dark-theme")(3, "app-auto-rotate")(4, "app-main-view-toggle")(5, "app-animate-event")(6, "app-animate-camera")(7, "app-experiment-link");
14
- i0.ɵɵelementEnd()();
15
- } }, dependencies: [i1.DarkThemeComponent, i2.AutoRotateComponent, i3.MainViewToggleComponent, i4.AnimateCameraComponent, i5.AnimateEventComponent, i6.ExperimentLinkComponent], styles: ["#embedMenu[_ngcontent-%COMP%]{display:none}#embedMenu[_ngcontent-%COMP%] #embedMenuInner[_ngcontent-%COMP%]{display:flex;position:absolute;left:1rem;bottom:1rem;background:var(--phoenix-background-color-secondary);border:1px solid var(--phoenix-background-color-tertiary);box-shadow:var(--phoenix-box-shadow);border-radius:30px;padding:.25rem 0}"] });
16
- }
17
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EmbedMenuComponent, [{
18
- type: Component,
19
- args: [{ selector: 'app-embed-menu', template: "<div id=\"embedMenu\">\n <div id=\"embedMenuInner\">\n <app-dark-theme></app-dark-theme>\n <app-auto-rotate></app-auto-rotate>\n <app-main-view-toggle></app-main-view-toggle>\n <app-animate-event></app-animate-event>\n <app-animate-camera></app-animate-camera>\n <app-experiment-link></app-experiment-link>\n </div>\n</div>\n", styles: ["#embedMenu{display:none}#embedMenu #embedMenuInner{display:flex;position:absolute;left:1rem;bottom:1rem;background:var(--phoenix-background-color-secondary);border:1px solid var(--phoenix-background-color-tertiary);box-shadow:var(--phoenix-box-shadow);border-radius:30px;padding:.25rem 0}\n"] }]
20
- }], null, null); })();
21
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmbedMenuComponent, { className: "EmbedMenuComponent", filePath: "components/embed-menu/embed-menu.component.ts", lineNumber: 8 }); })();
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy9lbWJlZC1tZW51L2VtYmVkLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvZW1iZWQtbWVudS9lbWJlZC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxrQkFBa0I7NEdBQWxCLGtCQUFrQjs2REFBbEIsa0JBQWtCO1lDTjdCLEFBREYsOEJBQW9CLGFBQ087WUFNdkIsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLGlDQUFpQyxzQkFDRSwyQkFDVSx3QkFDTix5QkFDRSwwQkFDRTtZQUUvQyxBQURFLGlCQUFNLEVBQ0Y7OztpRkRGTyxrQkFBa0I7Y0FMOUIsU0FBUzsyQkFDRSxnQkFBZ0I7O2tGQUlmLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZW1iZWQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWJlZC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW1iZWQtbWVudS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFbWJlZE1lbnVDb21wb25lbnQge31cbiIsIjxkaXYgaWQ9XCJlbWJlZE1lbnVcIj5cbiAgPGRpdiBpZD1cImVtYmVkTWVudUlubmVyXCI+XG4gICAgPGFwcC1kYXJrLXRoZW1lPjwvYXBwLWRhcmstdGhlbWU+XG4gICAgPGFwcC1hdXRvLXJvdGF0ZT48L2FwcC1hdXRvLXJvdGF0ZT5cbiAgICA8YXBwLW1haW4tdmlldy10b2dnbGU+PC9hcHAtbWFpbi12aWV3LXRvZ2dsZT5cbiAgICA8YXBwLWFuaW1hdGUtZXZlbnQ+PC9hcHAtYW5pbWF0ZS1ldmVudD5cbiAgICA8YXBwLWFuaW1hdGUtY2FtZXJhPjwvYXBwLWFuaW1hdGUtY2FtZXJhPlxuICAgIDxhcHAtZXhwZXJpbWVudC1saW5rPjwvYXBwLWV4cGVyaW1lbnQtbGluaz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../ui-menu/menu-toggle/menu-toggle.component";
4
- export class ExperimentLinkComponent {
5
- experimentLink;
6
- ngOnInit() {
7
- // we just want to remove the "&embed=true" instruction here.
8
- const url = new URL(window.location.href);
9
- url.searchParams.delete('embed');
10
- this.experimentLink = url.toString();
11
- }
12
- goToExperiment() {
13
- window.open(this.experimentLink, '_blank');
14
- }
15
- static ɵfac = function ExperimentLinkComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ExperimentLinkComponent)(); };
16
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExperimentLinkComponent, selectors: [["app-experiment-link"]], decls: 1, vars: 0, consts: [["tooltip", "See full event display", "icon", "link", 3, "click"]], template: function ExperimentLinkComponent_Template(rf, ctx) { if (rf & 1) {
17
- i0.ɵɵelementStart(0, "app-menu-toggle", 0);
18
- i0.ɵɵlistener("click", function ExperimentLinkComponent_Template_app_menu_toggle_click_0_listener() { return ctx.goToExperiment(); });
19
- i0.ɵɵelementEnd();
20
- } }, dependencies: [i1.MenuToggleComponent] });
21
- }
22
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExperimentLinkComponent, [{
23
- type: Component,
24
- args: [{ selector: 'app-experiment-link', template: "<app-menu-toggle\n tooltip=\"See full event display\"\n icon=\"link\"\n (click)=\"goToExperiment()\"\n></app-menu-toggle>\n" }]
25
- }], null, null); })();
26
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExperimentLinkComponent, { className: "ExperimentLinkComponent", filePath: "components/embed-menu/experiment-link/experiment-link.component.ts", lineNumber: 8 }); })();
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJpbWVudC1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL2VtYmVkLW1lbnUvZXhwZXJpbWVudC1saW5rL2V4cGVyaW1lbnQtbGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy9lbWJlZC1tZW51L2V4cGVyaW1lbnQtbGluay9leHBlcmltZW50LWxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZELE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsY0FBYyxDQUFTO0lBRS9CLFFBQVE7UUFDTiw2REFBNkQ7UUFDN0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO2lIQVpVLHVCQUF1Qjs2REFBdkIsdUJBQXVCO1lDUHBDLDBDQUlDO1lBREMsNkdBQVMsb0JBQWdCLElBQUM7WUFDM0IsaUJBQWtCOzs7aUZER04sdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0UscUJBQXFCOztrRkFJcEIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB0eXBlIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZXhwZXJpbWVudC1saW5rJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGVyaW1lbnQtbGluay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2V4cGVyaW1lbnQtbGluay5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFeHBlcmltZW50TGlua0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgZXhwZXJpbWVudExpbms6IHN0cmluZztcblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB3ZSBqdXN0IHdhbnQgdG8gcmVtb3ZlIHRoZSBcIiZlbWJlZD10cnVlXCIgaW5zdHJ1Y3Rpb24gaGVyZS5cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICB1cmwuc2VhcmNoUGFyYW1zLmRlbGV0ZSgnZW1iZWQnKTtcbiAgICB0aGlzLmV4cGVyaW1lbnRMaW5rID0gdXJsLnRvU3RyaW5nKCk7XG4gIH1cblxuICBnb1RvRXhwZXJpbWVudCgpIHtcbiAgICB3aW5kb3cub3Blbih0aGlzLmV4cGVyaW1lbnRMaW5rLCAnX2JsYW5rJyk7XG4gIH1cbn1cbiIsIjxhcHAtbWVudS10b2dnbGVcbiAgdG9vbHRpcD1cIlNlZSBmdWxsIGV2ZW50IGRpc3BsYXlcIlxuICBpY29uPVwibGlua1wiXG4gIChjbGljayk9XCJnb1RvRXhwZXJpbWVudCgpXCJcbj48L2FwcC1tZW51LXRvZ2dsZT5cbiJdfQ==