phoenix-ui-components 3.0.1 → 3.0.6

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 (123) hide show
  1. package/dist/fesm2022/phoenix-ui-components.mjs +2262 -473
  2. package/dist/fesm2022/phoenix-ui-components.mjs.map +1 -1
  3. package/dist/index.d.ts +1109 -3
  4. package/package.json +10 -19
  5. package/dist/components/embed-menu/embed-menu.component.d.ts +0 -5
  6. package/dist/components/embed-menu/experiment-link/experiment-link.component.d.ts +0 -9
  7. package/dist/components/file-explorer/file-explorer.component.d.ts +0 -35
  8. package/dist/components/loader/loader.component.d.ts +0 -11
  9. package/dist/components/nav/nav.component.d.ts +0 -8
  10. package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +0 -18
  11. package/dist/components/phoenix-menu/index.d.ts +0 -3
  12. package/dist/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.d.ts +0 -14
  13. package/dist/components/phoenix-menu/phoenix-menu.component.d.ts +0 -7
  14. package/dist/components/phoenix-ui.module.d.ts +0 -71
  15. package/dist/components/ring-loader/ring-loader.component.d.ts +0 -5
  16. package/dist/components/ui-menu/animate-camera/animate-camera.component.d.ts +0 -20
  17. package/dist/components/ui-menu/animate-event/animate-event.component.d.ts +0 -10
  18. package/dist/components/ui-menu/ar-toggle/ar-toggle.component.d.ts +0 -11
  19. package/dist/components/ui-menu/auto-rotate/auto-rotate.component.d.ts +0 -10
  20. package/dist/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.d.ts +0 -29
  21. package/dist/components/ui-menu/collections-info/collections-info.component.d.ts +0 -15
  22. package/dist/components/ui-menu/cycle-events/cycle-events.component.d.ts +0 -21
  23. package/dist/components/ui-menu/dark-theme/dark-theme.component.d.ts +0 -12
  24. package/dist/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.d.ts +0 -28
  25. package/dist/components/ui-menu/event-data-explorer/event-data-explorer.component.d.ts +0 -13
  26. package/dist/components/ui-menu/event-selector/event-selector.component.d.ts +0 -12
  27. package/dist/components/ui-menu/experiment-info/experiment-info.component.d.ts +0 -14
  28. package/dist/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.d.ts +0 -22
  29. package/dist/components/ui-menu/geometry-browser/geometry-browser.component.d.ts +0 -15
  30. package/dist/components/ui-menu/index.d.ts +0 -39
  31. package/dist/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.d.ts +0 -26
  32. package/dist/components/ui-menu/info-panel/info-panel.component.d.ts +0 -33
  33. package/dist/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.d.ts +0 -34
  34. package/dist/components/ui-menu/io-options/io-options.component.d.ts +0 -11
  35. package/dist/components/ui-menu/main-view-toggle/main-view-toggle.component.d.ts +0 -10
  36. package/dist/components/ui-menu/make-picture/make-picture.component.d.ts +0 -20
  37. package/dist/components/ui-menu/menu-toggle/menu-toggle.component.d.ts +0 -9
  38. package/dist/components/ui-menu/object-clipping/object-clipping.component.d.ts +0 -15
  39. package/dist/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.d.ts +0 -15
  40. package/dist/components/ui-menu/object-selection/object-selection.component.d.ts +0 -17
  41. package/dist/components/ui-menu/overlay/overlay.component.d.ts +0 -52
  42. package/dist/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.d.ts +0 -20
  43. package/dist/components/ui-menu/overlay-view/overlay-view.component.d.ts +0 -15
  44. package/dist/components/ui-menu/performance-toggle/performance-toggle.component.d.ts +0 -10
  45. package/dist/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.d.ts +0 -28
  46. package/dist/components/ui-menu/share-link/share-link.component.d.ts +0 -9
  47. package/dist/components/ui-menu/ss-mode/ss-mode.component.d.ts +0 -10
  48. package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +0 -19
  49. package/dist/components/ui-menu/tree-menu/tree-menu.component.d.ts +0 -10
  50. package/dist/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.d.ts +0 -6
  51. package/dist/components/ui-menu/ui-menu.component.d.ts +0 -10
  52. package/dist/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.d.ts +0 -51
  53. package/dist/components/ui-menu/view-options/view-options.component.d.ts +0 -33
  54. package/dist/components/ui-menu/vr-toggle/vr-toggle.component.d.ts +0 -11
  55. package/dist/components/ui-menu/zoom-controls/zoom-controls.component.d.ts +0 -39
  56. package/dist/esm2022/components/embed-menu/embed-menu.component.mjs +0 -22
  57. package/dist/esm2022/components/embed-menu/experiment-link/experiment-link.component.mjs +0 -27
  58. package/dist/esm2022/components/file-explorer/file-explorer.component.mjs +0 -109
  59. package/dist/esm2022/components/loader/loader.component.mjs +0 -71
  60. package/dist/esm2022/components/nav/nav.component.mjs +0 -19
  61. package/dist/esm2022/components/phoenix-menu/config/config-slider/config-slider.component.mjs +0 -82
  62. package/dist/esm2022/components/phoenix-menu/index.mjs +0 -4
  63. package/dist/esm2022/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +0 -308
  64. package/dist/esm2022/components/phoenix-menu/phoenix-menu.component.mjs +0 -23
  65. package/dist/esm2022/components/phoenix-ui.module.mjs +0 -257
  66. package/dist/esm2022/components/ring-loader/ring-loader.component.mjs +0 -16
  67. package/dist/esm2022/components/ui-menu/animate-camera/animate-camera.component.mjs +0 -120
  68. package/dist/esm2022/components/ui-menu/animate-event/animate-event.component.mjs +0 -33
  69. package/dist/esm2022/components/ui-menu/ar-toggle/ar-toggle.component.mjs +0 -83
  70. package/dist/esm2022/components/ui-menu/auto-rotate/auto-rotate.component.mjs +0 -29
  71. package/dist/esm2022/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +0 -274
  72. package/dist/esm2022/components/ui-menu/collections-info/collections-info.component.mjs +0 -47
  73. package/dist/esm2022/components/ui-menu/cycle-events/cycle-events.component.mjs +0 -90
  74. package/dist/esm2022/components/ui-menu/dark-theme/dark-theme.component.mjs +0 -32
  75. package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +0 -128
  76. package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +0 -35
  77. package/dist/esm2022/components/ui-menu/event-selector/event-selector.component.mjs +0 -54
  78. package/dist/esm2022/components/ui-menu/experiment-info/experiment-info.component.mjs +0 -100
  79. package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.mjs +0 -172
  80. package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser.component.mjs +0 -45
  81. package/dist/esm2022/components/ui-menu/index.mjs +0 -40
  82. package/dist/esm2022/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +0 -69
  83. package/dist/esm2022/components/ui-menu/info-panel/info-panel.component.mjs +0 -59
  84. package/dist/esm2022/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +0 -304
  85. package/dist/esm2022/components/ui-menu/io-options/io-options.component.mjs +0 -36
  86. package/dist/esm2022/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +0 -32
  87. package/dist/esm2022/components/ui-menu/make-picture/make-picture.component.mjs +0 -109
  88. package/dist/esm2022/components/ui-menu/menu-toggle/menu-toggle.component.mjs +0 -40
  89. package/dist/esm2022/components/ui-menu/object-clipping/object-clipping.component.mjs +0 -72
  90. package/dist/esm2022/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +0 -59
  91. package/dist/esm2022/components/ui-menu/object-selection/object-selection.component.mjs +0 -46
  92. package/dist/esm2022/components/ui-menu/overlay/overlay.component.mjs +0 -197
  93. package/dist/esm2022/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +0 -83
  94. package/dist/esm2022/components/ui-menu/overlay-view/overlay-view.component.mjs +0 -41
  95. package/dist/esm2022/components/ui-menu/performance-toggle/performance-toggle.component.mjs +0 -29
  96. package/dist/esm2022/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +0 -165
  97. package/dist/esm2022/components/ui-menu/share-link/share-link.component.mjs +0 -28
  98. package/dist/esm2022/components/ui-menu/ss-mode/ss-mode.component.mjs +0 -46
  99. package/dist/esm2022/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +0 -94
  100. package/dist/esm2022/components/ui-menu/tree-menu/tree-menu.component.mjs +0 -78
  101. package/dist/esm2022/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +0 -34
  102. package/dist/esm2022/components/ui-menu/ui-menu.component.mjs +0 -54
  103. package/dist/esm2022/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.mjs +0 -247
  104. package/dist/esm2022/components/ui-menu/view-options/view-options.component.mjs +0 -170
  105. package/dist/esm2022/components/ui-menu/vr-toggle/vr-toggle.component.mjs +0 -52
  106. package/dist/esm2022/components/ui-menu/zoom-controls/zoom-controls.component.mjs +0 -79
  107. package/dist/esm2022/phoenix-ui-components.mjs +0 -5
  108. package/dist/esm2022/public_api.mjs +0 -11
  109. package/dist/esm2022/services/error-message-service.mjs +0 -30
  110. package/dist/esm2022/services/event-display.service.mjs +0 -23
  111. package/dist/esm2022/services/extras/attribute.pipe.mjs +0 -33
  112. package/dist/esm2022/services/extras/event-data-import.mjs +0 -21
  113. package/dist/esm2022/services/file-loader.service.mjs +0 -93
  114. package/dist/esm2022/services/global-error-handler.mjs +0 -30
  115. package/dist/esm2022/services/index.mjs +0 -4
  116. package/dist/public_api.d.ts +0 -10
  117. package/dist/services/error-message-service.d.ts +0 -17
  118. package/dist/services/event-display.service.d.ts +0 -13
  119. package/dist/services/extras/attribute.pipe.d.ts +0 -16
  120. package/dist/services/extras/event-data-import.d.ts +0 -15
  121. package/dist/services/file-loader.service.d.ts +0 -17
  122. package/dist/services/global-error-handler.d.ts +0 -20
  123. package/dist/services/index.d.ts +0 -3
@@ -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/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.html","../../lib/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.ts","../../lib/components/ui-menu/geometry-browser/geometry-browser.component.ts","../../lib/components/ui-menu/geometry-browser/geometry-browser.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/cartesian-grid-config/cartesian-grid-config.component.ts","../../lib/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.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/services/file-loader.service.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, type 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): void {\n if (value) this.onChange.emit(value);\n }\n\n toggleMinCut(change: MatCheckboxChange): void {\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): void {\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 [(ngModel)]=\"config.enableMin\"\n (change)=\"config.setEnableMin($event.checked)\"\n ></mat-checkbox>\n <mat-checkbox\n [(ngModel)]=\"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 [(ngModel)]=\"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 [(ngModel)]=\"config.highValue\"\n (input)=\"\n config.highValue = $event.target.value;\n config.onChange(config)\n \"\n step=\"config.step\"\n />\n </div>\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 { type AnimationPreset, SceneManager } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { Mesh } from 'three';\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 as Mesh, 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 type 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 value=\"{{ object.labelText }}\"\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, type 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', 'labelText'].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 enableHighlighting() {\n this.eventDisplay.enableHighlighting();\n }\n\n disableHighlighting() {\n this.eventDisplay.disableHighlighting();\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 {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} 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 if (this.showObjectsInfo) {\n this.overlayWindow.instance.enableHighlighting();\n } else {\n this.overlayWindow.instance.disableHighlighting();\n }\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","<!-- Show objects -->\n<app-overlay\n overlayTitle=\"Browse Display\"\n icon=\"info\"\n [resizable]=\"true\"\n [active]=\"browseDetectorParts\"\n>\n <!-- Using ngIf to remove it from DOM since this panel requires heavy computing -->\n <div *ngIf=\"browseDetectorParts\" class=\"collectionsInfo m-2\">\n <div\n class=\"collectionSelector mb-2 d-flex align-items-center\"\n *ngIf=\"children != null\"\n >\n <div class=\"d-flex align-items-center\">\n <span>Choose a collection: </span>\n <div class=\"eventSelector\">\n <select\n id=\"detectorCollection\"\n name=\"detectorCollection\"\n (change)=\"changeCollection($event.target.value)\"\n >\n <option value=\"\" selected disabled hidden>Choose Collection</option>\n <option *ngFor=\"let child of children\" [value]=\"child.name\">\n {{ child.name }}\n </option>\n </select>\n </div>\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 </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 }\"\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 </tr>\n </tbody>\n </table>\n <p class=\"emptyBox\" *ngIf=\"!children\">\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, type OnInit, Input } from '@angular/core';\nimport { ActiveVariable } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { Object3D, type Object3DEventMap } from 'three';\n\n@Component({\n selector: 'app-geometry-browser-overlay',\n templateUrl: './geometry-browser-overlay.component.html',\n styleUrls: ['./geometry-browser-overlay.component.scss'],\n})\nexport class GeometryBrowserOverlayComponent implements OnInit {\n @Input() browseDetectorParts: boolean;\n selectedCollection: string;\n showingCollection: any;\n activeObject: ActiveVariable<string>;\n children: Object3D<Object3DEventMap>[];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.children = this.eventDisplay\n .getThreeManager()\n .getSceneManager()\n .getGeometries().children;\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 this.selectedCollection = selectedCollection;\n for (const child of this.children) {\n if (child.name === this.selectedCollection) {\n this.showingCollection = child.children;\n break;\n }\n }\n }\n\n lookAtObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.lookAtObject(uuid, true);\n }\n }\n\n highlightObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.highlightObject(uuid, true);\n }\n }\n\n enableHighlighting() {\n this.eventDisplay.enableHighlighting();\n }\n\n disableHighlighting() {\n this.eventDisplay.disableHighlighting();\n }\n}\n","import { GeometryBrowserOverlayComponent } from './geometry-browser-overlay/geometry-browser-overlay.component';\nimport {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'app-geometry-browser',\n templateUrl: './geometry-browser.component.html',\n styleUrls: ['./geometry-browser.component.scss'],\n})\nexport class GeometryBrowserComponent implements OnInit, OnDestroy {\n browseDetectorParts: boolean = false;\n overlayWindow: ComponentRef<GeometryBrowserOverlayComponent>;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(GeometryBrowserOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.browseDetectorParts = this.browseDetectorParts;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.browseDetectorParts = !this.browseDetectorParts;\n this.overlayWindow.instance.browseDetectorParts = this.browseDetectorParts;\n // eslint-disable-next-line\n this.browseDetectorParts\n ? this.overlayWindow.instance.enableHighlighting()\n : this.overlayWindow.instance.disableHighlighting();\n }\n}\n","<app-menu-toggle\n tooltip=\"Browse geometry\"\n icon=\"info\"\n [active]=\"browseDetectorParts\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","import { Component, type 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, type 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, type 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, type 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 {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} 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,.glb,.gltf.zip,.glb.zip\"\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/.glb\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 { type 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 type 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 = this.getJiveXMLLoader();\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 private getJiveXMLLoader(): JiveXMLLoader {\n if (\n this.eventDisplay?.configuration?.eventDataLoader instanceof JiveXMLLoader\n ) {\n return this.eventDisplay.configuration.eventDataLoader as JiveXMLLoader;\n } else {\n return new JiveXMLLoader();\n }\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 = (file: File) => {\n this.eventDisplay.parseGLTFGeometry(file);\n };\n if (this.isFileOfExtension(files[0].name, 'gltf,glb,gltf.zip,glb.zip')) {\n callback(files[0]);\n }\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].name, '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].name, 'zip,json.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 = this.getJiveXMLLoader();\n\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 extensions: string,\n callback: (result: string, fileName?: string) => void,\n ) {\n const reader = new FileReader();\n\n if (this.isFileOfExtension(file.name, extensions)) {\n reader.onload = () => {\n callback(reader.result.toString(), file.name.split('.')[0]);\n };\n reader.readAsText(file);\n }\n this.onClose();\n }\n\n private isFileOfExtension(fileName: string, extensions: string): boolean {\n if (\n extensions.split(',').includes(fileName.slice(fileName.indexOf('.') + 1))\n ) {\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 type 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, type 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, type 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 {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} 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, type 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 {\n Component,\n ComponentRef,\n type OnDestroy,\n type OnInit,\n} 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, type OnInit } from '@angular/core';\nimport { type 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","import { Component, Inject, type OnInit } from '@angular/core';\nimport { Vector3 } from 'three';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-cartesian-grid-config',\n templateUrl: './cartesian-grid-config.component.html',\n styleUrls: ['./cartesian-grid-config.component.scss'],\n})\nexport class CartesianGridConfigComponent implements OnInit {\n cartesianPos = new Vector3();\n originChangedSub: Subscription = null;\n stopShiftingSub: Subscription = null;\n showCartesianGrid: boolean;\n gridConfig: {\n showXY: boolean;\n showYZ: boolean;\n showZX: boolean;\n xDistance: number;\n yDistance: number;\n zDistance: number;\n sparsity: number;\n };\n scale: number;\n shiftGrid: boolean;\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: { gridVisible: boolean; scale: number },\n private dialogRef: MatDialogRef<CartesianGridConfigComponent>,\n private eventDisplay: EventDisplayService,\n ) {}\n\n ngOnInit(): void {\n this.shiftGrid = this.eventDisplay.getThreeManager().shiftGrid;\n this.showCartesianGrid = this.data.gridVisible;\n this.scale = this.data.scale;\n this.gridConfig = this.eventDisplay.getUIManager().getCartesianGridConfig();\n this.cartesianPos = this.eventDisplay.getThreeManager().origin;\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n onSave(x, y, z) {\n this.shiftCartesianGridByValues(new Vector3(x * 10, y * 10, z * 10));\n }\n\n shiftCartesianGridByPointer() {\n this.shiftGrid = true;\n this.eventDisplay.getUIManager().shiftCartesianGridByPointer();\n this.originChangedSub = this.eventDisplay\n .getThreeManager()\n .originChanged.subscribe((intersect) => {\n this.translateGrid(intersect);\n });\n this.stopShiftingSub = this.eventDisplay\n .getThreeManager()\n .stopShifting.subscribe((stop) => {\n if (stop) {\n this.originChangedSub.unsubscribe();\n this.stopShiftingSub.unsubscribe();\n }\n });\n this.onClose();\n }\n\n shiftCartesianGridByValues(position: Vector3) {\n this.translateGrid(position);\n this.eventDisplay.getThreeManager().originChangedEmit(position);\n }\n\n translateGrid(position: Vector3) {\n const finalPos = position;\n const initialPos = this.cartesianPos;\n const difference = new Vector3(\n finalPos.x - initialPos.x,\n finalPos.y - initialPos.y,\n finalPos.z - initialPos.z,\n );\n this.eventDisplay.getUIManager().translateCartesianGrid(difference.clone());\n this.eventDisplay\n .getUIManager()\n .translateCartesianLabels(difference.clone());\n this.cartesianPos = finalPos;\n }\n\n addXYPlanes(zDistance: Event) {\n this.gridConfig.zDistance = Number(\n (zDistance.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n addYZPlanes(xDistance: Event) {\n this.gridConfig.xDistance = Number(\n (xDistance.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n addZXPlanes(yDistance: Event) {\n this.gridConfig.yDistance = Number(\n (yDistance.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n changeSparsity(sparsity: Event) {\n this.gridConfig.sparsity = Number(\n (sparsity.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n showXYPlanes(change: MatCheckboxChange) {\n this.gridConfig.showXY = change.checked;\n this.callSetShowCartesianGrid();\n }\n\n showYZPlanes(change: MatCheckboxChange) {\n this.gridConfig.showYZ = change.checked;\n this.callSetShowCartesianGrid();\n }\n\n showZXPlanes(change: MatCheckboxChange) {\n this.gridConfig.showZX = change.checked;\n this.callSetShowCartesianGrid();\n }\n\n callSetShowCartesianGrid() {\n this.eventDisplay\n .getUIManager()\n .setShowCartesianGrid(\n this.showCartesianGrid,\n this.scale,\n this.gridConfig,\n );\n }\n\n // helper function to calculate number of planes\n calcPlanes(dis: number) {\n return Math.max(\n 0,\n 1 + 2 * Math.floor((dis * 10) / (this.scale * this.gridConfig.sparsity)),\n );\n }\n}\n","<div>\n <h1 mat-dialog-title>Customize Cartesian Grid</h1>\n\n <div class=\"container dialog-content\" mat-dialog-content>\n <div class=\"item-config-single\">\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"xPos\">x (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin X\"\n [value]=\"cartesianPos.x / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"xPos\"\n id=\"xPos\"\n #xPos\n />\n </div>\n\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"yPos\">y (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin Y\"\n [value]=\"cartesianPos.y / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"yPos\"\n id=\"yPos\"\n #yPos\n />\n </div>\n\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"zPos\">z (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin Z\"\n [value]=\"cartesianPos.z / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"zPos\"\n id=\"zPos\"\n #zPos\n />\n </div>\n\n <button\n mat-stroked-button\n (click)=\"onSave(xPos.value, yPos.value, zPos.value)\"\n [disabled]=\"shiftGrid\"\n >\n Save\n </button>\n\n <button\n style=\"margin: 0.5rem 0\"\n mat-menu-item\n class=\"explain-button\"\n [disabled]=\"shiftGrid\"\n (click)=\"$event.stopPropagation(); shiftCartesianGridByPointer()\"\n >\n Shift Cartesian Grid on click\n <p class=\"explain-text\">\n Click on a point to shift the grid. Keep clicking at various points to\n continue shifting. Right click to stop.\n </p>\n </button>\n </div>\n\n <div>\n <button\n mat-menu-item\n (click)=\"showXYPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showXYPlanesCheckbox\n [(ngModel)]=\"gridConfig.showXY\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showXYPlanes($event)\"\n >Show XY Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"xyPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #xyPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.zDistance\"\n (input)=\"addXYPlanes($event)\"\n />\n </mat-slider>\n XY Plane ({{ calcPlanes(gridConfig.zDistance) }})\n </button>\n <button\n mat-menu-item\n (click)=\"showYZPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showYZPlanesCheckbox\n [(ngModel)]=\"gridConfig.showYZ\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showYZPlanes($event)\"\n >Show YZ Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"yzPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #yzPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.xDistance\"\n (input)=\"addYZPlanes($event)\"\n />\n </mat-slider>\n YZ Plane ({{ calcPlanes(gridConfig.xDistance) }})\n </button>\n <button\n mat-menu-item\n (click)=\"showZXPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showZXPlanesCheckbox\n [(ngModel)]=\"gridConfig.showZX\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showZXPlanes($event)\"\n >Show ZX Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"zxPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #zxPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.yDistance\"\n (input)=\"addZXPlanes($event)\"\n />\n </mat-slider>\n ZX Plane ({{ calcPlanes(gridConfig.yDistance) }})\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"sparsitySlider.focus()\">\n <mat-slider min=\"1\" max=\"5\" step=\"1\" thumbLabel>\n <input\n #sparsitySlider\n matSliderThumb\n [value]=\"gridConfig.sparsity\"\n (input)=\"changeSparsity($event)\"\n />\n </mat-slider>\n Sparsity ({{ gridConfig.sparsity }})\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","<mat-menu #viewOptions>\n <button mat-menu-item>\n <mat-checkbox\n #showCartesianGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setCartesianGrid($event)\"\n >Show Cartesian Grid\n </mat-checkbox>\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"openCartesianGridConfigDialog()\"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showEtaPhiGridCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showEtaPhiGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setEtaPhiGrid($event)\"\n >Show Eta Phi 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 (click)=\"showLabelsCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showLabelsCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"showLabels($event)\"\n >Show Labels\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showMouse3DPointsCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showMouse3DPointsCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"show3DMousePoints($event)\"\n >Show 3D Coordinates\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n show3DDistanceCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #show3DDistanceCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleShowDistance($event)\"\n >Show 3D Distance\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 and Tools\"\n icon=\"views\"\n [active]=\"false\"\n>\n</app-menu-toggle>\n","import {\n Component,\n type OnInit,\n type OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { PresetView } from 'phoenix-event-display';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CartesianGridConfigComponent } from './cartesian-grid-config/cartesian-grid-config.component';\nimport { Subscription } from 'rxjs';\nimport { Vector3 } from 'three';\nimport { MatMenuTrigger } from '@angular/material/menu';\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, OnDestroy {\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n showCartesianGrid: boolean = false;\n scale: number = 3000;\n views: PresetView[];\n show3DPoints: boolean;\n origin: Vector3 = new Vector3(0, 0, 0);\n sub: Subscription;\n\n constructor(\n private eventDisplay: EventDisplayService,\n private dialog: MatDialog,\n ) {}\n\n ngOnInit(): void {\n this.views = this.eventDisplay.getUIManager().getPresetViews();\n this.sub = this.eventDisplay\n .getThreeManager()\n .originChanged.subscribe((intersect) => {\n this.origin = intersect;\n });\n }\n\n openCartesianGridConfigDialog() {\n this.dialog.open(CartesianGridConfigComponent, {\n data: {\n gridVisible: this.showCartesianGrid,\n scale: this.scale,\n },\n position: {\n bottom: '5rem',\n left: '3rem',\n },\n });\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 setEtaPhiGrid(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setShowEtaPhiGrid(value);\n }\n\n setCartesianGrid(change: MatCheckboxChange) {\n this.showCartesianGrid = change.checked;\n this.eventDisplay\n .getUIManager()\n .setShowCartesianGrid(this.showCartesianGrid, this.scale);\n }\n\n showLabels(change: MatCheckboxChange) {\n this.eventDisplay.getUIManager().showLabels(change.checked);\n }\n\n show3DMousePoints(change: MatCheckboxChange) {\n this.show3DPoints = change.checked;\n this.eventDisplay.getUIManager().show3DMousePoints(this.show3DPoints);\n }\n\n toggleShowDistance(change: MatCheckboxChange) {\n this.trigger.closeMenu();\n this.eventDisplay.getUIManager().show3DDistance(change.checked);\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\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 { type 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 [class.badSize]=\"disabled\"\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 [class.badSize]=\"disabled\"\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\n mat-menu-item\n [disabled]=\"disabled\"\n class=\"make-picture\"\n (click)=\"makePicture()\"\n >\n {{ buttonText() }}\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 {\n Component,\n Input,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\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 disabled: boolean = false;\n constructor(private eventDisplay: EventDisplayService) {}\n ngOnInit() {}\n private checkSize() {\n return this.eventDisplay\n .getThreeManager()\n .checkScreenShotCanvasSize(this.width, this.height, this.fitting);\n }\n setWidth(value) {\n this.width = value;\n this.disabled = !this.checkSize();\n }\n setHeight(value) {\n this.height = value;\n this.disabled = !this.checkSize();\n }\n buttonText() {\n return this.disabled ? 'Size too large' : 'Create picture';\n }\n makePicture() {\n this.eventDisplay\n .getThreeManager()\n .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 {\n type AfterViewInit,\n Component,\n ElementRef,\n ViewChild,\n} 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 type 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 geometry browser -->\n <app-geometry-browser></app-geometry-browser>\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, node.nocache)\"\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 type OnChanges,\n Output,\n type 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 nocache: boolean;\n children: { [key: string]: FileNode };\n\n constructor(name?: string) {\n this.name = name;\n this.nocache = false;\n }\n}\nexport class FileEvent {\n url: string;\n nocache: boolean;\n constructor(url: string, nocache: boolean) {\n this.url = url;\n this.nocache = nocache;\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<FileEvent> =\n new EventEmitter<FileEvent>();\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, nocache: boolean) {\n this.onFileSelect.emit(new FileEvent(url, nocache));\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 { Injectable } from '@angular/core';\nimport JSZip from 'jszip';\nimport { EventDisplayService } from './event-display.service';\nimport { JiveXMLLoader } from 'phoenix-event-display';\n\n/**\n * Service makeing file loading easier\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FileLoaderService {\n private lastEventsURL: string = '';\n private lastEventsOptions: boolean = false;\n\n 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 // returns whether an error was found\n makeRequest(\n urlPath: string,\n responseType: 'json' | 'text' | 'blob',\n onData: (data: any) => void,\n options: any = {},\n ) {\n fetch(urlPath, options)\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 })\n .catch((error) => {\n console.error(error);\n return true;\n });\n return false;\n }\n\n loadJSONEvent(eventData: string, eventDisplay: EventDisplayService) {\n eventDisplay.parsePhoenixEvents(JSON.parse(eventData));\n }\n\n loadJiveXMLEvent(eventData: string, eventDisplay: EventDisplayService) {\n let jiveXMLLoader = undefined;\n\n if (eventDisplay.configuration.eventDataLoader instanceof JiveXMLLoader) {\n jiveXMLLoader = eventDisplay.configuration\n .eventDataLoader as JiveXMLLoader;\n } else {\n jiveXMLLoader = new JiveXMLLoader();\n }\n\n jiveXMLLoader.process(eventData);\n const processedEventData = jiveXMLLoader.getEventData();\n eventDisplay.buildEventDataFromJSON(processedEventData);\n }\n\n loadEvent(\n file: string,\n eventDisplay: EventDisplayService,\n options: any = {},\n ) {\n this.lastEventsURL = file;\n this.lastEventsOptions = options;\n const isZip = file.split('.').pop() === 'zip';\n const rawfile = isZip ? file.substring(0, file.length - 4) : file;\n return this.makeRequest(\n file,\n isZip ? 'blob' : 'text',\n (eventData) => {\n switch (rawfile.split('.').pop()) {\n case 'xml':\n this.loadJiveXMLEvent(eventData, eventDisplay);\n break;\n case 'json':\n this.loadJSONEvent(eventData, eventDisplay);\n break;\n }\n },\n options,\n );\n }\n\n reloadLastEvents(eventDisplay: EventDisplayService) {\n if (this.lastEventsURL.length > 0) {\n this.loadEvent(this.lastEventsURL, eventDisplay, this.lastEventsOptions);\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 opacity=\"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 { EventDisplayService } from '../../../../services/event-display.service';\nimport {\n FileNode,\n FileEvent,\n} from '../../../file-explorer/file-explorer.component';\nimport { FileLoaderService } from '../../../../services/file-loader.service';\nimport { type EventDataExplorerDialogData } from '../event-data-explorer.component';\n\nconst supportFileTypes = ['json', 'xml'];\n\nexport type FileResponse = {\n name: string;\n url: string;\n nocache: boolean;\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 fileLoader: FileLoaderService,\n private dialogRef: MatDialogRef<EventDataExplorerDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogData: EventDataExplorerDialogData,\n ) {\n // Event data\n fileLoader.makeRequest(\n this.dialogData.apiURL,\n 'json',\n (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\n // Config\n fileLoader.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: FileEvent) {\n this.loading = true;\n this.error = this.fileLoader.loadEvent(\n file.url,\n this.eventDisplay,\n file.nocache ? { cache: 'no-cache' } : {},\n );\n this.loading = false;\n if (!this.error) this.onClose();\n }\n\n loadConfig(file: FileEvent) {\n this.loading = true;\n this.error = this.fileLoader.makeRequest(\n `${this.dialogData.apiURL}?type=config&f=${file.url}`,\n 'text',\n (config) => {\n const stateManager = this.eventDisplay.getStateManager();\n stateManager.loadStateFromJSON(JSON.parse(config));\n this.onClose();\n },\n );\n this.loading = false;\n }\n\n // Helpers\n onClose() {\n this.dialogRef.close();\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.nocache = filePath.nocache;\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, type OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { FileLoaderService } from '../../../services/file-loader.service';\n\n@Component({\n selector: 'app-cycle-events',\n templateUrl: './cycle-events.component.html',\n styleUrls: ['./cycle-events.component.scss'],\n})\nexport class CycleEventsComponent implements OnInit {\n @Input() interval: number;\n @Input() tooltip: string;\n @Input() icon: string;\n\n // There are actually 3 states we go through when clicking this component :\n // - not active : so we are not cycling throught events\n // - active and not reloading : cycling over the events stored in events\n // - active and reloading : cycling and reloading the events when reaching the end\n // Last state is useful e.g. for live feed of events\n active: boolean = false;\n reloading: boolean = false;\n\n private intervalId: NodeJS.Timeout;\n\n private events: string[];\n\n constructor(\n private eventDisplay: EventDisplayService,\n private fileLoader: FileLoaderService,\n ) {}\n\n ngOnInit() {\n this.eventDisplay.listenToLoadedEventsChange((events) => {\n this.events = events;\n if (this.active) {\n // restart cycling from first event\n clearInterval(this.intervalId);\n this.startCycleInterval();\n }\n });\n }\n\n toggleCycle() {\n this.reloading = this.active && !this.reloading;\n this.active = !this.active || this.reloading;\n console.log(this.active, this.reloading);\n clearInterval(this.intervalId);\n if (this.active) {\n this.startCycleInterval();\n }\n }\n\n private startCycleInterval(startIndex: number = 0) {\n // load immediately first event\n let index = startIndex;\n this.eventDisplay.loadEvent(this.events[index]);\n index = index + 1 >= this.events.length ? -1 : index + 1;\n // launch automatic cycling\n this.intervalId = setInterval(() => {\n // special value -1 is used to denote wrapping of the current set of events\n if (index == -1) {\n if (this.reloading) {\n // reload the current events, ignoring caches\n this.fileLoader.reloadLastEvents(this.eventDisplay);\n }\n // put back index to 0 to start with first event anyway\n index = 0;\n }\n this.eventDisplay.loadEvent(this.events[index]);\n index = index + 1 >= this.events.length ? -1 : index + 1;\n }, this.interval);\n }\n}\n","<button\n class=\"cycle-events\"\n matTooltip=\"Cycle (off/on/on+reload)\"\n matTooltipPosition=\"above\"\n matTooltipTouchGestures=\"off\"\n (click)=\"toggleCycle()\"\n>\n <svg\n class=\"cycle-events-icon\"\n [ngClass]=\"{ 'active-icon': active, 'reload-icon': reloading }\"\n >\n <use href=\"assets/icons/cycle-events.svg#cycle-events\"></use>\n </svg>\n</button>\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, type 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, ReactiveFormsModule } from '@angular/forms';\nimport { MatRadioModule } from '@angular/material/radio';\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 { 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 GeometryBrowserComponent,\n GeometryBrowserOverlayComponent,\n CollectionsInfoOverlayComponent,\n IoOptionsComponent,\n IOOptionsDialogComponent,\n OverlayViewComponent,\n ObjectSelectionComponent,\n ObjectSelectionOverlayComponent,\n EventSelectorComponent,\n ObjectClippingComponent,\n DarkThemeComponent,\n AutoRotateComponent,\n CartesianGridConfigComponent,\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 GeometryBrowserComponent,\n GeometryBrowserOverlayComponent,\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 CartesianGridConfigComponent,\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 ReactiveFormsModule,\n MatMenuModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatCheckboxModule,\n MatIconModule,\n CdkTreeModule,\n MatTabsModule,\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":["_c2","_c3","_c1","_c4","i6.ConfigSliderComponent","i1.EventDisplayService","_c0","i1","i2","i2.EventDisplayService","i2.FileLoaderService","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/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.html","../../lib/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.ts","../../lib/components/ui-menu/geometry-browser/geometry-browser.component.ts","../../lib/components/ui-menu/geometry-browser/geometry-browser.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/cartesian-grid-config/cartesian-grid-config.component.ts","../../lib/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.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/event-browser/event-browser-overlay/event-browser-overlay.component.html","../../lib/components/ui-menu/event-browser/event-browser-overlay/event-browser-overlay.component.ts","../../lib/components/ui-menu/event-browser/event-browser.component.ts","../../lib/components/ui-menu/event-browser/event-browser.component.html","../../lib/components/ui-menu/eta-phi-panel/eta-phi-panel-overlay/eta-phi-panel-overlay.component.ts","../../lib/components/ui-menu/eta-phi-panel/eta-phi-panel-overlay/eta-phi-panel-overlay.component.html","../../lib/components/ui-menu/eta-phi-panel/eta-phi-panel.component.ts","../../lib/components/ui-menu/eta-phi-panel/eta-phi-panel.component.html","../../lib/components/ui-menu/ui-menu.component.html","../../lib/components/ui-menu/ui-menu.component.ts","../../lib/components/file-explorer/file-explorer.component.html","../../lib/components/file-explorer/file-explorer.component.ts","../../lib/services/file-loader.service.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/public_api.ts","../../lib/phoenix-ui-components.ts"],"sourcesContent":["import { Component, type OnInit } from '@angular/core';\n\n@Component({\n standalone: false, // this is now required when using NgModule\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 standalone: false,\n\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): void {\n if (value) this.onChange.emit(value);\n }\n\n toggleMinCut(change: MatCheckboxChange): void {\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): void {\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 [(ngModel)]=\"config.enableMin\"\n (change)=\"config.setEnableMin($event.checked)\"\n ></mat-checkbox>\n <mat-checkbox\n [(ngModel)]=\"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 [(ngModel)]=\"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 [(ngModel)]=\"config.highValue\"\n (input)=\"\n config.highValue = $event.target.value;\n config.onChange(config)\n \"\n step=\"config.step\"\n />\n </div>\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 { type AnimationPreset, SceneManager } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { Mesh } from 'three';\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 standalone: false,\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 as Mesh, opacity);\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n standalone: false,\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 standalone: false,\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 ContentChild,\n Input,\n ViewChild,\n type AfterViewInit,\n type OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ElementRef } from '@angular/core';\nimport { ResizeSensor } from 'css-element-queries';\n\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n/**\n * Component for overlay panel.\n */\n@Component({\n standalone: false,\n selector: 'app-overlay',\n templateUrl: './overlay.component.html',\n styleUrls: ['./overlay.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OverlayComponent implements AfterViewInit, OnDestroy {\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 /** Bound resize handler for cleanup. */\n private resizeHandler = () => this.resetHandlePosition();\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\n /** reference for the overlay. picked from ng-content */\n @ContentChild('overlayWindow') overlayWindow!: ElementRef<HTMLCanvasElement>;\n\n /** Minimum resizable width. */\n private MIN_RES_WIDTH: number = 300;\n /** Minimum resizable height */\n private MIN_RES_HEIGHT: number = 100;\n\n constructor(private eventDisplay: EventDisplayService) {}\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', this.resizeHandler);\n }\n }\n\n /**\n * Clean up event listeners when the component is destroyed.\n */\n ngOnDestroy() {\n window.removeEventListener('resize', this.resizeHandler);\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 let 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 if (this.keepAspectRatioFixed) {\n height = width / this.aspectRatio;\n }\n\n const oldratioW = width / this.overlayWindow.nativeElement.width;\n const oldratioH = height / this.overlayWindow.nativeElement.height;\n this.eventDisplay\n .getThreeManager()\n .getOverlayRenderer()\n .setSize(width, height);\n this.eventDisplay\n .getThreeManager()\n .syncOverlayViewPort(oldratioW, oldratioH);\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=\"eventData\"\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 <optgroup *ngFor=\"let group of collections\" [label]=\"group.type\">\n <option\n *ngFor=\"let collection of group.collections\"\n [value]=\"collection\"\n >\n {{ collection }}\n </option>\n </optgroup>\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 data-label=\"No.\">#{{ i }}</td>\n <td data-label=\"Selection\">\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 data-label=\"Label\">\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 value=\"{{ object.labelText }}\"\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\n *ngFor=\"let column of collectionColumns\"\n [attr.data-label]=\"getPrettySymbol(column)\"\n >\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 {\n Component,\n ElementRef,\n Input,\n type OnInit,\n type OnDestroy,\n} from '@angular/core';\nimport {\n ActiveVariable,\n PrettySymbols,\n SceneManager,\n} from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n standalone: false,\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, OnDestroy {\n @Input() showObjectsInfo: boolean;\n /** Columns to exclude from the collection info table. */\n @Input() excludedColumns: string[] = [\n 'uuid',\n 'hits',\n 'isCut',\n 'labelText',\n '_instanceId',\n '_position',\n ];\n hideInvisible: boolean;\n collections: { type: string; collections: string[] }[];\n selectedCollection: string;\n showingCollection: any;\n collectionColumns: string[];\n getPrettySymbol = PrettySymbols.getPrettySymbol;\n activeObject: ActiveVariable<string>;\n private unsubscribes: (() => void)[] = [];\n\n constructor(\n private elementRef: ElementRef,\n private eventDisplay: EventDisplayService,\n ) {}\n\n ngOnInit() {\n this.unsubscribes.push(\n this.eventDisplay.listenToDisplayedEventChange(() => {\n const collectionsGrouped: { [key: string]: string[] } =\n this.eventDisplay.getCollections();\n this.collections = Object.entries(collectionsGrouped).map(\n ([type, collections]: [string, string[]]) => ({\n type,\n collections,\n }),\n );\n }),\n );\n\n this.activeObject = this.eventDisplay.getActiveObjectId();\n this.unsubscribes.push(\n this.activeObject.onUpdate((value: string) => {\n if (document.getElementById(value)) {\n document.getElementById(value).scrollIntoView(false);\n }\n }),\n );\n }\n\n ngOnDestroy() {\n this.unsubscribes.forEach((unsubscribe) => unsubscribe?.());\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: this.isObjectCut(object, eventDataGroup),\n }));\n\n this.collectionColumns = Object.keys(this.showingCollection[0]).filter(\n (column) => !this.excludedColumns.includes(column),\n );\n }\n\n /**\n * Check whether an object is hidden by filtering.\n * For InstancedMesh CaloCells, checks the instance matrix for zero-scale.\n */\n private isObjectCut(object: any, eventDataGroup: any): boolean {\n const sceneObject = eventDataGroup?.getObjectByProperty(\n 'uuid',\n object.uuid,\n );\n if (!sceneObject) return false;\n\n // InstancedMesh: check if instance matrix is zero-scale\n if (\n sceneObject.userData?._isInstancedCaloCells &&\n object._instanceId !== undefined\n ) {\n if (!sceneObject.userData._originalMatrices) {\n return false; // No filtering applied yet — all visible\n }\n const arr = sceneObject.instanceMatrix.array;\n const off = object._instanceId * 16;\n // Zero-scale matrix has diagonal elements [0],[5],[10] = 0\n return arr[off] === 0 && arr[off + 5] === 0 && arr[off + 10] === 0;\n }\n\n return !sceneObject.visible;\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 enableHighlighting() {\n this.eventDisplay.enableHighlighting();\n }\n\n disableHighlighting() {\n this.eventDisplay.disableHighlighting();\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 {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} 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 standalone: false, // this is now required when using NgModule\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 if (this.showObjectsInfo) {\n this.overlayWindow.instance.enableHighlighting();\n } else {\n this.overlayWindow.instance.disableHighlighting();\n }\n }\n}\n","<app-menu-toggle\n tooltip=\"Event data collections info\"\n icon=\"eventData\"\n [active]=\"showObjectsInfo\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","<!-- Show objects -->\n<app-overlay\n overlayTitle=\"Browse Display\"\n icon=\"info\"\n [resizable]=\"true\"\n [active]=\"browseDetectorParts\"\n>\n <!-- Using ngIf to remove it from DOM since this panel requires heavy computing -->\n <div *ngIf=\"browseDetectorParts\" class=\"collectionsInfo m-2\">\n <div\n class=\"collectionSelector mb-2 d-flex align-items-center\"\n *ngIf=\"children != null\"\n >\n <div class=\"d-flex align-items-center\">\n <span>Choose a collection: </span>\n <div class=\"eventSelector\">\n <select\n id=\"detectorCollection\"\n name=\"detectorCollection\"\n (change)=\"changeCollection($event.target.value)\"\n >\n <option value=\"\" selected disabled hidden>Choose Collection</option>\n <option *ngFor=\"let child of children\" [value]=\"child.name\">\n {{ child.name }}\n </option>\n </select>\n </div>\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 </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 }\"\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 </tr>\n </tbody>\n </table>\n <p class=\"emptyBox\" *ngIf=\"!children\">\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, type OnInit, type OnDestroy, Input } from '@angular/core';\nimport { ActiveVariable } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { Object3D, type Object3DEventMap } from 'three';\n\n@Component({\n standalone: false,\n selector: 'app-geometry-browser-overlay',\n templateUrl: './geometry-browser-overlay.component.html',\n styleUrls: ['./geometry-browser-overlay.component.scss'],\n})\nexport class GeometryBrowserOverlayComponent implements OnInit, OnDestroy {\n @Input() browseDetectorParts: boolean;\n selectedCollection: string;\n showingCollection: any;\n activeObject: ActiveVariable<string>;\n children: Object3D<Object3DEventMap>[];\n private unsubscribe: () => void;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.children = this.eventDisplay\n .getThreeManager()\n .getSceneManager()\n .getGeometries().children;\n\n this.activeObject = this.eventDisplay.getActiveObjectId();\n this.unsubscribe = this.activeObject.onUpdate((value: string) => {\n if (document.getElementById(value)) {\n document.getElementById(value).scrollIntoView(false);\n }\n });\n }\n\n ngOnDestroy() {\n this.unsubscribe?.();\n }\n\n changeCollection(selectedCollection: string) {\n this.selectedCollection = selectedCollection;\n for (const child of this.children) {\n if (child.name === this.selectedCollection) {\n this.showingCollection = child.children;\n break;\n }\n }\n }\n\n lookAtObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.lookAtObject(uuid, true);\n }\n }\n\n highlightObject(uuid: string) {\n if (uuid) {\n this.activeObject.update(uuid);\n this.eventDisplay.highlightObject(uuid, true);\n }\n }\n\n enableHighlighting() {\n this.eventDisplay.enableHighlighting();\n }\n\n disableHighlighting() {\n this.eventDisplay.disableHighlighting();\n }\n}\n","import { GeometryBrowserOverlayComponent } from './geometry-browser-overlay/geometry-browser-overlay.component';\nimport {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\n@Component({\n standalone: false,\n selector: 'app-geometry-browser',\n templateUrl: './geometry-browser.component.html',\n styleUrls: ['./geometry-browser.component.scss'],\n})\nexport class GeometryBrowserComponent implements OnInit, OnDestroy {\n browseDetectorParts: boolean = false;\n overlayWindow: ComponentRef<GeometryBrowserOverlayComponent>;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(GeometryBrowserOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.browseDetectorParts = this.browseDetectorParts;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.browseDetectorParts = !this.browseDetectorParts;\n this.overlayWindow.instance.browseDetectorParts = this.browseDetectorParts;\n // eslint-disable-next-line\n this.browseDetectorParts\n ? this.overlayWindow.instance.enableHighlighting()\n : this.overlayWindow.instance.disableHighlighting();\n }\n}\n","<app-menu-toggle\n tooltip=\"Browse geometry\"\n icon=\"info\"\n [active]=\"browseDetectorParts\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","import { Component, type OnInit } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n standalone: false,\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, type OnInit, type OnDestroy } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n standalone: false,\n selector: 'app-event-selector',\n templateUrl: './event-selector.component.html',\n styleUrls: ['./event-selector.component.scss'],\n})\nexport class EventSelectorComponent implements OnInit, OnDestroy {\n // Array containing the keys of the multiple loaded events\n events: string[];\n private unsubscribe: () => void;\n\n /** Prevents callbacks on destroyed component */\n private isDestroyed = false;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n this.unsubscribe = this.eventDisplay.listenToLoadedEventsChange(\n (events) => {\n if (!this.isDestroyed) {\n this.events = events;\n }\n },\n );\n }\n\n ngOnDestroy() {\n this.isDestroyed = true;\n this.unsubscribe?.();\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, type OnInit, type OnDestroy, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n standalone: false,\n selector: 'app-experiment-info',\n templateUrl: './experiment-info.component.html',\n styleUrls: ['./experiment-info.component.scss'],\n})\nexport class ExperimentInfoComponent implements OnInit, OnDestroy {\n experimentInfo: any[];\n @Input() url: string;\n @Input() logo: string;\n @Input() tagline: string;\n private unsubscribe: () => void;\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit(): void {\n this.unsubscribe = this.eventDisplay.listenToDisplayedEventChange(() => {\n this.experimentInfo = this.eventDisplay.getEventMetadata();\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribe?.();\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, type 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 standalone: false,\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 {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} 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 standalone: false,\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 PHYSLITE = 'PHYSLITE',\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=\"OBJ file format icon\" /> Load .obj\n </button>\n\n <input\n #gltfFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".gltf,.glb,.gltf.zip,.glb.zip\"\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=\"GLTF file format icon\" /> Load\n .gltf/.glb\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 { type OnInit, Component, Input } from '@angular/core';\nimport {\n CMSLoader,\n JiveXMLLoader,\n readZipFile,\n Edm4hepJsonLoader,\n PHYSLITELoader,\n} from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport {\n EventDataFormat,\n type EventDataImportOption,\n ImportOption,\n} from '../../../../services/extras/event-data-import';\n\n@Component({\n standalone: false,\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.PHYSLITE,\n '.root',\n this.handlePHYSLITEInput.bind(this),\n '.root',\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 try {\n const json =\n typeof content === 'string' ? JSON.parse(content) : content;\n this.eventDisplay.parsePhoenixEvents(json);\n } catch (error) {\n this.eventDisplay\n .getInfoLogger()\n .add(\n 'Could not parse JSON event file. Please ensure it is valid JSON.',\n 'Error',\n );\n console.error('Error parsing JSON event file:', error);\n }\n };\n this.handleFileInput(files[0], 'json', callback);\n }\n\n handleEDM4HEPJSONEventDataInput(files: FileList) {\n const callback = (content: any) => {\n try {\n const json =\n 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 } catch (error) {\n this.eventDisplay\n .getInfoLogger()\n .add(\n 'Could not parse EDM4HEP JSON file. Please ensure it is valid JSON.',\n 'Error',\n );\n console.error('Error parsing EDM4HEP JSON file:', error);\n }\n };\n this.handleFileInput(files[0], 'edm4hep.json', callback);\n }\n\n handleJiveXMLDataInput(files: FileList) {\n const callback = (content: any) => {\n const jiveloader = this.getJiveXMLLoader();\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 private getJiveXMLLoader(): JiveXMLLoader {\n if (\n this.eventDisplay?.configuration?.eventDataLoader instanceof JiveXMLLoader\n ) {\n return this.eventDisplay.configuration.eventDataLoader as JiveXMLLoader;\n } else {\n return new JiveXMLLoader();\n }\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 = (file: File) => {\n this.eventDisplay.parseGLTFGeometry(file);\n };\n if (this.isFileOfExtension(files[0].name, 'gltf,glb,gltf.zip,glb.zip')) {\n callback(files[0]);\n }\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].name, '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 async handlePHYSLITEInput(files: FileList) {\n if (\n !this.isFileOfExtension(\n files[0].name,\n 'root,root.1,pool.root,pool.root.1',\n )\n ) {\n return;\n }\n\n const loader = new PHYSLITELoader();\n\n try {\n const eventsData = await loader.getEventData(files[0] as any);\n const eventKeys = Object.keys(eventsData);\n this.eventDisplay.parsePhoenixEvents(eventsData);\n\n // Find and load the first event with substantial physics data\n // (the very first event may have no jets/tracks)\n const richEvent = eventKeys.find((key) => {\n const evt = eventsData[key];\n return (\n (evt['Jets'] &&\n Object.keys(evt['Jets']).some((c) => evt['Jets'][c].length > 0)) ||\n (evt['Tracks'] &&\n Object.keys(evt['Tracks']).some((c) => evt['Tracks'][c].length > 0))\n );\n });\n if (richEvent && richEvent !== eventKeys[0]) {\n this.eventDisplay.loadEvent(richEvent);\n }\n } catch (error) {\n this.eventDisplay\n .getInfoLogger()\n .add('Failed to load PHYSLITE file: ' + error.message, 'Error');\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].name, 'zip,json.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 = this.getJiveXMLLoader();\n\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 extensions: string,\n callback: (result: string, fileName?: string) => void,\n ) {\n const reader = new FileReader();\n\n if (this.isFileOfExtension(file.name, extensions)) {\n reader.onload = () => {\n callback(reader.result.toString(), file.name.split('.')[0]);\n };\n reader.onerror = () => {\n const errorMessage = `Failed to read file \"${file.name}\". The file may be corrupted, too large, or inaccessible.`;\n console.error('FileReader error:', reader.error);\n this.eventDisplay.getInfoLogger().add(errorMessage, 'Error');\n };\n reader.readAsText(file);\n }\n this.onClose();\n }\n\n private isFileOfExtension(fileName: string, extensions: string): boolean {\n const extList = extensions.split(',');\n const lowerName = fileName.toLowerCase();\n if (extList.some((ext) => lowerName.endsWith('.' + ext.toLowerCase()))) {\n return true;\n }\n\n const accepted = extList.map((e) => '.' + e).join(', ');\n const msg =\n 'Invalid file format! Possibly the file name \"' +\n fileName +\n '\" does not match the expected FILENAME.EXTENSION, ' +\n 'where extension is one of: ' +\n accepted;\n console.error('Error: ' + msg);\n this.eventDisplay.getInfoLogger().add(msg, '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 type EventDataImportOption,\n} from '../../../services/extras/event-data-import';\nimport { IOOptionsDialogComponent } from './io-options-dialog/io-options-dialog.component';\n\n@Component({\n standalone: false,\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 standalone: false,\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.eventDisplay\n .getThreeManager()\n .revertMainCamera();\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, type OnInit, type OnDestroy } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n standalone: false,\n selector: 'app-object-clipping',\n templateUrl: './object-clipping.component.html',\n styleUrls: ['./object-clipping.component.scss'],\n})\nexport class ObjectClippingComponent implements OnInit, OnDestroy {\n clippingEnabled: boolean;\n startClippingAngle: number;\n openingClippingAngle: number;\n private unsubscribes: (() => void)[] = [];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n const stateManager = this.eventDisplay.getStateManager();\n this.unsubscribes.push(\n stateManager.clippingEnabled.onUpdate(\n (clippingValue) => (this.clippingEnabled = clippingValue),\n ),\n );\n this.unsubscribes.push(\n stateManager.startClippingAngle.onUpdate(\n (value) => (this.startClippingAngle = value),\n ),\n );\n this.unsubscribes.push(\n stateManager.openingClippingAngle.onUpdate(\n (value) => (this.openingClippingAngle = value),\n ),\n );\n }\n\n ngOnDestroy() {\n this.unsubscribes.forEach((unsubscribe) => unsubscribe?.());\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, type 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, type OnInit, Input } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n standalone: false,\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 {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} 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 standalone: false,\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 {\n Component,\n ViewChild,\n type AfterViewInit,\n Input,\n Renderer2,\n} from '@angular/core';\nimport type { ElementRef } from '@angular/core';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n standalone: false,\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 overlayViewLinked = 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 this.eventDisplay.getThreeManager().initOverlayControls(); // Initialize Controls Only after the effective creation of the canva.\n }\n\n initializeCanvas(\n canvas: HTMLCanvasElement,\n x: number = window.innerWidth / 2.5,\n y: number = window.innerHeight / 2.5,\n ): HTMLCanvasElement {\n console.log('doneee');\n const width = x;\n const height = y;\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.eventDisplay\n .getThreeManager()\n .revertOverlayCamera();\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 LinkOverlayView() {\n this.eventDisplay.getThreeManager().linkOverlayToMain();\n this.overlayViewLinked = this.eventDisplay\n .getThreeManager()\n .isOverlayLinked();\n }\n\n switchContexts() {\n this.eventDisplay.getThreeManager().switchContexts();\n }\n\n syncOverlayFromMain() {\n this.eventDisplay.getThreeManager().syncOverlayFromMain();\n }\n}\n","<app-overlay\n overlayTitle=\"Overlay View\"\n icon=\"overlay\"\n [resizable]=\"true\"\n [transparentBody]=\"transparentBody\"\n [active]=\"showOverlay\"\n [keepAspectRatioFixed]=\"false\"\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\n <app-menu-toggle\n class=\"overlay-view-control\"\n [icon]=\"overlayViewLinked ? 'link2' : 'unlink'\"\n [matTooltip]=\"\n (overlayViewLinked ? 'UnLink' : 'Link') + ' overlay view to main'\n \"\n [active]=\"overlayViewLinked\"\n (click)=\"LinkOverlayView()\"\n >\n </app-menu-toggle>\n\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"arrow-path-pointing-out\"\n [matTooltip]=\"'Switch Windows'\"\n (click)=\"switchContexts()\"\n >\n </app-menu-toggle>\n\n <app-menu-toggle\n class=\"overlay-view-control\"\n icon=\"arrow-path-rounded\"\n [matTooltip]=\"'Sync Overlay from Main'\"\n (click)=\"syncOverlayFromMain()\"\n >\n </app-menu-toggle>\n </div>\n </div>\n</app-overlay>\n","import {\n Component,\n ComponentRef,\n type OnDestroy,\n type OnInit,\n} 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 standalone: false,\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 standalone: false,\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, type OnInit } from '@angular/core';\nimport { type TreeMenuNode } from './tree-menu-item/tree-menu-item.component';\n\n@Component({\n standalone: false,\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","import { Component, Inject, type OnInit } from '@angular/core';\nimport { Vector3 } from 'three';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EventDisplayService } from '../../../../services/event-display.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'app-cartesian-grid-config',\n templateUrl: './cartesian-grid-config.component.html',\n styleUrls: ['./cartesian-grid-config.component.scss'],\n})\nexport class CartesianGridConfigComponent implements OnInit {\n cartesianPos = new Vector3();\n originChangedSub: Subscription = null;\n stopShiftingSub: Subscription = null;\n showCartesianGrid: boolean;\n gridConfig: {\n showXY: boolean;\n showYZ: boolean;\n showZX: boolean;\n xDistance: number;\n yDistance: number;\n zDistance: number;\n sparsity: number;\n };\n scale: number;\n shiftGrid: boolean;\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: { gridVisible: boolean; scale: number },\n private dialogRef: MatDialogRef<CartesianGridConfigComponent>,\n private eventDisplay: EventDisplayService,\n ) {}\n\n ngOnInit(): void {\n this.shiftGrid = this.eventDisplay.getThreeManager().shiftGrid;\n this.showCartesianGrid = this.data.gridVisible;\n this.scale = this.data.scale;\n this.gridConfig = this.eventDisplay.getUIManager().getCartesianGridConfig();\n this.cartesianPos = this.eventDisplay.getThreeManager().origin;\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n onSave(x, y, z) {\n this.shiftCartesianGridByValues(new Vector3(x * 10, y * 10, z * 10));\n }\n\n shiftCartesianGridByPointer() {\n this.shiftGrid = true;\n this.eventDisplay.getUIManager().shiftCartesianGridByPointer();\n this.originChangedSub = this.eventDisplay\n .getThreeManager()\n .originChanged.subscribe((intersect) => {\n this.translateGrid(intersect);\n });\n this.stopShiftingSub = this.eventDisplay\n .getThreeManager()\n .stopShifting.subscribe((stop) => {\n if (stop) {\n this.originChangedSub.unsubscribe();\n this.stopShiftingSub.unsubscribe();\n }\n });\n this.onClose();\n }\n\n shiftCartesianGridByValues(position: Vector3) {\n this.translateGrid(position);\n this.eventDisplay.getThreeManager().originChangedEmit(position);\n }\n\n translateGrid(position: Vector3) {\n const finalPos = position;\n const initialPos = this.cartesianPos;\n const difference = new Vector3(\n finalPos.x - initialPos.x,\n finalPos.y - initialPos.y,\n finalPos.z - initialPos.z,\n );\n this.eventDisplay.getUIManager().translateCartesianGrid(difference.clone());\n this.eventDisplay\n .getUIManager()\n .translateCartesianLabels(difference.clone());\n this.cartesianPos = finalPos;\n }\n\n addXYPlanes(zDistance: Event) {\n this.gridConfig.zDistance = Number(\n (zDistance.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n addYZPlanes(xDistance: Event) {\n this.gridConfig.xDistance = Number(\n (xDistance.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n addZXPlanes(yDistance: Event) {\n this.gridConfig.yDistance = Number(\n (yDistance.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n changeSparsity(sparsity: Event) {\n this.gridConfig.sparsity = Number(\n (sparsity.target as HTMLInputElement).value,\n );\n this.callSetShowCartesianGrid();\n }\n\n showXYPlanes(change: MatCheckboxChange) {\n this.gridConfig.showXY = change.checked;\n this.callSetShowCartesianGrid();\n }\n\n showYZPlanes(change: MatCheckboxChange) {\n this.gridConfig.showYZ = change.checked;\n this.callSetShowCartesianGrid();\n }\n\n showZXPlanes(change: MatCheckboxChange) {\n this.gridConfig.showZX = change.checked;\n this.callSetShowCartesianGrid();\n }\n\n callSetShowCartesianGrid() {\n this.eventDisplay\n .getUIManager()\n .setShowCartesianGrid(\n this.showCartesianGrid,\n this.scale,\n this.gridConfig,\n );\n }\n\n // helper function to calculate number of planes\n calcPlanes(dis: number) {\n return Math.max(\n 0,\n 1 + 2 * Math.floor((dis * 10) / (this.scale * this.gridConfig.sparsity)),\n );\n }\n}\n","<div>\n <h1 mat-dialog-title>Customize Cartesian Grid</h1>\n\n <div class=\"container dialog-content\" mat-dialog-content>\n <div class=\"item-config-single\">\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"xPos\">x (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin X\"\n [value]=\"cartesianPos.x / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"xPos\"\n id=\"xPos\"\n #xPos\n />\n </div>\n\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"yPos\">y (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin Y\"\n [value]=\"cartesianPos.y / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"yPos\"\n id=\"yPos\"\n #yPos\n />\n </div>\n\n <div class=\"item-config-group\">\n <label class=\"item-config-label\" for=\"zPos\">z (cm) : </label>\n <input\n type=\"number\"\n placeholder=\"Origin Z\"\n [value]=\"cartesianPos.z / 10 | number: '1.2-2'\"\n class=\"form-control\"\n name=\"zPos\"\n id=\"zPos\"\n #zPos\n />\n </div>\n\n <button\n mat-stroked-button\n (click)=\"onSave(xPos.value, yPos.value, zPos.value)\"\n [disabled]=\"shiftGrid\"\n >\n Save\n </button>\n\n <button\n style=\"margin: 0.5rem 0\"\n mat-menu-item\n class=\"explain-button\"\n [disabled]=\"shiftGrid\"\n (click)=\"$event.stopPropagation(); shiftCartesianGridByPointer()\"\n >\n Shift Cartesian Grid on click\n <p class=\"explain-text\">\n Click on a point to shift the grid. Keep clicking at various points to\n continue shifting. Right click to stop.\n </p>\n </button>\n </div>\n\n <div>\n <button\n mat-menu-item\n (click)=\"showXYPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showXYPlanesCheckbox\n [(ngModel)]=\"gridConfig.showXY\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showXYPlanes($event)\"\n >Show XY Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"xyPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #xyPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.zDistance\"\n (input)=\"addXYPlanes($event)\"\n />\n </mat-slider>\n XY Plane ({{ calcPlanes(gridConfig.zDistance) }})\n </button>\n <button\n mat-menu-item\n (click)=\"showYZPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showYZPlanesCheckbox\n [(ngModel)]=\"gridConfig.showYZ\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showYZPlanes($event)\"\n >Show YZ Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"yzPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #yzPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.xDistance\"\n (input)=\"addYZPlanes($event)\"\n />\n </mat-slider>\n YZ Plane ({{ calcPlanes(gridConfig.xDistance) }})\n </button>\n <button\n mat-menu-item\n (click)=\"showZXPlanesCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showZXPlanesCheckbox\n [(ngModel)]=\"gridConfig.showZX\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"showZXPlanes($event)\"\n >Show ZX Planes\n </mat-checkbox>\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"zxPlaneSlider.focus()\">\n <mat-slider min=\"-300\" [max]=\"scale\" step=\"300\" thumbLabel>\n <input\n #zxPlaneSlider\n matSliderThumb\n [value]=\"gridConfig.yDistance\"\n (input)=\"addZXPlanes($event)\"\n />\n </mat-slider>\n ZX Plane ({{ calcPlanes(gridConfig.yDistance) }})\n </button>\n <button class=\"slider-btn\" mat-menu-item (focus)=\"sparsitySlider.focus()\">\n <mat-slider min=\"1\" max=\"5\" step=\"1\" thumbLabel>\n <input\n #sparsitySlider\n matSliderThumb\n [value]=\"gridConfig.sparsity\"\n (input)=\"changeSparsity($event)\"\n />\n </mat-slider>\n Sparsity ({{ gridConfig.sparsity }})\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","<mat-menu #viewOptions>\n <button mat-menu-item>\n <mat-checkbox\n #showCartesianGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setCartesianGrid($event)\"\n >Show Cartesian Grid\n </mat-checkbox>\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"openCartesianGridConfigDialog()\"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showEtaPhiGridCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showEtaPhiGridCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"setEtaPhiGrid($event)\"\n >Show Eta Phi 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 (click)=\"showLabelsCheckbox._inputElement.nativeElement.click()\"\n >\n <mat-checkbox\n #showLabelsCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"showLabels($event)\"\n >Show Labels\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n showMouse3DPointsCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #showMouse3DPointsCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"show3DMousePoints($event)\"\n >Show 3D Coordinates\n </mat-checkbox>\n </button>\n <button\n mat-menu-item\n (click)=\"\n $event.stopPropagation();\n show3DDistanceCheckbox._inputElement.nativeElement.click()\n \"\n >\n <mat-checkbox\n #show3DDistanceCheckbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleShowDistance($event)\"\n >Show 3D Distance\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 and Tools\"\n icon=\"views\"\n [active]=\"false\"\n>\n</app-menu-toggle>\n","import {\n Component,\n type OnInit,\n type OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { PresetView } from 'phoenix-event-display';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CartesianGridConfigComponent } from './cartesian-grid-config/cartesian-grid-config.component';\nimport { Subscription } from 'rxjs';\nimport { Vector3 } from 'three';\nimport { MatMenuTrigger } from '@angular/material/menu';\n\n@Component({\n standalone: false,\n selector: 'app-view-options',\n templateUrl: './view-options.component.html',\n styleUrls: ['./view-options.component.scss'],\n})\nexport class ViewOptionsComponent implements OnInit, OnDestroy {\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n showCartesianGrid: boolean = false;\n scale: number = 3000;\n views: PresetView[];\n show3DPoints: boolean;\n origin: Vector3 = new Vector3(0, 0, 0);\n sub: Subscription;\n\n constructor(\n private eventDisplay: EventDisplayService,\n private dialog: MatDialog,\n ) {}\n\n ngOnInit(): void {\n this.views = this.eventDisplay.getUIManager().getPresetViews();\n this.sub = this.eventDisplay\n .getThreeManager()\n .originChanged.subscribe((intersect) => {\n this.origin = intersect;\n });\n }\n\n openCartesianGridConfigDialog() {\n this.dialog.open(CartesianGridConfigComponent, {\n data: {\n gridVisible: this.showCartesianGrid,\n scale: this.scale,\n },\n position: {\n bottom: '5rem',\n left: '3rem',\n },\n });\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 setEtaPhiGrid(change: MatCheckboxChange) {\n const value = change.checked;\n this.eventDisplay.getUIManager().setShowEtaPhiGrid(value);\n }\n\n setCartesianGrid(change: MatCheckboxChange) {\n this.showCartesianGrid = change.checked;\n this.eventDisplay\n .getUIManager()\n .setShowCartesianGrid(this.showCartesianGrid, this.scale);\n }\n\n showLabels(change: MatCheckboxChange) {\n this.eventDisplay.getUIManager().showLabels(change.checked);\n }\n\n show3DMousePoints(change: MatCheckboxChange) {\n this.show3DPoints = change.checked;\n this.eventDisplay.getUIManager().show3DMousePoints(this.show3DPoints);\n }\n\n toggleShowDistance(change: MatCheckboxChange) {\n this.trigger.closeMenu();\n this.eventDisplay.getUIManager().show3DDistance(change.checked);\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\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 standalone: false, // this is now required when using NgModule\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 standalone: false,\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, type OnDestroy } 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 standalone: false,\n selector: 'app-zoom-controls',\n templateUrl: './zoom-controls.component.html',\n styleUrls: ['./zoom-controls.component.scss'],\n})\nexport class ZoomControlsComponent implements OnDestroy {\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(event: Event | boolean) {\n if (event instanceof Event) event.preventDefault();\n if (event instanceof Event || event) {\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(event: Event | boolean) {\n if (event instanceof Event) event.preventDefault();\n if (event instanceof Event || event) {\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 ngOnDestroy() {\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 (touchstart)=\"zoomOut($event)\"\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 (touchstart)=\"zoomIn($event)\"\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 {\n Component,\n ViewEncapsulation,\n type OnDestroy,\n type OnInit,\n} from '@angular/core';\n\n@Component({\n standalone: false,\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, OnDestroy {\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 /**\n * Clean up event listeners and fullscreen state when the component is destroyed.\n */\n ngOnDestroy() {\n // Prevent any further toggleSSMode calls from fullscreenchange during teardown.\n document.onfullscreenchange = null;\n // Remove input event listeners.\n document.removeEventListener('click', this.onDocumentClick);\n document.removeEventListener('touchstart', this.onDocumentClick);\n // If still in fullscreen or ssMode is active, exit fullscreen and reset UI state.\n if (document.fullscreenElement || this.ssMode) {\n document.exitFullscreen?.();\n }\n // Ensure the ss-mode class and internal state are cleared.\n document.body.classList.remove('ss-mode');\n this.ssMode = false;\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 class=\"screenshot-mode\" (click)=\"toggleSSMode()\">\n {{ ssMode ? 'Exit screenshot mode' : 'Enter screenshot mode' }}\n </button>\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 [class.badSize]=\"disabled\"\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 [class.badSize]=\"disabled\"\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\n mat-menu-item\n [disabled]=\"disabled\"\n class=\"make-picture\"\n (click)=\"makePicture()\"\n >\n {{ buttonText() }}\n </button>\n</mat-menu>\n<app-menu-toggle\n [matMenuTriggerFor]=\"menu\"\n [active]=\"ssMode\"\n tooltip=\"Screenshot options: enter screenshot mode or save a picture from the current view\"\n icon=\"ss-mode\"\n>\n</app-menu-toggle>\n<div>\n <canvas hidden id=\"screenshotCanvas\"></canvas>\n</div>\n","import {\n Component,\n Input,\n type OnDestroy,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n standalone: false,\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, OnDestroy {\n fittings: string[] = ['Crop', 'Stretch'];\n fitting: string = 'Crop';\n width: number = 3840;\n height: number = 2160;\n disabled: boolean = false;\n ssMode: boolean = false;\n private ssTimeoutId: ReturnType<typeof setTimeout> | null = null;\n private fullscreenHandler: (() => void) | null = null;\n constructor(private eventDisplay: EventDisplayService) {}\n ngOnInit() {\n this.fullscreenHandler = () => {\n if (!document.fullscreenElement && this.ssMode) {\n this.toggleSSMode();\n }\n };\n document.onfullscreenchange = this.fullscreenHandler;\n }\n\n setWidth(value) {\n this.width = value;\n this.disabled = false;\n }\n setHeight(value) {\n this.height = value;\n this.disabled = false;\n }\n buttonText() {\n return 'Create picture';\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 this.ssTimeoutId = setTimeout(() => {\n this.ssTimeoutId = null;\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 makePicture() {\n this.eventDisplay\n .getThreeManager()\n .makeScreenShot(this.width, this.height, this.fitting);\n }\n\n private onDocumentClick = () => {\n document.exitFullscreen?.();\n };\n\n ngOnDestroy() {\n if (document.onfullscreenchange === this.fullscreenHandler) {\n document.onfullscreenchange = null;\n }\n if (this.ssTimeoutId != null) {\n clearTimeout(this.ssTimeoutId);\n this.ssTimeoutId = null;\n }\n document.removeEventListener('click', this.onDocumentClick);\n document.removeEventListener('touchstart', this.onDocumentClick);\n if (this.ssMode) {\n if (document.fullscreenElement) {\n document.exitFullscreen?.();\n }\n document.body.classList.remove('ss-mode');\n this.ssMode = false;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\n\n@Component({\n standalone: false,\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 standalone: false, // this is now required when using NgModule\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 {\n type AfterViewInit,\n Component,\n ElementRef,\n type OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { ActiveVariable, phoenixURLOptions } from 'phoenix-event-display';\nimport QRCode from 'qrcode';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n@Component({\n standalone: false,\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, OnDestroy {\n baseLink: string;\n shareLink: ActiveVariable<string>;\n embedLink: string;\n urlOptions = Object.assign({}, phoenixURLOptions);\n @ViewChild('qrcodeCanvas') qrcodeCanvas: ElementRef<HTMLCanvasElement>;\n private unsubscribe: () => void;\n\n constructor(\n private dialogRef: MatDialogRef<ShareLinkDialogComponent>,\n private eventDisplay: EventDisplayService,\n ) {\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.unsubscribe = this.shareLink.onUpdate(this.updateQRCode.bind(this));\n }\n\n ngOnDestroy() {\n this.unsubscribe?.();\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}=${encodeURIComponent(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 async toggleViewState(include: boolean) {\n if (include) {\n const stateManager = this.eventDisplay.getStateManager();\n if (stateManager) {\n const state = stateManager.getStateAsJSON();\n const jsonStr = JSON.stringify(state);\n // Compress using built-in deflate to keep URL manageable\n const stream = new Blob([jsonStr])\n .stream()\n .pipeThrough(new CompressionStream('deflate'));\n const compressed = await new Response(stream).arrayBuffer();\n const bytes = new Uint8Array(compressed);\n const binary = Array.from(bytes, (b) => String.fromCharCode(b)).join(\n '',\n );\n this.urlOptions['state'] = btoa(binary);\n }\n } else {\n this.urlOptions['state'] = '';\n }\n this.onOptionsChange();\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 <div class=\"form-group\">\n <mat-checkbox (change)=\"toggleViewState($event.checked)\">\n Include current view state (camera, visibility, clipping)\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 standalone: false,\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","<app-overlay\n overlayTitle=\"Event Browser\"\n icon=\"event-browser\"\n [active]=\"showEventBrowser\"\n>\n <div *ngIf=\"showEventBrowser\" class=\"event-browser m-2\">\n <!-- Search box -->\n <div\n class=\"search-box mb-2 d-flex align-items-center\"\n *ngIf=\"allSummaries.length > 0\"\n >\n <input\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Jump to event number...\"\n [ngModel]=\"searchQuery\"\n (ngModelChange)=\"updateSearch($event)\"\n (keydown.enter)=\"jumpToSearch()\"\n />\n <span class=\"search-hint\" *ngIf=\"searchQuery\">Enter to load</span>\n </div>\n\n <!-- Filter controls -->\n <div class=\"filter-controls mb-2\" *ngIf=\"allSummaries.length > 0\">\n <div class=\"d-flex align-items-center flex-wrap gap-1\">\n <span class=\"filter-label\">Filter:</span>\n <select class=\"filter-select\" [(ngModel)]=\"filterColumn\">\n <option value=\"\" disabled>Column</option>\n <option *ngFor=\"let col of columns\" [value]=\"col\">{{ col }}</option>\n </select>\n <select class=\"filter-select\" [(ngModel)]=\"filterOperator\">\n <option value=\">=\">&gt;=</option>\n <option value=\"<=\">&lt;=</option>\n <option value=\"=\">=</option>\n </select>\n <input\n type=\"number\"\n class=\"filter-input\"\n placeholder=\"value\"\n [(ngModel)]=\"filterValue\"\n min=\"0\"\n />\n <button class=\"btn-filter btn-blank\" (click)=\"addFilter()\">Add</button>\n <span class=\"filter-separator\">|</span>\n <span class=\"filter-label\">MET &gt;=</span>\n <input\n type=\"number\"\n class=\"filter-input\"\n placeholder=\"GeV\"\n (input)=\"updateMETFilter($event.target.value)\"\n />\n <button\n class=\"btn-filter btn-blank\"\n (click)=\"clearFilters()\"\n *ngIf=\"filters.length > 0 || metFilterMin !== null || searchQuery\"\n >\n Clear\n </button>\n </div>\n <!-- Active filters -->\n <div class=\"active-filters mt-1\" *ngIf=\"filters.length > 0\">\n <span class=\"filter-tag\" *ngFor=\"let filter of filters; index as i\">\n {{ getFilterLabel(filter) }}\n <button class=\"btn-blank filter-remove\" (click)=\"removeFilter(i)\">\n &times;\n </button>\n </span>\n </div>\n </div>\n\n <!-- Summary count -->\n <div class=\"summary-count mb-1\" *ngIf=\"allSummaries.length > 0\">\n {{ displayedSummaries.length }} of {{ allSummaries.length }} events\n </div>\n\n <!-- Event table -->\n <div\n class=\"boxBody table-responsive\"\n (keydown)=\"onTableKeydown($event)\"\n tabindex=\"0\"\n >\n <table\n class=\"table table-borderless table-sm\"\n *ngIf=\"allSummaries.length > 0\"\n >\n <thead>\n <tr>\n <th>Event</th>\n <th *ngFor=\"let col of columns\">\n <div class=\"head-wrapper\">\n <div>{{ col }}</div>\n <div class=\"sort-options\">\n <button\n class=\"icon-wrapper icon-button btn-blank up\"\n [ngClass]=\"{ 'sort-active': isSortActive(col, 'desc') }\"\n (click)=\"sort(col, 'desc')\"\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 [ngClass]=\"{ 'sort-active': isSortActive(col, 'asc') }\"\n (click)=\"sort(col, 'asc')\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n </div>\n </th>\n <th>\n <div class=\"head-wrapper\">\n <div\n matTooltip=\"Reconstructed physics objects (excl. detector readouts)\"\n >\n Reco\n </div>\n <div class=\"sort-options\">\n <button\n class=\"icon-wrapper icon-button btn-blank up\"\n [ngClass]=\"{ 'sort-active': isSortActive('_reco', 'desc') }\"\n (click)=\"sortByReco('desc')\"\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 [ngClass]=\"{ 'sort-active': isSortActive('_reco', 'asc') }\"\n (click)=\"sortByReco('asc')\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n </div>\n </th>\n <th>\n <div class=\"head-wrapper\">\n <div>MET</div>\n <div class=\"sort-options\">\n <button\n class=\"icon-wrapper icon-button btn-blank up\"\n [ngClass]=\"{ 'sort-active': isSortActive('_met', 'desc') }\"\n (click)=\"sortByMET('desc')\"\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 [ngClass]=\"{ 'sort-active': isSortActive('_met', 'asc') }\"\n (click)=\"sortByMET('asc')\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n </div>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let summary of displayedSummaries\"\n [id]=\"'event-row-' + summary.eventKey\"\n [ngClass]=\"{\n 'selected-event': selectedEventKey === summary.eventKey,\n 'loaded-event': isLoadedEvent(summary),\n }\"\n (click)=\"selectedEventKey = summary.eventKey\"\n (dblclick)=\"selectEvent(summary)\"\n >\n <td class=\"event-cell\">\n <div class=\"event-label\">{{ getEventLabel(summary) }}</div>\n <div class=\"run-label\" *ngIf=\"getRunLabel(summary)\">\n {{ getRunLabel(summary) }}\n </div>\n </td>\n <td\n *ngFor=\"let col of columns\"\n [ngClass]=\"{ 'dim-zero': getCount(summary, col) === 0 }\"\n >\n {{ formatNumber(getCount(summary, col)) }}\n </td>\n <td [ngClass]=\"{ 'dim-zero': getRecoTotal(summary) === 0 }\">\n {{ formatNumber(getRecoTotal(summary)) }}\n </td>\n <td>{{ formatMET(summary.met) }}</td>\n <td>\n <button\n class=\"btn-blank btn-load\"\n [matTooltip]=\"\n isLoadingEvent(summary) ? 'Loading...' : 'Load this event'\n \"\n (click)=\"selectEvent(summary); $event.stopPropagation()\"\n >\n <span\n *ngIf=\"isLoadingEvent(summary)\"\n class=\"loading-spinner\"\n ></span>\n <svg *ngIf=\"!isLoadingEvent(summary)\" class=\"load-icon\">\n <use href=\"assets/icons/views.svg#views\"></use>\n </svg>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <p class=\"emptyBox\" *ngIf=\"allSummaries.length === 0\">\n Load event data to browse events here.\n </p>\n </div>\n\n <!-- Keyboard hint -->\n <div class=\"keyboard-hint mt-1\" *ngIf=\"allSummaries.length > 0\">\n Arrow keys to navigate, Enter to load, Shift+Left/Right for prev/next\n </div>\n </div>\n</app-overlay>\n","import { Component, Input, type OnInit, type OnDestroy } from '@angular/core';\nimport { type EventSummary, getAvailableColumns } from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n/** Sort state for a column. */\ninterface SortState {\n column: string;\n direction: 'asc' | 'desc';\n}\n\n/** Filter for a collection count column. */\ninterface ColumnFilter {\n column: string;\n operator: '>=' | '<=' | '=';\n value: number;\n}\n\n/** Detector-level types (fixed per detector, not per event). */\nconst DETECTOR_LEVEL_TYPES = new Set([\n 'CaloCells',\n 'Hits',\n 'PlanarCaloCells',\n 'IrregularCaloCells',\n]);\n\n@Component({\n standalone: false,\n selector: 'app-event-browser-overlay',\n templateUrl: './event-browser-overlay.component.html',\n styleUrls: ['./event-browser-overlay.component.scss'],\n})\nexport class EventBrowserOverlayComponent implements OnInit, OnDestroy {\n @Input() showEventBrowser: boolean;\n\n /** All event summaries from the pre-scan. */\n allSummaries: EventSummary[] = [];\n /** Filtered and sorted summaries for display. */\n displayedSummaries: EventSummary[] = [];\n /** Collection type columns available across all events. */\n columns: string[] = [];\n /** Currently active sort. */\n currentSort: SortState | null = null;\n /** Currently selected event key (row highlight). */\n selectedEventKey: string | null = null;\n /** Currently loaded event key (displayed in 3D). */\n loadedEventKey: string | null = null;\n /** Event key currently being loaded (for spinner). */\n loadingEventKey: string | null = null;\n /** Active filters. */\n filters: ColumnFilter[] = [];\n /** MET filter minimum value. */\n metFilterMin: number | null = null;\n /** Search query for event number/key. */\n searchQuery: string = '';\n\n /** Filter input state for adding new filters. */\n filterColumn: string = '';\n filterOperator: '>=' | '<=' | '=' = '>=';\n filterValue: number | null = null;\n\n private unsubscribes: (() => void)[] = [];\n\n constructor(private eventDisplay: EventDisplayService) {}\n\n ngOnInit() {\n // Track the currently loaded event\n this.loadedEventKey = this.eventDisplay.getCurrentEventKey();\n\n // Catch events already loaded before this component initialized\n const existing = this.eventDisplay.getEventSummaries();\n if (existing.length > 0) {\n this.buildSummaries();\n }\n\n this.unsubscribes.push(\n this.eventDisplay.listenToLoadedEventsChange(() => {\n this.buildSummaries();\n }),\n );\n\n // Update loaded/loading state when any event finishes rendering\n this.unsubscribes.push(\n this.eventDisplay.listenToDisplayedEventChange(() => {\n this.loadedEventKey = this.eventDisplay.getCurrentEventKey();\n this.loadingEventKey = null;\n }),\n );\n }\n\n ngOnDestroy() {\n this.unsubscribes.forEach((fn) => fn?.());\n }\n\n /** Build summaries from loaded events data. */\n buildSummaries() {\n this.allSummaries = this.eventDisplay.getEventSummaries();\n this.columns = getAvailableColumns(this.allSummaries);\n this.filters = [];\n this.metFilterMin = null;\n this.currentSort = null;\n this.applyFiltersAndSort();\n }\n\n /** Get the count for a collection type in an event summary. */\n getCount(summary: EventSummary, column: string): number {\n return summary.collectionCounts[column] ?? 0;\n }\n\n /** Format a number with comma separators. */\n formatNumber(value: number): string {\n return value.toLocaleString();\n }\n\n /** Compute reconstructed objects total (excluding detector-level types). */\n getRecoTotal(summary: EventSummary): number {\n let total = 0;\n for (const [typeName, count] of Object.entries(summary.collectionCounts)) {\n if (!DETECTOR_LEVEL_TYPES.has(typeName)) {\n total += count;\n }\n }\n return total;\n }\n\n /** Format MET for display. */\n formatMET(met: number): string {\n if (isNaN(met)) return '-';\n return (met / 1000).toFixed(1) + ' GeV';\n }\n\n /** Sort by a column. Clicking same column+direction resets sort. */\n sort(column: string, direction: 'asc' | 'desc') {\n if (\n this.currentSort?.column === column &&\n this.currentSort?.direction === direction\n ) {\n this.currentSort = null;\n } else {\n this.currentSort = { column, direction };\n }\n this.applyFiltersAndSort();\n }\n\n /** Sort by MET. */\n sortByMET(direction: 'asc' | 'desc') {\n if (\n this.currentSort?.column === '_met' &&\n this.currentSort?.direction === direction\n ) {\n this.currentSort = null;\n } else {\n this.currentSort = { column: '_met', direction };\n }\n this.applyFiltersAndSort();\n }\n\n /** Sort by reco total. */\n sortByReco(direction: 'asc' | 'desc') {\n if (\n this.currentSort?.column === '_reco' &&\n this.currentSort?.direction === direction\n ) {\n this.currentSort = null;\n } else {\n this.currentSort = { column: '_reco', direction };\n }\n this.applyFiltersAndSort();\n }\n\n /** Add a filter from the UI controls. */\n addFilter() {\n if (!this.filterColumn || this.filterValue === null) return;\n\n // Remove existing filter on same column\n this.filters = this.filters.filter((f) => f.column !== this.filterColumn);\n this.filters.push({\n column: this.filterColumn,\n operator: this.filterOperator,\n value: this.filterValue,\n });\n this.applyFiltersAndSort();\n }\n\n /** Remove a filter. */\n removeFilter(index: number) {\n this.filters.splice(index, 1);\n this.applyFiltersAndSort();\n }\n\n /** Update MET minimum filter. */\n updateMETFilter(value: string) {\n const parsed = parseFloat(value);\n this.metFilterMin = isNaN(parsed) ? null : parsed * 1000; // Convert GeV to MeV\n this.applyFiltersAndSort();\n }\n\n /** Update search query and re-filter. */\n updateSearch(query: string) {\n this.searchQuery = query.trim();\n this.applyFiltersAndSort();\n }\n\n /** Jump to an event by search - selects and loads the first match. */\n jumpToSearch() {\n if (this.displayedSummaries.length > 0) {\n this.selectEvent(this.displayedSummaries[0]);\n }\n }\n\n /** Clear all filters. */\n clearFilters() {\n this.filters = [];\n this.metFilterMin = null;\n this.searchQuery = '';\n this.applyFiltersAndSort();\n }\n\n /** Apply all active filters and current sort to produce displayedSummaries. */\n applyFiltersAndSort() {\n let result = [...this.allSummaries];\n\n // Apply search query (matches event number or event key)\n if (this.searchQuery) {\n const query = this.searchQuery.toLowerCase();\n result = result.filter(\n (s) =>\n s.eventKey.toLowerCase().includes(query) ||\n (s.eventNumber !== undefined &&\n String(s.eventNumber).toLowerCase().includes(query)),\n );\n }\n\n // Apply column filters\n for (const filter of this.filters) {\n result = result.filter((s) => {\n const value = s.collectionCounts[filter.column] ?? 0;\n switch (filter.operator) {\n case '>=':\n return value >= filter.value;\n case '<=':\n return value <= filter.value;\n case '=':\n return value === filter.value;\n default:\n return true;\n }\n });\n }\n\n // Apply MET filter\n if (this.metFilterMin !== null) {\n result = result.filter(\n (s) => !isNaN(s.met) && s.met >= this.metFilterMin,\n );\n }\n\n // Apply sort\n if (this.currentSort) {\n const { column, direction } = this.currentSort;\n const multiplier = direction === 'asc' ? 1 : -1;\n\n result.sort((a, b) => {\n let valA: number, valB: number;\n if (column === '_met') {\n valA = isNaN(a.met) ? -1 : a.met;\n valB = isNaN(b.met) ? -1 : b.met;\n } else if (column === '_reco') {\n valA = this.getRecoTotal(a);\n valB = this.getRecoTotal(b);\n } else {\n valA = a.collectionCounts[column] ?? 0;\n valB = b.collectionCounts[column] ?? 0;\n }\n return (valA - valB) * multiplier;\n });\n }\n\n this.displayedSummaries = result;\n }\n\n /** Load the selected event. */\n selectEvent(summary: EventSummary) {\n this.selectedEventKey = summary.eventKey;\n this.loadingEventKey = summary.eventKey;\n this.eventDisplay.loadEvent(summary.eventKey);\n }\n\n /** Handle keyboard navigation on the table. */\n onTableKeydown(event: KeyboardEvent) {\n if (!this.displayedSummaries.length) return;\n\n const currentIndex = this.selectedEventKey\n ? this.displayedSummaries.findIndex(\n (s) => s.eventKey === this.selectedEventKey,\n )\n : -1;\n\n let newIndex = currentIndex;\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n newIndex = Math.min(currentIndex + 1, this.displayedSummaries.length - 1);\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n newIndex = Math.max(currentIndex - 1, 0);\n } else if (event.key === 'Enter' && currentIndex >= 0) {\n event.preventDefault();\n this.selectEvent(this.displayedSummaries[currentIndex]);\n return;\n } else {\n return;\n }\n\n if (newIndex !== currentIndex && newIndex >= 0) {\n this.selectedEventKey = this.displayedSummaries[newIndex].eventKey;\n const row = document.getElementById('event-row-' + this.selectedEventKey);\n if (row) {\n row.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n\n /** Get display label for an event (event number + run number). */\n getEventLabel(summary: EventSummary): string {\n const parts: string[] = [];\n if (summary.eventNumber !== undefined) {\n parts.push(String(summary.eventNumber));\n } else {\n parts.push(summary.eventKey);\n }\n return parts.join('');\n }\n\n /** Get run number display. */\n getRunLabel(summary: EventSummary): string {\n if (summary.runNumber !== undefined) {\n return 'Run ' + String(summary.runNumber);\n }\n return '';\n }\n\n /** Get a filter description for display. */\n getFilterLabel(filter: ColumnFilter): string {\n return `${filter.column} ${filter.operator} ${filter.value}`;\n }\n\n /** Check if the sort indicator should be active. */\n isSortActive(column: string, direction: 'asc' | 'desc'): boolean {\n return (\n this.currentSort?.column === column &&\n this.currentSort?.direction === direction\n );\n }\n\n /** Check if a row is the currently loaded event. */\n isLoadedEvent(summary: EventSummary): boolean {\n return this.loadedEventKey === summary.eventKey;\n }\n\n /** Check if a row is currently loading. */\n isLoadingEvent(summary: EventSummary): boolean {\n return this.loadingEventKey === summary.eventKey;\n }\n}\n","import {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { EventBrowserOverlayComponent } from './event-browser-overlay/event-browser-overlay.component';\n\n@Component({\n standalone: false,\n selector: 'app-event-browser',\n templateUrl: './event-browser.component.html',\n styleUrls: ['./event-browser.component.scss'],\n})\nexport class EventBrowserComponent implements OnInit, OnDestroy {\n showEventBrowser = false;\n overlayWindow: ComponentRef<EventBrowserOverlayComponent>;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(EventBrowserOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showEventBrowser = this.showEventBrowser;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow?.destroy();\n }\n\n toggleOverlay() {\n this.showEventBrowser = !this.showEventBrowser;\n this.overlayWindow.instance.showEventBrowser = this.showEventBrowser;\n }\n}\n","<app-menu-toggle\n tooltip=\"Event browser\"\n icon=\"event-browser\"\n [active]=\"showEventBrowser\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\n","import {\n Component,\n Input,\n ViewChild,\n type ElementRef,\n type OnInit,\n type OnDestroy,\n type AfterViewInit,\n} from '@angular/core';\nimport {\n DEFAULT_ETA_PHI_CONFIG,\n type EtaPhiConfig,\n} from 'phoenix-event-display';\nimport { EventDisplayService } from '../../../../services/event-display.service';\n\n/** Binned grid cell for internal use. */\ninterface GridCell {\n energy: number;\n etaCenter: number;\n phiCenter: number;\n}\n\n/** Lightweight overlay marker. */\ninterface OverlayMarker {\n eta: number;\n phi: number;\n label: string;\n color: string;\n radius?: number;\n uuid?: string;\n type: 'jet' | 'track' | 'muon' | 'electron' | 'photon' | 'met';\n}\n\n@Component({\n standalone: false,\n selector: 'app-eta-phi-panel-overlay',\n templateUrl: './eta-phi-panel-overlay.component.html',\n styleUrls: ['./eta-phi-panel-overlay.component.scss'],\n})\nexport class EtaPhiPanelOverlayComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input() showPanel = false;\n @ViewChild('etaPhiCanvas') canvasRef: ElementRef<HTMLCanvasElement>;\n @ViewChild('colorBarCanvas') colorBarRef: ElementRef<HTMLCanvasElement>;\n\n logScale = true;\n showOverlays = true;\n colorBarMin = '0';\n colorBarMax = '0';\n\n private config: Required<EtaPhiConfig> = { ...DEFAULT_ETA_PHI_CONFIG };\n private grid: GridCell[][] = [];\n private markers: OverlayMarker[] = [];\n private maxEnergy = 0;\n private unsubscribes: (() => void)[] = [];\n private viewReady = false;\n private currentTooltip: string | null = null;\n private tooltipPx = 0;\n private tooltipPy = 0;\n\n // Canvas layout constants (pixels)\n private readonly MARGIN = { top: 10, right: 10, bottom: 30, left: 45 };\n\n // Bound event handlers for cleanup\n private boundMouseMove: (e: MouseEvent) => void;\n private boundMouseLeave: () => void;\n private boundClick: (e: MouseEvent) => void;\n\n constructor(private eventDisplay: EventDisplayService) {\n this.boundMouseMove = (e) => this.onMouseMove(e);\n this.boundMouseLeave = () => this.onMouseLeave();\n this.boundClick = (e) => this.onCanvasClick(e);\n }\n\n ngOnInit() {\n this.unsubscribes.push(\n this.eventDisplay.listenToDisplayedEventChange(() => {\n this.rebuildData();\n }),\n );\n }\n\n ngAfterViewInit() {\n this.viewReady = true;\n const canvas = this.canvasRef?.nativeElement;\n if (canvas) {\n canvas.addEventListener('mousemove', this.boundMouseMove);\n canvas.addEventListener('mouseleave', this.boundMouseLeave);\n canvas.addEventListener('click', this.boundClick);\n }\n // Initial draw if data is already loaded\n setTimeout(() => this.rebuildData(), 100);\n }\n\n ngOnDestroy() {\n const canvas = this.canvasRef?.nativeElement;\n if (canvas) {\n canvas.removeEventListener('mousemove', this.boundMouseMove);\n canvas.removeEventListener('mouseleave', this.boundMouseLeave);\n canvas.removeEventListener('click', this.boundClick);\n }\n this.unsubscribes.forEach((fn) => fn?.());\n }\n\n toggleLogScale() {\n this.logScale = !this.logScale;\n this.config.logScale = this.logScale;\n this.draw();\n }\n\n toggleOverlays() {\n this.showOverlays = !this.showOverlays;\n this.draw();\n }\n\n private onMouseMove(event: MouseEvent) {\n if (!this.canvasRef) return;\n const canvas = this.canvasRef.nativeElement;\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n const px = (event.clientX - rect.left) * scaleX;\n const py = (event.clientY - rect.top) * scaleY;\n\n const hit = this.pixelToEtaPhi(px, py);\n if (!hit) {\n if (this.currentTooltip) {\n this.currentTooltip = null;\n this.draw();\n }\n return;\n }\n\n // Check overlay markers first\n const marker = this.findMarkerAt(hit.eta, hit.phi);\n if (marker) {\n this.currentTooltip = marker.label;\n this.tooltipPx = px;\n this.tooltipPy = py;\n this.draw();\n return;\n }\n\n // Check grid bin\n const bin = this.getBin(hit.eta, hit.phi);\n if (bin && bin.energy > 0) {\n const eGeV = (bin.energy / 1000).toFixed(1);\n this.currentTooltip = `E: ${eGeV} GeV \\u03B7: ${bin.etaCenter.toFixed(2)} \\u03C6: ${bin.phiCenter.toFixed(2)}`;\n this.tooltipPx = px;\n this.tooltipPy = py;\n } else {\n this.currentTooltip = null;\n }\n this.draw();\n }\n\n private onMouseLeave() {\n if (this.currentTooltip) {\n this.currentTooltip = null;\n this.draw();\n }\n }\n\n private onCanvasClick(event: MouseEvent) {\n if (!this.canvasRef) return;\n const canvas = this.canvasRef.nativeElement;\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n const px = (event.clientX - rect.left) * scaleX;\n const py = (event.clientY - rect.top) * scaleY;\n\n const hit = this.pixelToEtaPhi(px, py);\n if (!hit) return;\n\n const marker = this.findMarkerAt(hit.eta, hit.phi);\n if (marker?.uuid) {\n this.eventDisplay.highlightObject(marker.uuid);\n this.eventDisplay.lookAtObject(marker.uuid);\n }\n }\n\n // --- Data extraction ---\n\n private rebuildData() {\n this.buildGrid();\n this.buildMarkers();\n this.draw();\n }\n\n private buildGrid() {\n const { etaRange, phiRange, etaBins, phiBins, energyThreshold } =\n this.config;\n const etaStep = (etaRange[1] - etaRange[0]) / etaBins;\n const phiStep = (phiRange[1] - phiRange[0]) / phiBins;\n\n // Initialize grid\n this.grid = [];\n for (let ei = 0; ei < etaBins; ei++) {\n this.grid[ei] = [];\n for (let pi = 0; pi < phiBins; pi++) {\n this.grid[ei][pi] = {\n energy: 0,\n etaCenter: etaRange[0] + (ei + 0.5) * etaStep,\n phiCenter: phiRange[0] + (pi + 0.5) * phiStep,\n };\n }\n }\n\n // Fill from CaloCells and CaloClusters\n const collections = this.eventDisplay.getCollections();\n const caloTypes = ['CaloCells', 'CaloClusters'];\n\n for (const caloType of caloTypes) {\n if (!collections[caloType]) continue;\n for (const collName of collections[caloType]) {\n const items = this.eventDisplay.getCollection(collName);\n if (!items) continue;\n for (const cell of items) {\n if (cell.eta == null || cell.phi == null || cell.energy == null) {\n continue;\n }\n if (cell.energy <= energyThreshold) continue;\n\n const ei = Math.floor(\n ((cell.eta - etaRange[0]) / (etaRange[1] - etaRange[0])) * etaBins,\n );\n const pi = Math.floor(\n ((cell.phi - phiRange[0]) / (phiRange[1] - phiRange[0])) * phiBins,\n );\n\n if (ei >= 0 && ei < etaBins && pi >= 0 && pi < phiBins) {\n this.grid[ei][pi].energy += cell.energy;\n }\n }\n }\n }\n\n // Find max energy for color scaling\n this.maxEnergy = 0;\n for (let ei = 0; ei < etaBins; ei++) {\n for (let pi = 0; pi < phiBins; pi++) {\n if (this.grid[ei][pi].energy > this.maxEnergy) {\n this.maxEnergy = this.grid[ei][pi].energy;\n }\n }\n }\n }\n\n private buildMarkers() {\n this.markers = [];\n const collections = this.eventDisplay.getCollections();\n\n // Jets\n if (collections['Jets']) {\n for (const collName of collections['Jets']) {\n const jets = this.eventDisplay.getCollection(collName);\n if (!jets) continue;\n jets.forEach((jet: any, i: number) => {\n if (jet.eta == null || jet.phi == null) return;\n this.markers.push({\n eta: jet.eta,\n phi: jet.phi,\n label: `Jet ${i + 1}: E=${((jet.energy ?? jet.et ?? 0) / 1000).toFixed(0)} GeV`,\n color: '#f5c542',\n radius: jet.coneR ?? 0.4,\n uuid: jet.uuid,\n type: 'jet',\n });\n });\n }\n }\n\n // Muons\n if (collections['Muons']) {\n for (const collName of collections['Muons']) {\n const muons = this.eventDisplay.getCollection(collName);\n if (!muons) continue;\n muons.forEach((mu: any, i: number) => {\n if (mu.eta == null || mu.phi == null) return;\n this.markers.push({\n eta: mu.eta,\n phi: mu.phi,\n label: `Muon ${i + 1}: pT=${((mu.pT ?? 0) / 1000).toFixed(0)} GeV`,\n color: '#ff4444',\n uuid: mu.uuid,\n type: 'muon',\n });\n });\n }\n }\n\n // Electrons\n if (collections['Electrons']) {\n for (const collName of collections['Electrons']) {\n const electrons = this.eventDisplay.getCollection(collName);\n if (!electrons) continue;\n electrons.forEach((el: any, i: number) => {\n if (el.eta == null || el.phi == null) return;\n this.markers.push({\n eta: el.eta,\n phi: el.phi,\n label: `Electron ${i + 1}: pT=${((el.pT ?? 0) / 1000).toFixed(0)} GeV`,\n color: '#44ff44',\n uuid: el.uuid,\n type: 'electron',\n });\n });\n }\n }\n\n // Photons\n if (collections['Photons']) {\n for (const collName of collections['Photons']) {\n const photons = this.eventDisplay.getCollection(collName);\n if (!photons) continue;\n photons.forEach((ph: any, i: number) => {\n if (ph.eta == null || ph.phi == null) return;\n this.markers.push({\n eta: ph.eta,\n phi: ph.phi,\n label: `Photon ${i + 1}: E=${((ph.energy ?? 0) / 1000).toFixed(0)} GeV`,\n color: '#ffff44',\n uuid: ph.uuid,\n type: 'photon',\n });\n });\n }\n }\n\n // Tracks (derive eta/phi from dparams if needed)\n if (collections['Tracks']) {\n for (const collName of collections['Tracks']) {\n const tracks = this.eventDisplay.getCollection(collName);\n if (!tracks) continue;\n tracks.forEach((trk: any, i: number) => {\n let eta = trk.eta;\n let phi = trk.phi;\n if (eta == null && trk.dparams) {\n const theta = trk.dparams[3];\n eta = -Math.log(Math.tan(theta / 2));\n phi = trk.dparams[2];\n }\n if (eta == null || phi == null) return;\n this.markers.push({\n eta,\n phi,\n label: `Track ${i + 1}: pT=${((trk.pT ?? (trk.dparams ? Math.abs(1 / trk.dparams[4]) * Math.sin(trk.dparams[3]) : 0)) / 1000).toFixed(1)} GeV`,\n color: '#ff8800',\n uuid: trk.uuid,\n type: 'track',\n });\n });\n }\n }\n\n // MET\n if (collections['MissingEnergy']) {\n for (const collName of collections['MissingEnergy']) {\n const metItems = this.eventDisplay.getCollection(collName);\n if (!metItems) continue;\n for (const met of metItems) {\n if (met.etx == null || met.ety == null) continue;\n const metPhi = Math.atan2(met.ety, met.etx);\n const metMag = Math.sqrt(met.etx * met.etx + met.ety * met.ety);\n this.markers.push({\n eta: 0,\n phi: metPhi,\n label: `MET: ${(metMag / 1000).toFixed(0)} GeV`,\n color: '#ff0066',\n uuid: met.uuid,\n type: 'met',\n });\n }\n }\n }\n }\n\n // --- Drawing ---\n\n private draw() {\n if (!this.viewReady || !this.canvasRef) return;\n const canvas = this.canvasRef.nativeElement;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const w = canvas.width;\n const h = canvas.height;\n const m = this.MARGIN;\n const plotW = w - m.left - m.right;\n const plotH = h - m.top - m.bottom;\n\n // Clear\n ctx.fillStyle = '#1a1a2e';\n ctx.fillRect(0, 0, w, h);\n\n // Draw heatmap\n const { etaBins, phiBins } = this.config;\n const cellW = plotW / etaBins;\n const cellH = plotH / phiBins;\n\n for (let ei = 0; ei < etaBins; ei++) {\n for (let pi = 0; pi < phiBins; pi++) {\n const energy = this.grid[ei]?.[pi]?.energy ?? 0;\n if (energy <= 0) continue;\n ctx.fillStyle = this.energyToColor(energy);\n ctx.fillRect(\n m.left + ei * cellW,\n m.top + (phiBins - 1 - pi) * cellH,\n Math.ceil(cellW),\n Math.ceil(cellH),\n );\n }\n }\n\n // Overlays\n if (this.showOverlays) {\n this.drawMarkers(ctx, plotW, plotH);\n }\n\n // Axes\n this.drawAxes(ctx, h, plotW, plotH);\n\n // Tooltip (drawn last so it's on top)\n if (this.currentTooltip) {\n this.drawTooltip(\n ctx,\n this.tooltipPx,\n this.tooltipPy,\n this.currentTooltip,\n );\n }\n\n // Color bar\n this.drawColorBar();\n }\n\n private drawTooltip(\n ctx: CanvasRenderingContext2D,\n px: number,\n py: number,\n text: string,\n ) {\n ctx.font = '11px monospace';\n const metrics = ctx.measureText(text);\n const padX = 6;\n const padY = 4;\n const boxW = metrics.width + padX * 2;\n const boxH = 16 + padY * 2;\n\n // Position: offset right and up from cursor, clamp to canvas\n let x = px + 14;\n let y = py - boxH / 2;\n const canvas = this.canvasRef.nativeElement;\n if (x + boxW > canvas.width) x = px - boxW - 6;\n if (y < 0) y = 2;\n if (y + boxH > canvas.height) y = canvas.height - boxH - 2;\n\n ctx.fillStyle = 'rgba(0, 0, 0, 0.88)';\n ctx.beginPath();\n ctx.roundRect(x, y, boxW, boxH, 3);\n ctx.fill();\n\n ctx.fillStyle = '#fff';\n ctx.textAlign = 'left';\n ctx.fillText(text, x + padX, y + padY + 12);\n }\n\n private drawMarkers(\n ctx: CanvasRenderingContext2D,\n plotW: number,\n plotH: number,\n ) {\n const m = this.MARGIN;\n const { etaRange, phiRange } = this.config;\n\n for (const mk of this.markers) {\n const px =\n m.left + ((mk.eta - etaRange[0]) / (etaRange[1] - etaRange[0])) * plotW;\n const py =\n m.top +\n (1 - (mk.phi - phiRange[0]) / (phiRange[1] - phiRange[0])) * plotH;\n\n if (mk.type === 'jet' && mk.radius) {\n // Draw jet cone as circle in eta-phi space\n const rEta = (mk.radius / (etaRange[1] - etaRange[0])) * plotW;\n const rPhi = (mk.radius / (phiRange[1] - phiRange[0])) * plotH;\n ctx.beginPath();\n ctx.ellipse(px, py, rEta, rPhi, 0, 0, 2 * Math.PI);\n ctx.strokeStyle = mk.color;\n ctx.lineWidth = 1.5;\n ctx.stroke();\n // Label\n ctx.fillStyle = mk.color;\n ctx.font = '10px monospace';\n ctx.fillText(\n `J${this.markers.filter((m) => m.type === 'jet').indexOf(mk) + 1}`,\n px + rEta + 2,\n py + 3,\n );\n } else if (mk.type === 'met') {\n // Draw MET as arrow at eta=0\n ctx.beginPath();\n ctx.strokeStyle = mk.color;\n ctx.lineWidth = 2;\n const arrowLen = 20;\n ctx.moveTo(px, py);\n ctx.lineTo(px, py - arrowLen);\n // Arrowhead\n ctx.moveTo(px - 4, py - arrowLen + 6);\n ctx.lineTo(px, py - arrowLen);\n ctx.lineTo(px + 4, py - arrowLen + 6);\n ctx.stroke();\n ctx.fillStyle = mk.color;\n ctx.font = '9px monospace';\n ctx.fillText('MET', px + 5, py);\n } else {\n // Point marker for tracks, muons, electrons, photons\n ctx.beginPath();\n ctx.arc(px, py, 4, 0, 2 * Math.PI);\n ctx.fillStyle = mk.color;\n ctx.fill();\n ctx.strokeStyle = '#000';\n ctx.lineWidth = 0.5;\n ctx.stroke();\n }\n }\n }\n\n private drawAxes(\n ctx: CanvasRenderingContext2D,\n h: number,\n plotW: number,\n plotH: number,\n ) {\n const m = this.MARGIN;\n const { etaRange, phiRange } = this.config;\n\n ctx.strokeStyle = '#666';\n ctx.lineWidth = 1;\n\n // Plot border\n ctx.strokeRect(m.left, m.top, plotW, plotH);\n\n // Axis labels\n ctx.fillStyle = '#aaa';\n ctx.font = '11px monospace';\n ctx.textAlign = 'center';\n\n // Eta labels (bottom)\n const etaTicks = [-4, -3, -2, -1, 0, 1, 2, 3, 4];\n for (const eta of etaTicks) {\n if (eta < etaRange[0] || eta > etaRange[1]) continue;\n const x =\n m.left + ((eta - etaRange[0]) / (etaRange[1] - etaRange[0])) * plotW;\n ctx.fillText(eta.toString(), x, h - m.bottom + 16);\n // Tick mark\n ctx.beginPath();\n ctx.moveTo(x, m.top + plotH);\n ctx.lineTo(x, m.top + plotH + 4);\n ctx.stroke();\n }\n ctx.fillText('\\u03B7', m.left + plotW / 2, h - 2);\n\n // Phi labels (left)\n ctx.textAlign = 'right';\n const phiTicks = [\n { val: -Math.PI, label: '-\\u03C0' },\n { val: -Math.PI / 2, label: '-\\u03C0/2' },\n { val: 0, label: '0' },\n { val: Math.PI / 2, label: '\\u03C0/2' },\n { val: Math.PI, label: '\\u03C0' },\n ];\n for (const tick of phiTicks) {\n if (tick.val < phiRange[0] || tick.val > phiRange[1]) continue;\n const y =\n m.top +\n (1 - (tick.val - phiRange[0]) / (phiRange[1] - phiRange[0])) * plotH;\n ctx.fillText(tick.label, m.left - 4, y + 4);\n // Tick mark\n ctx.beginPath();\n ctx.moveTo(m.left - 4, y);\n ctx.lineTo(m.left, y);\n ctx.stroke();\n }\n // Phi axis label (rotated)\n ctx.save();\n ctx.translate(10, m.top + plotH / 2);\n ctx.rotate(-Math.PI / 2);\n ctx.textAlign = 'center';\n ctx.fillText('\\u03C6', 0, 0);\n ctx.restore();\n }\n\n private drawColorBar() {\n if (!this.colorBarRef) return;\n const canvas = this.colorBarRef.nativeElement;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const w = canvas.width;\n const h = canvas.height;\n\n for (let x = 0; x < w; x++) {\n const t = x / w;\n const energy = this.logScale\n ? Math.pow(this.maxEnergy, t)\n : t * this.maxEnergy;\n ctx.fillStyle = this.energyToColor(energy);\n ctx.fillRect(x, 0, 1, h);\n }\n\n this.colorBarMin = '0 GeV';\n this.colorBarMax = `${(this.maxEnergy / 1000).toFixed(0)} GeV`;\n }\n\n // --- Color mapping ---\n\n private energyToColor(energy: number): string {\n if (energy <= 0 || this.maxEnergy <= 0) return 'transparent';\n\n let t: number;\n if (this.logScale) {\n t = Math.log10(1 + energy) / Math.log10(1 + this.maxEnergy);\n } else {\n t = energy / this.maxEnergy;\n }\n t = Math.max(0, Math.min(1, t));\n\n // Sequential warm: dark blue -> blue -> cyan -> yellow -> red -> white\n // Physically meaningful: higher energy = hotter\n if (t < 0.2) {\n const s = t / 0.2;\n return `rgb(${Math.round(s * 30)}, ${Math.round(s * 20)}, ${Math.round(80 + s * 80)})`;\n } else if (t < 0.4) {\n const s = (t - 0.2) / 0.2;\n return `rgb(${Math.round(30 + s * 20)}, ${Math.round(20 + s * 140)}, ${Math.round(160 - s * 20)})`;\n } else if (t < 0.6) {\n const s = (t - 0.4) / 0.2;\n return `rgb(${Math.round(50 + s * 200)}, ${Math.round(160 + s * 90)}, ${Math.round(140 - s * 100)})`;\n } else if (t < 0.8) {\n const s = (t - 0.6) / 0.2;\n return `rgb(${Math.round(250)}, ${Math.round(250 - s * 150)}, ${Math.round(40 - s * 40)})`;\n } else {\n const s = (t - 0.8) / 0.2;\n return `rgb(255, ${Math.round(100 + s * 155)}, ${Math.round(s * 255)})`;\n }\n }\n\n // --- Hit testing ---\n\n private pixelToEtaPhi(\n px: number,\n py: number,\n ): { eta: number; phi: number } | null {\n const m = this.MARGIN;\n const canvas = this.canvasRef.nativeElement;\n const plotW = canvas.width - m.left - m.right;\n const plotH = canvas.height - m.top - m.bottom;\n\n const x = px - m.left;\n const y = py - m.top;\n if (x < 0 || x > plotW || y < 0 || y > plotH) return null;\n\n const { etaRange, phiRange } = this.config;\n const eta = etaRange[0] + (x / plotW) * (etaRange[1] - etaRange[0]);\n const phi = phiRange[1] - (y / plotH) * (phiRange[1] - phiRange[0]);\n return { eta, phi };\n }\n\n private getBin(eta: number, phi: number): GridCell | null {\n const { etaRange, phiRange, etaBins, phiBins } = this.config;\n const ei = Math.floor(\n ((eta - etaRange[0]) / (etaRange[1] - etaRange[0])) * etaBins,\n );\n const pi = Math.floor(\n ((phi - phiRange[0]) / (phiRange[1] - phiRange[0])) * phiBins,\n );\n if (ei < 0 || ei >= etaBins || pi < 0 || pi >= phiBins) return null;\n return this.grid[ei]?.[pi] ?? null;\n }\n\n private findMarkerAt(eta: number, phi: number): OverlayMarker | null {\n // Hit radius in eta-phi space\n const hitR = 0.15;\n for (const mk of this.markers) {\n const de = mk.eta - eta;\n const dp = mk.phi - phi;\n if (Math.sqrt(de * de + dp * dp) < (mk.radius ?? hitR)) {\n return mk;\n }\n }\n return null;\n }\n}\n","<app-overlay\n overlayTitle=\"Eta-Phi Energy Map\"\n icon=\"eta-phi\"\n [active]=\"showPanel\"\n>\n <div class=\"eta-phi-container\">\n <div class=\"eta-phi-controls\">\n <label class=\"scale-toggle\">\n <input\n type=\"checkbox\"\n [checked]=\"logScale\"\n (change)=\"toggleLogScale()\"\n />\n Log scale\n </label>\n <label class=\"overlay-toggle\">\n <input\n type=\"checkbox\"\n [checked]=\"showOverlays\"\n (change)=\"toggleOverlays()\"\n />\n Overlays\n </label>\n </div>\n <div class=\"canvas-wrapper\">\n <canvas #etaPhiCanvas width=\"600\" height=\"380\"></canvas>\n </div>\n <div class=\"color-bar\">\n <canvas #colorBarCanvas width=\"300\" height=\"14\"></canvas>\n <div class=\"color-bar-labels\">\n <span>{{ colorBarMin }}</span>\n <span>{{ colorBarMax }}</span>\n </div>\n </div>\n </div>\n</app-overlay>\n","import {\n Component,\n type OnInit,\n ComponentRef,\n type OnDestroy,\n} from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { EtaPhiPanelOverlayComponent } from './eta-phi-panel-overlay/eta-phi-panel-overlay.component';\n\n@Component({\n standalone: false,\n selector: 'app-eta-phi-panel',\n templateUrl: './eta-phi-panel.component.html',\n styleUrls: ['./eta-phi-panel.component.scss'],\n})\nexport class EtaPhiPanelComponent implements OnInit, OnDestroy {\n showPanel = false;\n overlayWindow: ComponentRef<EtaPhiPanelOverlayComponent>;\n\n constructor(private overlay: Overlay) {}\n\n ngOnInit() {\n const overlayRef = this.overlay.create();\n const overlayPortal = new ComponentPortal(EtaPhiPanelOverlayComponent);\n this.overlayWindow = overlayRef.attach(overlayPortal);\n this.overlayWindow.instance.showPanel = this.showPanel;\n }\n\n ngOnDestroy(): void {\n this.overlayWindow.destroy();\n }\n\n toggleOverlay() {\n this.showPanel = !this.showPanel;\n this.overlayWindow.instance.showPanel = this.showPanel;\n }\n}\n","<app-menu-toggle\n tooltip=\"Eta-phi energy map\"\n icon=\"eta-phi\"\n [active]=\"showPanel\"\n (click)=\"toggleOverlay()\"\n>\n</app-menu-toggle>\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\n *ngIf=\"uiConfig.showObjectClipping\"\n ></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 *ngIf=\"uiConfig.showOverlayView\"></app-overlay-view>\n\n <!-- Toggle for selected object panel -->\n <app-object-selection\n *ngIf=\"uiConfig.showObjectSelection\"\n ></app-object-selection>\n\n <!-- Info panel -->\n <app-info-panel *ngIf=\"uiConfig.showInfoPanel\"></app-info-panel>\n\n <!-- Toggle for animating the event data -->\n <app-animate-event *ngIf=\"uiConfig.showAnimateEvent\"></app-animate-event>\n\n <!-- Toggle for animating camera through event -->\n <app-animate-camera\n *ngIf=\"uiConfig.showAnimateCamera\"\n [animationPresets]=\"animationPresets\"\n ></app-animate-camera>\n\n <!-- Toggle for event browser -->\n <app-event-browser *ngIf=\"uiConfig.showEventBrowser\"></app-event-browser>\n\n <!-- Toggle for eta-phi energy map -->\n <app-eta-phi-panel *ngIf=\"uiConfig.showEtaPhiPanel\"></app-eta-phi-panel>\n\n <!-- Toggle for collections info -->\n <app-collections-info\n *ngIf=\"uiConfig.showCollectionsInfo\"\n ></app-collections-info>\n\n <!-- Toggle for geometry browser -->\n <app-geometry-browser\n *ngIf=\"uiConfig.showGeometryBrowser\"\n ></app-geometry-browser>\n\n <!-- Toggle for performance -->\n <app-performance-toggle\n *ngIf=\"uiConfig.showPerformanceToggle\"\n ></app-performance-toggle>\n\n <!-- Toggle for VR -->\n <app-vr-toggle *ngIf=\"uiConfig.showVRToggle\"></app-vr-toggle>\n\n <!-- Toggle for AR -->\n <app-ar-toggle *ngIf=\"uiConfig.showARToggle\"></app-ar-toggle>\n\n <!-- Make pictures from scene -->\n <app-make-picture *ngIf=\"uiConfig.showMakePicture\"></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 *ngIf=\"uiConfig.showShareLink\"></app-share-link>\n\n <!-- Extra options -->\n <ng-content></ng-content>\n</app-ui-menu-wrapper>\n","import { Component, Input } from '@angular/core';\nimport {\n EventDataFormat,\n type EventDataImportOption,\n} from '../../services/extras/event-data-import';\nimport { defaultAnimationPresets } from './animate-camera/animate-camera.component';\n\nexport interface UIMenuConfig {\n showVRToggle?: boolean;\n showARToggle?: boolean;\n showShareLink?: boolean;\n showPerformanceToggle?: boolean;\n showGeometryBrowser?: boolean;\n showObjectClipping?: boolean;\n showOverlayView?: boolean;\n showAnimateEvent?: boolean;\n showAnimateCamera?: boolean;\n showCollectionsInfo?: boolean;\n showMakePicture?: boolean;\n showObjectSelection?: boolean;\n showInfoPanel?: boolean;\n showEventBrowser?: boolean;\n showEtaPhiPanel?: boolean;\n}\n\nexport const defaultUIMenuConfig: UIMenuConfig = {\n showVRToggle: true,\n showARToggle: true,\n showShareLink: true,\n showPerformanceToggle: true,\n showGeometryBrowser: true,\n showObjectClipping: true,\n showOverlayView: true,\n showAnimateEvent: true,\n showAnimateCamera: true,\n showCollectionsInfo: true,\n showMakePicture: true,\n showObjectSelection: true,\n showInfoPanel: true,\n showEventBrowser: true,\n showEtaPhiPanel: true,\n};\n\n@Component({\n standalone: false,\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\n @Input()\n animationPresets = defaultAnimationPresets;\n\n @Input()\n uiConfig: UIMenuConfig = { ...defaultUIMenuConfig };\n}\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, node.nocache)\"\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 type OnChanges,\n Output,\n type 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 nocache: boolean;\n children: { [key: string]: FileNode };\n\n constructor(name?: string) {\n this.name = name;\n this.nocache = false;\n }\n}\nexport class FileEvent {\n url: string;\n nocache: boolean;\n constructor(url: string, nocache: boolean) {\n this.url = url;\n this.nocache = nocache;\n }\n}\n\n@Component({\n standalone: false,\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<FileEvent> =\n new EventEmitter<FileEvent>();\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, nocache: boolean) {\n this.onFileSelect.emit(new FileEvent(url, nocache));\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 { Injectable } from '@angular/core';\nimport JSZip from 'jszip';\nimport { EventDisplayService } from './event-display.service';\nimport { JiveXMLLoader } from 'phoenix-event-display';\n\n/**\n * Service makeing file loading easier\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FileLoaderService {\n private lastEventsURL: string = '';\n private lastEventsOptions: any = {};\n\n 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 // returns whether an error was found\n makeRequest(\n urlPath: string,\n responseType: 'json' | 'text' | 'blob',\n onData: (data: any) => void,\n options: any = {},\n ) {\n fetch(urlPath, options)\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 })\n .catch((error) => {\n console.error(error);\n return true;\n });\n return false;\n }\n\n loadJSONEvent(eventData: string, eventDisplay: EventDisplayService) {\n eventDisplay.parsePhoenixEvents(JSON.parse(eventData));\n }\n\n loadJiveXMLEvent(eventData: string, eventDisplay: EventDisplayService) {\n let jiveXMLLoader = undefined;\n\n if (eventDisplay.configuration.eventDataLoader instanceof JiveXMLLoader) {\n jiveXMLLoader = eventDisplay.configuration\n .eventDataLoader as JiveXMLLoader;\n } else {\n jiveXMLLoader = new JiveXMLLoader();\n }\n\n jiveXMLLoader.process(eventData);\n const processedEventData = jiveXMLLoader.getEventData();\n eventDisplay.buildEventDataFromJSON(processedEventData);\n }\n\n loadEvent(\n file: string,\n eventDisplay: EventDisplayService,\n options: any = {},\n ) {\n this.lastEventsURL = file;\n this.lastEventsOptions = options;\n const isZip = file.split('.').pop() === 'zip';\n const rawfile = isZip ? file.substring(0, file.length - 4) : file;\n return this.makeRequest(\n file,\n isZip ? 'blob' : 'text',\n (eventData) => {\n switch (rawfile.split('.').pop()) {\n case 'xml':\n this.loadJiveXMLEvent(eventData, eventDisplay);\n break;\n case 'json':\n this.loadJSONEvent(eventData, eventDisplay);\n break;\n }\n },\n options,\n );\n }\n\n reloadLastEvents(eventDisplay: EventDisplayService) {\n if (this.lastEventsURL.length > 0) {\n // Force ignoring caches when reloading for live cycling\n const reloadOptions = {\n ...(this.lastEventsOptions || {}),\n cache: 'no-store',\n };\n this.loadEvent(this.lastEventsURL, eventDisplay, reloadOptions);\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n standalone: false,\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 opacity=\"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 { EventDisplayService } from '../../../../services/event-display.service';\nimport {\n FileNode,\n FileEvent,\n} from '../../../file-explorer/file-explorer.component';\nimport { FileLoaderService } from '../../../../services/file-loader.service';\nimport { type EventDataExplorerDialogData } from '../event-data-explorer.component';\n\nconst supportFileTypes = ['json', 'xml'];\n\nexport type FileResponse = {\n name: string;\n url: string;\n nocache: boolean;\n};\n\n@Component({\n standalone: false,\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 fileLoader: FileLoaderService,\n private dialogRef: MatDialogRef<EventDataExplorerDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogData: EventDataExplorerDialogData,\n ) {\n // Event data\n fileLoader.makeRequest(\n this.dialogData.apiURL,\n 'json',\n (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\n // Config\n fileLoader.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: FileEvent) {\n this.loading = true;\n this.error = this.fileLoader.loadEvent(\n file.url,\n this.eventDisplay,\n file.nocache ? { cache: 'no-cache' } : {},\n );\n this.loading = false;\n if (!this.error) this.onClose();\n }\n\n loadConfig(file: FileEvent) {\n this.loading = true;\n this.error = this.fileLoader.makeRequest(\n `${this.dialogData.apiURL}?type=config&f=${file.url}`,\n 'text',\n (config) => {\n const stateManager = this.eventDisplay.getStateManager();\n stateManager.loadStateFromJSON(JSON.parse(config));\n this.onClose();\n },\n );\n this.loading = false;\n }\n\n // Helpers\n onClose() {\n this.dialogRef.close();\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.nocache = filePath.nocache;\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 standalone: false,\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, type OnInit, type OnDestroy } from '@angular/core';\nimport { EventDisplayService } from '../../../services/event-display.service';\nimport { FileLoaderService } from '../../../services/file-loader.service';\n\n@Component({\n standalone: false,\n selector: 'app-cycle-events',\n templateUrl: './cycle-events.component.html',\n styleUrls: ['./cycle-events.component.scss'],\n})\nexport class CycleEventsComponent implements OnInit, OnDestroy {\n @Input() interval: number;\n @Input() tooltip: string;\n @Input() icon: string;\n\n // There are actually 3 states we go through when clicking this component :\n // - not active : so we are not cycling throught events\n // - active and not reloading : cycling over the events stored in events\n // - active and reloading : cycling and reloading the events when reaching the end\n // Last state is useful e.g. for live feed of events\n active: boolean = false;\n reloading: boolean = false;\n\n private intervalId: NodeJS.Timeout;\n\n private events: string[];\n private eventsChangeCallback: (events: string[]) => void;\n private unsubscribe: () => void;\n\n constructor(\n private eventDisplay: EventDisplayService,\n private fileLoader: FileLoaderService,\n ) {}\n\n ngOnInit() {\n this.eventsChangeCallback = (events) => {\n this.events = events;\n if (this.active) {\n // restart cycling from first event\n clearInterval(this.intervalId);\n this.startCycleInterval();\n }\n };\n this.unsubscribe = this.eventDisplay.listenToLoadedEventsChange(\n this.eventsChangeCallback,\n );\n }\n\n ngOnDestroy(): void {\n // Clear the interval to prevent memory leaks\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n // Unsubscribe from events change listener\n this.unsubscribe?.();\n }\n\n toggleCycle() {\n this.reloading = this.active && !this.reloading;\n this.active = !this.active || this.reloading;\n console.log(this.active, this.reloading);\n clearInterval(this.intervalId);\n if (this.active) {\n this.startCycleInterval();\n }\n }\n\n private startCycleInterval(startIndex: number = 0) {\n // Guard against multiple intervals - clear any existing interval first\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n\n // Check if events are available before starting cycle\n if (!this.events || this.events.length === 0) {\n console.warn('Cycle Events: No events available to cycle through');\n this.active = false;\n return;\n }\n\n // load immediately first event\n let index = startIndex;\n this.eventDisplay.loadEvent(this.events[index]);\n index = index + 1 >= this.events.length ? -1 : index + 1;\n // launch automatic cycling\n this.intervalId = setInterval(() => {\n // special value -1 is used to denote wrapping of the current set of events\n if (index == -1) {\n if (this.reloading) {\n // reload the current events, ignoring caches\n this.fileLoader.reloadLastEvents(this.eventDisplay);\n }\n // put back index to 0 to start with first event anyway\n index = 0;\n }\n this.eventDisplay.loadEvent(this.events[index]);\n index = index + 1 >= this.events.length ? -1 : index + 1;\n }, this.interval);\n }\n}\n","<button\n class=\"cycle-events\"\n matTooltip=\"Cycle (off/on/on+reload)\"\n matTooltipPosition=\"above\"\n matTooltipTouchGestures=\"off\"\n (click)=\"toggleCycle()\"\n>\n <svg\n class=\"cycle-events-icon\"\n [ngClass]=\"{ 'active-icon': active, 'reload-icon': reloading }\"\n >\n <use href=\"assets/icons/cycle-events.svg#cycle-events\"></use>\n </svg>\n</button>\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 * @returns A function that can be called to unsubscribe from error notifications.\n */\n subscribeToError(callback: (error: Error) => void): () => void {\n return 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, type OnDestroy } from '@angular/core';\nimport { ErrorMessageService } from '../../services/error-message-service';\n\n@Component({\n standalone: false,\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent implements OnDestroy {\n @Input() loaded = false;\n @Input() progress: number;\n public error: Error;\n private unsubscribeError: () => void;\n\n constructor(private errorMessageService: ErrorMessageService) {\n this.unsubscribeError = this.errorMessageService.subscribeToError(\n (error) => {\n if (!this.loaded) {\n this.error = error;\n }\n },\n );\n }\n\n ngOnDestroy() {\n this.unsubscribeError();\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, type OnInit } from '@angular/core';\n\n@Component({\n standalone: false,\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 standalone: false,\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, ReactiveFormsModule } from '@angular/forms';\nimport { CdkTreeModule } from '@angular/cdk/tree';\n\nimport { MatRadioModule } from '@angular/material/radio';\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 { MatTabsModule } from '@angular/material/tabs';\n\nimport { NavComponent } from './nav/nav.component';\n\nimport {\n PhoenixMenuComponent,\n PhoenixMenuItemComponent,\n ConfigSliderComponent,\n} from './phoenix-menu';\n\nimport {\n UiMenuWrapperComponent,\n UiMenuComponent,\n CollectionsInfoComponent,\n MenuToggleComponent,\n GeometryBrowserComponent,\n GeometryBrowserOverlayComponent,\n CollectionsInfoOverlayComponent,\n IoOptionsComponent,\n IOOptionsDialogComponent,\n OverlayViewComponent,\n ObjectSelectionComponent,\n ObjectSelectionOverlayComponent,\n EventSelectorComponent,\n ObjectClippingComponent,\n DarkThemeComponent,\n AutoRotateComponent,\n CartesianGridConfigComponent,\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 EventBrowserComponent,\n EventBrowserOverlayComponent,\n EtaPhiPanelComponent,\n EtaPhiPanelOverlayComponent,\n} from './ui-menu';\n\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';\n\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 GeometryBrowserComponent,\n GeometryBrowserOverlayComponent,\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 CartesianGridConfigComponent,\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 EventBrowserComponent,\n EventBrowserOverlayComponent,\n EtaPhiPanelComponent,\n EtaPhiPanelOverlayComponent,\n];\n\n@NgModule({\n declarations: PHOENIX_COMPONENTS,\n imports: [\n AttributePipe, // Correct: standalone items must be in imports\n CommonModule,\n RouterModule,\n DragDropModule,\n MatDialogModule,\n MatButtonModule,\n MatTooltipModule,\n OverlayModule,\n FormsModule,\n ReactiveFormsModule,\n MatMenuModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatCheckboxModule,\n MatIconModule,\n CdkTreeModule,\n MatTabsModule,\n ],\n exports: [\n ...PHOENIX_COMPONENTS,\n AttributePipe, // Export it so components in other modules can use it\n ],\n providers: [\n EventDisplayService,\n ErrorMessageService,\n {\n provide: ErrorHandler,\n useClass: GlobalErrorHandler,\n },\n ],\n})\nexport class PhoenixUIModule {}\n","// Components\nexport * from './components/nav/nav.component';\n\nexport * from './components/phoenix-menu';\nexport * from './components/ui-menu';\n\nexport * from './components/loader/loader.component';\nexport * from './components/phoenix-ui.module';\n\nexport * from './components/embed-menu/embed-menu.component';\nexport * from './components/embed-menu/experiment-link/experiment-link.component';\n\nexport * from './components/file-explorer/file-explorer.component';\nexport * from './components/ring-loader/ring-loader.component';\n\n// Services\nexport * from './services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_c2","_c3","_c1","_c4","i6.ConfigSliderComponent","i1.EventDisplayService","_c0","i1","i2","i2.EventDisplayService","i2.FileLoaderService","i1.ErrorMessageService"],"mappings":"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"}