phoenix-ui-components 2.12.0 → 2.14.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 (29) hide show
  1. package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +5 -0
  2. package/dist/components/phoenix-ui.module.d.ts +30 -27
  3. package/dist/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.d.ts +1 -1
  4. package/dist/components/ui-menu/event-data-explorer/event-data-explorer.component.d.ts +1 -1
  5. package/dist/components/ui-menu/index.d.ts +1 -0
  6. package/dist/components/ui-menu/make-picture/make-picture.component.d.ts +17 -0
  7. package/dist/components/ui-menu/overlay/overlay.component.d.ts +5 -1
  8. package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +1 -1
  9. package/dist/esm2020/components/embed-menu/experiment-link/experiment-link.component.mjs +5 -2
  10. package/dist/esm2020/components/phoenix-menu/config/config-slider/config-slider.component.mjs +25 -1
  11. package/dist/esm2020/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +63 -52
  12. package/dist/esm2020/components/phoenix-ui.module.mjs +13 -2
  13. package/dist/esm2020/components/ui-menu/animate-camera/animate-camera.component.mjs +25 -8
  14. package/dist/esm2020/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +5 -4
  15. package/dist/esm2020/components/ui-menu/event-selector/event-selector.component.mjs +3 -2
  16. package/dist/esm2020/components/ui-menu/experiment-info/experiment-info.component.mjs +2 -2
  17. package/dist/esm2020/components/ui-menu/index.mjs +2 -1
  18. package/dist/esm2020/components/ui-menu/make-picture/make-picture.component.mjs +88 -0
  19. package/dist/esm2020/components/ui-menu/overlay/overlay.component.mjs +14 -3
  20. package/dist/esm2020/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +4 -4
  21. package/dist/esm2020/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +4 -3
  22. package/dist/esm2020/components/ui-menu/ss-mode/ss-mode.component.mjs +3 -3
  23. package/dist/esm2020/components/ui-menu/ui-menu.component.mjs +10 -9
  24. package/dist/fesm2015/phoenix-ui-components.mjs +247 -81
  25. package/dist/fesm2015/phoenix-ui-components.mjs.map +1 -1
  26. package/dist/fesm2020/phoenix-ui-components.mjs +239 -81
  27. package/dist/fesm2020/phoenix-ui-components.mjs.map +1 -1
  28. package/dist/services/extras/event-data-import.d.ts +1 -1
  29. package/package.json +10 -6
@@ -1 +1 @@
1
- {"version":3,"file":"phoenix-ui-components.mjs","sources":["../../lib/components/nav/nav.component.ts","../../lib/components/nav/nav.component.html","../../lib/components/phoenix-menu/config/config-slider/config-slider.component.html","../../lib/components/phoenix-menu/config/config-slider/config-slider.component.ts","../../lib/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.html","../../lib/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.ts","../../lib/components/phoenix-menu/phoenix-menu.component.ts","../../lib/components/phoenix-menu/phoenix-menu.component.html","../../lib/services/event-display.service.ts","../../lib/components/ui-menu/menu-toggle/menu-toggle.component.ts","../../lib/components/ui-menu/menu-toggle/menu-toggle.component.html","../../lib/components/ui-menu/animate-camera/animate-camera.component.html","../../lib/components/ui-menu/animate-camera/animate-camera.component.ts","../../lib/components/ui-menu/animate-event/animate-event.component.ts","../../lib/components/ui-menu/animate-event/animate-event.component.html","../../lib/components/ui-menu/auto-rotate/auto-rotate.component.ts","../../lib/components/ui-menu/auto-rotate/auto-rotate.component.html","../../lib/components/ui-menu/overlay/overlay.component.html","../../lib/components/ui-menu/overlay/overlay.component.ts","../../lib/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.html","../../lib/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.ts","../../lib/components/ui-menu/collections-info/collections-info.component.ts","../../lib/components/ui-menu/collections-info/collections-info.component.html","../../lib/components/ui-menu/dark-theme/dark-theme.component.ts","../../lib/components/ui-menu/dark-theme/dark-theme.component.html","../../lib/components/ui-menu/event-selector/event-selector.component.html","../../lib/components/ui-menu/event-selector/event-selector.component.ts","../../lib/components/ui-menu/experiment-info/experiment-info.component.html","../../lib/components/ui-menu/experiment-info/experiment-info.component.ts","../../lib/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.html","../../lib/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.ts","../../lib/components/ui-menu/info-panel/info-panel.component.ts","../../lib/components/ui-menu/info-panel/info-panel.component.html","../../lib/services/extras/event-data-import.ts","../../lib/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.html","../../lib/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.ts","../../lib/components/ui-menu/io-options/io-options.component.ts","../../lib/components/ui-menu/io-options/io-options.component.html","../../lib/components/ui-menu/main-view-toggle/main-view-toggle.component.ts","../../lib/components/ui-menu/main-view-toggle/main-view-toggle.component.html","../../lib/components/ui-menu/object-clipping/object-clipping.component.ts","../../lib/components/ui-menu/object-clipping/object-clipping.component.html","../../lib/services/extras/attribute.pipe.ts","../../lib/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.html","../../lib/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.ts","../../lib/components/ui-menu/object-selection/object-selection.component.ts","../../lib/components/ui-menu/object-selection/object-selection.component.html","../../lib/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.ts","../../lib/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.html","../../lib/components/ui-menu/overlay-view/overlay-view.component.ts","../../lib/components/ui-menu/overlay-view/overlay-view.component.html","../../lib/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.html","../../lib/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.ts","../../lib/components/ui-menu/tree-menu/tree-menu.component.ts","../../lib/components/ui-menu/tree-menu/tree-menu.component.html","../../lib/components/ui-menu/view-options/view-options.component.html","../../lib/components/ui-menu/view-options/view-options.component.ts","../../lib/components/ui-menu/vr-toggle/vr-toggle.component.ts","../../lib/components/ui-menu/vr-toggle/vr-toggle.component.html","../../lib/components/ui-menu/ar-toggle/ar-toggle.component.html","../../lib/components/ui-menu/ar-toggle/ar-toggle.component.ts","../../lib/components/ui-menu/zoom-controls/zoom-controls.component.ts","../../lib/components/ui-menu/zoom-controls/zoom-controls.component.html","../../lib/components/ui-menu/ss-mode/ss-mode.component.ts","../../lib/components/ui-menu/ss-mode/ss-mode.component.html","../../lib/components/ui-menu/performance-toggle/performance-toggle.component.ts","../../lib/components/ui-menu/performance-toggle/performance-toggle.component.html","../../lib/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.ts","../../lib/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.html","../../lib/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.ts","../../lib/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.html","../../lib/components/ui-menu/share-link/share-link.component.ts","../../lib/components/ui-menu/share-link/share-link.component.html","../../lib/components/ui-menu/ui-menu.component.ts","../../lib/components/ui-menu/ui-menu.component.html","../../lib/components/file-explorer/file-explorer.component.html","../../lib/components/file-explorer/file-explorer.component.ts","../../lib/components/ring-loader/ring-loader.component.ts","../../lib/components/ring-loader/ring-loader.component.html","../../lib/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.html","../../lib/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.ts","../../lib/components/ui-menu/event-data-explorer/event-data-explorer.component.ts","../../lib/components/ui-menu/event-data-explorer/event-data-explorer.component.html","../../lib/components/ui-menu/cycle-events/cycle-events.component.ts","../../lib/components/ui-menu/cycle-events/cycle-events.component.html","../../lib/services/error-message-service.ts","../../lib/components/loader/loader.component.html","../../lib/components/loader/loader.component.ts","../../lib/services/global-error-handler.ts","../../lib/components/embed-menu/experiment-link/experiment-link.component.ts","../../lib/components/embed-menu/experiment-link/experiment-link.component.html","../../lib/components/embed-menu/embed-menu.component.ts","../../lib/components/embed-menu/embed-menu.component.html","../../lib/components/phoenix-ui.module.ts","../../lib/phoenix-ui-components.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.scss'],\n})\nexport class NavComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","<a id=\"mainLogo\" class=\"main-logo fixed-top p-2 mx-auto mt-2\" routerLink=\"/\">\n <img src=\"assets/images/logo-text.svg\" />\n</a>\n","<div class=\"d-flex flex-row align-items-center\">\n <mat-slider class=\"mx-2\" [min]=\"min\" [max]=\"max\" [step]=\"step\" thumbLabel>\n <input\n matSliderThumb\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n />\n </mat-slider>\n <input\n *ngIf=\"allowCustomValue\"\n class=\"config-slider-input\"\n type=\"number\"\n [value]=\"value\"\n (input)=\"onValueChange($event.target.value)\"\n />\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-config-slider',\n templateUrl: './config-slider.component.html',\n styleUrls: ['./config-slider.component.scss'],\n})\nexport class ConfigSliderComponent {\n @Input() value: number = 0;\n @Input() min: number = 0;\n @Input() max: number = 100;\n @Input() step: number = 1;\n @Input() allowCustomValue: boolean = false;\n @Output() onChange: EventEmitter<number> = new EventEmitter<number>();\n\n onValueChange(value: number) {\n value && this.onChange.emit(value);\n }\n}\n","<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of castConfigsToAny(currentNode.configs)\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <label class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <span\n class=\"item-config-label\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </span>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <div *ngSwitchCase=\"'rangeSlider'\" class=\"range-slider\">\n <div class=\"range-slider-inputs d-flex justify-content-between\">\n <input\n type=\"number\"\n placeholder=\"Min\"\n class=\"form-control form-control-sm\"\n [value]=\"config.value\"\n (input)=\"\n config.value = $event.target.value;\n config.onChange(config)\n \"\n />\n <input\n type=\"number\"\n placeholder=\"Max\"\n class=\"form-control form-control-sm\"\n [value]=\"config.highValue\"\n (input)=\"\n config.highValue = $event.target.value;\n config.onChange(config)\n \"\n />\n </div>\n <ngx-slider\n [(value)]=\"config.value\"\n [(highValue)]=\"config.highValue\"\n (userChange)=\"config.onChange($event)\"\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n </div>\n\n <select\n *ngSwitchCase=\"'select'\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </label>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n data-testid=\"dropdown\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { PhoenixMenuNode } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-phoenix-menu-item',\n templateUrl: './phoenix-menu-item.component.html',\n styleUrls: ['./phoenix-menu-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PhoenixMenuItemComponent {\n @Input() currentNode: PhoenixMenuNode;\n @ViewChild('phoenixMenuItem') phoenixMenuItem: ElementRef<HTMLDivElement>;\n configTop: number;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n calculateConfigTop() {\n if (this.phoenixMenuItem) {\n this.configTop =\n this.phoenixMenuItem.nativeElement.getBoundingClientRect().top;\n this.cdr.detectChanges();\n }\n }\n\n // Casting to `any` as a workaround to bypass strict template checks.\n castConfigsToAny(configs: PhoenixMenuNode['configs']) {\n return configs as any[];\n }\n}\n","import { Component, Input } from '@angular/core';\nimport type { PhoenixMenuNode } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-phoenix-menu',\n templateUrl: './phoenix-menu.component.html',\n styleUrls: ['./phoenix-menu.component.scss'],\n})\nexport class PhoenixMenuComponent {\n @Input() rootNode: PhoenixMenuNode;\n}\n","<div id=\"phoenixMenu\">\n <app-phoenix-menu-item [currentNode]=\"rootNode\"></app-phoenix-menu-item>\n</div>\n","import { Injectable } from '@angular/core';\nimport { EventDisplay } from 'phoenix-event-display';\n\n/**\n * Service for all event display related functions.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class EventDisplayService extends EventDisplay {\n /**\n * Instantiate the event display by calling the parent constructor.\n */\n constructor() {\n super();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-menu-toggle',\n templateUrl: './menu-toggle.component.html',\n styleUrls: ['./menu-toggle.component.scss'],\n})\nexport class MenuToggleComponent {\n @Input() icon: string;\n @Input() active: boolean;\n @Input() tooltip: string;\n @Input() disabled: boolean = false;\n}\n","<button\n class=\"menu-toggle\"\n [ngClass]=\"{ disabled: disabled }\"\n [matTooltip]=\"tooltip\"\n matTooltipPosition=\"above\"\n matTooltipTouchGestures=\"off\"\n>\n <svg class=\"menu-toggle-icon\" [ngClass]=\"{ 'active-icon': active }\">\n <use attr.href=\"assets/icons/{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n</button>\n","<mat-menu #animationPresets>\n <button\n mat-menu-item\n *ngFor=\"let preset of animationPresetsKeys\"\n (click)=\"animatePreset(preset)\"\n >\n {{ preset }}\n </button>\n <button mat-menu-item (click)=\"animateCamera()\">Animate camera</button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"animationPresets\"\n tooltip=\"Preset animations\"\n icon=\"animate-camera\"\n>\n</app-menu-toggle>\n","import { Component, Input } from '@angular/core';\nimport { AnimationPreset, SceneManager } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\nexport const defaultAnimationPresets: {\n [key: string]: AnimationPreset;\n} = {\n 'Preset 1': {\n positions: [\n {\n position: [11976, 7262, 11927],\n duration: 1000,\n },\n {\n position: [-1000, 0, 11927],\n duration: 2000,\n },\n {\n position: [2000, 500, 1000],\n duration: 3500,\n },\n {\n position: [5000, 2000, 1000],\n duration: 3000,\n },\n {\n position: [5000, 2000, 1000],\n duration: 2000,\n },\n {\n position: [11976, 7262, 11927],\n duration: 1000,\n },\n ],\n animateEventAfterInterval: 5000,\n collisionDuration: 6000,\n },\n};\n\n@Component({\n selector: 'app-animate-camera',\n templateUrl: './animate-camera.component.html',\n styleUrls: ['./animate-camera.component.scss'],\n})\nexport class AnimateCameraComponent {\n @Input() animationPresets = defaultAnimationPresets;\n animationPresetsKeys = Object.keys(this.animationPresets);\n isAnimating = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n animatePreset(preset: string) {\n this.setDetectorOpacity(0.2);\n this.eventDisplay.animatePreset(this.animationPresets[preset], () => {\n this.setDetectorOpacity(1);\n });\n }\n\n animateCamera() {\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.eventDisplay.animateThroughEvent([11976, 7262, 11927], 3000, () => {\n this.isAnimating = false;\n });\n }\n }\n\n private setDetectorOpacity(opacity: number) {\n const sceneManager = this.eventDisplay.getThreeManager().getSceneManager();\n const geometriesGroup = sceneManager.getObjectByName(\n SceneManager.GEOMETRIES_ID\n );\n\n sceneManager.setGeometryOpacity(geometriesGroup, opacity);\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-animate-event',\n templateUrl: './animate-event.component.html',\n styleUrls: ['./animate-event.component.scss'],\n})\nexport class AnimateEventComponent {\n isAnimating: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n toggleAnimateEvent() {\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.eventDisplay.animateEventWithCollision(10000, () => {\n this.isAnimating = false;\n });\n }\n }\n}\n","<app-menu-toggle\n tooltip=\"Animate event\"\n icon=\"event-folder\"\n [active]=\"isAnimating\"\n (click)=\"toggleAnimateEvent()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-auto-rotate',\n templateUrl: './auto-rotate.component.html',\n styleUrls: ['./auto-rotate.component.scss'],\n})\nexport class AutoRotateComponent {\n autoRotate = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n toggleAutoRotate() {\n this.autoRotate = !this.autoRotate;\n this.eventDisplay.getUIManager().setAutoRotate(this.autoRotate);\n }\n}\n","<app-menu-toggle\n tooltip=\"Auto rotate\"\n icon=\"rotate\"\n [active]=\"autoRotate\"\n (click)=\"toggleAutoRotate()\"\n>\n</app-menu-toggle>\n","<div\n #overlayCard\n class=\"overlay-card card\"\n [hidden]=\"!active\"\n cdkDrag\n cdkDragBoundary=\"body\"\n>\n <div\n class=\"card-header d-flex justify-content-between\"\n [ngClass]=\"{ 'with-body': showBody }\"\n cdkDragHandle\n *ngIf=\"overlayTitle\"\n >\n <div class=\"align-self-center card-icon\" *ngIf=\"icon\">\n <svg>\n <use attr.href=\"assets/icons/{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n </div>\n <h5 class=\"align-self-center m-0 px-2\">{{ overlayTitle }}</h5>\n <button\n class=\"align-self-center card-icon btn-blank expandCollapse\"\n matTooltip=\"Expand / Collapse\"\n matTooltipPosition=\"right\"\n [ngClass]=\"{ expand: showBody }\"\n (click)=\"showBody = !showBody\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n <div\n class=\"overlay-card-content\"\n *ngIf=\"showBody\"\n [ngClass]=\"{ 'transparent-bg': transparentBody }\"\n >\n <ng-content></ng-content>\n </div>\n <!-- Making the overlay resizable -->\n <span\n #resizeHandleCorner\n class=\"resize-handle corner\"\n *ngIf=\"resizable\"\n [hidden]=\"!showBody\"\n cdkDrag\n (cdkDragMoved)=\"onResize()\"\n ></span>\n</div>\n","import {\n Component,\n Input,\n ViewChild,\n AfterViewInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ElementRef } from '@angular/core';\nimport { ResizeSensor } from 'css-element-queries';\n\n/**\n * Component for overlay panel.\n */\n@Component({\n selector: 'app-overlay',\n templateUrl: './overlay.component.html',\n styleUrls: ['./overlay.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OverlayComponent implements AfterViewInit {\n /** Title of the overlay. */\n @Input() overlayTitle: string;\n /** If the overlay is open or not. */\n @Input() active: boolean = false;\n /** Icon of the overlay header. */\n @Input() icon: string;\n /** If the overlay is resizable. */\n @Input() resizable: boolean = false;\n /** If the overlay body is transparent or not. */\n @Input() transparentBody: boolean = false;\n /** If the overlay body is visible or not. */\n showBody: boolean = true;\n\n // ********************************************************************************\n // * Below code is specific to the overlay resize feature. (LOOK INTO CSS RESIZE) *\n // ********************************************************************************\n\n /** Complete overlay card containing both header and body. */\n @ViewChild('overlayCard') overlayCard: ElementRef;\n /** Handle for resizing the overlay. */\n @ViewChild('resizeHandleCorner') resizeHandleCorner: ElementRef;\n /** Minimum resizable width. */\n private MIN_RES_WIDTH: number = 300;\n /** Minimum resizable height */\n private MIN_RES_HEIGHT: number = 100;\n\n /**\n * Move the resizable handle to the bottom right after the component is created.\n */\n ngAfterViewInit() {\n if (this.resizable) {\n const resizeHandleElement = this.resizeHandleCorner.nativeElement;\n resizeHandleElement.style.bottom = '0';\n resizeHandleElement.style.right = '0';\n\n new ResizeSensor(this.overlayCard.nativeElement, () => {\n this.resetHandlePosition();\n });\n\n window.addEventListener('resize', () => {\n this.resetHandlePosition();\n });\n }\n }\n\n /**\n * Resize the overlay card when the resize handle is dragged.\n */\n onResize() {\n const resizeHandleElement = this.resizeHandleCorner.nativeElement;\n const overlayCardElement = this.overlayCard.nativeElement;\n\n const dragRect = resizeHandleElement.getBoundingClientRect();\n const overlayRect = overlayCardElement.getBoundingClientRect();\n\n const width = dragRect.left - overlayRect.left + dragRect.width;\n const height = dragRect.top - overlayRect.top + dragRect.height;\n\n this.setHandleTransform(overlayRect, dragRect);\n\n if (width > this.MIN_RES_WIDTH && height > this.MIN_RES_HEIGHT) {\n overlayCardElement.style.width = width + 'px';\n overlayCardElement.style.height = height + 'px';\n }\n }\n\n /**\n * Reset resize handle position.\n */\n resetHandlePosition() {\n const resizeHandleElement = this.resizeHandleCorner.nativeElement;\n\n this.setHandleTransform(\n this.overlayCard.nativeElement.getBoundingClientRect(),\n resizeHandleElement.getBoundingClientRect()\n );\n\n resizeHandleElement.style.bottom = null;\n resizeHandleElement.style.right = null;\n }\n\n /**\n * Set the position of the resize handle using transform3d.\n * @param overlayRect Bounding client rectangle of the overlay card.\n * @param dragRect Bounding client rectangle of the resize handle.\n */\n private setHandleTransform(overlayRect: any, dragRect: any) {\n const translateX = overlayRect.width - dragRect.width;\n const translateY = overlayRect.height - dragRect.height;\n this.resizeHandleCorner.nativeElement.style.transform = `translate3d(${translateX}px, ${translateY}px, 0)`;\n }\n}\n","<!-- Show objects -->\n<app-overlay\n overlayTitle=\"Collections Info\"\n icon=\"info\"\n [resizable]=\"true\"\n [active]=\"showObjectsInfo\"\n>\n <!-- Using ngIf to remove it from DOM since this panel requires heavy computing -->\n <div *ngIf=\"showObjectsInfo\" class=\"collectionsInfo m-2\">\n <div\n class=\"collectionSelector mb-2 d-flex align-items-center\"\n *ngIf=\"collections != null\"\n >\n <div class=\"d-flex align-items-center\">\n <span>Choose a collection: </span>\n <div class=\"eventSelector\">\n <label for=\"event\">Event</label>\n <select\n id=\"collection\"\n name=\"collection\"\n (change)=\"changeCollection($event.target.value)\"\n >\n <option value=\"\" selected disabled hidden>Choose Collection</option>\n <option *ngFor=\"let collection of collections\" [value]=\"collection\">\n {{ collection }}\n </option>\n </select>\n </div>\n <mat-checkbox\n *ngIf=\"showingCollection\"\n (change)=\"toggleInvisible($event.checked)\"\n >\n Hide Invisible Objects\n </mat-checkbox>\n </div>\n </div>\n\n <div class=\"boxBody table-responsive\">\n <table\n id=\"collectionTable\"\n class=\"table table-borderless table-sm\"\n *ngIf=\"showingCollection\"\n >\n <thead>\n <tr>\n <th>No.</th>\n <th>Selection</th>\n <th>Label</th>\n <th *ngFor=\"let column of collectionColumns\">\n <div class=\"head-wrapper\">\n <div>\n {{ getPrettySymbol(column) }}\n </div>\n <div class=\"sort-options\">\n <button\n class=\"icon-wrapper icon-button btn-blank up\"\n (click)=\"sort(column, 'dec')\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n <button\n class=\"icon-wrapper icon-button btn-blank\"\n (click)=\"sort(column, 'asc')\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n </div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let object of showingCollection; index as i\"\n [attr.id]=\"object.uuid\"\n [ngClass]=\"{\n 'active-object':\n activeObject && activeObject.value === object.uuid,\n 'is-cut': object.isCut,\n 'd-none': object.isCut && hideInvisible\n }\"\n >\n <td>#{{ i }}</td>\n <td>\n <div\n *ngIf=\"object.uuid\"\n class=\"row justify-content-center icon-wrapper\"\n >\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Move camera to object\"\n (click)=\"lookAtObject(object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/views.svg#views\"></use>\n </svg>\n </button>\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Highlight object\"\n (click)=\"highlightObject(object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/cursor.svg#cursor\"></use>\n </svg>\n </button>\n </div>\n </td>\n <td>\n <div class=\"row m-0 add-label\">\n <div class=\"col-10 p-0\">\n <input\n class=\"form-control form-control-sm\"\n type=\"text\"\n [id]=\"'label' + i\"\n />\n </div>\n <div class=\"col-2 p-0 pl-2 text-center icon-wrapper\">\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Add, update or remove object label\"\n (click)=\"addLabel(i, object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/update.svg#update\"></use>\n </svg>\n </button>\n </div>\n </div>\n </td>\n <td *ngFor=\"let column of collectionColumns\">\n {{ object[column] }}\n </td>\n </tr>\n </tbody>\n </table>\n <p class=\"emptyBox\" *ngIf=\"!collections\">\n Load event data to be able to display information about the collections\n here.\n </p>\n </div>\n </div>\n</app-overlay>\n","import { Component, OnInit, Input, ElementRef } from '@angular/core';\nimport {\n PrettySymbols,\n ActiveVariable,\n SceneManager,\n} from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n selector: 'app-collections-info-overlay',\n templateUrl: './collections-info-overlay.component.html',\n styleUrls: ['./collections-info-overlay.component.scss'],\n})\nexport class CollectionsInfoOverlayComponent implements OnInit {\n @Input() showObjectsInfo: boolean;\n hideInvisible: boolean;\n collections: string[];\n selectedCollection: string;\n showingCollection: any;\n collectionColumns: string[];\n getPrettySymbol = PrettySymbols.getPrettySymbol;\n activeObject: ActiveVariable<string>;\n\n constructor(\n private elementRef: ElementRef,\n private eventDisplay: EventDisplayService\n ) {}\n\n ngOnInit() {\n this.eventDisplay.listenToDisplayedEventChange(\n (_event) => (this.collections = this.eventDisplay.getCollections())\n );\n this.activeObject = this.eventDisplay.getActiveObjectId();\n this.activeObject.onUpdate((value: string) => {\n if (document.getElementById(value)) {\n document.getElementById(value).scrollIntoView(false);\n }\n });\n }\n\n changeCollection(selectedCollection: string) {\n const eventDataGroup = this.getEventDataGroup();\n this.selectedCollection = selectedCollection;\n\n this.showingCollection = this.eventDisplay\n .getCollection(selectedCollection)\n .map((object: any) => ({\n ...object,\n isCut: !eventDataGroup.getObjectByProperty('uuid', object.uuid)\n ?.visible,\n }));\n\n this.collectionColumns = Object.keys(this.showingCollection[0]).filter(\n (column) => !['uuid', 'hits', 'isCut'].includes(column) // FIXME - this is an ugly hack. But currently hits from tracks make track collections unusable. Better to have exlusion list passed in.\n );\n }\n\n sort(column: string, order: string) {\n if (order === 'asc')\n this.showingCollection.sort((a, b) => (a[column] < b[column] ? -1 : 1));\n else\n this.showingCollection.sort((a, b) => (a[column] > b[column] ? -1 : 1));\n }\n\n lookAtObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.lookAtObject(uuid);\n }\n }\n\n highlightObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.highlightObject(uuid);\n }\n }\n\n toggleInvisible(checked: boolean) {\n this.hideInvisible = checked;\n }\n\n addLabel(index: number, uuid: string) {\n const labelValue = this.elementRef.nativeElement.querySelector(\n `#label${index}`\n ).value;\n if (this.selectedCollection) {\n // Empty labelValue will remove the label object\n this.eventDisplay.addLabelToObject(\n labelValue,\n this.selectedCollection,\n index,\n uuid\n );\n }\n }\n\n private getEventDataGroup() {\n return this.eventDisplay\n .getThreeManager()\n .getSceneManager()\n .getScene()\n .getObjectByName(SceneManager.EVENT_DATA_ID);\n }\n}\n","import { Component, OnInit, ComponentRef, OnDestroy } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CollectionsInfoOverlayComponent } from './collections-info-overlay/collections-info-overlay.component';\n\n@Component({\n selector: 'app-collections-info',\n templateUrl: './collections-info.component.html',\n styleUrls: ['./collections-info.component.scss'],\n})\nexport class CollectionsInfoComponent implements OnInit, OnDestroy {\n showObjectsInfo = false;\n overlayWindow: ComponentRef<CollectionsInfoOverlayComponent>;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(CollectionsInfoOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showObjectsInfo = this.showObjectsInfo;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.showObjectsInfo = !this.showObjectsInfo;\n this.overlayWindow.instance.showObjectsInfo = this.showObjectsInfo;\n }\n}\n","<app-menu-toggle\n tooltip=\"Event data collections info\"\n icon=\"info\"\n [active]=\"showObjectsInfo\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","import { Component, OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-dark-theme',\n templateUrl: './dark-theme.component.html',\n styleUrls: ['./dark-theme.component.scss'],\n})\nexport class DarkThemeComponent implements OnInit {\n darkTheme = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit(): void {\n this.darkTheme = this.eventDisplay.getUIManager().getDarkTheme();\n }\n\n setDarkTheme() {\n this.darkTheme = !this.darkTheme;\n this.eventDisplay.getUIManager().setDarkTheme(this.darkTheme);\n }\n}\n","<app-menu-toggle\n tooltip=\"Dark theme\"\n [active]=\"darkTheme\"\n icon=\"dark\"\n (click)=\"setDarkTheme()\"\n>\n</app-menu-toggle>\n","<div\n class=\"eventSelector mx-2\"\n *ngIf=\"events != null\"\n matTooltip=\"Event selector\"\n matTooltipPosition=\"above\"\n>\n <select name=\"event\" (change)=\"changeEvent($event)\">\n <option *ngFor=\"let event of events\" [value]=\"event\">\n {{ event }}\n </option>\n </select>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-event-selector',\n templateUrl: './event-selector.component.html',\n styleUrls: ['./event-selector.component.scss'],\n})\nexport class EventSelectorComponent implements OnInit {\n // Array containing the keys of the multiple loaded events\n events: string[];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.eventDisplay.listenToLoadedEventsChange(\n (events) => (this.events = events)\n );\n }\n\n changeEvent(selected: any) {\n const value = selected.target.value;\n this.eventDisplay.loadEvent(value);\n }\n}\n","<div id=\"experimentInfo\" class=\"experimentInfo\" cdkDrag cdkDragBoundary=\"body\">\n <a\n class=\"experimentLogoWrapper\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n *ngIf=\"url\"\n [href]=\"url\"\n >\n <img class=\"experimentLogo\" [src]=\"logo\" alt=\"\" />\n </a>\n <div class=\"textInfo\">\n <p *ngIf=\"tagline\">\n <b>{{ tagline }}</b>\n </p>\n <p *ngFor=\"let infoField of experimentInfo\">\n <ng-container *ngIf=\"infoField.label\">\n <b>{{ infoField.label }}: </b>{{ infoField.value }}\n </ng-container>\n <ng-container *ngIf=\"!infoField.label\">\n {{ infoField }}\n </ng-container>\n </p>\n </div>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-experiment-info',\n templateUrl: './experiment-info.component.html',\n styleUrls: ['./experiment-info.component.scss'],\n})\nexport class ExperimentInfoComponent implements OnInit {\n experimentInfo: any[];\n @Input() url: string;\n @Input() logo: string;\n @Input() tagline: string;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit(): void {\n this.eventDisplay.listenToDisplayedEventChange(() => {\n this.experimentInfo = this.eventDisplay.getEventMetadata();\n });\n }\n}\n","<app-overlay\n overlayTitle=\"Info Panel\"\n icon=\"info-panel\"\n [resizable]=\"true\"\n [active]=\"showInfoPanel\"\n>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item\">\n <!-- Show Phoenix Current Version (ON by Default) -->\n Phoenix Version: {{ version }}\n </li>\n <li class=\"list-group-item\" *ngIf=\"actionsList.length === 0\">\n No actions.\n </li>\n <li class=\"list-group-item\" *ngFor=\"let action of actionsList\">\n {{ action }}\n </li>\n </ul>\n</app-overlay>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport packageJson from 'phoenix-event-display/package.json';\n\n/**\n * Component for displaying information from the logger\n */\n@Component({\n selector: 'app-info-panel-overlay',\n templateUrl: './info-panel-overlay.component.html',\n styleUrls: ['./info-panel-overlay.component.scss'],\n})\nexport class InfoPanelOverlayComponent implements OnInit {\n /** @ignore */\n @Input() showInfoPanel: boolean;\n /** List of actions to be displayed in the info panel */\n actionsList = [];\n /** Get Phoenix Version */\n version = packageJson.version;\n\n /**\n * Create the information panel overlay\n * @param infoLogger Service containing operations related to info logs\n */\n constructor(private eventDisplay: EventDisplayService) {}\n\n /**\n * Get the list of logs from the info logger service\n */\n ngOnInit() {\n this.actionsList = this.eventDisplay.getInfoLogger().getInfoLoggerList();\n }\n}\n","import { Component, OnInit, ComponentRef, OnDestroy } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { InfoPanelOverlayComponent } from './info-panel-overlay/info-panel-overlay.component';\n\n/**\n * Component for toggling info panel overlay\n */\n@Component({\n selector: 'app-info-panel',\n templateUrl: './info-panel.component.html',\n styleUrls: ['./info-panel.component.scss'],\n})\nexport class InfoPanelComponent implements OnInit, OnDestroy {\n /** @ignore */\n showInfoPanel = false;\n /** Information panel overlay window */\n overlayWindow: ComponentRef<InfoPanelOverlayComponent>;\n\n /**\n * Create the info panel toggle\n * @param overlay Info panel overlay containing logger data\n */\n constructor(private overlay: Overlay) {}\n\n /**\n * Create the info panel overlay\n */\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(InfoPanelOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showInfoPanel = this.showInfoPanel;\n }\n\n /**\n * Destroy the info panel overlay\n */\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n /**\n * Toggle the info panel overlay\n */\n toggleOverlay() {\n this.showInfoPanel = !this.showInfoPanel;\n this.overlayWindow.instance.showInfoPanel = this.showInfoPanel;\n }\n}\n","<app-menu-toggle\n tooltip=\"Info panel\"\n icon=\"info-panel\"\n [active]=\"showInfoPanel\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","export enum EventDataFormat {\n JSON = 'JSON',\n EDM4HEPJSON = 'EDM4HEPJSON',\n JIVEXML = 'JIVEXML',\n IG = 'IG',\n ZIP = 'ZIP',\n}\n\nexport type EventDataImportOption = EventDataFormat | ImportOption;\n\nexport class ImportOption {\n constructor(\n public format: string,\n public fileType: string,\n public handler: (files: FileList) => void,\n public accept?: string\n ) {}\n}\n","<div class=\"dialog\">\n <h1 mat-dialog-title>Import and export</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"eventDataImportOptions.length > 0\">\n <p class=\"text-center\"><b>Event data</b></p>\n\n <div class=\"row centered\">\n <ng-container\n *ngFor=\"let eventDataImportOption of eventDataOptionsWithHandler\"\n >\n <input\n #eventDataFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n [accept]=\"eventDataImportOption.accept\"\n (change)=\"eventDataImportOption.handler($event.target.files)\"\n />\n <button\n class=\"file-input-button\"\n (click)=\"eventDataFileInput.click()\"\n >\n <img src=\"assets/icons/eventData.svg\" alt=\"Event data icon\" />\n Load {{ eventDataImportOption.fileType }}\n </button>\n </ng-container>\n </div>\n </div>\n\n <p class=\"text-center\"><b>Geometries</b></p>\n\n <div class=\"row centered\">\n <input\n #objFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".obj\"\n name=\"image\"\n (change)=\"handleOBJInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"objFileInput.click()\">\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Load .obj\n </button>\n\n <input\n #gltfFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".gltf\"\n name=\"image\"\n (change)=\"handleGLTFInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"gltfFileInput.click()\">\n <img src=\"assets/icons/gltf.svg\" alt=\"\" /> Load .gltf\n </button>\n\n <input\n #rootFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".root\"\n (change)=\"handleROOTInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .root\n </button>\n\n <input\n #rootJSONFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".json.gz\"\n (change)=\"handleRootJSONInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootJSONFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .json.gz\n </button>\n </div>\n\n <p class=\"text-center\"><b>Scene</b></p>\n\n <div class=\"row centered\">\n <button\n class=\"file-input-button load-export\"\n id=\"exportScene\"\n (click)=\"saveScene()\"\n >\n <img src=\"assets/icons/save.svg\" alt=\"\" /> Save scene\n </button>\n\n <input\n #loadSceneInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".phnx\"\n name=\"image\"\n (change)=\"handlePhoenixInput($event.target.files)\"\n />\n <button\n class=\"file-input-button load-export\"\n id=\"importScene\"\n (click)=\"loadSceneInput.click()\"\n >\n <img src=\"assets/icons/upload.svg\" alt=\"\" /> Load scene\n </button>\n\n <button\n class=\"file-input-button export-button\"\n id=\"exportOBJ\"\n (click)=\"exportOBJ()\"\n >\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Save OBJ\n </button>\n </div>\n </div>\n\n <div mat-dialog-actions align=\"end\">\n <button mat-flat-button color=\"primary\" (click)=\"onClose()\" cdkFocusInitial>\n Close\n </button>\n </div>\n</div>\n","import { OnInit, Component, Input } from '@angular/core';\nimport {\n CMSLoader,\n JiveXMLLoader,\n readZipFile,\n Edm4hepJsonLoader,\n} from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport {\n EventDataFormat,\n EventDataImportOption,\n ImportOption,\n} from '../../../../services/extras/event-data-import';\n\n@Component({\n selector: 'app-io-options-dialog',\n templateUrl: './io-options-dialog.component.html',\n styleUrls: ['./io-options-dialog.component.scss'],\n})\nexport class IOOptionsDialogComponent implements OnInit {\n @Input()\n eventDataImportOptions: EventDataImportOption[] = [EventDataFormat.JSON];\n\n eventDataOptionsWithHandler: ImportOption[];\n\n private supportedEventDataFormats = [\n new ImportOption(\n EventDataFormat.JSON,\n '.json',\n this.handleJSONEventDataInput.bind(this),\n 'application/json'\n ),\n new ImportOption(\n EventDataFormat.EDM4HEPJSON,\n '.edm4hep.json',\n this.handleEDM4HEPJSONEventDataInput.bind(this),\n 'application/json'\n ),\n new ImportOption(\n EventDataFormat.JIVEXML,\n '.xml',\n this.handleJiveXMLDataInput.bind(this),\n 'text/xml'\n ),\n new ImportOption(\n EventDataFormat.ZIP,\n '.zip',\n this.handleZipEventDataInput.bind(this),\n '.zip'\n ),\n new ImportOption(\n EventDataFormat.IG,\n '.ig',\n this.handleIgEventDataInput.bind(this),\n '.ig'\n ),\n ];\n\n constructor(\n private eventDisplay: EventDisplayService,\n public dialogRef: MatDialogRef<IOOptionsDialogComponent>\n ) {}\n\n ngOnInit() {\n this.eventDataOptionsWithHandler = this.supportedEventDataFormats.filter(\n (eventDataFormat) =>\n this.eventDataImportOptions.includes(\n eventDataFormat.format as EventDataFormat\n )\n );\n\n this.eventDataImportOptions.forEach((eventDataImportOption) => {\n if (eventDataImportOption instanceof ImportOption) {\n const importHandler = eventDataImportOption.handler.bind(this);\n eventDataImportOption.handler = (files: FileList) => {\n importHandler(files);\n this.onClose();\n };\n\n this.eventDataOptionsWithHandler.push(eventDataImportOption);\n }\n });\n }\n\n getSupportedEventDataFormats() {\n return this.eventDataImportOptions\n .map((format) => {\n if (format instanceof ImportOption) {\n return format.format;\n }\n\n return format;\n })\n .filter((format) => format !== 'ZIP')\n .join(', ');\n }\n\n onClose(): void {\n this.dialogRef.close();\n }\n\n handleJSONEventDataInput(files: FileList) {\n const callback = (content: any) => {\n const json = typeof content === 'string' ? JSON.parse(content) : content;\n this.eventDisplay.parsePhoenixEvents(json);\n };\n this.handleFileInput(files[0], 'json', callback);\n }\n\n handleEDM4HEPJSONEventDataInput(files: FileList) {\n const callback = (content: any) => {\n const json = typeof content === 'string' ? JSON.parse(content) : content;\n const edm4hepJsonLoader = new Edm4hepJsonLoader();\n edm4hepJsonLoader.setRawEventData(json);\n edm4hepJsonLoader.processEventData();\n this.eventDisplay.parsePhoenixEvents(edm4hepJsonLoader.getEventData());\n };\n this.handleFileInput(files[0], 'json', callback);\n }\n\n handleJiveXMLDataInput(files: FileList) {\n const callback = (content: any) => {\n const jiveloader = new JiveXMLLoader();\n jiveloader.process(content);\n const eventData = jiveloader.getEventData();\n this.eventDisplay.buildEventDataFromJSON(eventData);\n };\n this.handleFileInput(files[0], 'xml', callback);\n }\n\n handleOBJInput(files: FileList) {\n const callback = (content: any, name: string) => {\n this.eventDisplay.parseOBJGeometry(content, name);\n };\n this.handleFileInput(files[0], 'obj', callback);\n }\n\n handleSceneInput(files: FileList) {\n const callback = (content: any) => {\n this.eventDisplay.parsePhoenixDisplay(content);\n };\n this.handleFileInput(files[0], 'phnx', callback);\n }\n\n handleGLTFInput(files: FileList) {\n const callback = (content: any, name: string) => {\n this.eventDisplay.parseGLTFGeometry(content, name);\n };\n this.handleFileInput(files[0], 'gltf', callback);\n }\n\n handlePhoenixInput(files: FileList) {\n const callback = (content: any) => {\n this.eventDisplay.parsePhoenixDisplay(content);\n };\n this.handleFileInput(files[0], 'phnx', callback);\n }\n\n async handleROOTInput(files: FileList) {\n const rootObjectName = prompt('Enter object name in ROOT file');\n\n await this.eventDisplay.loadRootGeometry(\n URL.createObjectURL(files[0]),\n rootObjectName,\n files[0].name.split('.')[0]\n );\n\n this.onClose();\n }\n\n async handleRootJSONInput(files: FileList) {\n if (!this.isFileOfExtension(files[0], 'gz')) {\n return;\n }\n\n const name = files[0].name.split('.')[0];\n await this.eventDisplay.loadRootJSONGeometry(\n URL.createObjectURL(files[0]),\n name\n );\n\n this.onClose();\n }\n\n handleIgEventDataInput(files: FileList) {\n const cmsLoader = new CMSLoader();\n cmsLoader.readIgArchive(files[0], (allEvents: any[]) => {\n const allEventsData = cmsLoader.getAllEventsData(allEvents);\n this.eventDisplay.parsePhoenixEvents(allEventsData);\n this.onClose();\n });\n }\n\n async handleZipEventDataInput(files: FileList) {\n if (!this.isFileOfExtension(files[0], 'zip')) {\n return;\n }\n\n const allEventsObject = {};\n let filesWithData: { [fileName: string]: string };\n\n // Using a try catch block to catch any errors in Promises\n try {\n filesWithData = await readZipFile(files[0]);\n } catch (error) {\n console.error('Error while reading zip', error);\n this.eventDisplay.getInfoLogger().add('Could not read zip file', 'Error');\n return;\n }\n\n // JSON event data\n Object.keys(filesWithData)\n .filter((fileName) => fileName.endsWith('.json'))\n .forEach((fileName) => {\n Object.assign(allEventsObject, JSON.parse(filesWithData[fileName]));\n });\n\n // JiveXML event data\n const jiveloader = new JiveXMLLoader();\n Object.keys(filesWithData)\n .filter((fileName) => {\n return fileName.endsWith('.xml') || fileName.startsWith('JiveXML');\n })\n .forEach((fileName) => {\n jiveloader.process(filesWithData[fileName]);\n const eventData = jiveloader.getEventData();\n Object.assign(allEventsObject, { [fileName]: eventData });\n });\n // For some reason the above doesn't pick up JiveXML_XXX_YYY.zip\n\n this.eventDisplay.parsePhoenixEvents(allEventsObject);\n\n this.onClose();\n }\n\n handleFileInput(\n file: File,\n extension: string,\n callback: (result: string, fileName?: string) => void\n ) {\n const reader = new FileReader();\n\n if (this.isFileOfExtension(file, extension)) {\n reader.onload = () => {\n callback(reader.result.toString(), file.name.split('.')[0]);\n };\n reader.readAsText(file);\n }\n\n this.onClose();\n }\n\n private isFileOfExtension(file: File, extension: string): boolean {\n if (file.name.split('.').pop() === extension) {\n return true;\n }\n\n console.error('Error: Invalid file format!');\n this.eventDisplay.getInfoLogger().add('Invalid file format!', 'Error');\n\n return false;\n }\n\n saveScene() {\n this.eventDisplay.exportPhoenixDisplay();\n }\n\n exportOBJ() {\n this.eventDisplay.exportToOBJ();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n EventDataFormat,\n EventDataImportOption,\n} from '../../../services/extras/event-data-import';\nimport { IOOptionsDialogComponent } from './io-options-dialog/io-options-dialog.component';\n\n@Component({\n selector: 'app-io-options',\n templateUrl: './io-options.component.html',\n styleUrls: ['./io-options.component.scss'],\n})\nexport class IoOptionsComponent {\n @Input()\n eventDataImportOptions: EventDataImportOption[] =\n Object.values(EventDataFormat);\n\n constructor(private dialog: MatDialog) {}\n\n openIODialog() {\n const dialogRef = this.dialog.open(IOOptionsDialogComponent, {\n panelClass: 'dialog',\n });\n dialogRef.componentInstance.eventDataImportOptions =\n this.eventDataImportOptions;\n }\n}\n","<app-menu-toggle\n tooltip=\"Import and export options\"\n icon=\"import\"\n [active]=\"false\"\n (click)=\"openIODialog()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-main-view-toggle',\n templateUrl: './main-view-toggle.component.html',\n styleUrls: ['./main-view-toggle.component.scss'],\n})\nexport class MainViewToggleComponent {\n orthographicView: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n switchMainView() {\n this.orthographicView = !this.orthographicView;\n this.eventDisplay\n .getUIManager()\n .toggleOrthographicView(this.orthographicView);\n }\n}\n","<app-menu-toggle\n [icon]=\"orthographicView ? 'perspective' : 'orthographic'\"\n [matTooltip]=\"\n 'Switch to ' + (orthographicView ? 'perspective' : 'orthographic') + ' view'\n \"\n (click)=\"switchMainView()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-object-clipping',\n templateUrl: './object-clipping.component.html',\n styleUrls: ['./object-clipping.component.scss'],\n})\nexport class ObjectClippingComponent {\n clippingEnabled: boolean;\n startClippingAngle: number;\n openingClippingAngle: number;\n\n constructor(private eventDisplay: EventDisplayService) {\n const stateManager = this.eventDisplay.getStateManager();\n stateManager.clippingEnabled.onUpdate(\n (clippingValue) => (this.clippingEnabled = clippingValue)\n );\n stateManager.startClippingAngle.onUpdate(\n (value) => (this.startClippingAngle = value)\n );\n stateManager.openingClippingAngle.onUpdate(\n (value) => (this.openingClippingAngle = value)\n );\n }\n\n changeStartClippingAngle(startingAngle: number) {\n this.eventDisplay.getUIManager().rotateStartAngleClipping(startingAngle);\n }\n\n changeOpeningClippingAngle(openingAngle: number) {\n this.eventDisplay.getUIManager().rotateOpeningAngleClipping(openingAngle);\n }\n\n toggleClipping(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setClipping(value);\n this.clippingEnabled = value;\n }\n}\n","<mat-menu class=\"mat-menu\" #menu>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n clippingCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #clippingCheckbox\n [checked]=\"clippingEnabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleClipping($event)\"\n >\n Clipping\n </mat-checkbox>\n </button>\n <button\n class=\"slider-btn\"\n mat-menu-item\n (focus)=\"startingAngleSlider.focus()\"\n >\n <mat-slider min=\"0\" max=\"360\" step=\"1\" thumbLabel>\n <input\n #startingAngleSlider\n matSliderThumb\n [value]=\"startClippingAngle\"\n (valueChange)=\"changeStartClippingAngle($event)\"\n />\n </mat-slider>\n Start Angle\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"openingAngleSlider.focus()\">\n <mat-slider min=\"0\" max=\"360\" step=\"1\" thumbLabel>\n <input\n #openingAngleSlider\n matSliderThumb\n [value]=\"openingClippingAngle\"\n (valueChange)=\"changeOpeningClippingAngle($event)\"\n />\n </mat-slider>\n Opening Angle\n </button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"menu\"\n tooltip=\"Geometry clipping\"\n icon=\"clipping\"\n [active]=\"clippingEnabled\"\n>\n</app-menu-toggle>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Pipe for transforming selected object attributes to a better format.\n */\n@Pipe({\n name: 'attributePipe',\n})\nexport class AttributePipe implements PipeTransform {\n /**\n * Transform the attribute to a better presentable format.\n * @param value Value to be transformed.\n * @param args Additional arguments.\n * @returns The transformed value.\n */\n transform(value: any, args?: any): any {\n let transformedValue = '';\n if (Array.isArray(value)) {\n transformedValue += '\\n';\n value.forEach((v) => (transformedValue += v + '\\n'));\n } else {\n transformedValue = value.toString();\n }\n return transformedValue;\n }\n}\n","<app-overlay\n icon=\"cursor\"\n [overlayTitle]=\"selectedObject.name\"\n [active]=\"!hiddenSelectedInfo\"\n>\n <div\n id=\"selectedObjectPanelBody\"\n class=\"m-1\"\n *ngIf=\"selectedObject.attributes.length > 0\"\n >\n <div\n *ngFor=\"let attribute of selectedObject.attributes\"\n class=\"attributeField\"\n >\n <strong>{{ attribute.attributeName }}</strong>\n : {{ attribute.attributeValue | attributePipe }}\n </div>\n </div>\n</app-overlay>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n selector: 'app-object-selection-overlay',\n templateUrl: './object-selection-overlay.component.html',\n styleUrls: ['./object-selection-overlay.component.scss'],\n})\nexport class ObjectSelectionOverlayComponent implements OnInit {\n // Attributes for displaying the information of selected objects\n @Input() hiddenSelectedInfo: boolean;\n selectedObject = { name: 'Object', attributes: [] };\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.eventDisplay.allowSelection(this.selectedObject);\n }\n}\n","import { Component, OnInit, ComponentRef, OnDestroy } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ObjectSelectionOverlayComponent } from './object-selection-overlay/object-selection-overlay.component';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-object-selection',\n templateUrl: './object-selection.component.html',\n styleUrls: ['./object-selection.component.scss'],\n})\nexport class ObjectSelectionComponent implements OnInit, OnDestroy {\n // Attributes for displaying the information of selected objects\n hiddenSelectedInfo = true;\n overlayWindow: ComponentRef<ObjectSelectionOverlayComponent>;\n\n constructor(\n private overlay: Overlay,\n private eventDisplay: EventDisplayService\n ) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(ObjectSelectionOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.hiddenSelectedInfo = this.hiddenSelectedInfo;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.hiddenSelectedInfo = !this.hiddenSelectedInfo;\n this.overlayWindow.instance.hiddenSelectedInfo = this.hiddenSelectedInfo;\n this.eventDisplay.enableSelecting(!this.hiddenSelectedInfo);\n }\n}\n","<app-menu-toggle\n tooltip=\"Object selection\"\n icon=\"cursor\"\n [active]=\"!hiddenSelectedInfo\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","import { Component, ViewChild, AfterViewInit, Input } from '@angular/core';\nimport type { ElementRef } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n selector: 'app-overlay-view-window',\n templateUrl: './overlay-view-window.component.html',\n styleUrls: ['./overlay-view-window.component.scss'],\n})\nexport class OverlayViewWindowComponent implements AfterViewInit {\n @Input() showOverlay = true;\n transparentBody = false;\n orthographicView = false;\n overlayViewFixed = false;\n @ViewChild('overlayWindow') overlayWindow: ElementRef<HTMLCanvasElement>;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngAfterViewInit(): void {\n const canvas = this.initializeCanvas(this.overlayWindow.nativeElement);\n this.eventDisplay.setOverlayRenderer(canvas);\n }\n\n initializeCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement {\n const width = window.innerWidth / 2.5;\n const height = window.innerHeight / 2.5;\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width.toString() + ' px';\n canvas.style.height = height.toString() + ' px';\n return canvas;\n }\n\n switchOverlayView() {\n this.orthographicView = !this.orthographicView;\n this.eventDisplay\n .getUIManager()\n .toggleOrthographicView(this.orthographicView);\n }\n\n fixOverlayView() {\n this.overlayViewFixed = !this.overlayViewFixed;\n this.eventDisplay.fixOverlayView(this.overlayViewFixed);\n }\n\n toggleBgTransparency() {\n this.transparentBody = !this.transparentBody;\n }\n}\n","<app-overlay\n overlayTitle=\"Overlay View\"\n icon=\"overlay\"\n [resizable]=\"true\"\n [transparentBody]=\"transparentBody\"\n [active]=\"showOverlay\"\n>\n <div class=\"overlay-view-wrapper\">\n <canvas #overlayWindow id=\"overlay-canvas\" [hidden]=\"!showOverlay\">\n </canvas>\n <div class=\"overlay-view-controls position-absolute d-flex flex-row\">\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"transparent\"\n matTooltip=\"Toggle background transparency\"\n (click)=\"toggleBgTransparency()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"move-lock\"\n [matTooltip]=\"(overlayViewFixed ? 'Restore' : 'Fix') + ' overlay view'\"\n [active]=\"overlayViewFixed\"\n (click)=\"fixOverlayView()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n [icon]=\"orthographicView ? 'orthographic' : 'perspective'\"\n [matTooltip]=\"\n 'Switch to ' +\n (orthographicView ? 'orthographic' : 'perspective') +\n ' view'\n \"\n (click)=\"switchOverlayView()\"\n >\n </app-menu-toggle>\n </div>\n </div>\n</app-overlay>\n","import { Component, ComponentRef, OnDestroy, OnInit } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { OverlayViewWindowComponent } from './overlay-view-window/overlay-view-window.component';\n\n@Component({\n selector: 'app-overlay-view',\n templateUrl: './overlay-view.component.html',\n styleUrls: ['./overlay-view.component.scss'],\n})\nexport class OverlayViewComponent implements OnInit, OnDestroy {\n overlayWindow: ComponentRef<OverlayViewWindowComponent>;\n showOverlay = false;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(OverlayViewWindowComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showOverlay = this.showOverlay;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.showOverlay = !this.showOverlay;\n this.overlayWindow.instance.showOverlay = this.showOverlay;\n }\n}\n","<app-menu-toggle\n tooltip=\"Overlay view\"\n icon=\"overlay\"\n [active]=\"showOverlay\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","<ng-container *ngIf=\"node\">\n <div class=\"header\" [ngClass]=\"{ visible: visible }\">\n <button\n *ngIf=\"node.children\"\n mat-icon-button\n matTreeNodeToggle\n (click)=\"isExpanded = !isExpanded\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ isExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <div (click)=\"toggleVisibility(!visible)\" class=\"node-name\">\n {{ node.name }}\n </div>\n </div>\n <ul [hidden]=\"!isExpanded\" hid>\n <div class=\"children\">\n <li *ngFor=\"let node of node.children\">\n <app-tree-menu-item [node]=\"node\"></app-tree-menu-item>\n </li>\n </div>\n </ul>\n</ng-container>\n","import { Component, Input, ViewChildren } from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\nexport type TreeMenuNode = {\n name: string;\n geometryId: string;\n children?: TreeMenuNode[];\n};\n\n@Component({\n selector: 'app-tree-menu-item',\n templateUrl: './tree-menu-item.component.html',\n styleUrls: ['./tree-menu-item.component.scss'],\n})\nexport class TreeMenuItemComponent {\n @ViewChildren(TreeMenuItemComponent)\n children!: QueryList<TreeMenuItemComponent>;\n @Input() node: TreeMenuNode;\n isExpanded = false;\n visible = true;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n public toggleVisibility(visible: boolean) {\n console.log(\"hi! it's \" + this.node.name);\n this.eventDisplay\n .getUIManager()\n .geometryVisibility(this.node.geometryId, visible);\n this.visible = visible;\n this.children.forEach((child) => child.toggleVisibility(visible));\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TreeMenuNode } from './tree-menu-item/tree-menu-item.component';\n\n@Component({\n selector: 'app-tree-menu',\n templateUrl: './tree-menu.component.html',\n styleUrls: ['./tree-menu.component.scss'],\n})\nexport class TreeMenuComponent implements OnInit {\n rootNode: TreeMenuNode = {\n name: 'Atlas Detector',\n geometryId: 'AtlasDetector',\n children: [\n {\n name: 'Magnet systems',\n geometryId: 'MagnetSys',\n children: [\n {\n name: 'Toroids',\n geometryId: 'Toroids',\n },\n ],\n },\n {\n name: 'Calorimeters',\n geometryId: 'CaloSys',\n children: [\n {\n name: 'LAr Barrel',\n geometryId: 'LAr Barrel',\n },\n {\n name: 'LAr EC1',\n geometryId: 'LAr EC1',\n },\n {\n name: 'LAr EC2',\n geometryId: 'LAr EC2',\n },\n {\n name: 'Tile Cal',\n geometryId: 'Tile Cal',\n },\n ],\n },\n {\n name: 'Inner detector',\n geometryId: 'InDetSys',\n children: [\n {\n name: 'Pixel',\n geometryId: 'Pixel',\n },\n {\n name: 'SCT',\n geometryId: 'SCT',\n },\n {\n name: 'TRT',\n geometryId: 'TRT',\n },\n ],\n },\n ],\n };\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"tree-wrapper\">\n <div class=\"tree-menu\">\n <app-tree-menu-item [node]=\"rootNode\"></app-tree-menu-item>\n </div>\n</div>\n","<mat-menu #viewOptions>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showGridCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setGrid($event)\"\n >Show Grid\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showAxisCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showAxisCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setAxis($event)\"\n >Show Axis\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n *ngFor=\"let view of views\"\n (click)=\"displayView($event, view)\"\n >\n <svg class=\"view-icon\" *ngIf=\"view.icon\">\n <use attr.href=\"assets/icons/{{ view.icon }}.svg#{{ view.icon }}\"></use>\n </svg>\n {{ view.name }}\n </button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"viewOptions\"\n tooltip=\"View options\"\n icon=\"views\"\n [active]=\"false\"\n>\n</app-menu-toggle>\n","import { Component, OnInit } from '@angular/core';\nimport { PresetView } from 'phoenix-event-display';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-view-options',\n templateUrl: './view-options.component.html',\n styleUrls: ['./view-options.component.scss'],\n})\nexport class ViewOptionsComponent implements OnInit {\n views: PresetView[];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit(): void {\n this.views = this.eventDisplay.getUIManager().getPresetViews();\n }\n\n displayView($event: any, view: PresetView) {\n $event.stopPropagation();\n this.eventDisplay.getUIManager().displayView(view);\n }\n\n setAxis(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setShowAxis(value);\n }\n\n setGrid(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setShowGrid(value);\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { VRManager, XRSessionType } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-vr-toggle',\n templateUrl: './vr-toggle.component.html',\n styleUrls: ['./vr-toggle.component.scss'],\n})\nexport class VrToggleComponent {\n vrSupported: boolean = false;\n vrActive: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {\n // NOTE: WebXR needs secure HTTPS context\n // Query for permissions of XR before using it (not supported by browsers yet). See https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query\n (navigator as any)?.xr\n ?.isSessionSupported?.(VRManager.SESSION_TYPE)\n .then((supported: boolean) => {\n if (supported) {\n this.vrSupported = true;\n }\n })\n .catch((err: any) => console.warn('Error in VR', err));\n }\n\n toggleVr() {\n // If toggling VR on\n if (!this.vrActive) {\n this.eventDisplay.initXR(XRSessionType.VR, () => {\n this.vrActive = false;\n // Disable renderer XR and remove animation loop\n this.eventDisplay.endXR(XRSessionType.VR);\n });\n this.vrActive = true;\n } else {\n this.eventDisplay.endXR(XRSessionType.VR);\n this.vrActive = false;\n }\n }\n}\n","<app-menu-toggle\n [disabled]=\"!vrSupported\"\n [active]=\"vrActive\"\n icon=\"vr\"\n (click)=\"vrSupported && toggleVr()\"\n [tooltip]=\"\n vrSupported ? (vrActive ? 'Exit VR' : 'Enter VR') : 'VR not supported'\n \"\n>\n</app-menu-toggle>\n","<mat-menu #arToggleOptions>\n <ng-container *ngIf=\"arSupported\">\n <button mat-menu-item (click)=\"toggleAr(true)\">AR with overlays</button>\n <button mat-menu-item (click)=\"toggleAr(false)\">AR without overlays</button>\n </ng-container>\n <button *ngIf=\"!arSupported\" mat-menu-item disabled>AR not supported</button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"arToggleOptions\"\n (click)=\"arSupported && (arActive ? toggleAr() : null)\"\n [disabled]=\"!arSupported\"\n [active]=\"arActive\"\n icon=\"ar\"\n [tooltip]=\"\n arSupported ? (arActive ? 'Exit AR' : 'Enter AR') : 'AR not supported'\n \"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { ARManager, XRSessionType } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-ar-toggle',\n templateUrl: './ar-toggle.component.html',\n styleUrls: ['./ar-toggle.component.scss'],\n})\nexport class ArToggleComponent {\n arSupported: boolean = false;\n arActive: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {\n // NOTE: WebXR needs secure HTTPS context\n // Query for permissions of XR before using it (not supported by browsers yet). See https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query\n (navigator as any).xr\n ?.isSessionSupported?.(ARManager.SESSION_TYPE)\n .then((supported: boolean) => {\n if (supported) {\n this.arSupported = true;\n }\n })\n .catch((err: any) => console.warn('Error in AR', err));\n }\n\n toggleAr(enableDomOverlay: boolean = true) {\n ARManager.enableDomOverlay = enableDomOverlay;\n\n // If toggling AR on\n if (!this.arActive) {\n this.eventDisplay.initXR(XRSessionType.AR, () => {\n this.arActive = false;\n // Disable renderer XR and remove animation loop\n this.eventDisplay.endXR(XRSessionType.AR);\n });\n this.arActive = true;\n } else {\n this.eventDisplay.endXR(XRSessionType.AR);\n this.arActive = false;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n/**\n * Component for adding zoom controls for the main and overlay cameras.\n */\n@Component({\n selector: 'app-zoom-controls',\n templateUrl: './zoom-controls.component.html',\n styleUrls: ['./zoom-controls.component.scss'],\n})\nexport class ZoomControlsComponent {\n /** All camera being used by the scene. */\n allCameras: any[];\n /** Factor to zoom by. */\n private zoomFactor: number = 1.1;\n /** Timeout for clearing mouse hold. */\n private zoomTimeout: any;\n /** The speed and time of zoom. */\n private zoomTime: number = 200;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n /**\n * Zoom all the cameras by a specific zoom factor.\n * The factor may either be greater (zoom in) or smaller (zoom out) than 1.\n * @param zoomFactor The factor to zoom by.\n */\n zoomTo(zoomFactor: number) {\n this.zoomTime =\n this.zoomTime > 30 ? Math.floor(this.zoomTime / 1.1) : this.zoomTime;\n\n this.eventDisplay.zoomTo(zoomFactor, this.zoomTime);\n\n this.zoomTimeout = setTimeout(() => {\n this.zoomTo(zoomFactor);\n }, this.zoomTime);\n }\n\n /**\n * Zoom the camera in.\n * @param leftClick Whether the mouse click is left or not.\n */\n zoomIn(leftClick: boolean) {\n if (leftClick) {\n this.zoomTo(1 / this.zoomFactor);\n }\n }\n\n /**\n * Zoom the camera out.\n * @param leftClick Whether the mouse click is left or not.s\n */\n zoomOut(leftClick: boolean) {\n if (leftClick) {\n this.zoomTo(this.zoomFactor);\n }\n }\n\n /**\n * Reset the zoom time which decreases upon hold and clear the zoom timeout.\n */\n clearZoom() {\n this.zoomTime = 200;\n clearTimeout(this.zoomTimeout);\n }\n}\n","<div class=\"d-flex\">\n <app-menu-toggle\n tooltip=\"Zoom out (hold)\"\n icon=\"zoom-out\"\n [active]=\"false\"\n (click)=\"zoomOut(true); clearZoom()\"\n (touchstart)=\"zoomOut(true)\"\n (mousedown)=\"zoomOut($event.button === 0)\"\n (mouseup)=\"clearZoom()\"\n (mouseleave)=\"clearZoom()\"\n (touchend)=\"clearZoom()\"\n (touchcancel)=\"clearZoom()\"\n (touchmove)=\"clearZoom()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n tooltip=\"Zoom in (hold)\"\n icon=\"zoom-in\"\n [active]=\"false\"\n (click)=\"zoomIn(true); clearZoom()\"\n (touchstart)=\"zoomIn(true)\"\n (mousedown)=\"zoomIn($event.button === 0)\"\n (mouseup)=\"clearZoom()\"\n (mouseleave)=\"clearZoom()\"\n (touchend)=\"clearZoom()\"\n (touchcancel)=\"clearZoom()\"\n (touchmove)=\"clearZoom()\"\n >\n </app-menu-toggle>\n</div>\n","import { OnInit } from '@angular/core';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'app-ss-mode',\n templateUrl: './ss-mode.component.html',\n styleUrls: ['./ss-mode.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SSModeComponent implements OnInit {\n ssMode: boolean = false;\n\n ngOnInit() {\n document.onfullscreenchange = () => {\n if (!document.fullscreenElement) {\n this.toggleSSMode();\n }\n };\n }\n\n toggleSSMode() {\n this.ssMode = !this.ssMode;\n document.body.classList.toggle('ss-mode');\n if (this.ssMode) {\n // WORKAROUND - Adding the event listener directly somehow calls it on the first click\n setTimeout(() => {\n document.addEventListener('click', this.onDocumentClick);\n document.addEventListener('touchstart', this.onDocumentClick);\n }, 1);\n document.documentElement.requestFullscreen?.();\n } else {\n document.removeEventListener('click', this.onDocumentClick);\n document.removeEventListener('touchstart', this.onDocumentClick);\n }\n }\n\n private onDocumentClick = () => {\n document.exitFullscreen?.();\n };\n}\n","<app-menu-toggle\n tooltip=\"Screenshot mode\"\n [active]=\"ssMode\"\n icon=\"ss-mode\"\n (click)=\"toggleSSMode()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-performance-toggle',\n templateUrl: './performance-toggle.component.html',\n styleUrls: ['./performance-toggle.component.scss'],\n})\nexport class PerformanceToggleComponent {\n performanceMode: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n togglePerformance() {\n this.performanceMode = !this.performanceMode;\n this.eventDisplay.getThreeManager().setAntialiasing(!this.performanceMode);\n }\n}\n","<app-menu-toggle\n tooltip=\"Performance mode\"\n [active]=\"performanceMode\"\n icon=\"performance\"\n (click)=\"togglePerformance()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-ui-menu-wrapper',\n templateUrl: './ui-menu-wrapper.component.html',\n styleUrls: ['./ui-menu-wrapper.component.scss'],\n})\nexport class UiMenuWrapperComponent {\n hideUIMenu: boolean = false;\n}\n","<div id=\"uiMenu\">\n <button\n id=\"hideUIMenu\"\n [matTooltip]=\"hideUIMenu ? 'Show toolbar' : 'Hide toolbar'\"\n matTooltipPosition=\"above\"\n (click)=\"hideUIMenu = !hideUIMenu\"\n [ngClass]=\"{ 'ui-menu-hidden': hideUIMenu }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n <div id=\"optionsPanel\" [hidden]=\"hideUIMenu\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActiveVariable, phoenixURLOptions } from 'phoenix-event-display';\nimport QRCode from 'qrcode';\n\n@Component({\n selector: 'app-share-link-dialog',\n templateUrl: './share-link-dialog.component.html',\n styleUrls: ['./share-link-dialog.component.scss'],\n})\nexport class ShareLinkDialogComponent implements AfterViewInit {\n baseLink: string;\n shareLink: ActiveVariable<string>;\n embedLink: string;\n urlOptions = Object.assign({}, phoenixURLOptions);\n @ViewChild('qrcodeCanvas') qrcodeCanvas: ElementRef<HTMLCanvasElement>;\n\n constructor(private dialogRef: MatDialogRef<ShareLinkDialogComponent>) {\n const locationHref = window.location.href;\n const lastIndex =\n locationHref.lastIndexOf('?') === -1\n ? locationHref.length\n : locationHref.lastIndexOf('?');\n\n this.baseLink = locationHref.slice(0, lastIndex);\n this.shareLink = new ActiveVariable(this.baseLink);\n this.embedLink = this.getEmbedLink();\n }\n\n ngAfterViewInit() {\n this.updateQRCode(this.shareLink.value);\n this.shareLink.onUpdate(this.updateQRCode.bind(this));\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n getEmbedLink(urlParametersString: string = '') {\n return `<iframe src=\"${this.baseLink}?embed=true${\n urlParametersString ? '&' : ''\n }${urlParametersString}\"></iframe>`;\n }\n\n setOptionValue(option: string, value: string | boolean) {\n this.urlOptions[option] = value;\n this.onOptionsChange();\n }\n\n onOptionsChange() {\n const urlParametersString = Object.getOwnPropertyNames(this.urlOptions)\n .reduce((filteredOptions: string[], option: string) => {\n if (this.urlOptions[option]) {\n filteredOptions.push(\n `${option}=${encodeURI(this.urlOptions[option])}`\n );\n }\n return filteredOptions;\n }, [])\n .join('&');\n\n this.shareLink.update(\n this.baseLink + (urlParametersString ? '?' : '') + urlParametersString\n );\n this.embedLink = this.getEmbedLink(urlParametersString);\n }\n\n copyText(text: string, element: HTMLElement) {\n const inputElement = document.createElement('input');\n document.body.appendChild(inputElement);\n inputElement.value = text;\n inputElement.select();\n document.execCommand('copy');\n document.body.removeChild(inputElement);\n element.focus();\n\n // Set text on copying\n element.innerText = 'COPIED';\n setTimeout(() => {\n element.innerText = 'COPY';\n }, 2000);\n }\n\n updateQRCode(link: string) {\n QRCode.toCanvas(this.qrcodeCanvas.nativeElement, link);\n }\n}\n","<div class=\"dialog\">\n <h1 mat-dialog-title>Create shareable link</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <h5>URL options</h5>\n <div class=\"form-group mt-2\">\n <label for=\"eventDataFile\">Event data file (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"eventDataFile\"\n placeholder=\"assets/files/event_data/atlaseventdump2.json\"\n [value]=\"urlOptions.file\"\n (input)=\"setOptionValue('file', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"eventDataType\">Event data type</label>\n <select\n class=\"form-control\"\n id=\"eventDataType\"\n (input)=\"setOptionValue('type', $event.target.value)\"\n >\n <option selected value=\"\">Select</option>\n <option value=\"jivexml\">JiveXML</option>\n <option value=\"json\">JSON</option>\n </select>\n </div>\n <div class=\"form-group\">\n <label for=\"configuration\">Configuration (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"configuration\"\n placeholder=\"assets/files/config/phoenix-config.json\"\n [value]=\"urlOptions.config\"\n (input)=\"setOptionValue('config', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <mat-checkbox\n [checked]=\"urlOptions.hideWidgets\"\n (change)=\"setOptionValue('hideWidgets', $event.checked)\"\n >\n Hide all widgets\n </mat-checkbox>\n </div>\n\n <h5>Share</h5>\n <div class=\"share-box my-2\">\n <span>{{ shareLink.value }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(shareLink.value, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>Embed</h5>\n <div class=\"share-box my-2\">\n <span>{{ embedLink }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(embedLink, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>QR Code</h5>\n <div class=\"qrcode d-flex justify-content-center\">\n <canvas #qrcodeCanvas></canvas>\n </div>\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ShareLinkDialogComponent } from './share-link-dialog/share-link-dialog.component';\n\n@Component({\n selector: 'app-share-link',\n templateUrl: './share-link.component.html',\n styleUrls: ['./share-link.component.scss'],\n})\nexport class ShareLinkComponent {\n constructor(private dialog: MatDialog) {}\n\n openShareLinkDialog() {\n this.dialog.open(ShareLinkDialogComponent);\n }\n}\n","<app-menu-toggle\n tooltip=\"Create shareable link\"\n icon=\"share\"\n [active]=\"false\"\n (click)=\"openShareLinkDialog()\"\n>\n</app-menu-toggle>\n","import { Component, Input } from '@angular/core';\nimport {\n EventDataFormat,\n EventDataImportOption,\n} from '../../services/extras/event-data-import';\nimport { defaultAnimationPresets } from './animate-camera/animate-camera.component';\n\n@Component({\n selector: 'app-ui-menu',\n templateUrl: './ui-menu.component.html',\n styleUrls: ['./ui-menu.component.scss'],\n})\nexport class UiMenuComponent {\n @Input()\n eventDataImportOptions: EventDataImportOption[] =\n Object.values(EventDataFormat);\n @Input()\n animationPresets = defaultAnimationPresets;\n}\n","<app-ui-menu-wrapper>\n <!-- Event selector -->\n <app-event-selector></app-event-selector>\n\n <!-- Zoom in and zoom out controls -->\n <app-zoom-controls></app-zoom-controls>\n\n <app-view-options></app-view-options>\n\n <app-auto-rotate></app-auto-rotate>\n\n <!-- Dark theme toggle -->\n <app-dark-theme></app-dark-theme>\n\n <!-- Toggle for clipping geometries -->\n <app-object-clipping></app-object-clipping>\n\n <!-- Main view toggle -->\n <app-main-view-toggle></app-main-view-toggle>\n\n <!-- Toggle for overlay panel -->\n <app-overlay-view></app-overlay-view>\n\n <!-- Toggle for selected object panel -->\n <app-object-selection></app-object-selection>\n\n <!-- Info panel -->\n <app-info-panel></app-info-panel>\n\n <!-- Toggle for animating the event data -->\n <app-animate-event></app-animate-event>\n\n <!-- Toggle for animating camera through event -->\n <app-animate-camera\n [animationPresets]=\"animationPresets\"\n ></app-animate-camera>\n\n <!-- Toggle for collections info -->\n <app-collections-info></app-collections-info>\n\n <!-- Toggle for performance -->\n <app-performance-toggle></app-performance-toggle>\n\n <!-- Toggle for VR -->\n <app-vr-toggle></app-vr-toggle>\n\n <!-- Toggle for AR -->\n <app-ar-toggle></app-ar-toggle>\n\n <!-- Toggle for screenshot mode -->\n <app-ss-mode></app-ss-mode>\n\n <!-- Toggle for loading geometries modal-->\n <app-io-options\n [eventDataImportOptions]=\"eventDataImportOptions\"\n ></app-io-options>\n\n <!-- Toggle for shareable link constructor modal-->\n <app-share-link></app-share-link>\n\n <!-- Extra options -->\n <ng-content></ng-content>\n</app-ui-menu-wrapper>\n","<cdk-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <cdk-tree-node *cdkTreeNodeDef=\"let node\" class=\"tree-node\">\n <button\n mat-button\n mat-stroked-button\n class=\"tree-node-button\"\n (click)=\"onSelect(node.url)\"\n >\n <svg class=\"node-icon\">\n <use href=\"assets/icons/file.svg#file\"></use>\n </svg>\n {{ node.name }}\n </button>\n </cdk-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n *cdkTreeNodeDef=\"let node; when: hasChildren\"\n class=\"tree-node\"\n >\n <button\n mat-button\n cdkTreeNodeToggle\n class=\"tree-node-button\"\n [attr.aria-label]=\"'Toggle ' + node.name\"\n >\n <svg\n class=\"node-icon\"\n [class.node-icon-filled]=\"!treeControl.isExpanded(node)\"\n >\n <use href=\"assets/icons/folder.svg#folder\"></use>\n </svg>\n {{ node.name }}\n </button>\n <div [class.file-tree-invisible]=\"!treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { NestedTreeControl } from '@angular/cdk/tree';\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\n\nexport class FileNode {\n name: string;\n url: string;\n children: { [key: string]: FileNode };\n\n constructor(name?: string) {\n this.name = name;\n }\n}\n\n@Component({\n selector: 'app-file-explorer',\n templateUrl: './file-explorer.component.html',\n styleUrls: ['./file-explorer.component.scss'],\n})\nexport class FileExplorerComponent implements OnChanges {\n @Input() rootFileNode: FileNode;\n @Output() onFileSelect: EventEmitter<string> = new EventEmitter<string>();\n\n treeControl = new NestedTreeControl<FileNode>(\n this.getSortedChildren.bind(this)\n );\n dataSource = new MatTreeNestedDataSource<FileNode>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.rootFileNode?.currentValue) {\n this.dataSource.data = this.getSortedChildren(\n changes.rootFileNode.currentValue\n );\n }\n }\n\n hasChildren = (_: number, node: FileNode) =>\n !!node.children && Object.keys(node.children).length > 0;\n\n onSelect(url: string) {\n this.onFileSelect.emit(url);\n }\n\n /**\n * Sort the FileNode's children with folders before files.\n * @param node FileNode whose children are to be sorted.\n * @returns An array of sorted FileNodes.\n */\n getSortedChildren(node: FileNode): FileNode[] {\n if (!node.children) {\n return [];\n }\n\n return Object.values(node.children).sort((a, b) =>\n !a.url && b.url ? -1 : 1\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-ring-loader',\n templateUrl: './ring-loader.component.html',\n styleUrls: ['./ring-loader.component.scss'],\n})\nexport class RingLoaderComponent {}\n","<div class=\"ring\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n</div>\n","<div class=\"dialog\">\n <div class=\"d-flex\">\n <h1 mat-dialog-title>Event data from directory</h1>\n <app-ring-loader *ngIf=\"loading\"></app-ring-loader>\n </div>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"error\">Error processing request.</div>\n <mat-tab-group\n *ngIf=\"!error\"\n mat-align-tabs=\"start\"\n animationDuration=\"0ms\"\n disableRipple\n color=\"transparent\"\n >\n <mat-tab label=\"Event data\">\n <div class=\"py-3\">\n <app-file-explorer\n [rootFileNode]=\"eventDataFileNode\"\n (onFileSelect)=\"loadEvent($event)\"\n ></app-file-explorer>\n </div>\n </mat-tab>\n <mat-tab label=\"Config\">\n <div class=\"py-3\">\n <app-file-explorer\n [rootFileNode]=\"configFileNode\"\n (onFileSelect)=\"loadConfig($event)\"\n ></app-file-explorer>\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { JiveXMLLoader } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { FileNode } from '../../../file-explorer/file-explorer.component';\nimport { EventDataExplorerDialogData } from '../event-data-explorer.component';\nimport JSZip from 'jszip';\n\nconst supportFileTypes = ['json', 'xml'];\n\nexport type FileResponse = {\n name: string;\n url: string;\n};\n\n@Component({\n selector: 'app-event-data-explorer-dialog',\n templateUrl: './event-data-explorer-dialog.component.html',\n styleUrls: ['./event-data-explorer-dialog.component.scss'],\n})\nexport class EventDataExplorerDialogComponent {\n eventDataFileNode: FileNode;\n configFileNode: FileNode;\n loading = true;\n error = false;\n\n constructor(\n private eventDisplay: EventDisplayService,\n private dialogRef: MatDialogRef<EventDataExplorerDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogData: EventDataExplorerDialogData\n ) {\n // Event data\n this.makeRequest(this.dialogData.apiURL, 'json', (res: FileResponse[]) => {\n const filePaths = res.filter((file) =>\n supportFileTypes.includes(file.name.split('.').pop())\n );\n\n this.eventDataFileNode = this.buildFileNode(filePaths);\n });\n\n // Config\n this.makeRequest(\n `${this.dialogData.apiURL}?type=config`,\n 'json',\n (res: FileResponse[]) => {\n const filePaths = res.filter(\n (file) => file.name.split('.').pop() === 'json'\n );\n\n this.configFileNode = this.buildFileNode(filePaths);\n }\n );\n }\n\n loadEvent(file: string) {\n const isZip = file.split('.').pop() === 'zip';\n const rawfile = isZip ? file.substring(0, file.length - 4) : file;\n this.makeRequest(file, isZip ? 'blob' : 'text', (eventData) => {\n switch (rawfile.split('.').pop()) {\n case 'xml':\n this.loadJiveXMLEvent(eventData);\n break;\n case 'json':\n this.loadJSONEvent(eventData);\n break;\n }\n });\n }\n\n private loadJSONEvent(eventData: string) {\n this.eventDisplay.parsePhoenixEvents(JSON.parse(eventData));\n this.onClose();\n }\n\n private loadJiveXMLEvent(eventData: string) {\n const jiveXMLLoader = new JiveXMLLoader();\n jiveXMLLoader.process(eventData);\n const processedEventData = jiveXMLLoader.getEventData();\n this.eventDisplay.buildEventDataFromJSON(processedEventData);\n this.onClose();\n }\n\n loadConfig(file: string) {\n this.makeRequest(\n `${this.dialogData.apiURL}?type=config&f=${file}`,\n 'text',\n (config) => {\n const stateManager = this.eventDisplay.getStateManager();\n stateManager.loadStateFromJSON(JSON.parse(config));\n\n this.onClose();\n }\n );\n }\n\n // Helpers\n\n onClose() {\n this.dialogRef.close();\n }\n\n private async unzip(data: ArrayBuffer) {\n const archive = new JSZip();\n await archive.loadAsync(data);\n let fileData = '';\n let multiFile = false;\n for (const filePath in archive.files) {\n if (multiFile) {\n console.error(\n 'Zip archive contains more than one file. Ignoring all but first'\n );\n break;\n }\n fileData = await archive.file(filePath).async('string');\n multiFile = true;\n }\n return fileData;\n }\n\n makeRequest(\n urlPath: string,\n responseType: 'json' | 'text' | 'blob',\n onData: (data: any) => void\n ) {\n this.loading = true;\n fetch(urlPath)\n .then((res) => res[responseType]())\n .then((data) => {\n if (responseType === 'blob') {\n data\n .arrayBuffer()\n .then((buf) => this.unzip(buf))\n .then((d) => onData(d));\n } else {\n onData(data);\n }\n this.error = false;\n })\n .catch((error) => {\n console.error(error);\n this.error = true;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n private buildFileNode(filePaths: FileResponse[]): FileNode {\n const rootNode = new FileNode();\n let fileNode = rootNode;\n\n for (const filePath of filePaths) {\n filePath.name.split('/').forEach((name) => {\n fileNode.children = fileNode.children ?? {};\n fileNode.children[name] = fileNode.children[name] ?? new FileNode(name);\n fileNode = fileNode.children[name];\n });\n\n fileNode.url = filePath.url;\n fileNode = rootNode;\n }\n\n return rootNode;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { EventDataExplorerDialogComponent } from './event-data-explorer-dialog/event-data-explorer-dialog.component';\n\nexport type EventDataExplorerDialogData = {\n apiURL: string;\n};\n\n@Component({\n selector: 'app-event-data-explorer',\n templateUrl: './event-data-explorer.component.html',\n styleUrls: ['./event-data-explorer.component.scss'],\n})\nexport class EventDataExplorerComponent {\n @Input() apiURL: string;\n\n constructor(private dialog: MatDialog) {}\n\n openEventDataExplorerDialog() {\n this.dialog.open<\n EventDataExplorerDialogComponent,\n EventDataExplorerDialogData\n >(EventDataExplorerDialogComponent, {\n data: {\n apiURL: this.apiURL,\n },\n });\n }\n}\n","<app-menu-toggle\n tooltip=\"Browse events in data directory\"\n icon=\"server\"\n [active]=\"false\"\n (click)=\"openEventDataExplorerDialog()\"\n>\n</app-menu-toggle>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-cycle-events',\n templateUrl: './cycle-events.component.html',\n})\nexport class CycleEventsComponent implements OnInit {\n @Input()\n interval: number;\n\n active: boolean = false;\n\n private intervalId: NodeJS.Timer;\n\n private events: string[];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.eventDisplay.listenToLoadedEventsChange(\n (events) => (this.events = events)\n );\n }\n\n toggleCycle() {\n this.active = !this.active;\n clearInterval(this.intervalId);\n\n if (this.active) {\n this.startCycleInterval();\n }\n }\n\n private startCycleInterval(startIndex: number = 0) {\n let index = startIndex;\n\n this.intervalId = setInterval(() => {\n index = index >= this.events.length ? 0 : index + 1;\n this.eventDisplay.loadEvent(this.events[index]);\n }, this.interval);\n }\n}\n","<app-menu-toggle\n tooltip=\"Cycle through events\"\n [active]=\"active\"\n icon=\"cycle-events\"\n (click)=\"toggleCycle()\"\n>\n</app-menu-toggle>\n","import { Injectable } from '@angular/core';\nimport { ActiveVariable } from 'phoenix-event-display';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ErrorMessageService {\n /** A variable that stores the latest error thrown. */\n private error = new ActiveVariable<Error>();\n\n /**\n * Subscribe to when an error occurs.\n * @param callback A function called when an error occurs.\n */\n subscribeToError(callback: (error: Error) => void) {\n this.error.onUpdate(callback);\n }\n\n /**\n * Set the current error.\n * @param error The error that has occurred.\n */\n setError(error: Error) {\n this.error.update(error);\n }\n}\n","<div\n class=\"loader-wrapper d-flex position-absolute flex-column justify-content-center align-items-center w-100 h-100 p-5 text-center\"\n [ngClass]=\"{ 'load-complete': loaded }\"\n>\n <ng-container *ngIf=\"error === undefined; else errorContainer\">\n <img src=\"assets/images/logo-small.svg\" alt=\"Loader\" />\n <p class=\"mt-5\">\n Loading...<br />\n <small class=\"text-muted\">(This may take a while)</small>\n </p>\n <div class=\"loading-bar\" *ngIf=\"progress !== undefined\">\n <span [style]=\"{ width: progress + '%' }\"></span>\n </div>\n </ng-container>\n <ng-template #errorContainer>\n <p>\n An error occurred while loading the application. Please try refreshing the\n page.\n </p>\n </ng-template>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ErrorMessageService } from '../../services/error-message-service';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent {\n @Input() loaded = false;\n @Input() progress: number;\n public error: Error;\n\n constructor(private errorMessageService: ErrorMessageService) {\n this.errorMessageService.subscribeToError((error) => {\n if (!this.loaded) {\n this.error = error;\n }\n });\n }\n}\n","import { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { ErrorMessageService } from './error-message-service';\n\n/**\n * Global handler for handling app/module wide errors.\n */\n@Injectable()\nexport class GlobalErrorHandler implements ErrorHandler {\n /**\n * Instantiate the global error handler.\n * @param injector Injector for getting the error message service.\n */\n constructor(private injector: Injector) {}\n\n /**\n * A handler for handling the global error that occurs in the app.\n * @param error The error that occurred.\n */\n handleError(error: Error) {\n console.error('ERROR IN PHOENIX APP', '\\n', error);\n this.injector.get(ErrorMessageService).setError(error);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-experiment-link',\n templateUrl: './experiment-link.component.html',\n styleUrls: ['./experiment-link.component.scss'],\n})\nexport class ExperimentLinkComponent implements OnInit {\n private experimentLink: string;\n\n ngOnInit() {\n this.experimentLink = window.location.href.split('?')[0];\n }\n\n goToExperiment() {\n window.open(this.experimentLink, '_blank');\n }\n}\n","<app-menu-toggle\n tooltip=\"See full event display\"\n icon=\"link\"\n (click)=\"goToExperiment()\"\n></app-menu-toggle>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-embed-menu',\n templateUrl: './embed-menu.component.html',\n styleUrls: ['./embed-menu.component.scss'],\n})\nexport class EmbedMenuComponent {}\n","<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","import { ErrorHandler, NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { NgxSliderModule } from '@rp3e11/ngx-slider';\nimport { NavComponent } from './nav/nav.component';\nimport {\n PhoenixMenuComponent,\n PhoenixMenuItemComponent,\n ConfigSliderComponent,\n} from './phoenix-menu';\nimport {\n UiMenuWrapperComponent,\n UiMenuComponent,\n CollectionsInfoComponent,\n MenuToggleComponent,\n CollectionsInfoOverlayComponent,\n IoOptionsComponent,\n IOOptionsDialogComponent,\n OverlayViewComponent,\n ObjectSelectionComponent,\n ObjectSelectionOverlayComponent,\n EventSelectorComponent,\n ObjectClippingComponent,\n DarkThemeComponent,\n AutoRotateComponent,\n ViewOptionsComponent,\n OverlayViewWindowComponent,\n OverlayComponent,\n ExperimentInfoComponent,\n InfoPanelComponent,\n InfoPanelOverlayComponent,\n MainViewToggleComponent,\n ZoomControlsComponent,\n TreeMenuComponent,\n TreeMenuItemComponent,\n AnimateCameraComponent,\n AnimateEventComponent,\n VrToggleComponent,\n ArToggleComponent,\n SSModeComponent,\n PerformanceToggleComponent,\n ShareLinkComponent,\n ShareLinkDialogComponent,\n EventDataExplorerComponent,\n EventDataExplorerDialogComponent,\n CycleEventsComponent,\n} from './ui-menu';\nimport { AttributePipe } from '../services/extras/attribute.pipe';\nimport { EventDisplayService } from '../services/event-display.service';\nimport { ErrorMessageService } from '../services/error-message-service';\nimport { GlobalErrorHandler } from '../services/global-error-handler';\nimport { LoaderComponent } from './loader/loader.component';\nimport { EmbedMenuComponent } from './embed-menu/embed-menu.component';\nimport { ExperimentLinkComponent } from './embed-menu/experiment-link/experiment-link.component';\nimport { FileExplorerComponent } from './file-explorer/file-explorer.component';\nimport { RingLoaderComponent } from './ring-loader/ring-loader.component';\n\nconst PHOENIX_COMPONENTS: Type<any>[] = [\n NavComponent,\n UiMenuWrapperComponent,\n UiMenuComponent,\n CollectionsInfoComponent,\n MenuToggleComponent,\n CollectionsInfoOverlayComponent,\n IoOptionsComponent,\n IOOptionsDialogComponent,\n OverlayViewComponent,\n AttributePipe,\n ObjectSelectionComponent,\n ObjectSelectionOverlayComponent,\n EventSelectorComponent,\n ObjectClippingComponent,\n DarkThemeComponent,\n AutoRotateComponent,\n ViewOptionsComponent,\n OverlayViewWindowComponent,\n OverlayComponent,\n ExperimentInfoComponent,\n InfoPanelComponent,\n InfoPanelOverlayComponent,\n MainViewToggleComponent,\n ZoomControlsComponent,\n TreeMenuComponent,\n TreeMenuItemComponent,\n PhoenixMenuComponent,\n PhoenixMenuItemComponent,\n ConfigSliderComponent,\n AnimateCameraComponent,\n AnimateEventComponent,\n VrToggleComponent,\n ArToggleComponent,\n SSModeComponent,\n PerformanceToggleComponent,\n LoaderComponent,\n ShareLinkComponent,\n ShareLinkDialogComponent,\n EmbedMenuComponent,\n ExperimentLinkComponent,\n EventDataExplorerComponent,\n EventDataExplorerDialogComponent,\n FileExplorerComponent,\n RingLoaderComponent,\n CycleEventsComponent,\n];\n\n@NgModule({\n declarations: PHOENIX_COMPONENTS,\n imports: [\n CommonModule,\n RouterModule,\n DragDropModule,\n MatDialogModule,\n MatButtonModule,\n MatTooltipModule,\n OverlayModule,\n MatMenuModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatCheckboxModule,\n MatIconModule,\n NgxSliderModule,\n CdkTreeModule,\n MatTabsModule,\n ],\n entryComponents: [\n OverlayComponent,\n OverlayViewWindowComponent,\n IOOptionsDialogComponent,\n CollectionsInfoOverlayComponent,\n ObjectSelectionOverlayComponent,\n InfoPanelOverlayComponent,\n EventDataExplorerDialogComponent,\n ],\n exports: PHOENIX_COMPONENTS,\n providers: [\n EventDisplayService,\n ErrorMessageService,\n {\n provide: ErrorHandler,\n useClass: GlobalErrorHandler,\n },\n ],\n})\nexport class PhoenixUIModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_c1","_c2","_c3","_c4","_c5","i6.ConfigSliderComponent","_c0","i1.EventDisplayService","i1","i2","i2.EventDisplayService","i1.ErrorMessageService"],"mappings":"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"}
1
+ {"version":3,"file":"phoenix-ui-components.mjs","sources":["../../lib/components/nav/nav.component.ts","../../lib/components/nav/nav.component.html","../../lib/components/phoenix-menu/config/config-slider/config-slider.component.html","../../lib/components/phoenix-menu/config/config-slider/config-slider.component.ts","../../lib/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.html","../../lib/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.ts","../../lib/components/phoenix-menu/phoenix-menu.component.ts","../../lib/components/phoenix-menu/phoenix-menu.component.html","../../lib/services/event-display.service.ts","../../lib/components/ui-menu/menu-toggle/menu-toggle.component.ts","../../lib/components/ui-menu/menu-toggle/menu-toggle.component.html","../../lib/components/ui-menu/animate-camera/animate-camera.component.html","../../lib/components/ui-menu/animate-camera/animate-camera.component.ts","../../lib/components/ui-menu/animate-event/animate-event.component.ts","../../lib/components/ui-menu/animate-event/animate-event.component.html","../../lib/components/ui-menu/auto-rotate/auto-rotate.component.ts","../../lib/components/ui-menu/auto-rotate/auto-rotate.component.html","../../lib/components/ui-menu/overlay/overlay.component.html","../../lib/components/ui-menu/overlay/overlay.component.ts","../../lib/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.html","../../lib/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.ts","../../lib/components/ui-menu/collections-info/collections-info.component.ts","../../lib/components/ui-menu/collections-info/collections-info.component.html","../../lib/components/ui-menu/dark-theme/dark-theme.component.ts","../../lib/components/ui-menu/dark-theme/dark-theme.component.html","../../lib/components/ui-menu/event-selector/event-selector.component.html","../../lib/components/ui-menu/event-selector/event-selector.component.ts","../../lib/components/ui-menu/experiment-info/experiment-info.component.html","../../lib/components/ui-menu/experiment-info/experiment-info.component.ts","../../lib/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.html","../../lib/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.ts","../../lib/components/ui-menu/info-panel/info-panel.component.ts","../../lib/components/ui-menu/info-panel/info-panel.component.html","../../lib/services/extras/event-data-import.ts","../../lib/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.html","../../lib/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.ts","../../lib/components/ui-menu/io-options/io-options.component.ts","../../lib/components/ui-menu/io-options/io-options.component.html","../../lib/components/ui-menu/main-view-toggle/main-view-toggle.component.ts","../../lib/components/ui-menu/main-view-toggle/main-view-toggle.component.html","../../lib/components/ui-menu/object-clipping/object-clipping.component.ts","../../lib/components/ui-menu/object-clipping/object-clipping.component.html","../../lib/services/extras/attribute.pipe.ts","../../lib/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.html","../../lib/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.ts","../../lib/components/ui-menu/object-selection/object-selection.component.ts","../../lib/components/ui-menu/object-selection/object-selection.component.html","../../lib/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.ts","../../lib/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.html","../../lib/components/ui-menu/overlay-view/overlay-view.component.ts","../../lib/components/ui-menu/overlay-view/overlay-view.component.html","../../lib/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.html","../../lib/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.ts","../../lib/components/ui-menu/tree-menu/tree-menu.component.ts","../../lib/components/ui-menu/tree-menu/tree-menu.component.html","../../lib/components/ui-menu/view-options/view-options.component.html","../../lib/components/ui-menu/view-options/view-options.component.ts","../../lib/components/ui-menu/vr-toggle/vr-toggle.component.ts","../../lib/components/ui-menu/vr-toggle/vr-toggle.component.html","../../lib/components/ui-menu/ar-toggle/ar-toggle.component.html","../../lib/components/ui-menu/ar-toggle/ar-toggle.component.ts","../../lib/components/ui-menu/zoom-controls/zoom-controls.component.ts","../../lib/components/ui-menu/zoom-controls/zoom-controls.component.html","../../lib/components/ui-menu/ss-mode/ss-mode.component.ts","../../lib/components/ui-menu/ss-mode/ss-mode.component.html","../../lib/components/ui-menu/make-picture/make-picture.component.html","../../lib/components/ui-menu/make-picture/make-picture.component.ts","../../lib/components/ui-menu/performance-toggle/performance-toggle.component.ts","../../lib/components/ui-menu/performance-toggle/performance-toggle.component.html","../../lib/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.ts","../../lib/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.html","../../lib/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.ts","../../lib/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.html","../../lib/components/ui-menu/share-link/share-link.component.ts","../../lib/components/ui-menu/share-link/share-link.component.html","../../lib/components/ui-menu/ui-menu.component.ts","../../lib/components/ui-menu/ui-menu.component.html","../../lib/components/file-explorer/file-explorer.component.html","../../lib/components/file-explorer/file-explorer.component.ts","../../lib/components/ring-loader/ring-loader.component.ts","../../lib/components/ring-loader/ring-loader.component.html","../../lib/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.html","../../lib/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.ts","../../lib/components/ui-menu/event-data-explorer/event-data-explorer.component.ts","../../lib/components/ui-menu/event-data-explorer/event-data-explorer.component.html","../../lib/components/ui-menu/cycle-events/cycle-events.component.ts","../../lib/components/ui-menu/cycle-events/cycle-events.component.html","../../lib/services/error-message-service.ts","../../lib/components/loader/loader.component.html","../../lib/components/loader/loader.component.ts","../../lib/services/global-error-handler.ts","../../lib/components/embed-menu/experiment-link/experiment-link.component.ts","../../lib/components/embed-menu/experiment-link/experiment-link.component.html","../../lib/components/embed-menu/embed-menu.component.ts","../../lib/components/embed-menu/embed-menu.component.html","../../lib/components/phoenix-ui.module.ts","../../lib/phoenix-ui-components.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.scss'],\n})\nexport class NavComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","<a id=\"mainLogo\" class=\"main-logo fixed-top p-2 mx-auto mt-2\" routerLink=\"/\">\n <img src=\"assets/images/logo-text.svg\" />\n</a>\n","<div class=\"d-flex flex-row align-items-center\">\n <mat-slider class=\"mx-2\" [min]=\"min\" [max]=\"max\" [step]=\"step\" thumbLabel>\n <input\n matSliderThumb\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n />\n </mat-slider>\n <input\n *ngIf=\"allowCustomValue\"\n class=\"config-slider-input\"\n type=\"number\"\n [value]=\"value\"\n (input)=\"onValueChange($event.target.value)\"\n />\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\n\n@Component({\n selector: 'app-config-slider',\n templateUrl: './config-slider.component.html',\n styleUrls: ['./config-slider.component.scss'],\n})\nexport class ConfigSliderComponent {\n @Input() value: number = 0;\n @Input() min: number = 0;\n oldMin: number = 0;\n @Input() max: number = 100;\n oldMax: number = 0;\n @Input() step: number = 1;\n @Input() allowCustomValue: boolean = false;\n @Output() onChange: EventEmitter<number> = new EventEmitter<number>();\n\n onValueChange(value: number) {\n value && this.onChange.emit(value);\n }\n\n toggleMinCut(change: MatCheckboxChange) {\n const value = change.checked;\n if (value) {\n this.min = this.oldMin;\n } else {\n this.oldMin = this.min;\n this.min = Number.MIN_SAFE_INTEGER;\n }\n // We should probably disable the min input too, and change text to be infinity symbol or something?\n }\n\n toggleMaxCut(change: MatCheckboxChange) {\n const value = change.checked;\n if (value) {\n this.max = this.oldMax;\n } else {\n this.oldMax = this.max;\n this.max = Number.MAX_SAFE_INTEGER;\n }\n // We should probably disable the min input too, and change text to be infinity symbol or something?\n }\n}\n","<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of castConfigsToAny(currentNode.configs)\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <div class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <label\n class=\"item-config-label\"\n for=\"item-config-field\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </label>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n id=\"item-config-field\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <div *ngSwitchCase=\"'rangeSlider'\" class=\"range-slider\">\n <div class=\"range-slider-inputs d-flex justify-content-between\">\n <mat-checkbox\n [checked]=\"config.enableMin\"\n (change)=\"config.setEnableMin($event.checked)\"\n ></mat-checkbox>\n <mat-checkbox\n [checked]=\"config.enableMax\"\n (change)=\"config.setEnableMax($event.checked)\"\n ></mat-checkbox>\n </div>\n <div class=\"range-slider-inputs d-flex justify-content-between\">\n <input\n type=\"number\"\n placeholder=\"Min\"\n class=\"form-control form-control-sm\"\n [value]=\"config.value\"\n (input)=\"\n config.value = $event.target.value;\n config.onChange(config)\n \"\n step=\"config.step\"\n />\n <input\n type=\"number\"\n placeholder=\"Max\"\n class=\"form-control form-control-sm\"\n [value]=\"config.highValue\"\n (input)=\"\n config.highValue = $event.target.value;\n config.onChange(config)\n \"\n step=\"config.step\"\n />\n </div>\n <ngx-slider\n [(value)]=\"config.value\"\n [(highValue)]=\"config.highValue\"\n (userChange)=\"config.onChange($event)\"\n thumbLabel\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n </div>\n\n <select\n *ngSwitchCase=\"'select'\"\n id=\"item-config-field\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </div>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n data-testid=\"dropdown\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { PhoenixMenuNode } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-phoenix-menu-item',\n templateUrl: './phoenix-menu-item.component.html',\n styleUrls: ['./phoenix-menu-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PhoenixMenuItemComponent {\n @Input() currentNode: PhoenixMenuNode;\n @ViewChild('phoenixMenuItem') phoenixMenuItem: ElementRef<HTMLDivElement>;\n configTop: number;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n calculateConfigTop() {\n if (this.phoenixMenuItem) {\n this.configTop =\n this.phoenixMenuItem.nativeElement.getBoundingClientRect().top;\n this.cdr.detectChanges();\n }\n }\n\n // Casting to `any` as a workaround to bypass strict template checks.\n castConfigsToAny(configs: PhoenixMenuNode['configs']) {\n return configs as any[];\n }\n}\n","import { Component, Input } from '@angular/core';\nimport type { PhoenixMenuNode } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-phoenix-menu',\n templateUrl: './phoenix-menu.component.html',\n styleUrls: ['./phoenix-menu.component.scss'],\n})\nexport class PhoenixMenuComponent {\n @Input() rootNode: PhoenixMenuNode;\n}\n","<div id=\"phoenixMenu\">\n <app-phoenix-menu-item [currentNode]=\"rootNode\"></app-phoenix-menu-item>\n</div>\n","import { Injectable } from '@angular/core';\nimport { EventDisplay } from 'phoenix-event-display';\n\n/**\n * Service for all event display related functions.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class EventDisplayService extends EventDisplay {\n /**\n * Instantiate the event display by calling the parent constructor.\n */\n constructor() {\n super();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-menu-toggle',\n templateUrl: './menu-toggle.component.html',\n styleUrls: ['./menu-toggle.component.scss'],\n})\nexport class MenuToggleComponent {\n @Input() icon: string;\n @Input() active: boolean;\n @Input() tooltip: string;\n @Input() disabled: boolean = false;\n}\n","<button\n class=\"menu-toggle\"\n [ngClass]=\"{ disabled: disabled }\"\n [matTooltip]=\"tooltip\"\n matTooltipPosition=\"above\"\n matTooltipTouchGestures=\"off\"\n>\n <svg class=\"menu-toggle-icon\" [ngClass]=\"{ 'active-icon': active }\">\n <use attr.href=\"assets/icons/{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n</button>\n","<mat-menu #animationPresets>\n <button\n mat-menu-item\n *ngFor=\"let preset of animationPresetsKeys\"\n (click)=\"animatePreset(preset)\"\n >\n {{ preset }}\n </button>\n <button mat-menu-item (click)=\"animateCamera()\">Animate camera</button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"animationPresets\"\n tooltip=\"Preset animations\"\n icon=\"animate-camera\"\n>\n</app-menu-toggle>\n","import { Component, Input } from '@angular/core';\nimport { AnimationPreset, SceneManager } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\nexport const defaultAnimationPresets: {\n [key: string]: AnimationPreset;\n} = {\n 'Cavern to ID': {\n name: 'Cavern to ID',\n positions: [\n {\n position: [66388.95051168812, 5264.228603228927, -46910.7848593543],\n duration: 1000,\n },\n {\n position: [12834.18729094943, 677.7571205763458, 135.68755273443463],\n duration: 2000,\n },\n {\n position: [312.02688693297375, 25.884223757326, 270.10019006776236],\n duration: 3500,\n },\n {\n position: [263.3640855132258, 19.874838262525053, -318.16541790248885],\n duration: 3000,\n },\n {\n position: [5534.140362338047, 234.03507981484574, -2933.619479808285],\n duration: 2000,\n },\n {\n position: [2681.277288705242, 646.5795158318147, 5628.5248735111745],\n duration: 1000,\n },\n {\n position: [-6062.586283740076, 790.5876682946184, 1381.1675900848818],\n duration: 1000,\n },\n {\n position: [-1766.7693725879053, 1007.1048030984678, -5928.901341784575],\n duration: 1000,\n },\n {\n position: [12814.982506255355, 2516.987185037266, -22891.902734328327],\n duration: 1000,\n },\n ],\n animateEventAfterInterval: 5000,\n collisionDuration: 6000,\n },\n};\n\n@Component({\n selector: 'app-animate-camera',\n templateUrl: './animate-camera.component.html',\n styleUrls: ['./animate-camera.component.scss'],\n})\nexport class AnimateCameraComponent {\n @Input() animationPresets = defaultAnimationPresets;\n animationPresetsKeys = Object.keys(this.animationPresets);\n isAnimating = false;\n\n constructor(private eventDisplay: EventDisplayService) {\n // this.animationPresets = this.eventDisplay\n // .getUIManager()\n // .getPresetAnimations();\n // This is too late to fill the UI! FIXME. EJWM\n }\n\n animatePreset(preset: string) {\n this.setDetectorOpacity(0.2);\n this.eventDisplay.animatePreset(this.animationPresets[preset], () => {\n this.setDetectorOpacity(1);\n });\n }\n\n animateCamera() {\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.eventDisplay.animateThroughEvent([11976, 7262, 11927], 3000, () => {\n this.isAnimating = false;\n });\n }\n }\n\n private setDetectorOpacity(opacity: number) {\n const sceneManager = this.eventDisplay.getThreeManager().getSceneManager();\n const geometriesGroup = sceneManager.getObjectByName(\n SceneManager.GEOMETRIES_ID\n );\n\n sceneManager.setGeometryOpacity(geometriesGroup, opacity);\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-animate-event',\n templateUrl: './animate-event.component.html',\n styleUrls: ['./animate-event.component.scss'],\n})\nexport class AnimateEventComponent {\n isAnimating: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n toggleAnimateEvent() {\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.eventDisplay.animateEventWithCollision(10000, () => {\n this.isAnimating = false;\n });\n }\n }\n}\n","<app-menu-toggle\n tooltip=\"Animate event\"\n icon=\"event-folder\"\n [active]=\"isAnimating\"\n (click)=\"toggleAnimateEvent()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-auto-rotate',\n templateUrl: './auto-rotate.component.html',\n styleUrls: ['./auto-rotate.component.scss'],\n})\nexport class AutoRotateComponent {\n autoRotate = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n toggleAutoRotate() {\n this.autoRotate = !this.autoRotate;\n this.eventDisplay.getUIManager().setAutoRotate(this.autoRotate);\n }\n}\n","<app-menu-toggle\n tooltip=\"Auto rotate\"\n icon=\"rotate\"\n [active]=\"autoRotate\"\n (click)=\"toggleAutoRotate()\"\n>\n</app-menu-toggle>\n","<div\n #overlayCard\n class=\"overlay-card card\"\n [hidden]=\"!active\"\n cdkDrag\n cdkDragBoundary=\"body\"\n>\n <div\n class=\"card-header d-flex justify-content-between\"\n [ngClass]=\"{ 'with-body': showBody }\"\n cdkDragHandle\n *ngIf=\"overlayTitle\"\n >\n <div class=\"align-self-center card-icon\" *ngIf=\"icon\">\n <svg>\n <use attr.href=\"assets/icons/{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n </div>\n <h5 class=\"align-self-center m-0 px-2\">{{ overlayTitle }}</h5>\n <button\n class=\"align-self-center card-icon btn-blank expandCollapse\"\n matTooltip=\"Expand / Collapse\"\n matTooltipPosition=\"right\"\n [ngClass]=\"{ expand: showBody }\"\n (click)=\"showBody = !showBody\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n <div\n class=\"overlay-card-content\"\n *ngIf=\"showBody\"\n [ngClass]=\"{ 'transparent-bg': transparentBody }\"\n >\n <ng-content></ng-content>\n </div>\n <!-- Making the overlay resizable -->\n <span\n #resizeHandleCorner\n class=\"resize-handle corner\"\n *ngIf=\"resizable\"\n [hidden]=\"!showBody\"\n cdkDrag\n (cdkDragMoved)=\"onResize()\"\n ></span>\n</div>\n","import {\n Component,\n Input,\n ViewChild,\n AfterViewInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ElementRef } from '@angular/core';\nimport { ResizeSensor } from 'css-element-queries';\n\n/**\n * Component for overlay panel.\n */\n@Component({\n selector: 'app-overlay',\n templateUrl: './overlay.component.html',\n styleUrls: ['./overlay.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OverlayComponent implements AfterViewInit {\n /** Title of the overlay. */\n @Input() overlayTitle: string;\n /** If the overlay is open or not. */\n @Input() active: boolean = false;\n /** Icon of the overlay header. */\n @Input() icon: string;\n /** If the overlay is resizable. */\n @Input() resizable: boolean = false;\n /** If the overlay body is transparent or not. */\n @Input() transparentBody: boolean = false;\n /** If the aspect ratio is kept fixed or not. */\n @Input() keepAspectRatioFixed: boolean = false;\n /** If the overlay body is visible or not. */\n showBody: boolean = true;\n /** Aspect ratio of the overlay view. */\n aspectRatio: number = window.innerWidth / window.innerHeight;\n\n // ********************************************************************************\n // * Below code is specific to the overlay resize feature. (LOOK INTO CSS RESIZE) *\n // ********************************************************************************\n\n /** Complete overlay card containing both header and body. */\n @ViewChild('overlayCard') overlayCard: ElementRef;\n /** Handle for resizing the overlay. */\n @ViewChild('resizeHandleCorner') resizeHandleCorner: ElementRef;\n /** Minimum resizable width. */\n private MIN_RES_WIDTH: number = 300;\n /** Minimum resizable height */\n private MIN_RES_HEIGHT: number = 100;\n\n /**\n * Move the resizable handle to the bottom right after the component is created.\n */\n ngAfterViewInit() {\n if (this.resizable) {\n const resizeHandleElement = this.resizeHandleCorner.nativeElement;\n resizeHandleElement.style.bottom = '0';\n resizeHandleElement.style.right = '0';\n\n new ResizeSensor(this.overlayCard.nativeElement, () => {\n this.resetHandlePosition();\n });\n\n window.addEventListener('resize', () => {\n this.resetHandlePosition();\n });\n }\n }\n\n /**\n * Resize the overlay card when the resize handle is dragged.\n */\n onResize() {\n const resizeHandleElement = this.resizeHandleCorner.nativeElement;\n const overlayCardElement = this.overlayCard.nativeElement;\n\n const dragRect = resizeHandleElement.getBoundingClientRect();\n const overlayRect = overlayCardElement.getBoundingClientRect();\n\n const width = dragRect.left - overlayRect.left + dragRect.width;\n const height = dragRect.top - overlayRect.top + dragRect.height;\n\n this.setHandleTransform(overlayRect, dragRect);\n\n if (width > this.MIN_RES_WIDTH && height > this.MIN_RES_HEIGHT) {\n overlayCardElement.style.width = width + 'px';\n if (this.keepAspectRatioFixed) {\n overlayCardElement.style.height = width / this.aspectRatio + 30 + 'px';\n } else {\n overlayCardElement.style.height = height + 'px';\n }\n }\n }\n\n /**\n * Reset resize handle position.\n */\n resetHandlePosition() {\n const resizeHandleElement = this.resizeHandleCorner.nativeElement;\n\n this.setHandleTransform(\n this.overlayCard.nativeElement.getBoundingClientRect(),\n resizeHandleElement.getBoundingClientRect()\n );\n\n resizeHandleElement.style.bottom = null;\n resizeHandleElement.style.right = null;\n }\n\n /**\n * Set the position of the resize handle using transform3d.\n * @param overlayRect Bounding client rectangle of the overlay card.\n * @param dragRect Bounding client rectangle of the resize handle.\n */\n private setHandleTransform(overlayRect: any, dragRect: any) {\n const translateX = overlayRect.width - dragRect.width;\n const translateY = overlayRect.height - dragRect.height;\n this.resizeHandleCorner.nativeElement.style.transform = `translate3d(${translateX}px, ${translateY}px, 0)`;\n }\n}\n","<!-- Show objects -->\n<app-overlay\n overlayTitle=\"Collections Info\"\n icon=\"info\"\n [resizable]=\"true\"\n [active]=\"showObjectsInfo\"\n>\n <!-- Using ngIf to remove it from DOM since this panel requires heavy computing -->\n <div *ngIf=\"showObjectsInfo\" class=\"collectionsInfo m-2\">\n <div\n class=\"collectionSelector mb-2 d-flex align-items-center\"\n *ngIf=\"collections != null\"\n >\n <div class=\"d-flex align-items-center\">\n <span>Choose a collection: </span>\n <div class=\"eventSelector\">\n <label for=\"event\">Event</label>\n <select\n id=\"collection\"\n name=\"collection\"\n (change)=\"changeCollection($event.target.value)\"\n >\n <option value=\"\" selected disabled hidden>Choose Collection</option>\n <option *ngFor=\"let collection of collections\" [value]=\"collection\">\n {{ collection }}\n </option>\n </select>\n </div>\n <mat-checkbox\n *ngIf=\"showingCollection\"\n (change)=\"toggleInvisible($event.checked)\"\n >\n Hide Invisible Objects\n </mat-checkbox>\n </div>\n </div>\n\n <div class=\"boxBody table-responsive\">\n <table\n id=\"collectionTable\"\n class=\"table table-borderless table-sm\"\n *ngIf=\"showingCollection\"\n >\n <thead>\n <tr>\n <th>No.</th>\n <th>Selection</th>\n <th>Label</th>\n <th *ngFor=\"let column of collectionColumns\">\n <div class=\"head-wrapper\">\n <div>\n {{ getPrettySymbol(column) }}\n </div>\n <div class=\"sort-options\">\n <button\n class=\"icon-wrapper icon-button btn-blank up\"\n (click)=\"sort(column, 'dec')\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n <button\n class=\"icon-wrapper icon-button btn-blank\"\n (click)=\"sort(column, 'asc')\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n </div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let object of showingCollection; index as i\"\n [attr.id]=\"object.uuid\"\n [ngClass]=\"{\n 'active-object':\n activeObject && activeObject.value === object.uuid,\n 'is-cut': object.isCut,\n 'd-none': object.isCut && hideInvisible\n }\"\n >\n <td>#{{ i }}</td>\n <td>\n <div\n *ngIf=\"object.uuid\"\n class=\"row justify-content-center icon-wrapper\"\n >\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Move camera to object\"\n (click)=\"lookAtObject(object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/views.svg#views\"></use>\n </svg>\n </button>\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Highlight object\"\n (click)=\"highlightObject(object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/cursor.svg#cursor\"></use>\n </svg>\n </button>\n </div>\n </td>\n <td>\n <div class=\"row m-0 add-label\">\n <div class=\"col-10 p-0\">\n <input\n class=\"form-control form-control-sm\"\n type=\"text\"\n [id]=\"'label' + i\"\n />\n </div>\n <div class=\"col-2 p-0 pl-2 text-center icon-wrapper\">\n <button\n class=\"object-select btn-blank\"\n matTooltip=\"Add, update or remove object label\"\n (click)=\"addLabel(i, object.uuid)\"\n >\n <svg>\n <use href=\"assets/icons/update.svg#update\"></use>\n </svg>\n </button>\n </div>\n </div>\n </td>\n <td *ngFor=\"let column of collectionColumns\">\n {{ object[column] }}\n </td>\n </tr>\n </tbody>\n </table>\n <p class=\"emptyBox\" *ngIf=\"!collections\">\n Load event data to be able to display information about the collections\n here.\n </p>\n </div>\n </div>\n</app-overlay>\n","import { Component, OnInit, Input, ElementRef } from '@angular/core';\nimport {\n PrettySymbols,\n ActiveVariable,\n SceneManager,\n} from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n selector: 'app-collections-info-overlay',\n templateUrl: './collections-info-overlay.component.html',\n styleUrls: ['./collections-info-overlay.component.scss'],\n})\nexport class CollectionsInfoOverlayComponent implements OnInit {\n @Input() showObjectsInfo: boolean;\n hideInvisible: boolean;\n collections: string[];\n selectedCollection: string;\n showingCollection: any;\n collectionColumns: string[];\n getPrettySymbol = PrettySymbols.getPrettySymbol;\n activeObject: ActiveVariable<string>;\n\n constructor(\n private elementRef: ElementRef,\n private eventDisplay: EventDisplayService\n ) {}\n\n ngOnInit() {\n this.eventDisplay.listenToDisplayedEventChange(\n (_event) => (this.collections = this.eventDisplay.getCollections())\n );\n this.activeObject = this.eventDisplay.getActiveObjectId();\n this.activeObject.onUpdate((value: string) => {\n if (document.getElementById(value)) {\n document.getElementById(value).scrollIntoView(false);\n }\n });\n }\n\n changeCollection(selectedCollection: string) {\n const eventDataGroup = this.getEventDataGroup();\n this.selectedCollection = selectedCollection;\n\n this.showingCollection = this.eventDisplay\n .getCollection(selectedCollection)\n .map((object: any) => ({\n ...object,\n isCut: !eventDataGroup.getObjectByProperty('uuid', object.uuid)\n ?.visible,\n }));\n\n this.collectionColumns = Object.keys(this.showingCollection[0]).filter(\n (column) => !['uuid', 'hits', 'isCut'].includes(column) // FIXME - this is an ugly hack. But currently hits from tracks make track collections unusable. Better to have exlusion list passed in.\n );\n }\n\n sort(column: string, order: string) {\n if (order === 'asc')\n this.showingCollection.sort((a, b) => (a[column] < b[column] ? -1 : 1));\n else\n this.showingCollection.sort((a, b) => (a[column] > b[column] ? -1 : 1));\n }\n\n lookAtObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.lookAtObject(uuid);\n }\n }\n\n highlightObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.highlightObject(uuid);\n }\n }\n\n toggleInvisible(checked: boolean) {\n this.hideInvisible = checked;\n }\n\n addLabel(index: number, uuid: string) {\n const labelValue = this.elementRef.nativeElement.querySelector(\n `#label${index}`\n ).value;\n if (this.selectedCollection) {\n // Empty labelValue will remove the label object\n this.eventDisplay.addLabelToObject(\n labelValue,\n this.selectedCollection,\n index,\n uuid\n );\n }\n }\n\n private getEventDataGroup() {\n return this.eventDisplay\n .getThreeManager()\n .getSceneManager()\n .getScene()\n .getObjectByName(SceneManager.EVENT_DATA_ID);\n }\n}\n","import { Component, OnInit, ComponentRef, OnDestroy } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CollectionsInfoOverlayComponent } from './collections-info-overlay/collections-info-overlay.component';\n\n@Component({\n selector: 'app-collections-info',\n templateUrl: './collections-info.component.html',\n styleUrls: ['./collections-info.component.scss'],\n})\nexport class CollectionsInfoComponent implements OnInit, OnDestroy {\n showObjectsInfo = false;\n overlayWindow: ComponentRef<CollectionsInfoOverlayComponent>;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(CollectionsInfoOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showObjectsInfo = this.showObjectsInfo;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.showObjectsInfo = !this.showObjectsInfo;\n this.overlayWindow.instance.showObjectsInfo = this.showObjectsInfo;\n }\n}\n","<app-menu-toggle\n tooltip=\"Event data collections info\"\n icon=\"info\"\n [active]=\"showObjectsInfo\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","import { Component, OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-dark-theme',\n templateUrl: './dark-theme.component.html',\n styleUrls: ['./dark-theme.component.scss'],\n})\nexport class DarkThemeComponent implements OnInit {\n darkTheme = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit(): void {\n this.darkTheme = this.eventDisplay.getUIManager().getDarkTheme();\n }\n\n setDarkTheme() {\n this.darkTheme = !this.darkTheme;\n this.eventDisplay.getUIManager().setDarkTheme(this.darkTheme);\n }\n}\n","<app-menu-toggle\n tooltip=\"Dark theme\"\n [active]=\"darkTheme\"\n icon=\"dark\"\n (click)=\"setDarkTheme()\"\n>\n</app-menu-toggle>\n","<div\n class=\"eventSelector mx-2\"\n *ngIf=\"events != null\"\n matTooltip=\"Event selector\"\n matTooltipPosition=\"above\"\n>\n <select name=\"event\" (change)=\"changeEvent($event)\">\n <option *ngFor=\"let event of events\" [value]=\"event\">\n {{ event }}\n </option>\n </select>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-event-selector',\n templateUrl: './event-selector.component.html',\n styleUrls: ['./event-selector.component.scss'],\n})\nexport class EventSelectorComponent implements OnInit {\n // Array containing the keys of the multiple loaded events\n events: string[];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.eventDisplay.listenToLoadedEventsChange(\n (events) => (this.events = events)\n );\n }\n\n changeEvent(selected: any) {\n const value = selected.target.value;\n this.eventDisplay.loadEvent(value);\n }\n}\n","<div id=\"experimentInfo\" class=\"experimentInfo\" cdkDrag cdkDragBoundary=\"body\">\n <a\n class=\"experimentLogoWrapper\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n *ngIf=\"url\"\n [href]=\"url\"\n >\n <img class=\"experimentLogo\" [src]=\"logo\" alt=\"\" />\n </a>\n <div class=\"textInfo\">\n <p *ngIf=\"tagline\">\n <b>{{ tagline }}</b>\n </p>\n <p *ngFor=\"let infoField of experimentInfo\">\n <ng-container *ngIf=\"infoField.label\">\n <b>{{ infoField.label }}: </b>{{ infoField.value }}\n </ng-container>\n <ng-container *ngIf=\"!infoField.label\">\n {{ infoField }}\n </ng-container>\n </p>\n </div>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-experiment-info',\n templateUrl: './experiment-info.component.html',\n styleUrls: ['./experiment-info.component.scss'],\n})\nexport class ExperimentInfoComponent implements OnInit {\n experimentInfo: any[];\n @Input() url: string;\n @Input() logo: string;\n @Input() tagline: string;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit(): void {\n this.eventDisplay.listenToDisplayedEventChange(() => {\n this.experimentInfo = this.eventDisplay.getEventMetadata();\n });\n }\n}\n","<app-overlay\n overlayTitle=\"Info Panel\"\n icon=\"info-panel\"\n [resizable]=\"true\"\n [active]=\"showInfoPanel\"\n>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item\">\n <!-- Show Phoenix Current Version (ON by Default) -->\n Phoenix Version: {{ version }}\n </li>\n <li class=\"list-group-item\" *ngIf=\"actionsList.length === 0\">\n No actions.\n </li>\n <li class=\"list-group-item\" *ngFor=\"let action of actionsList\">\n {{ action }}\n </li>\n </ul>\n</app-overlay>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport packageJson from 'phoenix-event-display/package.json';\n\n/**\n * Component for displaying information from the logger\n */\n@Component({\n selector: 'app-info-panel-overlay',\n templateUrl: './info-panel-overlay.component.html',\n styleUrls: ['./info-panel-overlay.component.scss'],\n})\nexport class InfoPanelOverlayComponent implements OnInit {\n /** @ignore */\n @Input() showInfoPanel: boolean;\n /** List of actions to be displayed in the info panel */\n actionsList = [];\n /** Get Phoenix Version */\n version = packageJson.version;\n\n /**\n * Create the information panel overlay\n * @param infoLogger Service containing operations related to info logs\n */\n constructor(private eventDisplay: EventDisplayService) {}\n\n /**\n * Get the list of logs from the info logger service\n */\n ngOnInit() {\n this.actionsList = this.eventDisplay.getInfoLogger().getInfoLoggerList();\n }\n}\n","import { Component, OnInit, ComponentRef, OnDestroy } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { InfoPanelOverlayComponent } from './info-panel-overlay/info-panel-overlay.component';\n\n/**\n * Component for toggling info panel overlay\n */\n@Component({\n selector: 'app-info-panel',\n templateUrl: './info-panel.component.html',\n styleUrls: ['./info-panel.component.scss'],\n})\nexport class InfoPanelComponent implements OnInit, OnDestroy {\n /** @ignore */\n showInfoPanel = false;\n /** Information panel overlay window */\n overlayWindow: ComponentRef<InfoPanelOverlayComponent>;\n\n /**\n * Create the info panel toggle\n * @param overlay Info panel overlay containing logger data\n */\n constructor(private overlay: Overlay) {}\n\n /**\n * Create the info panel overlay\n */\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(InfoPanelOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showInfoPanel = this.showInfoPanel;\n }\n\n /**\n * Destroy the info panel overlay\n */\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n /**\n * Toggle the info panel overlay\n */\n toggleOverlay() {\n this.showInfoPanel = !this.showInfoPanel;\n this.overlayWindow.instance.showInfoPanel = this.showInfoPanel;\n }\n}\n","<app-menu-toggle\n tooltip=\"Info panel\"\n icon=\"info-panel\"\n [active]=\"showInfoPanel\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","export enum EventDataFormat {\n JSON = 'JSON',\n EDM4HEPJSON = 'EDM4HEPJSON',\n JIVEXML = 'JIVEXML',\n IG = 'IG',\n ZIP = 'ZIP',\n}\n\nexport type EventDataImportOption = EventDataFormat | ImportOption;\n\nexport class ImportOption {\n constructor(\n public format: string,\n public fileType: string,\n public handler: (files: FileList) => void,\n public accept?: string\n ) {}\n}\n","<div class=\"dialog\">\n <h1 mat-dialog-title>Import and export</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"eventDataImportOptions.length > 0\">\n <p class=\"text-center\"><b>Event data</b></p>\n\n <div class=\"row centered\">\n <ng-container\n *ngFor=\"let eventDataImportOption of eventDataOptionsWithHandler\"\n >\n <input\n #eventDataFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n [accept]=\"eventDataImportOption.accept\"\n (change)=\"eventDataImportOption.handler($event.target.files)\"\n />\n <button\n class=\"file-input-button\"\n (click)=\"eventDataFileInput.click()\"\n >\n <img src=\"assets/icons/eventData.svg\" alt=\"Event data icon\" />\n Load {{ eventDataImportOption.fileType }}\n </button>\n </ng-container>\n </div>\n </div>\n\n <p class=\"text-center\"><b>Geometries</b></p>\n\n <div class=\"row centered\">\n <input\n #objFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".obj\"\n name=\"image\"\n (change)=\"handleOBJInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"objFileInput.click()\">\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Load .obj\n </button>\n\n <input\n #gltfFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".gltf\"\n name=\"image\"\n (change)=\"handleGLTFInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"gltfFileInput.click()\">\n <img src=\"assets/icons/gltf.svg\" alt=\"\" /> Load .gltf\n </button>\n\n <input\n #rootFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".root\"\n (change)=\"handleROOTInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .root\n </button>\n\n <input\n #rootJSONFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".json.gz\"\n (change)=\"handleRootJSONInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootJSONFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .json.gz\n </button>\n </div>\n\n <p class=\"text-center\"><b>Scene</b></p>\n\n <div class=\"row centered\">\n <button\n class=\"file-input-button load-export\"\n id=\"exportScene\"\n (click)=\"saveScene()\"\n >\n <img src=\"assets/icons/save.svg\" alt=\"\" /> Save scene\n </button>\n\n <input\n #loadSceneInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".phnx\"\n name=\"image\"\n (change)=\"handlePhoenixInput($event.target.files)\"\n />\n <button\n class=\"file-input-button load-export\"\n id=\"importScene\"\n (click)=\"loadSceneInput.click()\"\n >\n <img src=\"assets/icons/upload.svg\" alt=\"\" /> Load scene\n </button>\n\n <button\n class=\"file-input-button export-button\"\n id=\"exportOBJ\"\n (click)=\"exportOBJ()\"\n >\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Save OBJ\n </button>\n </div>\n </div>\n\n <div mat-dialog-actions align=\"end\">\n <button mat-flat-button color=\"primary\" (click)=\"onClose()\" cdkFocusInitial>\n Close\n </button>\n </div>\n</div>\n","import { OnInit, Component, Input } from '@angular/core';\nimport {\n CMSLoader,\n JiveXMLLoader,\n readZipFile,\n Edm4hepJsonLoader,\n} from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport {\n EventDataFormat,\n EventDataImportOption,\n ImportOption,\n} from '../../../../services/extras/event-data-import';\n\n@Component({\n selector: 'app-io-options-dialog',\n templateUrl: './io-options-dialog.component.html',\n styleUrls: ['./io-options-dialog.component.scss'],\n})\nexport class IOOptionsDialogComponent implements OnInit {\n @Input()\n eventDataImportOptions: EventDataImportOption[] = [EventDataFormat.JSON];\n\n eventDataOptionsWithHandler: ImportOption[];\n\n private supportedEventDataFormats = [\n new ImportOption(\n EventDataFormat.JSON,\n '.json',\n this.handleJSONEventDataInput.bind(this),\n 'application/json'\n ),\n new ImportOption(\n EventDataFormat.EDM4HEPJSON,\n '.edm4hep.json',\n this.handleEDM4HEPJSONEventDataInput.bind(this),\n 'application/json'\n ),\n new ImportOption(\n EventDataFormat.JIVEXML,\n '.xml',\n this.handleJiveXMLDataInput.bind(this),\n 'text/xml'\n ),\n new ImportOption(\n EventDataFormat.ZIP,\n '.zip',\n this.handleZipEventDataInput.bind(this),\n '.zip'\n ),\n new ImportOption(\n EventDataFormat.IG,\n '.ig',\n this.handleIgEventDataInput.bind(this),\n '.ig'\n ),\n ];\n\n constructor(\n private eventDisplay: EventDisplayService,\n public dialogRef: MatDialogRef<IOOptionsDialogComponent>\n ) {}\n\n ngOnInit() {\n this.eventDataOptionsWithHandler = this.supportedEventDataFormats.filter(\n (eventDataFormat) =>\n this.eventDataImportOptions.includes(\n eventDataFormat.format as EventDataFormat\n )\n );\n\n this.eventDataImportOptions.forEach((eventDataImportOption) => {\n if (eventDataImportOption instanceof ImportOption) {\n const importHandler = eventDataImportOption.handler.bind(this);\n eventDataImportOption.handler = (files: FileList) => {\n importHandler(files);\n this.onClose();\n };\n\n this.eventDataOptionsWithHandler.push(eventDataImportOption);\n }\n });\n }\n\n getSupportedEventDataFormats() {\n return this.eventDataImportOptions\n .map((format) => {\n if (format instanceof ImportOption) {\n return format.format;\n }\n\n return format;\n })\n .filter((format) => format !== 'ZIP')\n .join(', ');\n }\n\n onClose(): void {\n this.dialogRef.close();\n }\n\n handleJSONEventDataInput(files: FileList) {\n const callback = (content: any) => {\n const json = typeof content === 'string' ? JSON.parse(content) : content;\n this.eventDisplay.parsePhoenixEvents(json);\n };\n this.handleFileInput(files[0], 'json', callback);\n }\n\n handleEDM4HEPJSONEventDataInput(files: FileList) {\n const callback = (content: any) => {\n const json = typeof content === 'string' ? JSON.parse(content) : content;\n const edm4hepJsonLoader = new Edm4hepJsonLoader();\n edm4hepJsonLoader.setRawEventData(json);\n edm4hepJsonLoader.processEventData();\n this.eventDisplay.parsePhoenixEvents(edm4hepJsonLoader.getEventData());\n };\n this.handleFileInput(files[0], 'json', callback);\n }\n\n handleJiveXMLDataInput(files: FileList) {\n const callback = (content: any) => {\n const jiveloader = new JiveXMLLoader();\n jiveloader.process(content);\n const eventData = jiveloader.getEventData();\n this.eventDisplay.buildEventDataFromJSON(eventData);\n };\n this.handleFileInput(files[0], 'xml', callback);\n }\n\n handleOBJInput(files: FileList) {\n const callback = (content: any, name: string) => {\n this.eventDisplay.parseOBJGeometry(content, name);\n };\n this.handleFileInput(files[0], 'obj', callback);\n }\n\n handleSceneInput(files: FileList) {\n const callback = (content: any) => {\n this.eventDisplay.parsePhoenixDisplay(content);\n };\n this.handleFileInput(files[0], 'phnx', callback);\n }\n\n handleGLTFInput(files: FileList) {\n const callback = (content: any, name: string) => {\n this.eventDisplay.parseGLTFGeometry(content, name);\n };\n this.handleFileInput(files[0], 'gltf', callback);\n }\n\n handlePhoenixInput(files: FileList) {\n const callback = (content: any) => {\n this.eventDisplay.parsePhoenixDisplay(content);\n };\n this.handleFileInput(files[0], 'phnx', callback);\n }\n\n async handleROOTInput(files: FileList) {\n const rootObjectName = prompt('Enter object name in ROOT file');\n\n await this.eventDisplay.loadRootGeometry(\n URL.createObjectURL(files[0]),\n rootObjectName,\n files[0].name.split('.')[0]\n );\n\n this.onClose();\n }\n\n async handleRootJSONInput(files: FileList) {\n if (!this.isFileOfExtension(files[0], 'gz')) {\n return;\n }\n\n const name = files[0].name.split('.')[0];\n await this.eventDisplay.loadRootJSONGeometry(\n URL.createObjectURL(files[0]),\n name\n );\n\n this.onClose();\n }\n\n handleIgEventDataInput(files: FileList) {\n const cmsLoader = new CMSLoader();\n cmsLoader.readIgArchive(files[0], (allEvents: any[]) => {\n const allEventsData = cmsLoader.getAllEventsData(allEvents);\n this.eventDisplay.parsePhoenixEvents(allEventsData);\n this.onClose();\n });\n }\n\n async handleZipEventDataInput(files: FileList) {\n if (!this.isFileOfExtension(files[0], 'zip')) {\n return;\n }\n\n const allEventsObject = {};\n let filesWithData: { [fileName: string]: string };\n\n // Using a try catch block to catch any errors in Promises\n try {\n filesWithData = await readZipFile(files[0]);\n } catch (error) {\n console.error('Error while reading zip', error);\n this.eventDisplay.getInfoLogger().add('Could not read zip file', 'Error');\n return;\n }\n\n // JSON event data\n Object.keys(filesWithData)\n .filter((fileName) => fileName.endsWith('.json'))\n .forEach((fileName) => {\n Object.assign(allEventsObject, JSON.parse(filesWithData[fileName]));\n });\n\n // JiveXML event data\n const jiveloader = new JiveXMLLoader();\n Object.keys(filesWithData)\n .filter((fileName) => {\n return fileName.endsWith('.xml') || fileName.startsWith('JiveXML');\n })\n .forEach((fileName) => {\n jiveloader.process(filesWithData[fileName]);\n const eventData = jiveloader.getEventData();\n Object.assign(allEventsObject, { [fileName]: eventData });\n });\n // For some reason the above doesn't pick up JiveXML_XXX_YYY.zip\n\n this.eventDisplay.parsePhoenixEvents(allEventsObject);\n\n this.onClose();\n }\n\n handleFileInput(\n file: File,\n extension: string,\n callback: (result: string, fileName?: string) => void\n ) {\n const reader = new FileReader();\n\n if (this.isFileOfExtension(file, extension)) {\n reader.onload = () => {\n callback(reader.result.toString(), file.name.split('.')[0]);\n };\n reader.readAsText(file);\n }\n\n this.onClose();\n }\n\n private isFileOfExtension(file: File, extension: string): boolean {\n if (file.name.split('.').pop() === extension) {\n return true;\n }\n\n console.error('Error: Invalid file format!');\n this.eventDisplay.getInfoLogger().add('Invalid file format!', 'Error');\n\n return false;\n }\n\n saveScene() {\n this.eventDisplay.exportPhoenixDisplay();\n }\n\n exportOBJ() {\n this.eventDisplay.exportToOBJ();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n EventDataFormat,\n EventDataImportOption,\n} from '../../../services/extras/event-data-import';\nimport { IOOptionsDialogComponent } from './io-options-dialog/io-options-dialog.component';\n\n@Component({\n selector: 'app-io-options',\n templateUrl: './io-options.component.html',\n styleUrls: ['./io-options.component.scss'],\n})\nexport class IoOptionsComponent {\n @Input()\n eventDataImportOptions: EventDataImportOption[] =\n Object.values(EventDataFormat);\n\n constructor(private dialog: MatDialog) {}\n\n openIODialog() {\n const dialogRef = this.dialog.open(IOOptionsDialogComponent, {\n panelClass: 'dialog',\n });\n dialogRef.componentInstance.eventDataImportOptions =\n this.eventDataImportOptions;\n }\n}\n","<app-menu-toggle\n tooltip=\"Import and export options\"\n icon=\"import\"\n [active]=\"false\"\n (click)=\"openIODialog()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-main-view-toggle',\n templateUrl: './main-view-toggle.component.html',\n styleUrls: ['./main-view-toggle.component.scss'],\n})\nexport class MainViewToggleComponent {\n orthographicView: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n switchMainView() {\n this.orthographicView = !this.orthographicView;\n this.eventDisplay\n .getUIManager()\n .toggleOrthographicView(this.orthographicView);\n }\n}\n","<app-menu-toggle\n [icon]=\"orthographicView ? 'perspective' : 'orthographic'\"\n [matTooltip]=\"\n 'Switch to ' + (orthographicView ? 'perspective' : 'orthographic') + ' view'\n \"\n (click)=\"switchMainView()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-object-clipping',\n templateUrl: './object-clipping.component.html',\n styleUrls: ['./object-clipping.component.scss'],\n})\nexport class ObjectClippingComponent {\n clippingEnabled: boolean;\n startClippingAngle: number;\n openingClippingAngle: number;\n\n constructor(private eventDisplay: EventDisplayService) {\n const stateManager = this.eventDisplay.getStateManager();\n stateManager.clippingEnabled.onUpdate(\n (clippingValue) => (this.clippingEnabled = clippingValue)\n );\n stateManager.startClippingAngle.onUpdate(\n (value) => (this.startClippingAngle = value)\n );\n stateManager.openingClippingAngle.onUpdate(\n (value) => (this.openingClippingAngle = value)\n );\n }\n\n changeStartClippingAngle(startingAngle: number) {\n this.eventDisplay.getUIManager().rotateStartAngleClipping(startingAngle);\n }\n\n changeOpeningClippingAngle(openingAngle: number) {\n this.eventDisplay.getUIManager().rotateOpeningAngleClipping(openingAngle);\n }\n\n toggleClipping(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setClipping(value);\n this.clippingEnabled = value;\n }\n}\n","<mat-menu class=\"mat-menu\" #menu>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n clippingCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #clippingCheckbox\n [checked]=\"clippingEnabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleClipping($event)\"\n >\n Clipping\n </mat-checkbox>\n </button>\n <button\n class=\"slider-btn\"\n mat-menu-item\n (focus)=\"startingAngleSlider.focus()\"\n >\n <mat-slider min=\"0\" max=\"360\" step=\"1\" thumbLabel>\n <input\n #startingAngleSlider\n matSliderThumb\n [value]=\"startClippingAngle\"\n (valueChange)=\"changeStartClippingAngle($event)\"\n />\n </mat-slider>\n Start Angle\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"openingAngleSlider.focus()\">\n <mat-slider min=\"0\" max=\"360\" step=\"1\" thumbLabel>\n <input\n #openingAngleSlider\n matSliderThumb\n [value]=\"openingClippingAngle\"\n (valueChange)=\"changeOpeningClippingAngle($event)\"\n />\n </mat-slider>\n Opening Angle\n </button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"menu\"\n tooltip=\"Geometry clipping\"\n icon=\"clipping\"\n [active]=\"clippingEnabled\"\n>\n</app-menu-toggle>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Pipe for transforming selected object attributes to a better format.\n */\n@Pipe({\n name: 'attributePipe',\n})\nexport class AttributePipe implements PipeTransform {\n /**\n * Transform the attribute to a better presentable format.\n * @param value Value to be transformed.\n * @param args Additional arguments.\n * @returns The transformed value.\n */\n transform(value: any, args?: any): any {\n let transformedValue = '';\n if (Array.isArray(value)) {\n transformedValue += '\\n';\n value.forEach((v) => (transformedValue += v + '\\n'));\n } else {\n transformedValue = value.toString();\n }\n return transformedValue;\n }\n}\n","<app-overlay\n icon=\"cursor\"\n [overlayTitle]=\"selectedObject.name\"\n [active]=\"!hiddenSelectedInfo\"\n>\n <div\n id=\"selectedObjectPanelBody\"\n class=\"m-1\"\n *ngIf=\"selectedObject.attributes.length > 0\"\n >\n <div\n *ngFor=\"let attribute of selectedObject.attributes\"\n class=\"attributeField\"\n >\n <strong>{{ attribute.attributeName }}</strong>\n : {{ attribute.attributeValue | attributePipe }}\n </div>\n </div>\n</app-overlay>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n selector: 'app-object-selection-overlay',\n templateUrl: './object-selection-overlay.component.html',\n styleUrls: ['./object-selection-overlay.component.scss'],\n})\nexport class ObjectSelectionOverlayComponent implements OnInit {\n // Attributes for displaying the information of selected objects\n @Input() hiddenSelectedInfo: boolean;\n selectedObject = { name: 'Object', attributes: [] };\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.eventDisplay.allowSelection(this.selectedObject);\n }\n}\n","import { Component, OnInit, ComponentRef, OnDestroy } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ObjectSelectionOverlayComponent } from './object-selection-overlay/object-selection-overlay.component';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-object-selection',\n templateUrl: './object-selection.component.html',\n styleUrls: ['./object-selection.component.scss'],\n})\nexport class ObjectSelectionComponent implements OnInit, OnDestroy {\n // Attributes for displaying the information of selected objects\n hiddenSelectedInfo = true;\n overlayWindow: ComponentRef<ObjectSelectionOverlayComponent>;\n\n constructor(\n private overlay: Overlay,\n private eventDisplay: EventDisplayService\n ) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(ObjectSelectionOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.hiddenSelectedInfo = this.hiddenSelectedInfo;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.hiddenSelectedInfo = !this.hiddenSelectedInfo;\n this.overlayWindow.instance.hiddenSelectedInfo = this.hiddenSelectedInfo;\n this.eventDisplay.enableSelecting(!this.hiddenSelectedInfo);\n }\n}\n","<app-menu-toggle\n tooltip=\"Object selection\"\n icon=\"cursor\"\n [active]=\"!hiddenSelectedInfo\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","import { Component, ViewChild, AfterViewInit, Input } from '@angular/core';\nimport type { ElementRef } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n selector: 'app-overlay-view-window',\n templateUrl: './overlay-view-window.component.html',\n styleUrls: ['./overlay-view-window.component.scss'],\n})\nexport class OverlayViewWindowComponent implements AfterViewInit {\n @Input() showOverlay = true;\n transparentBody = false;\n orthographicView = false;\n overlayViewFixed = false;\n @ViewChild('overlayWindow') overlayWindow: ElementRef<HTMLCanvasElement>;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngAfterViewInit(): void {\n const canvas = this.initializeCanvas(this.overlayWindow.nativeElement);\n this.eventDisplay.setOverlayRenderer(canvas);\n }\n\n initializeCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement {\n const width = window.innerWidth / 2.5;\n const height = window.innerHeight / 2.5;\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width.toString() + ' px';\n canvas.style.height = height.toString() + ' px';\n return canvas;\n }\n\n switchOverlayView() {\n this.orthographicView = !this.orthographicView;\n this.eventDisplay\n .getUIManager()\n .toggleOrthographicView(this.orthographicView);\n }\n\n fixOverlayView() {\n this.overlayViewFixed = !this.overlayViewFixed;\n this.eventDisplay.fixOverlayView(this.overlayViewFixed);\n }\n\n toggleBgTransparency() {\n this.transparentBody = !this.transparentBody;\n }\n}\n","<app-overlay\n overlayTitle=\"Overlay View\"\n icon=\"overlay\"\n [resizable]=\"true\"\n [transparentBody]=\"transparentBody\"\n [active]=\"showOverlay\"\n [keepAspectRatioFixed]=\"true\"\n>\n <div class=\"overlay-view-wrapper\">\n <canvas #overlayWindow id=\"overlay-canvas\" [hidden]=\"!showOverlay\">\n </canvas>\n <div class=\"overlay-view-controls position-absolute d-flex flex-row\">\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"transparent\"\n matTooltip=\"Toggle background transparency\"\n (click)=\"toggleBgTransparency()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"move-lock\"\n [matTooltip]=\"(overlayViewFixed ? 'Restore' : 'Fix') + ' overlay view'\"\n [active]=\"overlayViewFixed\"\n (click)=\"fixOverlayView()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n class=\"overlay-view-control\"\n [icon]=\"orthographicView ? 'orthographic' : 'perspective'\"\n [matTooltip]=\"\n 'Switch to ' +\n (orthographicView ? 'orthographic' : 'perspective') +\n ' view'\n \"\n (click)=\"switchOverlayView()\"\n >\n </app-menu-toggle>\n </div>\n </div>\n</app-overlay>\n","import { Component, ComponentRef, OnDestroy, OnInit } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { OverlayViewWindowComponent } from './overlay-view-window/overlay-view-window.component';\n\n@Component({\n selector: 'app-overlay-view',\n templateUrl: './overlay-view.component.html',\n styleUrls: ['./overlay-view.component.scss'],\n})\nexport class OverlayViewComponent implements OnInit, OnDestroy {\n overlayWindow: ComponentRef<OverlayViewWindowComponent>;\n showOverlay = false;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(OverlayViewWindowComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showOverlay = this.showOverlay;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.showOverlay = !this.showOverlay;\n this.overlayWindow.instance.showOverlay = this.showOverlay;\n }\n}\n","<app-menu-toggle\n tooltip=\"Overlay view\"\n icon=\"overlay\"\n [active]=\"showOverlay\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","<ng-container *ngIf=\"node\">\n <div class=\"header\" [ngClass]=\"{ visible: visible }\">\n <button\n *ngIf=\"node.children\"\n mat-icon-button\n matTreeNodeToggle\n (click)=\"isExpanded = !isExpanded\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ isExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <div (click)=\"toggleVisibility(!visible)\" class=\"node-name\">\n {{ node.name }}\n </div>\n </div>\n <ul [hidden]=\"!isExpanded\" hid>\n <div class=\"children\">\n <li *ngFor=\"let node of node.children\">\n <app-tree-menu-item [node]=\"node\"></app-tree-menu-item>\n </li>\n </div>\n </ul>\n</ng-container>\n","import { Component, Input, ViewChildren } from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\nexport type TreeMenuNode = {\n name: string;\n geometryId: string;\n children?: TreeMenuNode[];\n};\n\n@Component({\n selector: 'app-tree-menu-item',\n templateUrl: './tree-menu-item.component.html',\n styleUrls: ['./tree-menu-item.component.scss'],\n})\nexport class TreeMenuItemComponent {\n @ViewChildren(TreeMenuItemComponent)\n children!: QueryList<TreeMenuItemComponent>;\n @Input() node: TreeMenuNode;\n isExpanded = false;\n visible = true;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n public toggleVisibility(visible: boolean) {\n console.log(\"hi! it's \" + this.node.name);\n this.eventDisplay\n .getUIManager()\n .geometryVisibility(this.node.geometryId, visible);\n this.visible = visible;\n this.children.forEach((child) => child.toggleVisibility(visible));\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TreeMenuNode } from './tree-menu-item/tree-menu-item.component';\n\n@Component({\n selector: 'app-tree-menu',\n templateUrl: './tree-menu.component.html',\n styleUrls: ['./tree-menu.component.scss'],\n})\nexport class TreeMenuComponent implements OnInit {\n rootNode: TreeMenuNode = {\n name: 'Atlas Detector',\n geometryId: 'AtlasDetector',\n children: [\n {\n name: 'Magnet systems',\n geometryId: 'MagnetSys',\n children: [\n {\n name: 'Toroids',\n geometryId: 'Toroids',\n },\n ],\n },\n {\n name: 'Calorimeters',\n geometryId: 'CaloSys',\n children: [\n {\n name: 'LAr Barrel',\n geometryId: 'LAr Barrel',\n },\n {\n name: 'LAr EC1',\n geometryId: 'LAr EC1',\n },\n {\n name: 'LAr EC2',\n geometryId: 'LAr EC2',\n },\n {\n name: 'Tile Cal',\n geometryId: 'Tile Cal',\n },\n ],\n },\n {\n name: 'Inner detector',\n geometryId: 'InDetSys',\n children: [\n {\n name: 'Pixel',\n geometryId: 'Pixel',\n },\n {\n name: 'SCT',\n geometryId: 'SCT',\n },\n {\n name: 'TRT',\n geometryId: 'TRT',\n },\n ],\n },\n ],\n };\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"tree-wrapper\">\n <div class=\"tree-menu\">\n <app-tree-menu-item [node]=\"rootNode\"></app-tree-menu-item>\n </div>\n</div>\n","<mat-menu #viewOptions>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showGridCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setGrid($event)\"\n >Show Grid\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showAxisCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showAxisCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setAxis($event)\"\n >Show Axis\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n *ngFor=\"let view of views\"\n (click)=\"displayView($event, view)\"\n >\n <svg class=\"view-icon\" *ngIf=\"view.icon\">\n <use attr.href=\"assets/icons/{{ view.icon }}.svg#{{ view.icon }}\"></use>\n </svg>\n {{ view.name }}\n </button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"viewOptions\"\n tooltip=\"View options\"\n icon=\"views\"\n [active]=\"false\"\n>\n</app-menu-toggle>\n","import { Component, OnInit } from '@angular/core';\nimport { PresetView } from 'phoenix-event-display';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-view-options',\n templateUrl: './view-options.component.html',\n styleUrls: ['./view-options.component.scss'],\n})\nexport class ViewOptionsComponent implements OnInit {\n views: PresetView[];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit(): void {\n this.views = this.eventDisplay.getUIManager().getPresetViews();\n }\n\n displayView($event: any, view: PresetView) {\n $event.stopPropagation();\n this.eventDisplay.getUIManager().displayView(view);\n }\n\n setAxis(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setShowAxis(value);\n }\n\n setGrid(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setShowGrid(value);\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { VRManager, XRSessionType } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-vr-toggle',\n templateUrl: './vr-toggle.component.html',\n styleUrls: ['./vr-toggle.component.scss'],\n})\nexport class VrToggleComponent {\n vrSupported: boolean = false;\n vrActive: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {\n // NOTE: WebXR needs secure HTTPS context\n // Query for permissions of XR before using it (not supported by browsers yet). See https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query\n (navigator as any)?.xr\n ?.isSessionSupported?.(VRManager.SESSION_TYPE)\n .then((supported: boolean) => {\n if (supported) {\n this.vrSupported = true;\n }\n })\n .catch((err: any) => console.warn('Error in VR', err));\n }\n\n toggleVr() {\n // If toggling VR on\n if (!this.vrActive) {\n this.eventDisplay.initXR(XRSessionType.VR, () => {\n this.vrActive = false;\n // Disable renderer XR and remove animation loop\n this.eventDisplay.endXR(XRSessionType.VR);\n });\n this.vrActive = true;\n } else {\n this.eventDisplay.endXR(XRSessionType.VR);\n this.vrActive = false;\n }\n }\n}\n","<app-menu-toggle\n [disabled]=\"!vrSupported\"\n [active]=\"vrActive\"\n icon=\"vr\"\n (click)=\"vrSupported && toggleVr()\"\n [tooltip]=\"\n vrSupported ? (vrActive ? 'Exit VR' : 'Enter VR') : 'VR not supported'\n \"\n>\n</app-menu-toggle>\n","<mat-menu #arToggleOptions>\n <ng-container *ngIf=\"arSupported\">\n <button mat-menu-item (click)=\"toggleAr(true)\">AR with overlays</button>\n <button mat-menu-item (click)=\"toggleAr(false)\">AR without overlays</button>\n </ng-container>\n <button *ngIf=\"!arSupported\" mat-menu-item disabled>AR not supported</button>\n</mat-menu>\n\n<app-menu-toggle\n [matMenuTriggerFor]=\"arToggleOptions\"\n (click)=\"arSupported && (arActive ? toggleAr() : null)\"\n [disabled]=\"!arSupported\"\n [active]=\"arActive\"\n icon=\"ar\"\n [tooltip]=\"\n arSupported ? (arActive ? 'Exit AR' : 'Enter AR') : 'AR not supported'\n \"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { ARManager, XRSessionType } from 'phoenix-event-display';\n\n@Component({\n selector: 'app-ar-toggle',\n templateUrl: './ar-toggle.component.html',\n styleUrls: ['./ar-toggle.component.scss'],\n})\nexport class ArToggleComponent {\n arSupported: boolean = false;\n arActive: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {\n // NOTE: WebXR needs secure HTTPS context\n // Query for permissions of XR before using it (not supported by browsers yet). See https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query\n (navigator as any).xr\n ?.isSessionSupported?.(ARManager.SESSION_TYPE)\n .then((supported: boolean) => {\n if (supported) {\n this.arSupported = true;\n }\n })\n .catch((err: any) => console.warn('Error in AR', err));\n }\n\n toggleAr(enableDomOverlay: boolean = true) {\n ARManager.enableDomOverlay = enableDomOverlay;\n\n // If toggling AR on\n if (!this.arActive) {\n this.eventDisplay.initXR(XRSessionType.AR, () => {\n this.arActive = false;\n // Disable renderer XR and remove animation loop\n this.eventDisplay.endXR(XRSessionType.AR);\n });\n this.arActive = true;\n } else {\n this.eventDisplay.endXR(XRSessionType.AR);\n this.arActive = false;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n/**\n * Component for adding zoom controls for the main and overlay cameras.\n */\n@Component({\n selector: 'app-zoom-controls',\n templateUrl: './zoom-controls.component.html',\n styleUrls: ['./zoom-controls.component.scss'],\n})\nexport class ZoomControlsComponent {\n /** All camera being used by the scene. */\n allCameras: any[];\n /** Factor to zoom by. */\n private zoomFactor: number = 1.1;\n /** Timeout for clearing mouse hold. */\n private zoomTimeout: any;\n /** The speed and time of zoom. */\n private zoomTime: number = 200;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n /**\n * Zoom all the cameras by a specific zoom factor.\n * The factor may either be greater (zoom in) or smaller (zoom out) than 1.\n * @param zoomFactor The factor to zoom by.\n */\n zoomTo(zoomFactor: number) {\n this.zoomTime =\n this.zoomTime > 30 ? Math.floor(this.zoomTime / 1.1) : this.zoomTime;\n\n this.eventDisplay.zoomTo(zoomFactor, this.zoomTime);\n\n this.zoomTimeout = setTimeout(() => {\n this.zoomTo(zoomFactor);\n }, this.zoomTime);\n }\n\n /**\n * Zoom the camera in.\n * @param leftClick Whether the mouse click is left or not.\n */\n zoomIn(leftClick: boolean) {\n if (leftClick) {\n this.zoomTo(1 / this.zoomFactor);\n }\n }\n\n /**\n * Zoom the camera out.\n * @param leftClick Whether the mouse click is left or not.s\n */\n zoomOut(leftClick: boolean) {\n if (leftClick) {\n this.zoomTo(this.zoomFactor);\n }\n }\n\n /**\n * Reset the zoom time which decreases upon hold and clear the zoom timeout.\n */\n clearZoom() {\n this.zoomTime = 200;\n clearTimeout(this.zoomTimeout);\n }\n}\n","<div class=\"d-flex\">\n <app-menu-toggle\n tooltip=\"Zoom out (hold)\"\n icon=\"zoom-out\"\n [active]=\"false\"\n (click)=\"zoomOut(true); clearZoom()\"\n (touchstart)=\"zoomOut(true)\"\n (mousedown)=\"zoomOut($event.button === 0)\"\n (mouseup)=\"clearZoom()\"\n (mouseleave)=\"clearZoom()\"\n (touchend)=\"clearZoom()\"\n (touchcancel)=\"clearZoom()\"\n (touchmove)=\"clearZoom()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n tooltip=\"Zoom in (hold)\"\n icon=\"zoom-in\"\n [active]=\"false\"\n (click)=\"zoomIn(true); clearZoom()\"\n (touchstart)=\"zoomIn(true)\"\n (mousedown)=\"zoomIn($event.button === 0)\"\n (mouseup)=\"clearZoom()\"\n (mouseleave)=\"clearZoom()\"\n (touchend)=\"clearZoom()\"\n (touchcancel)=\"clearZoom()\"\n (touchmove)=\"clearZoom()\"\n >\n </app-menu-toggle>\n</div>\n","import { OnInit } from '@angular/core';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'app-ss-mode',\n templateUrl: './ss-mode.component.html',\n styleUrls: ['./ss-mode.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SSModeComponent implements OnInit {\n ssMode: boolean = false;\n\n ngOnInit() {\n document.onfullscreenchange = () => {\n if (!document.fullscreenElement) {\n this.toggleSSMode();\n }\n };\n }\n\n toggleSSMode() {\n this.ssMode = !this.ssMode;\n document.body.classList.toggle('ss-mode');\n if (this.ssMode) {\n // WORKAROUND - Adding the event listener directly somehow calls it on the first click\n setTimeout(() => {\n document.addEventListener('click', this.onDocumentClick);\n document.addEventListener('touchstart', this.onDocumentClick);\n }, 1);\n document.documentElement.requestFullscreen?.();\n } else {\n document.removeEventListener('click', this.onDocumentClick);\n document.removeEventListener('touchstart', this.onDocumentClick);\n }\n }\n\n private onDocumentClick = () => {\n document.exitFullscreen?.();\n };\n}\n","<app-menu-toggle\n tooltip=\"Screenshot mode: phoenix will become fullscreen and the menu is suppressed\"\n [active]=\"ssMode\"\n icon=\"ss-mode\"\n (click)=\"toggleSSMode()\"\n>\n</app-menu-toggle>\n","<mat-menu class=\"mat-menu\" #menu>\n <button mat-menu-item (click)=\"$event.stopPropagation()\" class=\"size-input\">\n <label>width</label>\n <input\n #width\n mapInput\n type=\"number\"\n [value]=\"3840\"\n (change)=\"setWidth(width.value)\"\n (click)=\"$event.stopPropagation()\"\n />\n </button>\n <button mat-menu-item (click)=\"$event.stopPropagation()\" class=\"size-input\">\n <label>height</label>\n <input\n #height\n mapInput\n type=\"number\"\n [value]=\"2610\"\n (change)=\"setHeight(height.value)\"\n (click)=\"$event.stopPropagation()\"\n />\n </button>\n <button mat-menu-item (click)=\"$event.stopPropagation()\">\n <mat-radio-group [(ngModel)]=\"fitting\" class=\"fitting-radios\">\n <mat-radio-button *ngFor=\"let fitting of fittings\" [value]=\"fitting\"\n >{{ fitting }}\n </mat-radio-button>\n </mat-radio-group>\n </button>\n <button mat-menu-item class=\"make-picture\" (click)=\"makePicture()\">\n Create picture\n </button>\n</mat-menu>\n<app-menu-toggle\n [matMenuTriggerFor]=\"menu\"\n tooltip=\"Creates a picture from the current view: directly saves a png of arbitrary size from the current view\"\n icon=\"png\"\n>\n</app-menu-toggle>\n<div>\n <canvas hidden id=\"screenshotCanvas\"></canvas>\n</div>\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-make-picture',\n templateUrl: './make-picture.component.html',\n styleUrls: ['./make-picture.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MakePictureComponent implements OnInit {\n fittings: string[] = ['Crop', 'Stretch'];\n fitting: string = 'Crop';\n width: number = 3840;\n height: number = 2160;\n constructor(private eventDisplay: EventDisplayService) {}\n ngOnInit() {}\n setWidth(value) {\n this.width = value;\n }\n setHeight(value) {\n this.height = value;\n }\n\n makePicture() {\n this.eventDisplay.makeScreenShot(this.width, this.height, this.fitting);\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-performance-toggle',\n templateUrl: './performance-toggle.component.html',\n styleUrls: ['./performance-toggle.component.scss'],\n})\nexport class PerformanceToggleComponent {\n performanceMode: boolean = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n togglePerformance() {\n this.performanceMode = !this.performanceMode;\n this.eventDisplay.getThreeManager().setAntialiasing(!this.performanceMode);\n }\n}\n","<app-menu-toggle\n tooltip=\"Performance mode\"\n [active]=\"performanceMode\"\n icon=\"performance\"\n (click)=\"togglePerformance()\"\n>\n</app-menu-toggle>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-ui-menu-wrapper',\n templateUrl: './ui-menu-wrapper.component.html',\n styleUrls: ['./ui-menu-wrapper.component.scss'],\n})\nexport class UiMenuWrapperComponent {\n hideUIMenu: boolean = false;\n}\n","<div id=\"uiMenu\">\n <button\n id=\"hideUIMenu\"\n [matTooltip]=\"hideUIMenu ? 'Show toolbar' : 'Hide toolbar'\"\n matTooltipPosition=\"above\"\n (click)=\"hideUIMenu = !hideUIMenu\"\n [ngClass]=\"{ 'ui-menu-hidden': hideUIMenu }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n <div id=\"optionsPanel\" [hidden]=\"hideUIMenu\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActiveVariable, phoenixURLOptions } from 'phoenix-event-display';\nimport QRCode from 'qrcode';\n\n@Component({\n selector: 'app-share-link-dialog',\n templateUrl: './share-link-dialog.component.html',\n styleUrls: ['./share-link-dialog.component.scss'],\n})\nexport class ShareLinkDialogComponent implements AfterViewInit {\n baseLink: string;\n shareLink: ActiveVariable<string>;\n embedLink: string;\n urlOptions = Object.assign({}, phoenixURLOptions);\n @ViewChild('qrcodeCanvas') qrcodeCanvas: ElementRef<HTMLCanvasElement>;\n\n constructor(private dialogRef: MatDialogRef<ShareLinkDialogComponent>) {\n const locationHref = window.location.href;\n const lastIndex =\n locationHref.lastIndexOf('?') === -1\n ? locationHref.length\n : locationHref.lastIndexOf('?');\n\n this.baseLink = locationHref.slice(0, lastIndex);\n this.shareLink = new ActiveVariable(this.baseLink);\n this.embedLink = this.getEmbedLink();\n }\n\n ngAfterViewInit() {\n this.updateQRCode(this.shareLink.value);\n this.shareLink.onUpdate(this.updateQRCode.bind(this));\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n getEmbedLink(urlParametersString: string = '') {\n return `<iframe src=\"${this.baseLink}?embed=true${\n urlParametersString ? '&' : ''\n }${urlParametersString}\"></iframe>`;\n }\n\n setOptionValue(option: string, value: string | boolean) {\n this.urlOptions[option] = value;\n this.onOptionsChange();\n }\n\n onOptionsChange() {\n const urlParametersString = Object.getOwnPropertyNames(this.urlOptions)\n .reduce((filteredOptions: string[], option: string) => {\n if (this.urlOptions[option]) {\n filteredOptions.push(\n `${option}=${encodeURI(this.urlOptions[option])}`\n );\n }\n return filteredOptions;\n }, [])\n .join('&');\n\n this.shareLink.update(\n this.baseLink + (urlParametersString ? '?' : '') + urlParametersString\n );\n this.embedLink = this.getEmbedLink(urlParametersString);\n }\n\n copyText(text: string, element: HTMLElement) {\n const inputElement = document.createElement('input');\n document.body.appendChild(inputElement);\n inputElement.value = text;\n inputElement.select();\n document.execCommand('copy');\n document.body.removeChild(inputElement);\n element.focus();\n\n // Set text on copying\n element.innerText = 'COPIED';\n setTimeout(() => {\n element.innerText = 'COPY';\n }, 2000);\n }\n\n updateQRCode(link: string) {\n QRCode.toCanvas(this.qrcodeCanvas.nativeElement, link);\n }\n}\n","<div class=\"dialog\">\n <h1 mat-dialog-title>Create shareable link</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <h5>URL options</h5>\n <div class=\"form-group mt-2\">\n <label for=\"eventDataFile\">Event data file (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"eventDataFile\"\n placeholder=\"assets/files/event_data/atlaseventdump2.json\"\n [value]=\"urlOptions.file\"\n (input)=\"setOptionValue('file', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"eventDataType\">Event data type</label>\n <select\n class=\"form-control\"\n id=\"eventDataType\"\n (input)=\"setOptionValue('type', $event.target.value)\"\n >\n <option selected value=\"\">Select</option>\n <option value=\"jivexml\">JiveXML</option>\n <option value=\"json\">JSON</option>\n </select>\n </div>\n <div class=\"form-group\">\n <label for=\"configuration\">Configuration (URL or path)</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"configuration\"\n placeholder=\"assets/files/config/phoenix-config.json\"\n [value]=\"urlOptions.config\"\n (input)=\"setOptionValue('config', $event.target.value)\"\n />\n </div>\n <div class=\"form-group\">\n <mat-checkbox\n [checked]=\"urlOptions.hideWidgets\"\n (change)=\"setOptionValue('hideWidgets', $event.checked)\"\n >\n Hide all widgets\n </mat-checkbox>\n </div>\n\n <h5>Share</h5>\n <div class=\"share-box my-2\">\n <span>{{ shareLink.value }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(shareLink.value, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>Embed</h5>\n <div class=\"share-box my-2\">\n <span>{{ embedLink }}</span>\n <button\n class=\"share-box-copy\"\n (click)=\"copyText(embedLink, $event.target)\"\n >\n COPY\n </button>\n </div>\n <h5>QR Code</h5>\n <div class=\"qrcode d-flex justify-content-center\">\n <canvas #qrcodeCanvas></canvas>\n </div>\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ShareLinkDialogComponent } from './share-link-dialog/share-link-dialog.component';\n\n@Component({\n selector: 'app-share-link',\n templateUrl: './share-link.component.html',\n styleUrls: ['./share-link.component.scss'],\n})\nexport class ShareLinkComponent {\n constructor(private dialog: MatDialog) {}\n\n openShareLinkDialog() {\n this.dialog.open(ShareLinkDialogComponent);\n }\n}\n","<app-menu-toggle\n tooltip=\"Create shareable link\"\n icon=\"share\"\n [active]=\"false\"\n (click)=\"openShareLinkDialog()\"\n>\n</app-menu-toggle>\n","import { Component, Input } from '@angular/core';\nimport {\n EventDataFormat,\n EventDataImportOption,\n} from '../../services/extras/event-data-import';\nimport { defaultAnimationPresets } from './animate-camera/animate-camera.component';\n\n@Component({\n selector: 'app-ui-menu',\n templateUrl: './ui-menu.component.html',\n styleUrls: ['./ui-menu.component.scss'],\n})\nexport class UiMenuComponent {\n @Input()\n eventDataImportOptions: EventDataImportOption[] =\n Object.values(EventDataFormat);\n @Input()\n animationPresets = defaultAnimationPresets;\n}\n","<app-ui-menu-wrapper>\n <!-- Event selector -->\n <app-event-selector></app-event-selector>\n\n <!-- Zoom in and zoom out controls -->\n <app-zoom-controls></app-zoom-controls>\n\n <app-view-options></app-view-options>\n\n <app-auto-rotate></app-auto-rotate>\n\n <!-- Dark theme toggle -->\n <app-dark-theme></app-dark-theme>\n\n <!-- Toggle for clipping geometries -->\n <app-object-clipping></app-object-clipping>\n\n <!-- Main view toggle -->\n <app-main-view-toggle></app-main-view-toggle>\n\n <!-- Toggle for overlay panel -->\n <app-overlay-view></app-overlay-view>\n\n <!-- Toggle for selected object panel -->\n <app-object-selection></app-object-selection>\n\n <!-- Info panel -->\n <app-info-panel></app-info-panel>\n\n <!-- Toggle for animating the event data -->\n <app-animate-event></app-animate-event>\n\n <!-- Toggle for animating camera through event -->\n <app-animate-camera\n [animationPresets]=\"animationPresets\"\n ></app-animate-camera>\n\n <!-- Toggle for collections info -->\n <app-collections-info></app-collections-info>\n\n <!-- Toggle for performance -->\n <app-performance-toggle></app-performance-toggle>\n\n <!-- Toggle for VR -->\n <app-vr-toggle></app-vr-toggle>\n\n <!-- Toggle for AR -->\n <app-ar-toggle></app-ar-toggle>\n\n <!-- Toggle for screenshot mode -->\n <app-ss-mode></app-ss-mode>\n\n <!-- Make pictures from scene -->\n <app-make-picture></app-make-picture>\n\n <!-- Toggle for loading geometries modal-->\n <app-io-options\n [eventDataImportOptions]=\"eventDataImportOptions\"\n ></app-io-options>\n\n <!-- Toggle for shareable link constructor modal-->\n <app-share-link></app-share-link>\n\n <!-- Extra options -->\n <ng-content></ng-content>\n</app-ui-menu-wrapper>\n","<cdk-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\n <cdk-tree-node *cdkTreeNodeDef=\"let node\" class=\"tree-node\">\n <button\n mat-button\n mat-stroked-button\n class=\"tree-node-button\"\n (click)=\"onSelect(node.url)\"\n >\n <svg class=\"node-icon\">\n <use href=\"assets/icons/file.svg#file\"></use>\n </svg>\n {{ node.name }}\n </button>\n </cdk-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n *cdkTreeNodeDef=\"let node; when: hasChildren\"\n class=\"tree-node\"\n >\n <button\n mat-button\n cdkTreeNodeToggle\n class=\"tree-node-button\"\n [attr.aria-label]=\"'Toggle ' + node.name\"\n >\n <svg\n class=\"node-icon\"\n [class.node-icon-filled]=\"!treeControl.isExpanded(node)\"\n >\n <use href=\"assets/icons/folder.svg#folder\"></use>\n </svg>\n {{ node.name }}\n </button>\n <div [class.file-tree-invisible]=\"!treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { NestedTreeControl } from '@angular/cdk/tree';\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\n\nexport class FileNode {\n name: string;\n url: string;\n children: { [key: string]: FileNode };\n\n constructor(name?: string) {\n this.name = name;\n }\n}\n\n@Component({\n selector: 'app-file-explorer',\n templateUrl: './file-explorer.component.html',\n styleUrls: ['./file-explorer.component.scss'],\n})\nexport class FileExplorerComponent implements OnChanges {\n @Input() rootFileNode: FileNode;\n @Output() onFileSelect: EventEmitter<string> = new EventEmitter<string>();\n\n treeControl = new NestedTreeControl<FileNode>(\n this.getSortedChildren.bind(this)\n );\n dataSource = new MatTreeNestedDataSource<FileNode>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.rootFileNode?.currentValue) {\n this.dataSource.data = this.getSortedChildren(\n changes.rootFileNode.currentValue\n );\n }\n }\n\n hasChildren = (_: number, node: FileNode) =>\n !!node.children && Object.keys(node.children).length > 0;\n\n onSelect(url: string) {\n this.onFileSelect.emit(url);\n }\n\n /**\n * Sort the FileNode's children with folders before files.\n * @param node FileNode whose children are to be sorted.\n * @returns An array of sorted FileNodes.\n */\n getSortedChildren(node: FileNode): FileNode[] {\n if (!node.children) {\n return [];\n }\n\n return Object.values(node.children).sort((a, b) =>\n !a.url && b.url ? -1 : 1\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-ring-loader',\n templateUrl: './ring-loader.component.html',\n styleUrls: ['./ring-loader.component.scss'],\n})\nexport class RingLoaderComponent {}\n","<div class=\"ring\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n</div>\n","<div class=\"dialog\">\n <div class=\"d-flex\">\n <h1 mat-dialog-title>Event data from directory</h1>\n <app-ring-loader *ngIf=\"loading\"></app-ring-loader>\n </div>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"error\">Error processing request.</div>\n <mat-tab-group\n *ngIf=\"!error\"\n mat-align-tabs=\"start\"\n animationDuration=\"0ms\"\n disableRipple\n color=\"transparent\"\n >\n <mat-tab label=\"Event data\">\n <div class=\"py-3\">\n <app-file-explorer\n [rootFileNode]=\"eventDataFileNode\"\n (onFileSelect)=\"loadEvent($event)\"\n ></app-file-explorer>\n </div>\n </mat-tab>\n <mat-tab label=\"Config\">\n <div class=\"py-3\">\n <app-file-explorer\n [rootFileNode]=\"configFileNode\"\n (onFileSelect)=\"loadConfig($event)\"\n ></app-file-explorer>\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { JiveXMLLoader } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { FileNode } from '../../../file-explorer/file-explorer.component';\nimport { EventDataExplorerDialogData } from '../event-data-explorer.component';\nimport JSZip from 'jszip';\n\nconst supportFileTypes = ['json', 'xml'];\n\nexport type FileResponse = {\n name: string;\n url: string;\n};\n\n@Component({\n selector: 'app-event-data-explorer-dialog',\n templateUrl: './event-data-explorer-dialog.component.html',\n styleUrls: ['./event-data-explorer-dialog.component.scss'],\n})\nexport class EventDataExplorerDialogComponent {\n eventDataFileNode: FileNode;\n configFileNode: FileNode;\n loading = true;\n error = false;\n\n constructor(\n private eventDisplay: EventDisplayService,\n private dialogRef: MatDialogRef<EventDataExplorerDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogData: EventDataExplorerDialogData\n ) {\n // Event data\n this.makeRequest(this.dialogData.apiURL, 'json', (res: FileResponse[]) => {\n const filePaths = res.filter((file) =>\n supportFileTypes.includes(file.name.split('.').pop())\n );\n\n this.eventDataFileNode = this.buildFileNode(filePaths);\n });\n\n // Config\n this.makeRequest(\n `${this.dialogData.apiURL}?type=config`,\n 'json',\n (res: FileResponse[]) => {\n const filePaths = res.filter(\n (file) => file.name.split('.').pop() === 'json'\n );\n\n this.configFileNode = this.buildFileNode(filePaths);\n }\n );\n }\n\n loadEvent(file: string) {\n const isZip = file.split('.').pop() === 'zip';\n const rawfile = isZip ? file.substring(0, file.length - 4) : file;\n this.makeRequest(file, isZip ? 'blob' : 'text', (eventData) => {\n switch (rawfile.split('.').pop()) {\n case 'xml':\n this.loadJiveXMLEvent(eventData);\n break;\n case 'json':\n this.loadJSONEvent(eventData);\n break;\n }\n });\n }\n\n private loadJSONEvent(eventData: string) {\n this.eventDisplay.parsePhoenixEvents(JSON.parse(eventData));\n this.onClose();\n }\n\n private loadJiveXMLEvent(eventData: string) {\n const jiveXMLLoader = new JiveXMLLoader();\n jiveXMLLoader.process(eventData);\n const processedEventData = jiveXMLLoader.getEventData();\n this.eventDisplay.buildEventDataFromJSON(processedEventData);\n this.onClose();\n }\n\n loadConfig(file: string) {\n this.makeRequest(\n `${this.dialogData.apiURL}?type=config&f=${file}`,\n 'text',\n (config) => {\n const stateManager = this.eventDisplay.getStateManager();\n stateManager.loadStateFromJSON(JSON.parse(config));\n\n this.onClose();\n }\n );\n }\n\n // Helpers\n\n onClose() {\n this.dialogRef.close();\n }\n\n private async unzip(data: ArrayBuffer) {\n const archive = new JSZip();\n await archive.loadAsync(data);\n let fileData = '';\n let multiFile = false;\n for (const filePath in archive.files) {\n if (multiFile) {\n console.error(\n 'Zip archive contains more than one file. Ignoring all but first'\n );\n break;\n }\n fileData = await archive.file(filePath).async('string');\n multiFile = true;\n }\n return fileData;\n }\n\n makeRequest(\n urlPath: string,\n responseType: 'json' | 'text' | 'blob',\n onData: (data: any) => void\n ) {\n this.loading = true;\n fetch(urlPath)\n .then((res) => res[responseType]())\n .then((data) => {\n if (responseType === 'blob') {\n data\n .arrayBuffer()\n .then((buf) => this.unzip(buf))\n .then((d) => onData(d));\n } else {\n onData(data);\n }\n this.error = false;\n })\n .catch((error) => {\n console.error(error);\n this.error = true;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n private buildFileNode(filePaths: FileResponse[]): FileNode {\n const rootNode = new FileNode();\n let fileNode = rootNode;\n\n for (const filePath of filePaths) {\n filePath.name.split('/').forEach((name) => {\n fileNode.children = fileNode.children ?? {};\n fileNode.children[name] = fileNode.children[name] ?? new FileNode(name);\n fileNode = fileNode.children[name];\n });\n\n fileNode.url = filePath.url;\n fileNode = rootNode;\n }\n\n return rootNode;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { EventDataExplorerDialogComponent } from './event-data-explorer-dialog/event-data-explorer-dialog.component';\n\nexport type EventDataExplorerDialogData = {\n apiURL: string;\n};\n\n@Component({\n selector: 'app-event-data-explorer',\n templateUrl: './event-data-explorer.component.html',\n styleUrls: ['./event-data-explorer.component.scss'],\n})\nexport class EventDataExplorerComponent {\n @Input() apiURL: string;\n\n constructor(private dialog: MatDialog) {}\n\n openEventDataExplorerDialog() {\n this.dialog.open<\n EventDataExplorerDialogComponent,\n EventDataExplorerDialogData\n >(EventDataExplorerDialogComponent, {\n data: {\n apiURL: this.apiURL,\n },\n });\n }\n}\n","<app-menu-toggle\n tooltip=\"Browse events in data directory\"\n icon=\"server\"\n [active]=\"false\"\n (click)=\"openEventDataExplorerDialog()\"\n>\n</app-menu-toggle>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n selector: 'app-cycle-events',\n templateUrl: './cycle-events.component.html',\n})\nexport class CycleEventsComponent implements OnInit {\n @Input()\n interval: number;\n\n active: boolean = false;\n\n private intervalId: NodeJS.Timer;\n\n private events: string[];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.eventDisplay.listenToLoadedEventsChange(\n (events) => (this.events = events)\n );\n }\n\n toggleCycle() {\n this.active = !this.active;\n clearInterval(this.intervalId);\n\n if (this.active) {\n this.startCycleInterval();\n }\n }\n\n private startCycleInterval(startIndex: number = 0) {\n let index = startIndex;\n\n this.intervalId = setInterval(() => {\n index = index >= this.events.length ? 0 : index + 1;\n this.eventDisplay.loadEvent(this.events[index]);\n }, this.interval);\n }\n}\n","<app-menu-toggle\n tooltip=\"Cycle through events\"\n [active]=\"active\"\n icon=\"cycle-events\"\n (click)=\"toggleCycle()\"\n>\n</app-menu-toggle>\n","import { Injectable } from '@angular/core';\nimport { ActiveVariable } from 'phoenix-event-display';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ErrorMessageService {\n /** A variable that stores the latest error thrown. */\n private error = new ActiveVariable<Error>();\n\n /**\n * Subscribe to when an error occurs.\n * @param callback A function called when an error occurs.\n */\n subscribeToError(callback: (error: Error) => void) {\n this.error.onUpdate(callback);\n }\n\n /**\n * Set the current error.\n * @param error The error that has occurred.\n */\n setError(error: Error) {\n this.error.update(error);\n }\n}\n","<div\n class=\"loader-wrapper d-flex position-absolute flex-column justify-content-center align-items-center w-100 h-100 p-5 text-center\"\n [ngClass]=\"{ 'load-complete': loaded }\"\n>\n <ng-container *ngIf=\"error === undefined; else errorContainer\">\n <img src=\"assets/images/logo-small.svg\" alt=\"Loader\" />\n <p class=\"mt-5\">\n Loading...<br />\n <small class=\"text-muted\">(This may take a while)</small>\n </p>\n <div class=\"loading-bar\" *ngIf=\"progress !== undefined\">\n <span [style]=\"{ width: progress + '%' }\"></span>\n </div>\n </ng-container>\n <ng-template #errorContainer>\n <p>\n An error occurred while loading the application. Please try refreshing the\n page.\n </p>\n </ng-template>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ErrorMessageService } from '../../services/error-message-service';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent {\n @Input() loaded = false;\n @Input() progress: number;\n public error: Error;\n\n constructor(private errorMessageService: ErrorMessageService) {\n this.errorMessageService.subscribeToError((error) => {\n if (!this.loaded) {\n this.error = error;\n }\n });\n }\n}\n","import { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { ErrorMessageService } from './error-message-service';\n\n/**\n * Global handler for handling app/module wide errors.\n */\n@Injectable()\nexport class GlobalErrorHandler implements ErrorHandler {\n /**\n * Instantiate the global error handler.\n * @param injector Injector for getting the error message service.\n */\n constructor(private injector: Injector) {}\n\n /**\n * A handler for handling the global error that occurs in the app.\n * @param error The error that occurred.\n */\n handleError(error: Error) {\n console.error('ERROR IN PHOENIX APP', '\\n', error);\n this.injector.get(ErrorMessageService).setError(error);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-experiment-link',\n templateUrl: './experiment-link.component.html',\n styleUrls: ['./experiment-link.component.scss'],\n})\nexport class ExperimentLinkComponent implements OnInit {\n private experimentLink: string;\n\n ngOnInit() {\n // we just want to remove the \"&embed=true\" instruction here.\n const url = new URL(window.location.href);\n url.searchParams.delete('embed');\n this.experimentLink = url.toString();\n }\n\n goToExperiment() {\n window.open(this.experimentLink, '_blank');\n }\n}\n","<app-menu-toggle\n tooltip=\"See full event display\"\n icon=\"link\"\n (click)=\"goToExperiment()\"\n></app-menu-toggle>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-embed-menu',\n templateUrl: './embed-menu.component.html',\n styleUrls: ['./embed-menu.component.scss'],\n})\nexport class EmbedMenuComponent {}\n","<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","import { ErrorHandler, NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { NgxSliderModule } from '@rp3e11/ngx-slider';\nimport { NavComponent } from './nav/nav.component';\nimport {\n PhoenixMenuComponent,\n PhoenixMenuItemComponent,\n ConfigSliderComponent,\n} from './phoenix-menu';\nimport {\n UiMenuWrapperComponent,\n UiMenuComponent,\n CollectionsInfoComponent,\n MenuToggleComponent,\n CollectionsInfoOverlayComponent,\n IoOptionsComponent,\n IOOptionsDialogComponent,\n OverlayViewComponent,\n ObjectSelectionComponent,\n ObjectSelectionOverlayComponent,\n EventSelectorComponent,\n ObjectClippingComponent,\n DarkThemeComponent,\n AutoRotateComponent,\n ViewOptionsComponent,\n OverlayViewWindowComponent,\n OverlayComponent,\n ExperimentInfoComponent,\n InfoPanelComponent,\n InfoPanelOverlayComponent,\n MainViewToggleComponent,\n ZoomControlsComponent,\n TreeMenuComponent,\n TreeMenuItemComponent,\n AnimateCameraComponent,\n AnimateEventComponent,\n VrToggleComponent,\n ArToggleComponent,\n SSModeComponent,\n MakePictureComponent,\n PerformanceToggleComponent,\n ShareLinkComponent,\n ShareLinkDialogComponent,\n EventDataExplorerComponent,\n EventDataExplorerDialogComponent,\n CycleEventsComponent,\n} from './ui-menu';\nimport { AttributePipe } from '../services/extras/attribute.pipe';\nimport { EventDisplayService } from '../services/event-display.service';\nimport { ErrorMessageService } from '../services/error-message-service';\nimport { GlobalErrorHandler } from '../services/global-error-handler';\nimport { LoaderComponent } from './loader/loader.component';\nimport { EmbedMenuComponent } from './embed-menu/embed-menu.component';\nimport { ExperimentLinkComponent } from './embed-menu/experiment-link/experiment-link.component';\nimport { FileExplorerComponent } from './file-explorer/file-explorer.component';\nimport { RingLoaderComponent } from './ring-loader/ring-loader.component';\n\nconst PHOENIX_COMPONENTS: Type<any>[] = [\n NavComponent,\n UiMenuWrapperComponent,\n UiMenuComponent,\n CollectionsInfoComponent,\n MenuToggleComponent,\n CollectionsInfoOverlayComponent,\n IoOptionsComponent,\n IOOptionsDialogComponent,\n OverlayViewComponent,\n AttributePipe,\n ObjectSelectionComponent,\n ObjectSelectionOverlayComponent,\n EventSelectorComponent,\n ObjectClippingComponent,\n DarkThemeComponent,\n AutoRotateComponent,\n ViewOptionsComponent,\n OverlayViewWindowComponent,\n OverlayComponent,\n ExperimentInfoComponent,\n InfoPanelComponent,\n InfoPanelOverlayComponent,\n MainViewToggleComponent,\n ZoomControlsComponent,\n TreeMenuComponent,\n TreeMenuItemComponent,\n PhoenixMenuComponent,\n PhoenixMenuItemComponent,\n ConfigSliderComponent,\n AnimateCameraComponent,\n AnimateEventComponent,\n VrToggleComponent,\n ArToggleComponent,\n SSModeComponent,\n MakePictureComponent,\n PerformanceToggleComponent,\n LoaderComponent,\n ShareLinkComponent,\n ShareLinkDialogComponent,\n EmbedMenuComponent,\n ExperimentLinkComponent,\n EventDataExplorerComponent,\n EventDataExplorerDialogComponent,\n FileExplorerComponent,\n RingLoaderComponent,\n CycleEventsComponent,\n];\n\n@NgModule({\n declarations: PHOENIX_COMPONENTS,\n imports: [\n CommonModule,\n RouterModule,\n DragDropModule,\n MatDialogModule,\n MatButtonModule,\n MatTooltipModule,\n OverlayModule,\n FormsModule,\n MatMenuModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatCheckboxModule,\n MatIconModule,\n NgxSliderModule,\n CdkTreeModule,\n MatTabsModule,\n ],\n entryComponents: [\n OverlayComponent,\n OverlayViewWindowComponent,\n IOOptionsDialogComponent,\n CollectionsInfoOverlayComponent,\n ObjectSelectionOverlayComponent,\n InfoPanelOverlayComponent,\n EventDataExplorerDialogComponent,\n ],\n exports: PHOENIX_COMPONENTS,\n providers: [\n EventDisplayService,\n ErrorMessageService,\n {\n provide: ErrorHandler,\n useClass: GlobalErrorHandler,\n },\n ],\n})\nexport class PhoenixUIModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_c1","_c2","_c3","_c4","_c5","i7.ConfigSliderComponent","_c0","i1.EventDisplayService","i1","i2","i2.EventDisplayService","i1.ErrorMessageService"],"mappings":"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"}