phoenix-ui-components 2.11.4 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/components/embed-menu/embed-menu.component.d.ts +1 -1
  2. package/dist/components/embed-menu/experiment-link/experiment-link.component.d.ts +1 -1
  3. package/dist/components/file-explorer/file-explorer.component.d.ts +1 -1
  4. package/dist/components/loader/loader.component.d.ts +1 -1
  5. package/dist/components/nav/nav.component.d.ts +1 -1
  6. package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +1 -1
  7. package/dist/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.d.ts +1 -1
  8. package/dist/components/phoenix-menu/phoenix-menu.component.d.ts +1 -1
  9. package/dist/components/ring-loader/ring-loader.component.d.ts +1 -1
  10. package/dist/components/ui-menu/animate-camera/animate-camera.component.d.ts +1 -1
  11. package/dist/components/ui-menu/animate-event/animate-event.component.d.ts +1 -1
  12. package/dist/components/ui-menu/ar-toggle/ar-toggle.component.d.ts +1 -1
  13. package/dist/components/ui-menu/auto-rotate/auto-rotate.component.d.ts +1 -1
  14. package/dist/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.d.ts +1 -1
  15. package/dist/components/ui-menu/collections-info/collections-info.component.d.ts +1 -1
  16. package/dist/components/ui-menu/cycle-events/cycle-events.component.d.ts +1 -1
  17. package/dist/components/ui-menu/dark-theme/dark-theme.component.d.ts +1 -1
  18. package/dist/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.d.ts +3 -2
  19. package/dist/components/ui-menu/event-data-explorer/event-data-explorer.component.d.ts +1 -1
  20. package/dist/components/ui-menu/event-selector/event-selector.component.d.ts +1 -1
  21. package/dist/components/ui-menu/experiment-info/experiment-info.component.d.ts +1 -1
  22. package/dist/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.d.ts +1 -1
  23. package/dist/components/ui-menu/info-panel/info-panel.component.d.ts +1 -1
  24. package/dist/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.d.ts +2 -1
  25. package/dist/components/ui-menu/io-options/io-options.component.d.ts +1 -1
  26. package/dist/components/ui-menu/main-view-toggle/main-view-toggle.component.d.ts +1 -1
  27. package/dist/components/ui-menu/menu-toggle/menu-toggle.component.d.ts +1 -1
  28. package/dist/components/ui-menu/object-clipping/object-clipping.component.d.ts +3 -4
  29. package/dist/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.d.ts +1 -1
  30. package/dist/components/ui-menu/object-selection/object-selection.component.d.ts +1 -1
  31. package/dist/components/ui-menu/overlay/overlay.component.d.ts +1 -1
  32. package/dist/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.d.ts +1 -1
  33. package/dist/components/ui-menu/overlay-view/overlay-view.component.d.ts +1 -1
  34. package/dist/components/ui-menu/performance-toggle/performance-toggle.component.d.ts +1 -1
  35. package/dist/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.d.ts +1 -1
  36. package/dist/components/ui-menu/share-link/share-link.component.d.ts +1 -1
  37. package/dist/components/ui-menu/ss-mode/ss-mode.component.d.ts +1 -1
  38. package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +1 -1
  39. package/dist/components/ui-menu/tree-menu/tree-menu.component.d.ts +1 -1
  40. package/dist/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.d.ts +1 -1
  41. package/dist/components/ui-menu/ui-menu.component.d.ts +1 -1
  42. package/dist/components/ui-menu/view-options/view-options.component.d.ts +1 -1
  43. package/dist/components/ui-menu/vr-toggle/vr-toggle.component.d.ts +1 -1
  44. package/dist/components/ui-menu/zoom-controls/zoom-controls.component.d.ts +1 -1
  45. package/dist/esm2020/components/embed-menu/embed-menu.component.mjs +11 -7
  46. package/dist/esm2020/components/embed-menu/experiment-link/experiment-link.component.mjs +11 -7
  47. package/dist/esm2020/components/file-explorer/file-explorer.component.mjs +59 -11
  48. package/dist/esm2020/components/loader/loader.component.mjs +53 -11
  49. package/dist/esm2020/components/nav/nav.component.mjs +11 -7
  50. package/dist/esm2020/components/phoenix-menu/config/config-slider/config-slider.component.mjs +42 -22
  51. package/dist/esm2020/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +281 -12
  52. package/dist/esm2020/components/phoenix-menu/phoenix-menu.component.mjs +16 -9
  53. package/dist/esm2020/components/phoenix-ui.module.mjs +68 -67
  54. package/dist/esm2020/components/ring-loader/ring-loader.component.mjs +11 -7
  55. package/dist/esm2020/components/ui-menu/animate-camera/animate-camera.component.mjs +34 -9
  56. package/dist/esm2020/components/ui-menu/animate-event/animate-event.component.mjs +13 -7
  57. package/dist/esm2020/components/ui-menu/ar-toggle/ar-toggle.component.mjs +41 -7
  58. package/dist/esm2020/components/ui-menu/auto-rotate/auto-rotate.component.mjs +13 -7
  59. package/dist/esm2020/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +188 -9
  60. package/dist/esm2020/components/ui-menu/collections-info/collections-info.component.mjs +13 -7
  61. package/dist/esm2020/components/ui-menu/cycle-events/cycle-events.component.mjs +15 -9
  62. package/dist/esm2020/components/ui-menu/dark-theme/dark-theme.component.mjs +13 -7
  63. package/dist/esm2020/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +83 -13
  64. package/dist/esm2020/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +15 -9
  65. package/dist/esm2020/components/ui-menu/event-selector/event-selector.component.mjs +32 -7
  66. package/dist/esm2020/components/ui-menu/experiment-info/experiment-info.component.mjs +81 -13
  67. package/dist/esm2020/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +38 -9
  68. package/dist/esm2020/components/ui-menu/info-panel/info-panel.component.mjs +13 -7
  69. package/dist/esm2020/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +122 -10
  70. package/dist/esm2020/components/ui-menu/io-options/io-options.component.mjs +15 -9
  71. package/dist/esm2020/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +13 -7
  72. package/dist/esm2020/components/ui-menu/menu-toggle/menu-toggle.component.mjs +29 -15
  73. package/dist/esm2020/components/ui-menu/object-clipping/object-clipping.component.mjs +42 -11
  74. package/dist/esm2020/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +40 -9
  75. package/dist/esm2020/components/ui-menu/object-selection/object-selection.component.mjs +13 -7
  76. package/dist/esm2020/components/ui-menu/overlay/overlay.component.mjs +102 -23
  77. package/dist/esm2020/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +38 -12
  78. package/dist/esm2020/components/ui-menu/overlay-view/overlay-view.component.mjs +13 -7
  79. package/dist/esm2020/components/ui-menu/performance-toggle/performance-toggle.component.mjs +13 -7
  80. package/dist/esm2020/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +94 -10
  81. package/dist/esm2020/components/ui-menu/share-link/share-link.component.mjs +13 -7
  82. package/dist/esm2020/components/ui-menu/ss-mode/ss-mode.component.mjs +13 -7
  83. package/dist/esm2020/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +69 -12
  84. package/dist/esm2020/components/ui-menu/tree-menu/tree-menu.component.mjs +14 -7
  85. package/dist/esm2020/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +26 -7
  86. package/dist/esm2020/components/ui-menu/ui-menu.component.mjs +23 -11
  87. package/dist/esm2020/components/ui-menu/view-options/view-options.component.mjs +54 -7
  88. package/dist/esm2020/components/ui-menu/vr-toggle/vr-toggle.component.mjs +13 -7
  89. package/dist/esm2020/components/ui-menu/zoom-controls/zoom-controls.component.mjs +19 -7
  90. package/dist/esm2020/services/error-message-service.mjs +9 -9
  91. package/dist/esm2020/services/event-display.service.mjs +9 -9
  92. package/dist/esm2020/services/extras/attribute.pipe.mjs +9 -9
  93. package/dist/esm2020/services/extras/event-data-import.mjs +2 -1
  94. package/dist/esm2020/services/global-error-handler.mjs +6 -6
  95. package/dist/fesm2015/phoenix-ui-components.mjs +2217 -336
  96. package/dist/fesm2015/phoenix-ui-components.mjs.map +1 -1
  97. package/dist/fesm2020/phoenix-ui-components.mjs +1918 -463
  98. package/dist/fesm2020/phoenix-ui-components.mjs.map +1 -1
  99. package/dist/services/extras/event-data-import.d.ts +1 -0
  100. package/package.json +7 -7
@@ -1,11 +1,42 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { CMSLoader, JiveXMLLoader, readZipFile } from 'phoenix-event-display';
2
+ import { CMSLoader, JiveXMLLoader, readZipFile, Edm4hepJsonLoader, } from 'phoenix-event-display';
3
3
  import { EventDataFormat, ImportOption, } from '../../../../services/extras/event-data-import';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../../../services/event-display.service";
6
6
  import * as i2 from "@angular/material/dialog";
7
7
  import * as i3 from "@angular/common";
8
8
  import * as i4 from "@angular/material/button";
9
+ function IOOptionsDialogComponent_div_4_ng_container_5_Template(rf, ctx) { if (rf & 1) {
10
+ const _r10 = i0.ɵɵgetCurrentView();
11
+ i0.ɵɵelementContainerStart(0);
12
+ i0.ɵɵelementStart(1, "input", 28, 29);
13
+ i0.ɵɵlistener("change", function IOOptionsDialogComponent_div_4_ng_container_5_Template_input_change_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r10); const eventDataImportOption_r7 = restoredCtx.$implicit; return i0.ɵɵresetView(eventDataImportOption_r7.handler($event.target.files)); });
14
+ i0.ɵɵelementEnd();
15
+ i0.ɵɵelementStart(3, "button", 8);
16
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_div_4_ng_container_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r10); const _r8 = i0.ɵɵreference(2); return i0.ɵɵresetView(_r8.click()); });
17
+ i0.ɵɵelement(4, "img", 30);
18
+ i0.ɵɵtext(5);
19
+ i0.ɵɵelementEnd();
20
+ i0.ɵɵelementContainerEnd();
21
+ } if (rf & 2) {
22
+ const eventDataImportOption_r7 = ctx.$implicit;
23
+ i0.ɵɵadvance(1);
24
+ i0.ɵɵproperty("accept", eventDataImportOption_r7.accept);
25
+ i0.ɵɵadvance(4);
26
+ i0.ɵɵtextInterpolate1(" Load ", eventDataImportOption_r7.fileType, " ");
27
+ } }
28
+ function IOOptionsDialogComponent_div_4_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelementStart(0, "div")(1, "p", 4)(2, "b");
30
+ i0.ɵɵtext(3, "Event data");
31
+ i0.ɵɵelementEnd()();
32
+ i0.ɵɵelementStart(4, "div", 5);
33
+ i0.ɵɵtemplate(5, IOOptionsDialogComponent_div_4_ng_container_5_Template, 6, 2, "ng-container", 27);
34
+ i0.ɵɵelementEnd()();
35
+ } if (rf & 2) {
36
+ const ctx_r0 = i0.ɵɵnextContext();
37
+ i0.ɵɵadvance(5);
38
+ i0.ɵɵproperty("ngForOf", ctx_r0.eventDataOptionsWithHandler);
39
+ } }
9
40
  export class IOOptionsDialogComponent {
10
41
  constructor(eventDisplay, dialogRef) {
11
42
  this.eventDisplay = eventDisplay;
@@ -13,6 +44,7 @@ export class IOOptionsDialogComponent {
13
44
  this.eventDataImportOptions = [EventDataFormat.JSON];
14
45
  this.supportedEventDataFormats = [
15
46
  new ImportOption(EventDataFormat.JSON, '.json', this.handleJSONEventDataInput.bind(this), 'application/json'),
47
+ new ImportOption(EventDataFormat.EDM4HEPJSON, '.edm4hep.json', this.handleEDM4HEPJSONEventDataInput.bind(this), 'application/json'),
16
48
  new ImportOption(EventDataFormat.JIVEXML, '.xml', this.handleJiveXMLDataInput.bind(this), 'text/xml'),
17
49
  new ImportOption(EventDataFormat.ZIP, '.zip', this.handleZipEventDataInput.bind(this), '.zip'),
18
50
  new ImportOption(EventDataFormat.IG, '.ig', this.handleIgEventDataInput.bind(this), '.ig'),
@@ -52,6 +84,16 @@ export class IOOptionsDialogComponent {
52
84
  };
53
85
  this.handleFileInput(files[0], 'json', callback);
54
86
  }
87
+ handleEDM4HEPJSONEventDataInput(files) {
88
+ const callback = (content) => {
89
+ const json = typeof content === 'string' ? JSON.parse(content) : content;
90
+ const edm4hepJsonLoader = new Edm4hepJsonLoader();
91
+ edm4hepJsonLoader.setRawEventData(json);
92
+ edm4hepJsonLoader.processEventData();
93
+ this.eventDisplay.parsePhoenixEvents(edm4hepJsonLoader.getEventData());
94
+ };
95
+ this.handleFileInput(files[0], 'json', callback);
96
+ }
55
97
  handleJiveXMLDataInput(files) {
56
98
  const callback = (content) => {
57
99
  const jiveloader = new JiveXMLLoader();
@@ -167,12 +209,82 @@ export class IOOptionsDialogComponent {
167
209
  this.eventDisplay.exportToOBJ();
168
210
  }
169
211
  }
170
- IOOptionsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: IOOptionsDialogComponent, deps: [{ token: i1.EventDisplayService }, { token: i2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
171
- IOOptionsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: IOOptionsDialogComponent, selector: "app-io-options-dialog", inputs: { eventDataImportOptions: "eventDataImportOptions" }, ngImport: i0, template: "<div class=\"dialog\">\n <h1 mat-dialog-title>Import and export options</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"eventDataImportOptions.length > 0\">\n <h5>Import</h5>\n\n <h6 class=\"text-center\">Event data</h6>\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\n <p class=\"text-center\">\n Supported formats: {{ getSupportedEventDataFormats() }}\n </p>\n </div>\n\n <h6 class=\"text-center\">Geometries</h6>\n\n <div class=\"row centered\">\n <input\n #objFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".obj\"\n name=\"image\"\n (change)=\"handleOBJInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"objFileInput.click()\">\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Load .obj\n </button>\n\n <input\n #gltfFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".gltf\"\n name=\"image\"\n (change)=\"handleGLTFInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"gltfFileInput.click()\">\n <img src=\"assets/icons/gltf.svg\" alt=\"\" /> Load .gltf\n </button>\n\n <input\n #rootFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".root\"\n (change)=\"handleROOTInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .root\n </button>\n\n <input\n #rootJSONFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".json.gz\"\n (change)=\"handleRootJSONInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootJSONFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .json.gz\n </button>\n </div>\n\n <p class=\"text-center\">Supported formats: OBJ, GLTF, ROOT, ROOT JSON</p>\n\n <h5>Import / export scene</h5>\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 <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n", styles: [".row{justify-content:center;margin:1rem 0}.file-input{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.file-input-button{font-size:1em;font-weight:700;color:#fff;background-color:#6eaece;padding:1em .5em;border:none;border-radius:10px;width:8rem;margin:0 .4rem}.file-input-button.load-export{padding:.8em .2em;width:7rem}.file-input-button.load-export img{max-height:1.2em}.file-input-button.export-button{background-color:#cb7133}.file-input-button.export-button:hover{background-color:#ad5b2d}.file-input-button img{max-height:2em;display:block;width:100%}.file-input-button:hover{background-color:#118ab2}#exportScene{background-color:#5bd99e}#exportScene:hover{background-color:#05c292}#importScene{background-color:#ecc25e}#importScene:hover{background-color:#d6b44d}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: IOOptionsDialogComponent, decorators: [{
173
- type: Component,
174
- args: [{ selector: 'app-io-options-dialog', template: "<div class=\"dialog\">\n <h1 mat-dialog-title>Import and export options</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"eventDataImportOptions.length > 0\">\n <h5>Import</h5>\n\n <h6 class=\"text-center\">Event data</h6>\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\n <p class=\"text-center\">\n Supported formats: {{ getSupportedEventDataFormats() }}\n </p>\n </div>\n\n <h6 class=\"text-center\">Geometries</h6>\n\n <div class=\"row centered\">\n <input\n #objFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".obj\"\n name=\"image\"\n (change)=\"handleOBJInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"objFileInput.click()\">\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Load .obj\n </button>\n\n <input\n #gltfFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".gltf\"\n name=\"image\"\n (change)=\"handleGLTFInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"gltfFileInput.click()\">\n <img src=\"assets/icons/gltf.svg\" alt=\"\" /> Load .gltf\n </button>\n\n <input\n #rootFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".root\"\n (change)=\"handleROOTInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .root\n </button>\n\n <input\n #rootJSONFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".json.gz\"\n (change)=\"handleRootJSONInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootJSONFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .json.gz\n </button>\n </div>\n\n <p class=\"text-center\">Supported formats: OBJ, GLTF, ROOT, ROOT JSON</p>\n\n <h5>Import / export scene</h5>\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 <div mat-dialog-actions>\n <button mat-button (click)=\"onClose()\" cdkFocusInitial>Close</button>\n </div>\n</div>\n", styles: [".row{justify-content:center;margin:1rem 0}.file-input{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.file-input-button{font-size:1em;font-weight:700;color:#fff;background-color:#6eaece;padding:1em .5em;border:none;border-radius:10px;width:8rem;margin:0 .4rem}.file-input-button.load-export{padding:.8em .2em;width:7rem}.file-input-button.load-export img{max-height:1.2em}.file-input-button.export-button{background-color:#cb7133}.file-input-button.export-button:hover{background-color:#ad5b2d}.file-input-button img{max-height:2em;display:block;width:100%}.file-input-button:hover{background-color:#118ab2}#exportScene{background-color:#5bd99e}#exportScene:hover{background-color:#05c292}#importScene{background-color:#ecc25e}#importScene:hover{background-color:#d6b44d}\n"] }]
175
- }], ctorParameters: function () { return [{ type: i1.EventDisplayService }, { type: i2.MatDialogRef }]; }, propDecorators: { eventDataImportOptions: [{
176
- type: Input
177
- }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tb3B0aW9ucy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9pby1vcHRpb25zL2lvLW9wdGlvbnMtZGlhbG9nL2lvLW9wdGlvbnMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvaW8tb3B0aW9ucy9pby1vcHRpb25zLWRpYWxvZy9pby1vcHRpb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc5RSxPQUFPLEVBQ0wsZUFBZSxFQUVmLFlBQVksR0FDYixNQUFNLCtDQUErQyxDQUFDOzs7Ozs7QUFPdkQsTUFBTSxPQUFPLHdCQUF3QjtJQWlDbkMsWUFDVSxZQUFpQyxFQUNsQyxTQUFpRDtRQURoRCxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBd0M7UUFqQzFELDJCQUFzQixHQUE0QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUlqRSw4QkFBeUIsR0FBRztZQUNsQyxJQUFJLFlBQVksQ0FDZCxlQUFlLENBQUMsSUFBSSxFQUNwQixPQUFPLEVBQ1AsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDeEMsa0JBQWtCLENBQ25CO1lBQ0QsSUFBSSxZQUFZLENBQ2QsZUFBZSxDQUFDLE9BQU8sRUFDdkIsTUFBTSxFQUNOLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ3RDLFVBQVUsQ0FDWDtZQUNELElBQUksWUFBWSxDQUNk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QUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLFNBQVMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXZFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7O3FIQXpPVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwySENmckMsczdIQW9JQTsyRkRySGEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QjtxSUFNakMsc0JBQXNCO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDTVNMb2FkZXIsIEppdmVYTUxMb2FkZXIsIHJlYWRaaXBGaWxlIH0gZnJvbSAncGhvZW5peC1ldmVudC1kaXNwbGF5JztcbmltcG9ydCB7IEV2ZW50RGlzcGxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9ldmVudC1kaXNwbGF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7XG4gIEV2ZW50RGF0YUZvcm1hdCxcbiAgRXZlbnREYXRhSW1wb3J0T3B0aW9uLFxuICBJbXBvcnRPcHRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2V4dHJhcy9ldmVudC1kYXRhLWltcG9ydCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pby1vcHRpb25zLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pby1vcHRpb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lvLW9wdGlvbnMtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIElPT3B0aW9uc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGV2ZW50RGF0YUltcG9ydE9wdGlvbnM6IEV2ZW50RGF0YUltcG9ydE9wdGlvbltdID0gW0V2ZW50RGF0YUZvcm1hdC5KU09OXTtcblxuICBldmVudERhdGFPcHRpb25zV2l0aEhhbmRsZXI6IEltcG9ydE9wdGlvbltdO1xuXG4gIHByaXZhdGUgc3VwcG9ydGVkRXZlbnREYXRhRm9ybWF0cyA9IFtcbiAgICBuZXcgSW1wb3J0T3B0aW9uKFxuICAgICAgRXZlbnREYXRhRm9ybWF0LkpTT04sXG4gICAgICAnLmpzb24nLFxuICAgICAgdGhpcy5oYW5kbGVKU09ORXZlbnREYXRhSW5wdXQuYmluZCh0aGlzKSxcbiAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICksXG4gICAgbmV3IEltcG9ydE9wdGlvbihcbiAgICAgIEV2ZW50RGF0YUZvcm1hdC5KSVZFWE1MLFxuICAgICAgJy54bWwnLFxuICAgICAgdGhpcy5oYW5kbGVKaXZlWE1MRGF0YUlucHV0LmJpbmQodGhpcyksXG4gICAgICAndGV4dC94bWwnXG4gICAgKSxcbiAgICBuZXcgSW1wb3J0T3B0aW9uKFxuICAgICAgRXZlbnREYXRhRm9ybWF0LlpJUCxcbiAgICAgICcuemlwJyxcbiAgICAgIHRoaXMuaGFuZGxlWmlwRXZlbnREYXRhSW5wdXQuYmluZCh0aGlzKSxcbiAgICAgICcuemlwJ1xuICAgICksXG4gICAgbmV3IEltcG9ydE9wdGlvbihcbiAgICAgIEV2ZW50RGF0YUZvcm1hdC5JRyxcbiAgICAgICcuaWcnLFxuICAgICAgdGhpcy5oYW5kbGVJZ0V2ZW50RGF0YUlucHV0LmJpbmQodGhpcyksXG4gICAgICAnLmlnJ1xuICAgICksXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPElPT3B0aW9uc0RpYWxvZ0NvbXBvbmVudD5cbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZXZlbnREYXRhT3B0aW9uc1dpdGhIYW5kbGVyID0gdGhpcy5zdXBwb3J0ZWRFdmVudERhdGFGb3JtYXRzLmZpbHRlcihcbiAgICAgIChldmVudERhdGFGb3JtYXQpID0+XG4gICAgICAgIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9ucy5pbmNsdWRlcyhcbiAgICAgICAgICBldmVudERhdGFGb3JtYXQuZm9ybWF0IGFzIEV2ZW50RGF0YUZvcm1hdFxuICAgICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9ucy5mb3JFYWNoKChldmVudERhdGFJbXBvcnRPcHRpb24pID0+IHtcbiAgICAgIGlmIChldmVudERhdGFJbXBvcnRPcHRpb24gaW5zdGFuY2VvZiBJbXBvcnRPcHRpb24pIHtcbiAgICAgICAgY29uc3QgaW1wb3J0SGFuZGxlciA9IGV2ZW50RGF0YUltcG9ydE9wdGlvbi5oYW5kbGVyLmJpbmQodGhpcyk7XG4gICAgICAgIGV2ZW50RGF0YUltcG9ydE9wdGlvbi5oYW5kbGVyID0gKGZpbGVzOiBGaWxlTGlzdCkgPT4ge1xuICAgICAgICAgIGltcG9ydEhhbmRsZXIoZmlsZXMpO1xuICAgICAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZXZlbnREYXRhT3B0aW9uc1dpdGhIYW5kbGVyLnB1c2goZXZlbnREYXRhSW1wb3J0T3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFN1cHBvcnRlZEV2ZW50RGF0YUZvcm1hdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9uc1xuICAgICAgLm1hcCgoZm9ybWF0KSA9PiB7XG4gICAgICAgIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBJbXBvcnRPcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gZm9ybWF0LmZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdaSVAnKVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVKU09ORXZlbnREYXRhSW5wdXQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoY29udGVudDogYW55KSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gdHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShjb250ZW50KSA6IGNvbnRlbnQ7XG4gICAgICB0aGlzLmV2ZW50RGlzcGxheS5wYXJzZVBob2VuaXhFdmVudHMoanNvbik7XG4gICAgfTtcbiAgICB0aGlzLmhhbmRsZUZpbGVJbnB1dChmaWxlc1swXSwgJ2pzb24nLCBjYWxsYmFjayk7XG4gIH1cblxuICBoYW5kbGVKaXZlWE1MRGF0YUlucHV0KGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3Qgaml2ZWxvYWRlciA9IG5ldyBKaXZlWE1MTG9hZGVyKCk7XG4gICAgICBqaXZlbG9hZGVyLnByb2Nlc3MoY29udGVudCk7XG4gICAgICBjb25zdCBldmVudERhdGEgPSBqaXZlbG9hZGVyLmdldEV2ZW50RGF0YSgpO1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkuYnVpbGRFdmVudERhdGFGcm9tSlNPTihldmVudERhdGEpO1xuICAgIH07XG4gICAgdGhpcy5oYW5kbGVGaWxlSW5wdXQoZmlsZXNbMF0sICd4bWwnLCBjYWxsYmFjayk7XG4gIH1cblxuICBoYW5kbGVPQkpJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChjb250ZW50OiBhbnksIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkucGFyc2VPQkpHZW9tZXRyeShjb250ZW50LCBuYW1lKTtcbiAgICB9O1xuICAgIHRoaXMuaGFuZGxlRmlsZUlucHV0KGZpbGVzWzBdLCAnb2JqJywgY2FsbGJhY2spO1xuICB9XG5cbiAgaGFuZGxlU2NlbmVJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChjb250ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwbGF5LnBhcnNlUGhvZW5peERpc3BsYXkoY29udGVudCk7XG4gICAgfTtcbiAgICB0aGlzLmhhbmRsZUZpbGVJbnB1dChmaWxlc1swXSwgJ3BobngnLCBjYWxsYmFjayk7XG4gIH1cblxuICBoYW5kbGVHTFRGSW5wdXQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoY29udGVudDogYW55LCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwbGF5LnBhcnNlR0xURkdlb21ldHJ5KGNvbnRlbnQsIG5hbWUpO1xuICAgIH07XG4gICAgdGhpcy5oYW5kbGVGaWxlSW5wdXQoZmlsZXNbMF0sICdnbHRmJywgY2FsbGJhY2spO1xuICB9XG5cbiAgaGFuZGxlUGhvZW5peElucHV0KGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkucGFyc2VQaG9lbml4RGlzcGxheShjb250ZW50KTtcbiAgICB9O1xuICAgIHRoaXMuaGFuZGxlRmlsZUlucHV0KGZpbGVzWzBdLCAncGhueCcsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVJPT1RJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCByb290T2JqZWN0TmFtZSA9IHByb21wdCgnRW50ZXIgb2JqZWN0IG5hbWUgaW4gUk9PVCBmaWxlJyk7XG5cbiAgICBhd2FpdCB0aGlzLmV2ZW50RGlzcGxheS5sb2FkUm9vdEdlb21ldHJ5KFxuICAgICAgVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlc1swXSksXG4gICAgICByb290T2JqZWN0TmFtZSxcbiAgICAgIGZpbGVzWzBdLm5hbWUuc3BsaXQoJy4nKVswXVxuICAgICk7XG5cbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVJvb3RKU09OSW5wdXQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgaWYgKCF0aGlzLmlzRmlsZU9mRXh0ZW5zaW9uKGZpbGVzWzBdLCAnZ3onKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hbWUgPSBmaWxlc1swXS5uYW1lLnNwbGl0KCcuJylbMF07XG4gICAgYXdhaXQgdGhpcy5ldmVudERpc3BsYXkubG9hZFJvb3RKU09OR2VvbWV0cnkoXG4gICAgICBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGVzWzBdKSxcbiAgICAgIG5hbWVcbiAgICApO1xuXG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVJZ0V2ZW50RGF0YUlucHV0KGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIGNvbnN0IGNtc0xvYWRlciA9IG5ldyBDTVNMb2FkZXIoKTtcbiAgICBjbXNMb2FkZXIucmVhZElnQXJjaGl2ZShmaWxlc1swXSwgKGFsbEV2ZW50czogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IGFsbEV2ZW50c0RhdGEgPSBjbXNMb2FkZXIuZ2V0QWxsRXZlbnRzRGF0YShhbGxFdmVudHMpO1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkucGFyc2VQaG9lbml4RXZlbnRzKGFsbEV2ZW50c0RhdGEpO1xuICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBoYW5kbGVaaXBFdmVudERhdGFJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBpZiAoIXRoaXMuaXNGaWxlT2ZFeHRlbnNpb24oZmlsZXNbMF0sICd6aXAnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbEV2ZW50c09iamVjdCA9IHt9O1xuICAgIGxldCBmaWxlc1dpdGhEYXRhOiB7IFtmaWxlTmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgICAvLyBVc2luZyBhIHRyeSBjYXRjaCBibG9jayB0byBjYXRjaCBhbnkgZXJyb3JzIGluIFByb21pc2VzXG4gICAgdHJ5IHtcbiAgICAgIGZpbGVzV2l0aERhdGEgPSBhd2FpdCByZWFkWmlwRmlsZShmaWxlc1swXSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdoaWxlIHJlYWRpbmcgemlwJywgZXJyb3IpO1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkuZ2V0SW5mb0xvZ2dlcigpLmFkZCgnQ291bGQgbm90IHJlYWQgemlwIGZpbGUnLCAnRXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBKU09OIGV2ZW50IGRhdGFcbiAgICBPYmplY3Qua2V5cyhmaWxlc1dpdGhEYXRhKVxuICAgICAgLmZpbHRlcigoZmlsZU5hbWUpID0+IGZpbGVOYW1lLmVuZHNXaXRoKCcuanNvbicpKVxuICAgICAgLmZvckVhY2goKGZpbGVOYW1lKSA9PiB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYWxsRXZlbnRzT2JqZWN0LCBKU09OLnBhcnNlKGZpbGVzV2l0aERhdGFbZmlsZU5hbWVdKSk7XG4gICAgICB9KTtcblxuICAgIC8vIEppdmVYTUwgZXZlbnQgZGF0YVxuICAgIGNvbnN0IGppdmVsb2FkZXIgPSBuZXcgSml2ZVhNTExvYWRlcigpO1xuICAgIE9iamVjdC5rZXlzKGZpbGVzV2l0aERhdGEpXG4gICAgICAuZmlsdGVyKChmaWxlTmFtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZmlsZU5hbWUuZW5kc1dpdGgoJy54bWwnKSB8fCBmaWxlTmFtZS5zdGFydHNXaXRoKCdKaXZlWE1MJyk7XG4gICAgICB9KVxuICAgICAgLmZvckVhY2goKGZpbGVOYW1lKSA9PiB7XG4gICAgICAgIGppdmVsb2FkZXIucHJvY2VzcyhmaWxlc1dpdGhEYXRhW2ZpbGVOYW1lXSk7XG4gICAgICAgIGNvbnN0IGV2ZW50RGF0YSA9IGppdmVsb2FkZXIuZ2V0RXZlbnREYXRhKCk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYWxsRXZlbnRzT2JqZWN0LCB7IFtmaWxlTmFtZV06IGV2ZW50RGF0YSB9KTtcbiAgICAgIH0pO1xuICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGUgYWJvdmUgZG9lc24ndCBwaWNrIHVwIEppdmVYTUxfWFhYX1lZWS56aXBcblxuICAgIHRoaXMuZXZlbnREaXNwbGF5LnBhcnNlUGhvZW5peEV2ZW50cyhhbGxFdmVudHNPYmplY3QpO1xuXG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQoXG4gICAgZmlsZTogRmlsZSxcbiAgICBleHRlbnNpb246IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHJlc3VsdDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4gdm9pZFxuICApIHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgaWYgKHRoaXMuaXNGaWxlT2ZFeHRlbnNpb24oZmlsZSwgZXh0ZW5zaW9uKSkge1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgY2FsbGJhY2socmVhZGVyLnJlc3VsdC50b1N0cmluZygpLCBmaWxlLm5hbWUuc3BsaXQoJy4nKVswXSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZU9mRXh0ZW5zaW9uKGZpbGU6IEZpbGUsIGV4dGVuc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpID09PSBleHRlbnNpb24pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBJbnZhbGlkIGZpbGUgZm9ybWF0IScpO1xuICAgIHRoaXMuZXZlbnREaXNwbGF5LmdldEluZm9Mb2dnZXIoKS5hZGQoJ0ludmFsaWQgZmlsZSBmb3JtYXQhJywgJ0Vycm9yJyk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzYXZlU2NlbmUoKSB7XG4gICAgdGhpcy5ldmVudERpc3BsYXkuZXhwb3J0UGhvZW5peERpc3BsYXkoKTtcbiAgfVxuXG4gIGV4cG9ydE9CSigpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5leHBvcnRUb09CSigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nXCI+XG4gIDxoMSBtYXQtZGlhbG9nLXRpdGxlPkltcG9ydCBhbmQgZXhwb3J0IG9wdGlvbnM8L2gxPlxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImV2ZW50RGF0YUltcG9ydE9wdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgPGg1PkltcG9ydDwvaDU+XG5cbiAgICAgIDxoNiBjbGFzcz1cInRleHQtY2VudGVyXCI+RXZlbnQgZGF0YTwvaDY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyZWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBldmVudERhdGFJbXBvcnRPcHRpb24gb2YgZXZlbnREYXRhT3B0aW9uc1dpdGhIYW5kbGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2V2ZW50RGF0YUZpbGVJbnB1dFxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXRcIlxuICAgICAgICAgICAgW2FjY2VwdF09XCJldmVudERhdGFJbXBvcnRPcHRpb24uYWNjZXB0XCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiZXZlbnREYXRhSW1wb3J0T3B0aW9uLmhhbmRsZXIoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXZlbnREYXRhRmlsZUlucHV0LmNsaWNrKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL2V2ZW50RGF0YS5zdmdcIiBhbHQ9XCJFdmVudCBkYXRhIGljb25cIiAvPlxuICAgICAgICAgICAgTG9hZCB7eyBldmVudERhdGFJbXBvcnRPcHRpb24uZmlsZVR5cGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICBTdXBwb3J0ZWQgZm9ybWF0czoge3sgZ2V0U3VwcG9ydGVkRXZlbnREYXRhRm9ybWF0cygpIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8aDYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPkdlb21ldHJpZXM8L2g2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdyBjZW50ZXJlZFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNvYmpGaWxlSW5wdXRcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgYWNjZXB0PVwiLm9ialwiXG4gICAgICAgIG5hbWU9XCJpbWFnZVwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlT0JKSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJvYmpGaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pY29ucy9vYmouc3ZnXCIgYWx0PVwiXCIgLz4gTG9hZCAub2JqXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNnbHRmRmlsZUlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIGFjY2VwdD1cIi5nbHRmXCJcbiAgICAgICAgbmFtZT1cImltYWdlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVHTFRGSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJnbHRmRmlsZUlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZ2x0Zi5zdmdcIiBhbHQ9XCJcIiAvPiBMb2FkIC5nbHRmXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNyb290RmlsZUlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIGFjY2VwdD1cIi5yb290XCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVST09USW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJyb290RmlsZUlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS1pbXBvcnQuc3ZnXCIgYWx0PVwiXCIgLz4gTG9hZCAucm9vdFxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjcm9vdEpTT05GaWxlSW5wdXRcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgYWNjZXB0PVwiLmpzb24uZ3pcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVJvb3RKU09OSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJyb290SlNPTkZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL2ZpbGUtaW1wb3J0LnN2Z1wiIGFsdD1cIlwiIC8+IExvYWQgLmpzb24uZ3pcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlN1cHBvcnRlZCBmb3JtYXRzOiBPQkosIEdMVEYsIFJPT1QsIFJPT1QgSlNPTjwvcD5cblxuICAgIDxoNT5JbXBvcnQgLyBleHBvcnQgc2NlbmU8L2g1PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdyBjZW50ZXJlZFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXQtYnV0dG9uIGxvYWQtZXhwb3J0XCJcbiAgICAgICAgaWQ9XCJleHBvcnRTY2VuZVwiXG4gICAgICAgIChjbGljayk9XCJzYXZlU2NlbmUoKVwiXG4gICAgICA+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL3NhdmUuc3ZnXCIgYWx0PVwiXCIgLz4gU2F2ZSBzY2VuZVxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjbG9hZFNjZW5lSW5wdXRcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgYWNjZXB0PVwiLnBobnhcIlxuICAgICAgICBuYW1lPVwiaW1hZ2VcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVBob2VuaXhJbnB1dCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXQtYnV0dG9uIGxvYWQtZXhwb3J0XCJcbiAgICAgICAgaWQ9XCJpbXBvcnRTY2VuZVwiXG4gICAgICAgIChjbGljayk9XCJsb2FkU2NlbmVJbnB1dC5jbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvdXBsb2FkLnN2Z1wiIGFsdD1cIlwiIC8+IExvYWQgc2NlbmVcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dC1idXR0b24gZXhwb3J0LWJ1dHRvblwiXG4gICAgICAgIGlkPVwiZXhwb3J0T0JKXCJcbiAgICAgICAgKGNsaWNrKT1cImV4cG9ydE9CSigpXCJcbiAgICAgID5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvb2JqLnN2Z1wiIGFsdD1cIlwiIC8+IFNhdmUgT0JKXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2RrRm9jdXNJbml0aWFsPkNsb3NlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
212
+ IOOptionsDialogComponent.ɵfac = function IOOptionsDialogComponent_Factory(t) { return new (t || IOOptionsDialogComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService), i0.ɵɵdirectiveInject(i2.MatDialogRef)); };
213
+ IOOptionsDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IOOptionsDialogComponent, selectors: [["app-io-options-dialog"]], inputs: { eventDataImportOptions: "eventDataImportOptions" }, decls: 47, vars: 1, consts: [[1, "dialog"], ["mat-dialog-title", ""], ["mat-dialog-content", "", 1, "dialog-content"], [4, "ngIf"], [1, "text-center"], [1, "row", "centered"], ["type", "file", "tabindex", "-1", "accept", ".obj", "name", "image", 1, "file-input", 3, "change"], ["objFileInput", ""], [1, "file-input-button", 3, "click"], ["src", "assets/icons/obj.svg", "alt", ""], ["type", "file", "tabindex", "-1", "accept", ".gltf", "name", "image", 1, "file-input", 3, "change"], ["gltfFileInput", ""], ["src", "assets/icons/gltf.svg", "alt", ""], ["type", "file", "tabindex", "-1", "accept", ".root", 1, "file-input", 3, "change"], ["rootFileInput", ""], ["src", "assets/icons/file-import.svg", "alt", ""], ["type", "file", "tabindex", "-1", "accept", ".json.gz", 1, "file-input", 3, "change"], ["rootJSONFileInput", ""], ["id", "exportScene", 1, "file-input-button", "load-export", 3, "click"], ["src", "assets/icons/save.svg", "alt", ""], ["type", "file", "tabindex", "-1", "accept", ".phnx", "name", "image", 1, "file-input", 3, "change"], ["loadSceneInput", ""], ["id", "importScene", 1, "file-input-button", "load-export", 3, "click"], ["src", "assets/icons/upload.svg", "alt", ""], ["id", "exportOBJ", 1, "file-input-button", "export-button", 3, "click"], ["mat-dialog-actions", "", "align", "end"], ["mat-flat-button", "", "color", "primary", "cdkFocusInitial", "", 3, "click"], [4, "ngFor", "ngForOf"], ["type", "file", "tabindex", "-1", 1, "file-input", 3, "accept", "change"], ["eventDataFileInput", ""], ["src", "assets/icons/eventData.svg", "alt", "Event data icon"]], template: function IOOptionsDialogComponent_Template(rf, ctx) { if (rf & 1) {
214
+ const _r12 = i0.ɵɵgetCurrentView();
215
+ i0.ɵɵelementStart(0, "div", 0)(1, "h1", 1);
216
+ i0.ɵɵtext(2, "Import and export");
217
+ i0.ɵɵelementEnd();
218
+ i0.ɵɵelementStart(3, "div", 2);
219
+ i0.ɵɵtemplate(4, IOOptionsDialogComponent_div_4_Template, 6, 1, "div", 3);
220
+ i0.ɵɵelementStart(5, "p", 4)(6, "b");
221
+ i0.ɵɵtext(7, "Geometries");
222
+ i0.ɵɵelementEnd()();
223
+ i0.ɵɵelementStart(8, "div", 5)(9, "input", 6, 7);
224
+ i0.ɵɵlistener("change", function IOOptionsDialogComponent_Template_input_change_9_listener($event) { return ctx.handleOBJInput($event.target.files); });
225
+ i0.ɵɵelementEnd();
226
+ i0.ɵɵelementStart(11, "button", 8);
227
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r12); const _r1 = i0.ɵɵreference(10); return i0.ɵɵresetView(_r1.click()); });
228
+ i0.ɵɵelement(12, "img", 9);
229
+ i0.ɵɵtext(13, " Load .obj ");
230
+ i0.ɵɵelementEnd();
231
+ i0.ɵɵelementStart(14, "input", 10, 11);
232
+ i0.ɵɵlistener("change", function IOOptionsDialogComponent_Template_input_change_14_listener($event) { return ctx.handleGLTFInput($event.target.files); });
233
+ i0.ɵɵelementEnd();
234
+ i0.ɵɵelementStart(16, "button", 8);
235
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r12); const _r2 = i0.ɵɵreference(15); return i0.ɵɵresetView(_r2.click()); });
236
+ i0.ɵɵelement(17, "img", 12);
237
+ i0.ɵɵtext(18, " Load .gltf ");
238
+ i0.ɵɵelementEnd();
239
+ i0.ɵɵelementStart(19, "input", 13, 14);
240
+ i0.ɵɵlistener("change", function IOOptionsDialogComponent_Template_input_change_19_listener($event) { return ctx.handleROOTInput($event.target.files); });
241
+ i0.ɵɵelementEnd();
242
+ i0.ɵɵelementStart(21, "button", 8);
243
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r12); const _r3 = i0.ɵɵreference(20); return i0.ɵɵresetView(_r3.click()); });
244
+ i0.ɵɵelement(22, "img", 15);
245
+ i0.ɵɵtext(23, " Load .root ");
246
+ i0.ɵɵelementEnd();
247
+ i0.ɵɵelementStart(24, "input", 16, 17);
248
+ i0.ɵɵlistener("change", function IOOptionsDialogComponent_Template_input_change_24_listener($event) { return ctx.handleRootJSONInput($event.target.files); });
249
+ i0.ɵɵelementEnd();
250
+ i0.ɵɵelementStart(26, "button", 8);
251
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r12); const _r4 = i0.ɵɵreference(25); return i0.ɵɵresetView(_r4.click()); });
252
+ i0.ɵɵelement(27, "img", 15);
253
+ i0.ɵɵtext(28, " Load .json.gz ");
254
+ i0.ɵɵelementEnd()();
255
+ i0.ɵɵelementStart(29, "p", 4)(30, "b");
256
+ i0.ɵɵtext(31, "Scene");
257
+ i0.ɵɵelementEnd()();
258
+ i0.ɵɵelementStart(32, "div", 5)(33, "button", 18);
259
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_33_listener() { return ctx.saveScene(); });
260
+ i0.ɵɵelement(34, "img", 19);
261
+ i0.ɵɵtext(35, " Save scene ");
262
+ i0.ɵɵelementEnd();
263
+ i0.ɵɵelementStart(36, "input", 20, 21);
264
+ i0.ɵɵlistener("change", function IOOptionsDialogComponent_Template_input_change_36_listener($event) { return ctx.handlePhoenixInput($event.target.files); });
265
+ i0.ɵɵelementEnd();
266
+ i0.ɵɵelementStart(38, "button", 22);
267
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_38_listener() { i0.ɵɵrestoreView(_r12); const _r5 = i0.ɵɵreference(37); return i0.ɵɵresetView(_r5.click()); });
268
+ i0.ɵɵelement(39, "img", 23);
269
+ i0.ɵɵtext(40, " Load scene ");
270
+ i0.ɵɵelementEnd();
271
+ i0.ɵɵelementStart(41, "button", 24);
272
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_41_listener() { return ctx.exportOBJ(); });
273
+ i0.ɵɵelement(42, "img", 9);
274
+ i0.ɵɵtext(43, " Save OBJ ");
275
+ i0.ɵɵelementEnd()()();
276
+ i0.ɵɵelementStart(44, "div", 25)(45, "button", 26);
277
+ i0.ɵɵlistener("click", function IOOptionsDialogComponent_Template_button_click_45_listener() { return ctx.onClose(); });
278
+ i0.ɵɵtext(46, " Close ");
279
+ i0.ɵɵelementEnd()()();
280
+ } if (rf & 2) {
281
+ i0.ɵɵadvance(4);
282
+ i0.ɵɵproperty("ngIf", ctx.eventDataImportOptions.length > 0);
283
+ } }, dependencies: [i3.NgForOf, i3.NgIf, i2.MatDialogTitle, i2.MatDialogContent, i2.MatDialogActions, i4.MatButton], styles: [".row[_ngcontent-%COMP%]{justify-content:center;margin:1rem 0}.file-input[_ngcontent-%COMP%]{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.file-input-button[_ngcontent-%COMP%]{font-size:1em;font-weight:700;color:#fff;background-color:#6eaece;padding:1em .5em;border:none;border-radius:10px;width:8rem;margin:0 .4rem}.file-input-button.load-export[_ngcontent-%COMP%]{padding:.8em .2em;width:7rem}.file-input-button.load-export[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-height:1.2em}.file-input-button.export-button[_ngcontent-%COMP%]{background-color:#cb7133}.file-input-button.export-button[_ngcontent-%COMP%]:hover{background-color:#ad5b2d}.file-input-button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-height:2em;display:block;width:100%}.file-input-button[_ngcontent-%COMP%]:hover{background-color:#118ab2}#exportScene[_ngcontent-%COMP%]{background-color:#5bd99e}#exportScene[_ngcontent-%COMP%]:hover{background-color:#05c292}#importScene[_ngcontent-%COMP%]{background-color:#ecc25e}#importScene[_ngcontent-%COMP%]:hover{background-color:#d6b44d}"] });
284
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IOOptionsDialogComponent, [{
285
+ type: Component,
286
+ args: [{ selector: 'app-io-options-dialog', template: "<div class=\"dialog\">\n <h1 mat-dialog-title>Import and export</h1>\n <div mat-dialog-content class=\"dialog-content\">\n <div *ngIf=\"eventDataImportOptions.length > 0\">\n <p class=\"text-center\"><b>Event data</b></p>\n\n <div class=\"row centered\">\n <ng-container\n *ngFor=\"let eventDataImportOption of eventDataOptionsWithHandler\"\n >\n <input\n #eventDataFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n [accept]=\"eventDataImportOption.accept\"\n (change)=\"eventDataImportOption.handler($event.target.files)\"\n />\n <button\n class=\"file-input-button\"\n (click)=\"eventDataFileInput.click()\"\n >\n <img src=\"assets/icons/eventData.svg\" alt=\"Event data icon\" />\n Load {{ eventDataImportOption.fileType }}\n </button>\n </ng-container>\n </div>\n </div>\n\n <p class=\"text-center\"><b>Geometries</b></p>\n\n <div class=\"row centered\">\n <input\n #objFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".obj\"\n name=\"image\"\n (change)=\"handleOBJInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"objFileInput.click()\">\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Load .obj\n </button>\n\n <input\n #gltfFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".gltf\"\n name=\"image\"\n (change)=\"handleGLTFInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"gltfFileInput.click()\">\n <img src=\"assets/icons/gltf.svg\" alt=\"\" /> Load .gltf\n </button>\n\n <input\n #rootFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".root\"\n (change)=\"handleROOTInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .root\n </button>\n\n <input\n #rootJSONFileInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".json.gz\"\n (change)=\"handleRootJSONInput($event.target.files)\"\n />\n <button class=\"file-input-button\" (click)=\"rootJSONFileInput.click()\">\n <img src=\"assets/icons/file-import.svg\" alt=\"\" /> Load .json.gz\n </button>\n </div>\n\n <p class=\"text-center\"><b>Scene</b></p>\n\n <div class=\"row centered\">\n <button\n class=\"file-input-button load-export\"\n id=\"exportScene\"\n (click)=\"saveScene()\"\n >\n <img src=\"assets/icons/save.svg\" alt=\"\" /> Save scene\n </button>\n\n <input\n #loadSceneInput\n type=\"file\"\n tabindex=\"-1\"\n class=\"file-input\"\n accept=\".phnx\"\n name=\"image\"\n (change)=\"handlePhoenixInput($event.target.files)\"\n />\n <button\n class=\"file-input-button load-export\"\n id=\"importScene\"\n (click)=\"loadSceneInput.click()\"\n >\n <img src=\"assets/icons/upload.svg\" alt=\"\" /> Load scene\n </button>\n\n <button\n class=\"file-input-button export-button\"\n id=\"exportOBJ\"\n (click)=\"exportOBJ()\"\n >\n <img src=\"assets/icons/obj.svg\" alt=\"\" /> Save OBJ\n </button>\n </div>\n </div>\n\n <div mat-dialog-actions align=\"end\">\n <button mat-flat-button color=\"primary\" (click)=\"onClose()\" cdkFocusInitial>\n Close\n </button>\n </div>\n</div>\n", styles: [".row{justify-content:center;margin:1rem 0}.file-input{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.file-input-button{font-size:1em;font-weight:700;color:#fff;background-color:#6eaece;padding:1em .5em;border:none;border-radius:10px;width:8rem;margin:0 .4rem}.file-input-button.load-export{padding:.8em .2em;width:7rem}.file-input-button.load-export img{max-height:1.2em}.file-input-button.export-button{background-color:#cb7133}.file-input-button.export-button:hover{background-color:#ad5b2d}.file-input-button img{max-height:2em;display:block;width:100%}.file-input-button:hover{background-color:#118ab2}#exportScene{background-color:#5bd99e}#exportScene:hover{background-color:#05c292}#importScene{background-color:#ecc25e}#importScene:hover{background-color:#d6b44d}\n"] }]
287
+ }], function () { return [{ type: i1.EventDisplayService }, { type: i2.MatDialogRef }]; }, { eventDataImportOptions: [{
288
+ type: Input
289
+ }] }); })();
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tb3B0aW9ucy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9pby1vcHRpb25zL2lvLW9wdGlvbnMtZGlhbG9nL2lvLW9wdGlvbnMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3VpLW1lbnUvaW8tb3B0aW9ucy9pby1vcHRpb25zLWRpYWxvZy9pby1vcHRpb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsU0FBUyxFQUNULGFBQWEsRUFDYixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sdUJBQXVCLENBQUM7QUFHL0IsT0FBTyxFQUNMLGVBQWUsRUFFZixZQUFZLEdBQ2IsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7SUNOL0MsNkJBRUM7SUFDQyxxQ0FPRTtJQURBLHFPQUFVLGVBQUEscURBQWtELENBQUEsSUFBQztJQU4vRCxpQkFPRTtJQUNGLGlDQUdDO0lBREMsaUxBQVMsZUFBQSxXQUEwQixDQUFBLElBQUM7SUFFcEMsMEJBQThEO0lBQzlELFlBQ0Y7SUFBQSxpQkFBUztJQUNYLDBCQUFlOzs7SUFWWCxlQUF1QztJQUF2Qyx3REFBdUM7SUFRdkMsZUFDRjtJQURFLHVFQUNGOzs7SUFyQk4sMkJBQStDLFdBQUEsUUFBQTtJQUNuQiwwQkFBVTtJQUFBLGlCQUFJLEVBQUE7SUFFeEMsOEJBQTBCO0lBQ3hCLGtHQWtCZTtJQUNqQixpQkFBTSxFQUFBOzs7SUFsQmdDLGVBQThCO0lBQTlCLDREQUE4Qjs7QURZMUUsTUFBTSxPQUFPLHdCQUF3QjtJQXVDbkMsWUFDVSxZQUFpQyxFQUNsQyxTQUFpRDtRQURoRCxpQkFBWSxHQUFaLFlB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NkJBQ3BEO1FBQUEsaUJBQVM7UUFFVCxzQ0FPRTtRQURBLDZHQUFVLDRDQUF3QyxJQUFDO1FBTnJELGlCQU9FO1FBQ0Ysa0NBQXNFO1FBQXBDLDhKQUFTLGVBQUEsV0FBeUIsQ0FBQSxJQUFDO1FBQ25FLDJCQUFpRDtRQUFDLGdDQUNwRDtRQUFBLGlCQUFTLEVBQUE7UUFHWCw2QkFBdUIsU0FBQTtRQUFHLHNCQUFLO1FBQUEsaUJBQUksRUFBQTtRQUVuQywrQkFBMEIsa0JBQUE7UUFJdEIsc0dBQVMsZUFBVyxJQUFDO1FBRXJCLDJCQUEwQztRQUFDLDZCQUM3QztRQUFBLGlCQUFTO1FBRVQsc0NBUUU7UUFEQSw2R0FBVSwyQ0FBdUMsSUFBQztRQVBwRCxpQkFRRTtRQUNGLG1DQUlDO1FBREMsOEpBQVMsZUFBQSxXQUFzQixDQUFBLElBQUM7UUFFaEMsMkJBQTRDO1FBQUMsNkJBQy9DO1FBQUEsaUJBQVM7UUFFVCxtQ0FJQztRQURDLHNHQUFTLGVBQVcsSUFBQztRQUVyQiwwQkFBeUM7UUFBQywyQkFDNUM7UUFBQSxpQkFBUyxFQUFBLEVBQUE7UUFJYixnQ0FBb0Msa0JBQUE7UUFDTSxzR0FBUyxhQUFTLElBQUM7UUFDekQsd0JBQ0Y7UUFBQSxpQkFBUyxFQUFBLEVBQUE7O1FBekhILGVBQXVDO1FBQXZDLDREQUF1Qzs7dUZEaUJwQyx3QkFBd0I7Y0FMcEMsU0FBUzsyQkFDRSx1QkFBdUI7aUdBTWpDLHNCQUFzQjtrQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ01TTG9hZGVyLFxuICBKaXZlWE1MTG9hZGVyLFxuICByZWFkWmlwRmlsZSxcbiAgRWRtNGhlcEpzb25Mb2FkZXIsXG59IGZyb20gJ3Bob2VuaXgtZXZlbnQtZGlzcGxheSc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBFdmVudERhdGFGb3JtYXQsXG4gIEV2ZW50RGF0YUltcG9ydE9wdGlvbixcbiAgSW1wb3J0T3B0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9leHRyYXMvZXZlbnQtZGF0YS1pbXBvcnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaW8tb3B0aW9ucy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW8tb3B0aW9ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pby1vcHRpb25zLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJT09wdGlvbnNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBldmVudERhdGFJbXBvcnRPcHRpb25zOiBFdmVudERhdGFJbXBvcnRPcHRpb25bXSA9IFtFdmVudERhdGFGb3JtYXQuSlNPTl07XG5cbiAgZXZlbnREYXRhT3B0aW9uc1dpdGhIYW5kbGVyOiBJbXBvcnRPcHRpb25bXTtcblxuICBwcml2YXRlIHN1cHBvcnRlZEV2ZW50RGF0YUZvcm1hdHMgPSBbXG4gICAgbmV3IEltcG9ydE9wdGlvbihcbiAgICAgIEV2ZW50RGF0YUZvcm1hdC5KU09OLFxuICAgICAgJy5qc29uJyxcbiAgICAgIHRoaXMuaGFuZGxlSlNPTkV2ZW50RGF0YUlucHV0LmJpbmQodGhpcyksXG4gICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICApLFxuICAgIG5ldyBJbXBvcnRPcHRpb24oXG4gICAgICBFdmVudERhdGFGb3JtYXQuRURNNEhFUEpTT04sXG4gICAgICAnLmVkbTRoZXAuanNvbicsXG4gICAgICB0aGlzLmhhbmRsZUVETTRIRVBKU09ORXZlbnREYXRhSW5wdXQuYmluZCh0aGlzKSxcbiAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICksXG4gICAgbmV3IEltcG9ydE9wdGlvbihcbiAgICAgIEV2ZW50RGF0YUZvcm1hdC5KSVZFWE1MLFxuICAgICAgJy54bWwnLFxuICAgICAgdGhpcy5oYW5kbGVKaXZlWE1MRGF0YUlucHV0LmJpbmQodGhpcyksXG4gICAgICAndGV4dC94bWwnXG4gICAgKSxcbiAgICBuZXcgSW1wb3J0T3B0aW9uKFxuICAgICAgRXZlbnREYXRhRm9ybWF0LlpJUCxcbiAgICAgICcuemlwJyxcbiAgICAgIHRoaXMuaGFuZGxlWmlwRXZlbnREYXRhSW5wdXQuYmluZCh0aGlzKSxcbiAgICAgICcuemlwJ1xuICAgICksXG4gICAgbmV3IEltcG9ydE9wdGlvbihcbiAgICAgIEV2ZW50RGF0YUZvcm1hdC5JRyxcbiAgICAgICcuaWcnLFxuICAgICAgdGhpcy5oYW5kbGVJZ0V2ZW50RGF0YUlucHV0LmJpbmQodGhpcyksXG4gICAgICAnLmlnJ1xuICAgICksXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPElPT3B0aW9uc0RpYWxvZ0NvbXBvbmVudD5cbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZXZlbnREYXRhT3B0aW9uc1dpdGhIYW5kbGVyID0gdGhpcy5zdXBwb3J0ZWRFdmVudERhdGFGb3JtYXRzLmZpbHRlcihcbiAgICAgIChldmVudERhdGFGb3JtYXQpID0+XG4gICAgICAgIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9ucy5pbmNsdWRlcyhcbiAgICAgICAgICBldmVudERhdGFGb3JtYXQuZm9ybWF0IGFzIEV2ZW50RGF0YUZvcm1hdFxuICAgICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9ucy5mb3JFYWNoKChldmVudERhdGFJbXBvcnRPcHRpb24pID0+IHtcbiAgICAgIGlmIChldmVudERhdGFJbXBvcnRPcHRpb24gaW5zdGFuY2VvZiBJbXBvcnRPcHRpb24pIHtcbiAgICAgICAgY29uc3QgaW1wb3J0SGFuZGxlciA9IGV2ZW50RGF0YUltcG9ydE9wdGlvbi5oYW5kbGVyLmJpbmQodGhpcyk7XG4gICAgICAgIGV2ZW50RGF0YUltcG9ydE9wdGlvbi5oYW5kbGVyID0gKGZpbGVzOiBGaWxlTGlzdCkgPT4ge1xuICAgICAgICAgIGltcG9ydEhhbmRsZXIoZmlsZXMpO1xuICAgICAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZXZlbnREYXRhT3B0aW9uc1dpdGhIYW5kbGVyLnB1c2goZXZlbnREYXRhSW1wb3J0T3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFN1cHBvcnRlZEV2ZW50RGF0YUZvcm1hdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9uc1xuICAgICAgLm1hcCgoZm9ybWF0KSA9PiB7XG4gICAgICAgIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBJbXBvcnRPcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gZm9ybWF0LmZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdaSVAnKVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVKU09ORXZlbnREYXRhSW5wdXQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoY29udGVudDogYW55KSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gdHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShjb250ZW50KSA6IGNvbnRlbnQ7XG4gICAgICB0aGlzLmV2ZW50RGlzcGxheS5wYXJzZVBob2VuaXhFdmVudHMoanNvbik7XG4gICAgfTtcbiAgICB0aGlzLmhhbmRsZUZpbGVJbnB1dChmaWxlc1swXSwgJ2pzb24nLCBjYWxsYmFjayk7XG4gIH1cblxuICBoYW5kbGVFRE00SEVQSlNPTkV2ZW50RGF0YUlucHV0KGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3QganNvbiA9IHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoY29udGVudCkgOiBjb250ZW50O1xuICAgICAgY29uc3QgZWRtNGhlcEpzb25Mb2FkZXIgPSBuZXcgRWRtNGhlcEpzb25Mb2FkZXIoKTtcbiAgICAgIGVkbTRoZXBKc29uTG9hZGVyLnNldFJhd0V2ZW50RGF0YShqc29uKTtcbiAgICAgIGVkbTRoZXBKc29uTG9hZGVyLnByb2Nlc3NFdmVudERhdGEoKTtcbiAgICAgIHRoaXMuZXZlbnREaXNwbGF5LnBhcnNlUGhvZW5peEV2ZW50cyhlZG00aGVwSnNvbkxvYWRlci5nZXRFdmVudERhdGEoKSk7XG4gICAgfTtcbiAgICB0aGlzLmhhbmRsZUZpbGVJbnB1dChmaWxlc1swXSwgJ2pzb24nLCBjYWxsYmFjayk7XG4gIH1cblxuICBoYW5kbGVKaXZlWE1MRGF0YUlucHV0KGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3Qgaml2ZWxvYWRlciA9IG5ldyBKaXZlWE1MTG9hZGVyKCk7XG4gICAgICBqaXZlbG9hZGVyLnByb2Nlc3MoY29udGVudCk7XG4gICAgICBjb25zdCBldmVudERhdGEgPSBqaXZlbG9hZGVyLmdldEV2ZW50RGF0YSgpO1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkuYnVpbGRFdmVudERhdGFGcm9tSlNPTihldmVudERhdGEpO1xuICAgIH07XG4gICAgdGhpcy5oYW5kbGVGaWxlSW5wdXQoZmlsZXNbMF0sICd4bWwnLCBjYWxsYmFjayk7XG4gIH1cblxuICBoYW5kbGVPQkpJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChjb250ZW50OiBhbnksIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkucGFyc2VPQkpHZW9tZXRyeShjb250ZW50LCBuYW1lKTtcbiAgICB9O1xuICAgIHRoaXMuaGFuZGxlRmlsZUlucHV0KGZpbGVzWzBdLCAnb2JqJywgY2FsbGJhY2spO1xuICB9XG5cbiAgaGFuZGxlU2NlbmVJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChjb250ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwbGF5LnBhcnNlUGhvZW5peERpc3BsYXkoY29udGVudCk7XG4gICAgfTtcbiAgICB0aGlzLmhhbmRsZUZpbGVJbnB1dChmaWxlc1swXSwgJ3BobngnLCBjYWxsYmFjayk7XG4gIH1cblxuICBoYW5kbGVHTFRGSW5wdXQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoY29udGVudDogYW55LCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwbGF5LnBhcnNlR0xURkdlb21ldHJ5KGNvbnRlbnQsIG5hbWUpO1xuICAgIH07XG4gICAgdGhpcy5oYW5kbGVGaWxlSW5wdXQoZmlsZXNbMF0sICdnbHRmJywgY2FsbGJhY2spO1xuICB9XG5cbiAgaGFuZGxlUGhvZW5peElucHV0KGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkucGFyc2VQaG9lbml4RGlzcGxheShjb250ZW50KTtcbiAgICB9O1xuICAgIHRoaXMuaGFuZGxlRmlsZUlucHV0KGZpbGVzWzBdLCAncGhueCcsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVJPT1RJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCByb290T2JqZWN0TmFtZSA9IHByb21wdCgnRW50ZXIgb2JqZWN0IG5hbWUgaW4gUk9PVCBmaWxlJyk7XG5cbiAgICBhd2FpdCB0aGlzLmV2ZW50RGlzcGxheS5sb2FkUm9vdEdlb21ldHJ5KFxuICAgICAgVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlc1swXSksXG4gICAgICByb290T2JqZWN0TmFtZSxcbiAgICAgIGZpbGVzWzBdLm5hbWUuc3BsaXQoJy4nKVswXVxuICAgICk7XG5cbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVJvb3RKU09OSW5wdXQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgaWYgKCF0aGlzLmlzRmlsZU9mRXh0ZW5zaW9uKGZpbGVzWzBdLCAnZ3onKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hbWUgPSBmaWxlc1swXS5uYW1lLnNwbGl0KCcuJylbMF07XG4gICAgYXdhaXQgdGhpcy5ldmVudERpc3BsYXkubG9hZFJvb3RKU09OR2VvbWV0cnkoXG4gICAgICBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGVzWzBdKSxcbiAgICAgIG5hbWVcbiAgICApO1xuXG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVJZ0V2ZW50RGF0YUlucHV0KGZpbGVzOiBGaWxlTGlzdCkge1xuICAgIGNvbnN0IGNtc0xvYWRlciA9IG5ldyBDTVNMb2FkZXIoKTtcbiAgICBjbXNMb2FkZXIucmVhZElnQXJjaGl2ZShmaWxlc1swXSwgKGFsbEV2ZW50czogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IGFsbEV2ZW50c0RhdGEgPSBjbXNMb2FkZXIuZ2V0QWxsRXZlbnRzRGF0YShhbGxFdmVudHMpO1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkucGFyc2VQaG9lbml4RXZlbnRzKGFsbEV2ZW50c0RhdGEpO1xuICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBoYW5kbGVaaXBFdmVudERhdGFJbnB1dChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBpZiAoIXRoaXMuaXNGaWxlT2ZFeHRlbnNpb24oZmlsZXNbMF0sICd6aXAnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbEV2ZW50c09iamVjdCA9IHt9O1xuICAgIGxldCBmaWxlc1dpdGhEYXRhOiB7IFtmaWxlTmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgICAvLyBVc2luZyBhIHRyeSBjYXRjaCBibG9jayB0byBjYXRjaCBhbnkgZXJyb3JzIGluIFByb21pc2VzXG4gICAgdHJ5IHtcbiAgICAgIGZpbGVzV2l0aERhdGEgPSBhd2FpdCByZWFkWmlwRmlsZShmaWxlc1swXSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdoaWxlIHJlYWRpbmcgemlwJywgZXJyb3IpO1xuICAgICAgdGhpcy5ldmVudERpc3BsYXkuZ2V0SW5mb0xvZ2dlcigpLmFkZCgnQ291bGQgbm90IHJlYWQgemlwIGZpbGUnLCAnRXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBKU09OIGV2ZW50IGRhdGFcbiAgICBPYmplY3Qua2V5cyhmaWxlc1dpdGhEYXRhKVxuICAgICAgLmZpbHRlcigoZmlsZU5hbWUpID0+IGZpbGVOYW1lLmVuZHNXaXRoKCcuanNvbicpKVxuICAgICAgLmZvckVhY2goKGZpbGVOYW1lKSA9PiB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYWxsRXZlbnRzT2JqZWN0LCBKU09OLnBhcnNlKGZpbGVzV2l0aERhdGFbZmlsZU5hbWVdKSk7XG4gICAgICB9KTtcblxuICAgIC8vIEppdmVYTUwgZXZlbnQgZGF0YVxuICAgIGNvbnN0IGppdmVsb2FkZXIgPSBuZXcgSml2ZVhNTExvYWRlcigpO1xuICAgIE9iamVjdC5rZXlzKGZpbGVzV2l0aERhdGEpXG4gICAgICAuZmlsdGVyKChmaWxlTmFtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZmlsZU5hbWUuZW5kc1dpdGgoJy54bWwnKSB8fCBmaWxlTmFtZS5zdGFydHNXaXRoKCdKaXZlWE1MJyk7XG4gICAgICB9KVxuICAgICAgLmZvckVhY2goKGZpbGVOYW1lKSA9PiB7XG4gICAgICAgIGppdmVsb2FkZXIucHJvY2VzcyhmaWxlc1dpdGhEYXRhW2ZpbGVOYW1lXSk7XG4gICAgICAgIGNvbnN0IGV2ZW50RGF0YSA9IGppdmVsb2FkZXIuZ2V0RXZlbnREYXRhKCk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYWxsRXZlbnRzT2JqZWN0LCB7IFtmaWxlTmFtZV06IGV2ZW50RGF0YSB9KTtcbiAgICAgIH0pO1xuICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGUgYWJvdmUgZG9lc24ndCBwaWNrIHVwIEppdmVYTUxfWFhYX1lZWS56aXBcblxuICAgIHRoaXMuZXZlbnREaXNwbGF5LnBhcnNlUGhvZW5peEV2ZW50cyhhbGxFdmVudHNPYmplY3QpO1xuXG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQoXG4gICAgZmlsZTogRmlsZSxcbiAgICBleHRlbnNpb246IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHJlc3VsdDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4gdm9pZFxuICApIHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgaWYgKHRoaXMuaXNGaWxlT2ZFeHRlbnNpb24oZmlsZSwgZXh0ZW5zaW9uKSkge1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgY2FsbGJhY2socmVhZGVyLnJlc3VsdC50b1N0cmluZygpLCBmaWxlLm5hbWUuc3BsaXQoJy4nKVswXSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZU9mRXh0ZW5zaW9uKGZpbGU6IEZpbGUsIGV4dGVuc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpID09PSBleHRlbnNpb24pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBJbnZhbGlkIGZpbGUgZm9ybWF0IScpO1xuICAgIHRoaXMuZXZlbnREaXNwbGF5LmdldEluZm9Mb2dnZXIoKS5hZGQoJ0ludmFsaWQgZmlsZSBmb3JtYXQhJywgJ0Vycm9yJyk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzYXZlU2NlbmUoKSB7XG4gICAgdGhpcy5ldmVudERpc3BsYXkuZXhwb3J0UGhvZW5peERpc3BsYXkoKTtcbiAgfVxuXG4gIGV4cG9ydE9CSigpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGxheS5leHBvcnRUb09CSigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nXCI+XG4gIDxoMSBtYXQtZGlhbG9nLXRpdGxlPkltcG9ydCBhbmQgZXhwb3J0PC9oMT5cbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiPlxuICAgIDxkaXYgKm5nSWY9XCJldmVudERhdGFJbXBvcnRPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIj48Yj5FdmVudCBkYXRhPC9iPjwvcD5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBjZW50ZXJlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGV2ZW50RGF0YUltcG9ydE9wdGlvbiBvZiBldmVudERhdGFPcHRpb25zV2l0aEhhbmRsZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjZXZlbnREYXRhRmlsZUlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgICAgICBbYWNjZXB0XT1cImV2ZW50RGF0YUltcG9ydE9wdGlvbi5hY2NlcHRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJldmVudERhdGFJbXBvcnRPcHRpb24uaGFuZGxlcigkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXQtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJldmVudERhdGFGaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZXZlbnREYXRhLnN2Z1wiIGFsdD1cIkV2ZW50IGRhdGEgaWNvblwiIC8+XG4gICAgICAgICAgICBMb2FkIHt7IGV2ZW50RGF0YUltcG9ydE9wdGlvbi5maWxlVHlwZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxiPkdlb21ldHJpZXM8L2I+PC9wPlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdyBjZW50ZXJlZFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNvYmpGaWxlSW5wdXRcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgYWNjZXB0PVwiLm9ialwiXG4gICAgICAgIG5hbWU9XCJpbWFnZVwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlT0JKSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJvYmpGaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pY29ucy9vYmouc3ZnXCIgYWx0PVwiXCIgLz4gTG9hZCAub2JqXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNnbHRmRmlsZUlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIGFjY2VwdD1cIi5nbHRmXCJcbiAgICAgICAgbmFtZT1cImltYWdlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVHTFRGSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJnbHRmRmlsZUlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZ2x0Zi5zdmdcIiBhbHQ9XCJcIiAvPiBMb2FkIC5nbHRmXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNyb290RmlsZUlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIGFjY2VwdD1cIi5yb290XCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVST09USW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJyb290RmlsZUlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaWNvbnMvZmlsZS1pbXBvcnQuc3ZnXCIgYWx0PVwiXCIgLz4gTG9hZCAucm9vdFxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjcm9vdEpTT05GaWxlSW5wdXRcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgYWNjZXB0PVwiLmpzb24uZ3pcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVJvb3RKU09OSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvblwiIChjbGljayk9XCJyb290SlNPTkZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL2ZpbGUtaW1wb3J0LnN2Z1wiIGFsdD1cIlwiIC8+IExvYWQgLmpzb24uZ3pcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxiPlNjZW5lPC9iPjwvcD5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyZWRcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvbiBsb2FkLWV4cG9ydFwiXG4gICAgICAgIGlkPVwiZXhwb3J0U2NlbmVcIlxuICAgICAgICAoY2xpY2spPVwic2F2ZVNjZW5lKClcIlxuICAgICAgPlxuICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pY29ucy9zYXZlLnN2Z1wiIGFsdD1cIlwiIC8+IFNhdmUgc2NlbmVcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8aW5wdXRcbiAgICAgICAgI2xvYWRTY2VuZUlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIGFjY2VwdD1cIi5waG54XCJcbiAgICAgICAgbmFtZT1cImltYWdlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVQaG9lbml4SW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgLz5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0LWJ1dHRvbiBsb2FkLWV4cG9ydFwiXG4gICAgICAgIGlkPVwiaW1wb3J0U2NlbmVcIlxuICAgICAgICAoY2xpY2spPVwibG9hZFNjZW5lSW5wdXQuY2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL3VwbG9hZC5zdmdcIiBhbHQ9XCJcIiAvPiBMb2FkIHNjZW5lXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXQtYnV0dG9uIGV4cG9ydC1idXR0b25cIlxuICAgICAgICBpZD1cImV4cG9ydE9CSlwiXG4gICAgICAgIChjbGljayk9XCJleHBvcnRPQkooKVwiXG4gICAgICA+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL29iai5zdmdcIiBhbHQ9XCJcIiAvPiBTYXZlIE9CSlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIGNka0ZvY3VzSW5pdGlhbD5cbiAgICAgIENsb3NlXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -17,12 +17,18 @@ export class IoOptionsComponent {
17
17
  this.eventDataImportOptions;
18
18
  }
19
19
  }
20
- IoOptionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: IoOptionsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
21
- IoOptionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: IoOptionsComponent, selector: "app-io-options", inputs: { eventDataImportOptions: "eventDataImportOptions" }, ngImport: i0, template: "<app-menu-toggle\n tooltip=\"Import and export options\"\n icon=\"import\"\n [active]=\"false\"\n (click)=\"openIODialog()\"\n>\n</app-menu-toggle>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MenuToggleComponent, selector: "app-menu-toggle", inputs: ["icon", "active", "tooltip", "disabled"] }] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: IoOptionsComponent, decorators: [{
23
- type: Component,
24
- args: [{ selector: 'app-io-options', template: "<app-menu-toggle\n tooltip=\"Import and export options\"\n icon=\"import\"\n [active]=\"false\"\n (click)=\"openIODialog()\"\n>\n</app-menu-toggle>\n" }]
25
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { eventDataImportOptions: [{
26
- type: Input
27
- }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2lvLW9wdGlvbnMvaW8tb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2lvLW9wdGlvbnMvaW8tb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQ0wsZUFBZSxHQUVoQixNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7O0FBTzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFLN0IsWUFBb0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUhyQywyQkFBc0IsR0FDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVPLENBQUM7SUFFekMsWUFBWTtRQUNWLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzNELFVBQVUsRUFBRSxRQUFRO1NBQ3JCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0I7WUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7OytHQWJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLG9IQ2IvQiwySkFPQTsyRkRNYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCO2dHQU0xQixzQkFBc0I7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgRXZlbnREYXRhRm9ybWF0LFxuICBFdmVudERhdGFJbXBvcnRPcHRpb24sXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V4dHJhcy9ldmVudC1kYXRhLWltcG9ydCc7XG5pbXBvcnQgeyBJT09wdGlvbnNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2lvLW9wdGlvbnMtZGlhbG9nL2lvLW9wdGlvbnMtZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pby1vcHRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lvLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pby1vcHRpb25zLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIElvT3B0aW9uc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGV2ZW50RGF0YUltcG9ydE9wdGlvbnM6IEV2ZW50RGF0YUltcG9ydE9wdGlvbltdID1cbiAgICBPYmplY3QudmFsdWVzKEV2ZW50RGF0YUZvcm1hdCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge31cblxuICBvcGVuSU9EaWFsb2coKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihJT09wdGlvbnNEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2cnLFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5ldmVudERhdGFJbXBvcnRPcHRpb25zID1cbiAgICAgIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9ucztcbiAgfVxufVxuIiwiPGFwcC1tZW51LXRvZ2dsZVxuICB0b29sdGlwPVwiSW1wb3J0IGFuZCBleHBvcnQgb3B0aW9uc1wiXG4gIGljb249XCJpbXBvcnRcIlxuICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgKGNsaWNrKT1cIm9wZW5JT0RpYWxvZygpXCJcbj5cbjwvYXBwLW1lbnUtdG9nZ2xlPlxuIl19
20
+ IoOptionsComponent.ɵfac = function IoOptionsComponent_Factory(t) { return new (t || IoOptionsComponent)(i0.ɵɵdirectiveInject(i1.MatDialog)); };
21
+ IoOptionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IoOptionsComponent, selectors: [["app-io-options"]], inputs: { eventDataImportOptions: "eventDataImportOptions" }, decls: 1, vars: 1, consts: [["tooltip", "Import and export options", "icon", "import", 3, "active", "click"]], template: function IoOptionsComponent_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelementStart(0, "app-menu-toggle", 0);
23
+ i0.ɵɵlistener("click", function IoOptionsComponent_Template_app_menu_toggle_click_0_listener() { return ctx.openIODialog(); });
24
+ i0.ɵɵelementEnd();
25
+ } if (rf & 2) {
26
+ i0.ɵɵproperty("active", false);
27
+ } }, dependencies: [i2.MenuToggleComponent] });
28
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IoOptionsComponent, [{
29
+ type: Component,
30
+ args: [{ selector: 'app-io-options', template: "<app-menu-toggle\n tooltip=\"Import and export options\"\n icon=\"import\"\n [active]=\"false\"\n (click)=\"openIODialog()\"\n>\n</app-menu-toggle>\n" }]
31
+ }], function () { return [{ type: i1.MatDialog }]; }, { eventDataImportOptions: [{
32
+ type: Input
33
+ }] }); })();
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2lvLW9wdGlvbnMvaW8tb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L2lvLW9wdGlvbnMvaW8tb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQ0wsZUFBZSxHQUVoQixNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7O0FBTzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFLN0IsWUFBb0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUhyQywyQkFBc0IsR0FDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVPLENBQUM7SUFFekMsWUFBWTtRQUNWLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzNELFVBQVUsRUFBRSxRQUFRO1NBQ3JCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0I7WUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7O29GQWJVLGtCQUFrQjtxRUFBbEIsa0JBQWtCO1FDYi9CLDBDQUtDO1FBREMsd0dBQVMsa0JBQWMsSUFBQztRQUUxQixpQkFBa0I7O1FBSGhCLDhCQUFnQjs7dUZEVUwsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsZ0JBQWdCOzREQU0xQixzQkFBc0I7a0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgRXZlbnREYXRhRm9ybWF0LFxuICBFdmVudERhdGFJbXBvcnRPcHRpb24sXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V4dHJhcy9ldmVudC1kYXRhLWltcG9ydCc7XG5pbXBvcnQgeyBJT09wdGlvbnNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2lvLW9wdGlvbnMtZGlhbG9nL2lvLW9wdGlvbnMtZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pby1vcHRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lvLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pby1vcHRpb25zLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIElvT3B0aW9uc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGV2ZW50RGF0YUltcG9ydE9wdGlvbnM6IEV2ZW50RGF0YUltcG9ydE9wdGlvbltdID1cbiAgICBPYmplY3QudmFsdWVzKEV2ZW50RGF0YUZvcm1hdCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge31cblxuICBvcGVuSU9EaWFsb2coKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihJT09wdGlvbnNEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2cnLFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5ldmVudERhdGFJbXBvcnRPcHRpb25zID1cbiAgICAgIHRoaXMuZXZlbnREYXRhSW1wb3J0T3B0aW9ucztcbiAgfVxufVxuIiwiPGFwcC1tZW51LXRvZ2dsZVxuICB0b29sdGlwPVwiSW1wb3J0IGFuZCBleHBvcnQgb3B0aW9uc1wiXG4gIGljb249XCJpbXBvcnRcIlxuICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgKGNsaWNrKT1cIm9wZW5JT0RpYWxvZygpXCJcbj5cbjwvYXBwLW1lbnUtdG9nZ2xlPlxuIl19
@@ -15,10 +15,16 @@ export class MainViewToggleComponent {
15
15
  .toggleOrthographicView(this.orthographicView);
16
16
  }
17
17
  }
18
- MainViewToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: MainViewToggleComponent, deps: [{ token: i1.EventDisplayService }], target: i0.ɵɵFactoryTarget.Component });
19
- MainViewToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: MainViewToggleComponent, selector: "app-main-view-toggle", ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3.MenuToggleComponent, selector: "app-menu-toggle", inputs: ["icon", "active", "tooltip", "disabled"] }] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: MainViewToggleComponent, decorators: [{
21
- type: Component,
22
- args: [{ selector: 'app-main-view-toggle', template: "<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" }]
23
- }], ctorParameters: function () { return [{ type: i1.EventDisplayService }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21haW4tdmlldy10b2dnbGUvbWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21haW4tdmlldy10b2dnbGUvbWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVExQyxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUZyRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFFc0IsQ0FBQztJQUV6RCxjQUFjO1FBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZO2FBQ2QsWUFBWSxFQUFFO2FBQ2Qsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQzs7b0hBVlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNERDUnBDLHNQQVFBOzJGREFhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50RGlzcGxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudC1kaXNwbGF5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWFpbi12aWV3LXRvZ2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLXZpZXctdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNYWluVmlld1RvZ2dsZUNvbXBvbmVudCB7XG4gIG9ydGhvZ3JhcGhpY1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSkge31cblxuICBzd2l0Y2hNYWluVmlldygpIHtcbiAgICB0aGlzLm9ydGhvZ3JhcGhpY1ZpZXcgPSAhdGhpcy5vcnRob2dyYXBoaWNWaWV3O1xuICAgIHRoaXMuZXZlbnREaXNwbGF5XG4gICAgICAuZ2V0VUlNYW5hZ2VyKClcbiAgICAgIC50b2dnbGVPcnRob2dyYXBoaWNWaWV3KHRoaXMub3J0aG9ncmFwaGljVmlldyk7XG4gIH1cbn1cbiIsIjxhcHAtbWVudS10b2dnbGVcbiAgW2ljb25dPVwib3J0aG9ncmFwaGljVmlldyA/ICdwZXJzcGVjdGl2ZScgOiAnb3J0aG9ncmFwaGljJ1wiXG4gIFttYXRUb29sdGlwXT1cIlxuICAgICdTd2l0Y2ggdG8gJyArIChvcnRob2dyYXBoaWNWaWV3ID8gJ3BlcnNwZWN0aXZlJyA6ICdvcnRob2dyYXBoaWMnKSArICcgdmlldydcbiAgXCJcbiAgKGNsaWNrKT1cInN3aXRjaE1haW5WaWV3KClcIlxuPlxuPC9hcHAtbWVudS10b2dnbGU+XG4iXX0=
18
+ MainViewToggleComponent.ɵfac = function MainViewToggleComponent_Factory(t) { return new (t || MainViewToggleComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
19
+ MainViewToggleComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MainViewToggleComponent, selectors: [["app-main-view-toggle"]], decls: 1, vars: 2, consts: [[3, "icon", "matTooltip", "click"]], template: function MainViewToggleComponent_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "app-menu-toggle", 0);
21
+ i0.ɵɵlistener("click", function MainViewToggleComponent_Template_app_menu_toggle_click_0_listener() { return ctx.switchMainView(); });
22
+ i0.ɵɵelementEnd();
23
+ } if (rf & 2) {
24
+ i0.ɵɵproperty("icon", ctx.orthographicView ? "perspective" : "orthographic")("matTooltip", "Switch to " + (ctx.orthographicView ? "perspective" : "orthographic") + " view");
25
+ } }, dependencies: [i2.MatTooltip, i3.MenuToggleComponent] });
26
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MainViewToggleComponent, [{
27
+ type: Component,
28
+ args: [{ selector: 'app-main-view-toggle', template: "<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" }]
29
+ }], function () { return [{ type: i1.EventDisplayService }]; }, null); })();
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21haW4tdmlldy10b2dnbGUvbWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21haW4tdmlldy10b2dnbGUvbWFpbi12aWV3LXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVExQyxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUZyRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFFc0IsQ0FBQztJQUV6RCxjQUFjO1FBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZO2FBQ2QsWUFBWSxFQUFFO2FBQ2Qsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQzs7OEZBVlUsdUJBQXVCOzBFQUF2Qix1QkFBdUI7UUNScEMsMENBTUM7UUFEQyw2R0FBUyxvQkFBZ0IsSUFBQztRQUU1QixpQkFBa0I7O1FBTmhCLDRFQUEwRCxnR0FBQTs7dUZETy9DLHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnREaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50LWRpc3BsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tYWluLXZpZXctdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tdmlldy10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYWluLXZpZXctdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1haW5WaWV3VG9nZ2xlQ29tcG9uZW50IHtcbiAgb3J0aG9ncmFwaGljVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZXZlbnREaXNwbGF5OiBFdmVudERpc3BsYXlTZXJ2aWNlKSB7fVxuXG4gIHN3aXRjaE1haW5WaWV3KCkge1xuICAgIHRoaXMub3J0aG9ncmFwaGljVmlldyA9ICF0aGlzLm9ydGhvZ3JhcGhpY1ZpZXc7XG4gICAgdGhpcy5ldmVudERpc3BsYXlcbiAgICAgIC5nZXRVSU1hbmFnZXIoKVxuICAgICAgLnRvZ2dsZU9ydGhvZ3JhcGhpY1ZpZXcodGhpcy5vcnRob2dyYXBoaWNWaWV3KTtcbiAgfVxufVxuIiwiPGFwcC1tZW51LXRvZ2dsZVxuICBbaWNvbl09XCJvcnRob2dyYXBoaWNWaWV3ID8gJ3BlcnNwZWN0aXZlJyA6ICdvcnRob2dyYXBoaWMnXCJcbiAgW21hdFRvb2x0aXBdPVwiXG4gICAgJ1N3aXRjaCB0byAnICsgKG9ydGhvZ3JhcGhpY1ZpZXcgPyAncGVyc3BlY3RpdmUnIDogJ29ydGhvZ3JhcGhpYycpICsgJyB2aWV3J1xuICBcIlxuICAoY2xpY2spPVwic3dpdGNoTWFpblZpZXcoKVwiXG4+XG48L2FwcC1tZW51LXRvZ2dsZT5cbiJdfQ==
@@ -2,23 +2,37 @@ import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "@angular/material/tooltip";
5
+ const _c0 = function (a0) { return { disabled: a0 }; };
6
+ const _c1 = function (a0) { return { "active-icon": a0 }; };
5
7
  export class MenuToggleComponent {
6
8
  constructor() {
7
9
  this.disabled = false;
8
10
  }
9
11
  }
10
- MenuToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: MenuToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- MenuToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: MenuToggleComponent, selector: "app-menu-toggle", inputs: { icon: "icon", active: "active", tooltip: "tooltip", disabled: "disabled" }, ngImport: i0, template: "<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", styles: [":host{display:flex;margin:0 .6rem}:host .menu-toggle{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}:host .menu-toggle-icon{width:100%;height:100%}:host .menu-toggle-icon.active-icon{--phoenix-options-icon-path: #00bcd4}:host .menu-toggle:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}:host .menu-toggle.disabled{cursor:not-allowed;opacity:.4}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: MenuToggleComponent, decorators: [{
13
- type: Component,
14
- args: [{ selector: 'app-menu-toggle', template: "<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", styles: [":host{display:flex;margin:0 .6rem}:host .menu-toggle{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}:host .menu-toggle-icon{width:100%;height:100%}:host .menu-toggle-icon.active-icon{--phoenix-options-icon-path: #00bcd4}:host .menu-toggle:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}:host .menu-toggle.disabled{cursor:not-allowed;opacity:.4}\n"] }]
15
- }], propDecorators: { icon: [{
16
- type: Input
17
- }], active: [{
18
- type: Input
19
- }], tooltip: [{
20
- type: Input
21
- }], disabled: [{
22
- type: Input
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9tZW51LXRvZ2dsZS9tZW51LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21lbnUtdG9nZ2xlL21lbnUtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2pELE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFTVyxhQUFRLEdBQVksS0FBSyxDQUFDO0tBQ3BDOztnSEFMWSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw2SUNQaEMscVZBV0E7MkZESmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjs4QkFLbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lbnUtdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS10b2dnbGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudVRvZ2dsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuO1xuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwibWVudS10b2dnbGVcIlxuICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCB9XCJcbiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiXG4gIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXM9XCJvZmZcIlxuPlxuICA8c3ZnIGNsYXNzPVwibWVudS10b2dnbGUtaWNvblwiIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZS1pY29uJzogYWN0aXZlIH1cIj5cbiAgICA8dXNlIGF0dHIuaHJlZj1cImFzc2V0cy9pY29ucy97eyBpY29uIH19LnN2ZyN7eyBpY29uIH19XCI+PC91c2U+XG4gIDwvc3ZnPlxuPC9idXR0b24+XG4iXX0=
12
+ MenuToggleComponent.ɵfac = function MenuToggleComponent_Factory(t) { return new (t || MenuToggleComponent)(); };
13
+ MenuToggleComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuToggleComponent, selectors: [["app-menu-toggle"]], inputs: { icon: "icon", active: "active", tooltip: "tooltip", disabled: "disabled" }, decls: 3, vars: 9, consts: [["matTooltipPosition", "above", "matTooltipTouchGestures", "off", 1, "menu-toggle", 3, "ngClass", "matTooltip"], [1, "menu-toggle-icon", 3, "ngClass"]], template: function MenuToggleComponent_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵelementStart(0, "button", 0);
15
+ i0.ɵɵnamespaceSVG();
16
+ i0.ɵɵelementStart(1, "svg", 1);
17
+ i0.ɵɵelement(2, "use");
18
+ i0.ɵɵelementEnd()();
19
+ } if (rf & 2) {
20
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0, ctx.disabled))("matTooltip", ctx.tooltip);
21
+ i0.ɵɵadvance(1);
22
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1, ctx.active));
23
+ i0.ɵɵadvance(1);
24
+ i0.ɵɵattributeInterpolate2("href", "assets/icons/", ctx.icon, ".svg#", ctx.icon, "");
25
+ } }, dependencies: [i1.NgClass, i2.MatTooltip], styles: ["[_nghost-%COMP%]{display:flex;margin:0 .6rem}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}[_nghost-%COMP%] .menu-toggle-icon[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .menu-toggle-icon.active-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #00bcd4}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}[_nghost-%COMP%] .menu-toggle.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.4}"] });
26
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuToggleComponent, [{
27
+ type: Component,
28
+ args: [{ selector: 'app-menu-toggle', template: "<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", styles: [":host{display:flex;margin:0 .6rem}:host .menu-toggle{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}:host .menu-toggle-icon{width:100%;height:100%}:host .menu-toggle-icon.active-icon{--phoenix-options-icon-path: #00bcd4}:host .menu-toggle:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}:host .menu-toggle.disabled{cursor:not-allowed;opacity:.4}\n"] }]
29
+ }], null, { icon: [{
30
+ type: Input
31
+ }], active: [{
32
+ type: Input
33
+ }], tooltip: [{
34
+ type: Input
35
+ }], disabled: [{
36
+ type: Input
37
+ }] }); })();
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvdWktbWVudS9tZW51LXRvZ2dsZS9tZW51LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L21lbnUtdG9nZ2xlL21lbnUtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPakQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQVNXLGFBQVEsR0FBWSxLQUFLLENBQUM7S0FDcEM7O3NGQUxZLG1CQUFtQjtzRUFBbkIsbUJBQW1CO1FDUGhDLGlDQU1DO1FBQ0MsbUJBQW9FO1FBQXBFLDhCQUFvRTtRQUNsRSxzQkFBOEQ7UUFDaEUsaUJBQU0sRUFBQTs7UUFQTixrRUFBa0MsMkJBQUE7UUFLSixlQUFxQztRQUFyQyxnRUFBcUM7UUFDNUQsZUFBa0Q7UUFBbEQsb0ZBQWtEOzt1RkREOUMsbUJBQW1CO2NBTC9CLFNBQVM7MkJBQ0UsaUJBQWlCO2dCQUtsQixJQUFJO2tCQUFaLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWVudS10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51VG9nZ2xlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICBASW5wdXQoKSBhY3RpdmU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRvb2x0aXA6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiIsIjxidXR0b25cbiAgY2xhc3M9XCJtZW51LXRvZ2dsZVwiXG4gIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkIH1cIlxuICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwXCJcbiAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICBtYXRUb29sdGlwVG91Y2hHZXN0dXJlcz1cIm9mZlwiXG4+XG4gIDxzdmcgY2xhc3M9XCJtZW51LXRvZ2dsZS1pY29uXCIgW25nQ2xhc3NdPVwieyAnYWN0aXZlLWljb24nOiBhY3RpdmUgfVwiPlxuICAgIDx1c2UgYXR0ci5ocmVmPVwiYXNzZXRzL2ljb25zL3t7IGljb24gfX0uc3ZnI3t7IGljb24gfX1cIj48L3VzZT5cbiAgPC9zdmc+XG48L2J1dHRvbj5cbiJdfQ==