phoenix-ui-components 2.14.1 → 2.16.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 (147) hide show
  1. package/README.md +2 -2
  2. package/dist/README.md +2 -2
  3. package/dist/components/file-explorer/file-explorer.component.d.ts +9 -3
  4. package/dist/components/loader/loader.component.d.ts +1 -1
  5. package/dist/components/phoenix-menu/config/config-slider/config-slider.component.d.ts +1 -1
  6. package/dist/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.d.ts +1 -1
  7. package/dist/components/phoenix-menu/phoenix-menu.component.d.ts +1 -1
  8. package/dist/components/phoenix-ui.module.d.ts +62 -59
  9. package/dist/components/ui-menu/animate-camera/animate-camera.component.d.ts +1 -1
  10. package/dist/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.d.ts +3 -1
  11. package/dist/components/ui-menu/cycle-events/cycle-events.component.d.ts +7 -2
  12. package/dist/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.d.ts +7 -8
  13. package/dist/components/ui-menu/event-data-explorer/event-data-explorer.component.d.ts +1 -1
  14. package/dist/components/ui-menu/experiment-info/experiment-info.component.d.ts +1 -1
  15. package/dist/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.d.ts +22 -0
  16. package/dist/components/ui-menu/geometry-browser/geometry-browser.component.d.ts +15 -0
  17. package/dist/components/ui-menu/index.d.ts +3 -0
  18. package/dist/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.d.ts +1 -1
  19. package/dist/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.d.ts +1 -1
  20. package/dist/components/ui-menu/io-options/io-options.component.d.ts +1 -1
  21. package/dist/components/ui-menu/make-picture/make-picture.component.d.ts +3 -0
  22. package/dist/components/ui-menu/menu-toggle/menu-toggle.component.d.ts +1 -1
  23. package/dist/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.d.ts +1 -1
  24. package/dist/components/ui-menu/overlay/overlay.component.d.ts +1 -1
  25. package/dist/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.d.ts +1 -1
  26. package/dist/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.d.ts +1 -1
  27. package/dist/components/ui-menu/ui-menu.component.d.ts +1 -1
  28. package/dist/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.d.ts +51 -0
  29. package/dist/components/ui-menu/view-options/view-options.component.d.ts +21 -4
  30. package/dist/esm2022/components/embed-menu/embed-menu.component.mjs +22 -0
  31. package/dist/esm2022/components/embed-menu/experiment-link/experiment-link.component.mjs +27 -0
  32. package/dist/esm2022/components/file-explorer/file-explorer.component.mjs +109 -0
  33. package/dist/esm2022/components/loader/loader.component.mjs +71 -0
  34. package/dist/esm2022/components/nav/nav.component.mjs +19 -0
  35. package/dist/esm2022/components/phoenix-menu/config/config-slider/config-slider.component.mjs +81 -0
  36. package/dist/esm2022/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +304 -0
  37. package/dist/esm2022/components/phoenix-menu/phoenix-menu.component.mjs +23 -0
  38. package/dist/esm2022/components/phoenix-ui.module.mjs +254 -0
  39. package/dist/esm2022/components/ring-loader/ring-loader.component.mjs +16 -0
  40. package/dist/esm2022/components/ui-menu/animate-camera/animate-camera.component.mjs +120 -0
  41. package/dist/esm2022/components/ui-menu/animate-event/animate-event.component.mjs +33 -0
  42. package/dist/esm2022/components/ui-menu/ar-toggle/ar-toggle.component.mjs +83 -0
  43. package/dist/esm2022/components/ui-menu/auto-rotate/auto-rotate.component.mjs +29 -0
  44. package/dist/esm2022/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +273 -0
  45. package/dist/esm2022/components/ui-menu/collections-info/collections-info.component.mjs +44 -0
  46. package/dist/esm2022/components/ui-menu/cycle-events/cycle-events.component.mjs +90 -0
  47. package/dist/esm2022/components/ui-menu/dark-theme/dark-theme.component.mjs +32 -0
  48. package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +128 -0
  49. package/dist/esm2022/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +35 -0
  50. package/dist/esm2022/components/ui-menu/event-selector/event-selector.component.mjs +54 -0
  51. package/dist/esm2022/components/ui-menu/experiment-info/experiment-info.component.mjs +100 -0
  52. package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.mjs +172 -0
  53. package/dist/esm2022/components/ui-menu/geometry-browser/geometry-browser.component.mjs +44 -0
  54. package/dist/esm2022/components/ui-menu/index.mjs +40 -0
  55. package/dist/esm2022/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +69 -0
  56. package/dist/esm2022/components/ui-menu/info-panel/info-panel.component.mjs +59 -0
  57. package/dist/esm2022/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +294 -0
  58. package/dist/esm2022/components/ui-menu/io-options/io-options.component.mjs +36 -0
  59. package/dist/esm2022/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +32 -0
  60. package/dist/esm2022/components/ui-menu/make-picture/make-picture.component.mjs +109 -0
  61. package/dist/esm2022/components/ui-menu/menu-toggle/menu-toggle.component.mjs +40 -0
  62. package/dist/esm2022/components/ui-menu/object-clipping/object-clipping.component.mjs +72 -0
  63. package/dist/esm2022/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +59 -0
  64. package/dist/esm2022/components/ui-menu/object-selection/object-selection.component.mjs +46 -0
  65. package/dist/esm2022/components/ui-menu/overlay/overlay.component.mjs +197 -0
  66. package/dist/esm2022/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +83 -0
  67. package/dist/esm2022/components/ui-menu/overlay-view/overlay-view.component.mjs +41 -0
  68. package/dist/esm2022/components/ui-menu/performance-toggle/performance-toggle.component.mjs +29 -0
  69. package/dist/esm2022/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +165 -0
  70. package/dist/esm2022/components/ui-menu/share-link/share-link.component.mjs +28 -0
  71. package/dist/esm2022/components/ui-menu/ss-mode/ss-mode.component.mjs +46 -0
  72. package/dist/esm2022/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +94 -0
  73. package/dist/esm2022/components/ui-menu/tree-menu/tree-menu.component.mjs +78 -0
  74. package/dist/esm2022/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +34 -0
  75. package/dist/esm2022/components/ui-menu/ui-menu.component.mjs +54 -0
  76. package/dist/esm2022/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.mjs +247 -0
  77. package/dist/esm2022/components/ui-menu/view-options/view-options.component.mjs +170 -0
  78. package/dist/esm2022/components/ui-menu/vr-toggle/vr-toggle.component.mjs +52 -0
  79. package/dist/esm2022/components/ui-menu/zoom-controls/zoom-controls.component.mjs +79 -0
  80. package/dist/esm2022/services/error-message-service.mjs +30 -0
  81. package/dist/{esm2020 → esm2022}/services/event-display.service.mjs +5 -5
  82. package/dist/esm2022/services/extras/attribute.pipe.mjs +33 -0
  83. package/dist/{esm2020 → esm2022}/services/extras/event-data-import.mjs +5 -1
  84. package/dist/esm2022/services/file-loader.service.mjs +86 -0
  85. package/dist/esm2022/services/global-error-handler.mjs +30 -0
  86. package/dist/fesm2022/phoenix-ui-components.mjs +4302 -0
  87. package/dist/fesm2022/phoenix-ui-components.mjs.map +1 -0
  88. package/dist/services/file-loader.service.d.ts +17 -0
  89. package/package.json +27 -16
  90. package/dist/esm2020/components/embed-menu/embed-menu.component.mjs +0 -21
  91. package/dist/esm2020/components/embed-menu/experiment-link/experiment-link.component.mjs +0 -25
  92. package/dist/esm2020/components/file-explorer/file-explorer.component.mjs +0 -97
  93. package/dist/esm2020/components/loader/loader.component.mjs +0 -68
  94. package/dist/esm2020/components/nav/nav.component.mjs +0 -18
  95. package/dist/esm2020/components/phoenix-menu/config/config-slider/config-slider.component.mjs +0 -82
  96. package/dist/esm2020/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.mjs +0 -309
  97. package/dist/esm2020/components/phoenix-menu/phoenix-menu.component.mjs +0 -21
  98. package/dist/esm2020/components/phoenix-ui.module.mjs +0 -254
  99. package/dist/esm2020/components/ring-loader/ring-loader.component.mjs +0 -15
  100. package/dist/esm2020/components/ui-menu/animate-camera/animate-camera.component.mjs +0 -117
  101. package/dist/esm2020/components/ui-menu/animate-event/animate-event.component.mjs +0 -31
  102. package/dist/esm2020/components/ui-menu/ar-toggle/ar-toggle.component.mjs +0 -81
  103. package/dist/esm2020/components/ui-menu/auto-rotate/auto-rotate.component.mjs +0 -27
  104. package/dist/esm2020/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.mjs +0 -261
  105. package/dist/esm2020/components/ui-menu/collections-info/collections-info.component.mjs +0 -38
  106. package/dist/esm2020/components/ui-menu/cycle-events/cycle-events.component.mjs +0 -42
  107. package/dist/esm2020/components/ui-menu/dark-theme/dark-theme.component.mjs +0 -30
  108. package/dist/esm2020/components/ui-menu/event-data-explorer/event-data-explorer-dialog/event-data-explorer-dialog.component.mjs +0 -176
  109. package/dist/esm2020/components/ui-menu/event-data-explorer/event-data-explorer.component.mjs +0 -32
  110. package/dist/esm2020/components/ui-menu/event-selector/event-selector.component.mjs +0 -50
  111. package/dist/esm2020/components/ui-menu/experiment-info/experiment-info.component.mjs +0 -96
  112. package/dist/esm2020/components/ui-menu/index.mjs +0 -37
  113. package/dist/esm2020/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.mjs +0 -66
  114. package/dist/esm2020/components/ui-menu/info-panel/info-panel.component.mjs +0 -55
  115. package/dist/esm2020/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.mjs +0 -290
  116. package/dist/esm2020/components/ui-menu/io-options/io-options.component.mjs +0 -34
  117. package/dist/esm2020/components/ui-menu/main-view-toggle/main-view-toggle.component.mjs +0 -30
  118. package/dist/esm2020/components/ui-menu/make-picture/make-picture.component.mjs +0 -88
  119. package/dist/esm2020/components/ui-menu/menu-toggle/menu-toggle.component.mjs +0 -38
  120. package/dist/esm2020/components/ui-menu/object-clipping/object-clipping.component.mjs +0 -67
  121. package/dist/esm2020/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.mjs +0 -55
  122. package/dist/esm2020/components/ui-menu/object-selection/object-selection.component.mjs +0 -42
  123. package/dist/esm2020/components/ui-menu/overlay/overlay.component.mjs +0 -189
  124. package/dist/esm2020/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.mjs +0 -79
  125. package/dist/esm2020/components/ui-menu/overlay-view/overlay-view.component.mjs +0 -38
  126. package/dist/esm2020/components/ui-menu/performance-toggle/performance-toggle.component.mjs +0 -27
  127. package/dist/esm2020/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.mjs +0 -158
  128. package/dist/esm2020/components/ui-menu/share-link/share-link.component.mjs +0 -26
  129. package/dist/esm2020/components/ui-menu/ss-mode/ss-mode.component.mjs +0 -47
  130. package/dist/esm2020/components/ui-menu/tree-menu/tree-menu-item/tree-menu-item.component.mjs +0 -90
  131. package/dist/esm2020/components/ui-menu/tree-menu/tree-menu.component.mjs +0 -78
  132. package/dist/esm2020/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.mjs +0 -35
  133. package/dist/esm2020/components/ui-menu/ui-menu.component.mjs +0 -54
  134. package/dist/esm2020/components/ui-menu/view-options/view-options.component.mjs +0 -81
  135. package/dist/esm2020/components/ui-menu/vr-toggle/vr-toggle.component.mjs +0 -50
  136. package/dist/esm2020/components/ui-menu/zoom-controls/zoom-controls.component.mjs +0 -73
  137. package/dist/esm2020/services/error-message-service.mjs +0 -32
  138. package/dist/esm2020/services/extras/attribute.pipe.mjs +0 -33
  139. package/dist/esm2020/services/global-error-handler.mjs +0 -29
  140. package/dist/fesm2015/phoenix-ui-components.mjs +0 -3994
  141. package/dist/fesm2015/phoenix-ui-components.mjs.map +0 -1
  142. package/dist/fesm2020/phoenix-ui-components.mjs +0 -3552
  143. package/dist/fesm2020/phoenix-ui-components.mjs.map +0 -1
  144. /package/dist/{esm2020 → esm2022}/components/phoenix-menu/index.mjs +0 -0
  145. /package/dist/{esm2020 → esm2022}/phoenix-ui-components.mjs +0 -0
  146. /package/dist/{esm2020 → esm2022}/public_api.mjs +0 -0
  147. /package/dist/{esm2020 → esm2022}/services/index.mjs +0 -0
@@ -0,0 +1,79 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../services/event-display.service";
4
+ import * as i2 from "../menu-toggle/menu-toggle.component";
5
+ /**
6
+ * Component for adding zoom controls for the main and overlay cameras.
7
+ */
8
+ export class ZoomControlsComponent {
9
+ eventDisplay;
10
+ /** All camera being used by the scene. */
11
+ allCameras;
12
+ /** Factor to zoom by. */
13
+ zoomFactor = 1.1;
14
+ /** Timeout for clearing mouse hold. */
15
+ zoomTimeout;
16
+ /** The speed and time of zoom. */
17
+ zoomTime = 200;
18
+ constructor(eventDisplay) {
19
+ this.eventDisplay = eventDisplay;
20
+ }
21
+ /**
22
+ * Zoom all the cameras by a specific zoom factor.
23
+ * The factor may either be greater (zoom in) or smaller (zoom out) than 1.
24
+ * @param zoomFactor The factor to zoom by.
25
+ */
26
+ zoomTo(zoomFactor) {
27
+ this.zoomTime =
28
+ this.zoomTime > 30 ? Math.floor(this.zoomTime / 1.1) : this.zoomTime;
29
+ this.eventDisplay.zoomTo(zoomFactor, this.zoomTime);
30
+ this.zoomTimeout = setTimeout(() => {
31
+ this.zoomTo(zoomFactor);
32
+ }, this.zoomTime);
33
+ }
34
+ /**
35
+ * Zoom the camera in.
36
+ * @param leftClick Whether the mouse click is left or not.
37
+ */
38
+ zoomIn(leftClick) {
39
+ if (leftClick) {
40
+ this.zoomTo(1 / this.zoomFactor);
41
+ }
42
+ }
43
+ /**
44
+ * Zoom the camera out.
45
+ * @param leftClick Whether the mouse click is left or not.s
46
+ */
47
+ zoomOut(leftClick) {
48
+ if (leftClick) {
49
+ this.zoomTo(this.zoomFactor);
50
+ }
51
+ }
52
+ /**
53
+ * Reset the zoom time which decreases upon hold and clear the zoom timeout.
54
+ */
55
+ clearZoom() {
56
+ this.zoomTime = 200;
57
+ clearTimeout(this.zoomTimeout);
58
+ }
59
+ static ɵfac = function ZoomControlsComponent_Factory(t) { return new (t || ZoomControlsComponent)(i0.ɵɵdirectiveInject(i1.EventDisplayService)); };
60
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ZoomControlsComponent, selectors: [["app-zoom-controls"]], decls: 3, vars: 2, consts: [[1, "d-flex"], ["tooltip", "Zoom out (hold)", "icon", "zoom-out", 3, "click", "touchstart", "mousedown", "mouseup", "mouseleave", "touchend", "touchcancel", "touchmove", "active"], ["tooltip", "Zoom in (hold)", "icon", "zoom-in", 3, "click", "touchstart", "mousedown", "mouseup", "mouseleave", "touchend", "touchcancel", "touchmove", "active"]], template: function ZoomControlsComponent_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelementStart(0, "div", 0)(1, "app-menu-toggle", 1);
62
+ i0.ɵɵlistener("click", function ZoomControlsComponent_Template_app_menu_toggle_click_1_listener() { ctx.zoomOut(true); return ctx.clearZoom(); })("touchstart", function ZoomControlsComponent_Template_app_menu_toggle_touchstart_1_listener() { return ctx.zoomOut(true); })("mousedown", function ZoomControlsComponent_Template_app_menu_toggle_mousedown_1_listener($event) { return ctx.zoomOut($event.button === 0); })("mouseup", function ZoomControlsComponent_Template_app_menu_toggle_mouseup_1_listener() { return ctx.clearZoom(); })("mouseleave", function ZoomControlsComponent_Template_app_menu_toggle_mouseleave_1_listener() { return ctx.clearZoom(); })("touchend", function ZoomControlsComponent_Template_app_menu_toggle_touchend_1_listener() { return ctx.clearZoom(); })("touchcancel", function ZoomControlsComponent_Template_app_menu_toggle_touchcancel_1_listener() { return ctx.clearZoom(); })("touchmove", function ZoomControlsComponent_Template_app_menu_toggle_touchmove_1_listener() { return ctx.clearZoom(); });
63
+ i0.ɵɵelementEnd();
64
+ i0.ɵɵelementStart(2, "app-menu-toggle", 2);
65
+ i0.ɵɵlistener("click", function ZoomControlsComponent_Template_app_menu_toggle_click_2_listener() { ctx.zoomIn(true); return ctx.clearZoom(); })("touchstart", function ZoomControlsComponent_Template_app_menu_toggle_touchstart_2_listener() { return ctx.zoomIn(true); })("mousedown", function ZoomControlsComponent_Template_app_menu_toggle_mousedown_2_listener($event) { return ctx.zoomIn($event.button === 0); })("mouseup", function ZoomControlsComponent_Template_app_menu_toggle_mouseup_2_listener() { return ctx.clearZoom(); })("mouseleave", function ZoomControlsComponent_Template_app_menu_toggle_mouseleave_2_listener() { return ctx.clearZoom(); })("touchend", function ZoomControlsComponent_Template_app_menu_toggle_touchend_2_listener() { return ctx.clearZoom(); })("touchcancel", function ZoomControlsComponent_Template_app_menu_toggle_touchcancel_2_listener() { return ctx.clearZoom(); })("touchmove", function ZoomControlsComponent_Template_app_menu_toggle_touchmove_2_listener() { return ctx.clearZoom(); });
66
+ i0.ɵɵelementEnd()();
67
+ } if (rf & 2) {
68
+ i0.ɵɵadvance();
69
+ i0.ɵɵproperty("active", false);
70
+ i0.ɵɵadvance();
71
+ i0.ɵɵproperty("active", false);
72
+ } }, dependencies: [i2.MenuToggleComponent] });
73
+ }
74
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ZoomControlsComponent, [{
75
+ type: Component,
76
+ args: [{ selector: 'app-zoom-controls', template: "<div class=\"d-flex\">\n <app-menu-toggle\n tooltip=\"Zoom out (hold)\"\n icon=\"zoom-out\"\n [active]=\"false\"\n (click)=\"zoomOut(true); clearZoom()\"\n (touchstart)=\"zoomOut(true)\"\n (mousedown)=\"zoomOut($event.button === 0)\"\n (mouseup)=\"clearZoom()\"\n (mouseleave)=\"clearZoom()\"\n (touchend)=\"clearZoom()\"\n (touchcancel)=\"clearZoom()\"\n (touchmove)=\"clearZoom()\"\n >\n </app-menu-toggle>\n <app-menu-toggle\n tooltip=\"Zoom in (hold)\"\n icon=\"zoom-in\"\n [active]=\"false\"\n (click)=\"zoomIn(true); clearZoom()\"\n (touchstart)=\"zoomIn(true)\"\n (mousedown)=\"zoomIn($event.button === 0)\"\n (mouseup)=\"clearZoom()\"\n (mouseleave)=\"clearZoom()\"\n (touchend)=\"clearZoom()\"\n (touchcancel)=\"clearZoom()\"\n (touchmove)=\"clearZoom()\"\n >\n </app-menu-toggle>\n</div>\n" }]
77
+ }], () => [{ type: i1.EventDisplayService }], null); })();
78
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ZoomControlsComponent, { className: "ZoomControlsComponent", filePath: "components/ui-menu/zoom-controls/zoom-controls.component.ts", lineNumber: 12 }); })();
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1jb250cm9scy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3pvb20tY29udHJvbHMvem9vbS1jb250cm9scy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvY29tcG9uZW50cy91aS1tZW51L3pvb20tY29udHJvbHMvem9vbS1jb250cm9scy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRzFDOztHQUVHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQVVaO0lBVHBCLDBDQUEwQztJQUMxQyxVQUFVLENBQVE7SUFDbEIseUJBQXlCO0lBQ2pCLFVBQVUsR0FBVyxHQUFHLENBQUM7SUFDakMsdUNBQXVDO0lBQy9CLFdBQVcsQ0FBTTtJQUN6QixrQ0FBa0M7SUFDMUIsUUFBUSxHQUFXLEdBQUcsQ0FBQztJQUUvQixZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7SUFBRyxDQUFDO0lBRXpEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBa0I7UUFDdkIsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXZFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFNBQWtCO1FBQ3ZCLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPLENBQUMsU0FBa0I7UUFDeEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDOytFQXREVSxxQkFBcUI7NkRBQXJCLHFCQUFxQjtZQ1ZoQyxBQURGLDhCQUFvQix5QkFhakI7WUFEQyxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLG9HQUFTLFlBQVEsSUFBSSxDQUFDLFNBQUUsZUFBVyxJQUFDLHdHQUN0QixZQUFRLElBQUksQ0FBQyxJQUFDLDRHQUNmLDhCQUEwQixDQUFDLENBQUMsSUFBQyxrR0FDL0IsZUFBVyxJQUFDLHdHQUNULGVBQVcsSUFBQyxvR0FDZCxlQUFXLElBQUMsMEdBQ1QsZUFBVyxJQUFDLHNHQUNkLGVBQVcsSUFBQztZQUUzQixpQkFBa0I7WUFDbEIsMENBWUM7WUFEQyxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLG9HQUFTLFdBQU8sSUFBSSxDQUFDLFNBQUUsZUFBVyxJQUFDLHdHQUNyQixXQUFPLElBQUksQ0FBQyxJQUFDLDRHQUNkLDZCQUF5QixDQUFDLENBQUMsSUFBQyxrR0FDOUIsZUFBVyxJQUFDLHdHQUNULGVBQVcsSUFBQyxvR0FDZCxlQUFXLElBQUMsMEdBQ1QsZUFBVyxJQUFDLHNHQUNkLGVBQVcsSUFBQztZQUc3QixBQURFLGlCQUFrQixFQUNkOztZQXpCRixjQUFnQjtZQUFoQiw4QkFBZ0I7WUFjaEIsY0FBZ0I7WUFBaEIsOEJBQWdCOzs7aUZEUFAscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0UsbUJBQW1COztrRkFJbEIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudERpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGFkZGluZyB6b29tIGNvbnRyb2xzIGZvciB0aGUgbWFpbiBhbmQgb3ZlcmxheSBjYW1lcmFzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtem9vbS1jb250cm9scycsXG4gIHRlbXBsYXRlVXJsOiAnLi96b29tLWNvbnRyb2xzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vem9vbS1jb250cm9scy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBab29tQ29udHJvbHNDb21wb25lbnQge1xuICAvKiogQWxsIGNhbWVyYSBiZWluZyB1c2VkIGJ5IHRoZSBzY2VuZS4gKi9cbiAgYWxsQ2FtZXJhczogYW55W107XG4gIC8qKiBGYWN0b3IgdG8gem9vbSBieS4gKi9cbiAgcHJpdmF0ZSB6b29tRmFjdG9yOiBudW1iZXIgPSAxLjE7XG4gIC8qKiBUaW1lb3V0IGZvciBjbGVhcmluZyBtb3VzZSBob2xkLiAqL1xuICBwcml2YXRlIHpvb21UaW1lb3V0OiBhbnk7XG4gIC8qKiBUaGUgc3BlZWQgYW5kIHRpbWUgb2Ygem9vbS4gKi9cbiAgcHJpdmF0ZSB6b29tVGltZTogbnVtYmVyID0gMjAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZXZlbnREaXNwbGF5OiBFdmVudERpc3BsYXlTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBab29tIGFsbCB0aGUgY2FtZXJhcyBieSBhIHNwZWNpZmljIHpvb20gZmFjdG9yLlxuICAgKiBUaGUgZmFjdG9yIG1heSBlaXRoZXIgYmUgZ3JlYXRlciAoem9vbSBpbikgb3Igc21hbGxlciAoem9vbSBvdXQpIHRoYW4gMS5cbiAgICogQHBhcmFtIHpvb21GYWN0b3IgVGhlIGZhY3RvciB0byB6b29tIGJ5LlxuICAgKi9cbiAgem9vbVRvKHpvb21GYWN0b3I6IG51bWJlcikge1xuICAgIHRoaXMuem9vbVRpbWUgPVxuICAgICAgdGhpcy56b29tVGltZSA+IDMwID8gTWF0aC5mbG9vcih0aGlzLnpvb21UaW1lIC8gMS4xKSA6IHRoaXMuem9vbVRpbWU7XG5cbiAgICB0aGlzLmV2ZW50RGlzcGxheS56b29tVG8oem9vbUZhY3RvciwgdGhpcy56b29tVGltZSk7XG5cbiAgICB0aGlzLnpvb21UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnpvb21Ubyh6b29tRmFjdG9yKTtcbiAgICB9LCB0aGlzLnpvb21UaW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBab29tIHRoZSBjYW1lcmEgaW4uXG4gICAqIEBwYXJhbSBsZWZ0Q2xpY2sgV2hldGhlciB0aGUgbW91c2UgY2xpY2sgaXMgbGVmdCBvciBub3QuXG4gICAqL1xuICB6b29tSW4obGVmdENsaWNrOiBib29sZWFuKSB7XG4gICAgaWYgKGxlZnRDbGljaykge1xuICAgICAgdGhpcy56b29tVG8oMSAvIHRoaXMuem9vbUZhY3Rvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFpvb20gdGhlIGNhbWVyYSBvdXQuXG4gICAqIEBwYXJhbSBsZWZ0Q2xpY2sgV2hldGhlciB0aGUgbW91c2UgY2xpY2sgaXMgbGVmdCBvciBub3Quc1xuICAgKi9cbiAgem9vbU91dChsZWZ0Q2xpY2s6IGJvb2xlYW4pIHtcbiAgICBpZiAobGVmdENsaWNrKSB7XG4gICAgICB0aGlzLnpvb21Ubyh0aGlzLnpvb21GYWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgem9vbSB0aW1lIHdoaWNoIGRlY3JlYXNlcyB1cG9uIGhvbGQgYW5kIGNsZWFyIHRoZSB6b29tIHRpbWVvdXQuXG4gICAqL1xuICBjbGVhclpvb20oKSB7XG4gICAgdGhpcy56b29tVGltZSA9IDIwMDtcbiAgICBjbGVhclRpbWVvdXQodGhpcy56b29tVGltZW91dCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgPGFwcC1tZW51LXRvZ2dsZVxuICAgIHRvb2x0aXA9XCJab29tIG91dCAoaG9sZClcIlxuICAgIGljb249XCJ6b29tLW91dFwiXG4gICAgW2FjdGl2ZV09XCJmYWxzZVwiXG4gICAgKGNsaWNrKT1cInpvb21PdXQodHJ1ZSk7IGNsZWFyWm9vbSgpXCJcbiAgICAodG91Y2hzdGFydCk9XCJ6b29tT3V0KHRydWUpXCJcbiAgICAobW91c2Vkb3duKT1cInpvb21PdXQoJGV2ZW50LmJ1dHRvbiA9PT0gMClcIlxuICAgIChtb3VzZXVwKT1cImNsZWFyWm9vbSgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJjbGVhclpvb20oKVwiXG4gICAgKHRvdWNoZW5kKT1cImNsZWFyWm9vbSgpXCJcbiAgICAodG91Y2hjYW5jZWwpPVwiY2xlYXJab29tKClcIlxuICAgICh0b3VjaG1vdmUpPVwiY2xlYXJab29tKClcIlxuICA+XG4gIDwvYXBwLW1lbnUtdG9nZ2xlPlxuICA8YXBwLW1lbnUtdG9nZ2xlXG4gICAgdG9vbHRpcD1cIlpvb20gaW4gKGhvbGQpXCJcbiAgICBpY29uPVwiem9vbS1pblwiXG4gICAgW2FjdGl2ZV09XCJmYWxzZVwiXG4gICAgKGNsaWNrKT1cInpvb21Jbih0cnVlKTsgY2xlYXJab29tKClcIlxuICAgICh0b3VjaHN0YXJ0KT1cInpvb21Jbih0cnVlKVwiXG4gICAgKG1vdXNlZG93bik9XCJ6b29tSW4oJGV2ZW50LmJ1dHRvbiA9PT0gMClcIlxuICAgIChtb3VzZXVwKT1cImNsZWFyWm9vbSgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJjbGVhclpvb20oKVwiXG4gICAgKHRvdWNoZW5kKT1cImNsZWFyWm9vbSgpXCJcbiAgICAodG91Y2hjYW5jZWwpPVwiY2xlYXJab29tKClcIlxuICAgICh0b3VjaG1vdmUpPVwiY2xlYXJab29tKClcIlxuICA+XG4gIDwvYXBwLW1lbnUtdG9nZ2xlPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ActiveVariable } from 'phoenix-event-display';
3
+ import * as i0 from "@angular/core";
4
+ export class ErrorMessageService {
5
+ /** A variable that stores the latest error thrown. */
6
+ error = new ActiveVariable();
7
+ /**
8
+ * Subscribe to when an error occurs.
9
+ * @param callback A function called when an error occurs.
10
+ */
11
+ subscribeToError(callback) {
12
+ this.error.onUpdate(callback);
13
+ }
14
+ /**
15
+ * Set the current error.
16
+ * @param error The error that has occurred.
17
+ */
18
+ setError(error) {
19
+ this.error.update(error);
20
+ }
21
+ static ɵfac = function ErrorMessageService_Factory(t) { return new (t || ErrorMessageService)(); };
22
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ErrorMessageService, factory: ErrorMessageService.ɵfac, providedIn: 'root' });
23
+ }
24
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorMessageService, [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root',
28
+ }]
29
+ }], null, null); })();
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NlcnZpY2VzL2Vycm9yLW1lc3NhZ2Utc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixzREFBc0Q7SUFDOUMsS0FBSyxHQUFHLElBQUksY0FBYyxFQUFTLENBQUM7SUFFNUM7OztPQUdHO0lBQ0gsZ0JBQWdCLENBQUMsUUFBZ0M7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFZO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7NkVBbEJVLG1CQUFtQjtnRUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFGbEIsTUFBTTs7aUZBRVAsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZVZhcmlhYmxlIH0gZnJvbSAncGhvZW5peC1ldmVudC1kaXNwbGF5JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVycm9yTWVzc2FnZVNlcnZpY2Uge1xuICAvKiogQSB2YXJpYWJsZSB0aGF0IHN0b3JlcyB0aGUgbGF0ZXN0IGVycm9yIHRocm93bi4gKi9cbiAgcHJpdmF0ZSBlcnJvciA9IG5ldyBBY3RpdmVWYXJpYWJsZTxFcnJvcj4oKTtcblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHdoZW4gYW4gZXJyb3Igb2NjdXJzLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgQSBmdW5jdGlvbiBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuXG4gICAqL1xuICBzdWJzY3JpYmVUb0Vycm9yKGNhbGxiYWNrOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5lcnJvci5vblVwZGF0ZShjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjdXJyZW50IGVycm9yLlxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIHRoYXQgaGFzIG9jY3VycmVkLlxuICAgKi9cbiAgc2V0RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gICAgdGhpcy5lcnJvci51cGRhdGUoZXJyb3IpO1xuICB9XG59XG4iXX0=
@@ -11,13 +11,13 @@ export class EventDisplayService extends EventDisplay {
11
11
  constructor() {
12
12
  super();
13
13
  }
14
+ static ɵfac = function EventDisplayService_Factory(t) { return new (t || EventDisplayService)(); };
15
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EventDisplayService, factory: EventDisplayService.ɵfac, providedIn: 'root' });
14
16
  }
15
- EventDisplayService.ɵfac = function EventDisplayService_Factory(t) { return new (t || EventDisplayService)(); };
16
- EventDisplayService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EventDisplayService, factory: EventDisplayService.ɵfac, providedIn: 'root' });
17
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventDisplayService, [{
17
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventDisplayService, [{
18
18
  type: Injectable,
19
19
  args: [{
20
20
  providedIn: 'root',
21
21
  }]
22
- }], function () { return []; }, null); })();
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGlzcGxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NlcnZpY2VzL2V2ZW50LWRpc3BsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBWTtJQUNuRDs7T0FFRztJQUNIO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOztzRkFOVSxtQkFBbUI7eUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUIsbUJBRmxCLE1BQU07dUZBRVAsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50RGlzcGxheSB9IGZyb20gJ3Bob2VuaXgtZXZlbnQtZGlzcGxheSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYWxsIGV2ZW50IGRpc3BsYXkgcmVsYXRlZCBmdW5jdGlvbnMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFdmVudERpc3BsYXlTZXJ2aWNlIGV4dGVuZHMgRXZlbnREaXNwbGF5IHtcbiAgLyoqXG4gICAqIEluc3RhbnRpYXRlIHRoZSBldmVudCBkaXNwbGF5IGJ5IGNhbGxpbmcgdGhlIHBhcmVudCBjb25zdHJ1Y3Rvci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiJdfQ==
22
+ }], () => [], null); })();
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGlzcGxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NlcnZpY2VzL2V2ZW50LWRpc3BsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBWTtJQUNuRDs7T0FFRztJQUNIO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzZFQU5VLG1CQUFtQjtnRUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFGbEIsTUFBTTs7aUZBRVAsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50RGlzcGxheSB9IGZyb20gJ3Bob2VuaXgtZXZlbnQtZGlzcGxheSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYWxsIGV2ZW50IGRpc3BsYXkgcmVsYXRlZCBmdW5jdGlvbnMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFdmVudERpc3BsYXlTZXJ2aWNlIGV4dGVuZHMgRXZlbnREaXNwbGF5IHtcbiAgLyoqXG4gICAqIEluc3RhbnRpYXRlIHRoZSBldmVudCBkaXNwbGF5IGJ5IGNhbGxpbmcgdGhlIHBhcmVudCBjb25zdHJ1Y3Rvci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Pipe for transforming selected object attributes to a better format.
5
+ */
6
+ export class AttributePipe {
7
+ /**
8
+ * Transform the attribute to a better presentable format.
9
+ * @param value Value to be transformed.
10
+ * @param args Additional arguments.
11
+ * @returns The transformed value.
12
+ */
13
+ transform(value, args) {
14
+ let transformedValue = '';
15
+ if (Array.isArray(value)) {
16
+ transformedValue += '\n';
17
+ value.forEach((v) => (transformedValue += v + '\n'));
18
+ }
19
+ else {
20
+ transformedValue = value.toString();
21
+ }
22
+ return transformedValue;
23
+ }
24
+ static ɵfac = function AttributePipe_Factory(t) { return new (t || AttributePipe)(); };
25
+ static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "attributePipe", type: AttributePipe, pure: true });
26
+ }
27
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AttributePipe, [{
28
+ type: Pipe,
29
+ args: [{
30
+ name: 'attributePipe',
31
+ }]
32
+ }], null, null); })();
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc2VydmljZXMvZXh0cmFzL2F0dHJpYnV0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUVwRDs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBQ3hCOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFVO1FBQzlCLElBQUksZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLGdCQUFnQixJQUFJLElBQUksQ0FBQztZQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7YUFBTSxDQUFDO1lBQ04sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7dUVBaEJVLGFBQWE7Z0ZBQWIsYUFBYTs7aUZBQWIsYUFBYTtjQUh6QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGVBQWU7YUFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUGlwZSBmb3IgdHJhbnNmb3JtaW5nIHNlbGVjdGVkIG9iamVjdCBhdHRyaWJ1dGVzIHRvIGEgYmV0dGVyIGZvcm1hdC5cbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnYXR0cmlidXRlUGlwZScsXG59KVxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0aGUgYXR0cmlidXRlIHRvIGEgYmV0dGVyIHByZXNlbnRhYmxlIGZvcm1hdC5cbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgKi9cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xuICAgIGxldCB0cmFuc2Zvcm1lZFZhbHVlID0gJyc7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0cmFuc2Zvcm1lZFZhbHVlICs9ICdcXG4nO1xuICAgICAgdmFsdWUuZm9yRWFjaCgodikgPT4gKHRyYW5zZm9ybWVkVmFsdWUgKz0gdiArICdcXG4nKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zZm9ybWVkVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gdHJhbnNmb3JtZWRWYWx1ZTtcbiAgfVxufVxuIl19
@@ -7,6 +7,10 @@ export var EventDataFormat;
7
7
  EventDataFormat["ZIP"] = "ZIP";
8
8
  })(EventDataFormat || (EventDataFormat = {}));
9
9
  export class ImportOption {
10
+ format;
11
+ fileType;
12
+ handler;
13
+ accept;
10
14
  constructor(format, fileType, handler, accept) {
11
15
  this.format = format;
12
16
  this.fileType = fileType;
@@ -14,4 +18,4 @@ export class ImportOption {
14
18
  this.accept = accept;
15
19
  }
16
20
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGF0YS1pbXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc2VydmljZXMvZXh0cmFzL2V2ZW50LWRhdGEtaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBTVg7QUFORCxXQUFZLGVBQWU7SUFDekIsZ0NBQWEsQ0FBQTtJQUNiLDhDQUEyQixDQUFBO0lBQzNCLHNDQUFtQixDQUFBO0lBQ25CLDRCQUFTLENBQUE7SUFDVCw4QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQU5XLGVBQWUsS0FBZixlQUFlLFFBTTFCO0FBSUQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDUyxNQUFjLEVBQ2QsUUFBZ0IsRUFDaEIsT0FBa0MsRUFDbEMsTUFBZTtRQUhmLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVM7SUFDckIsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRXZlbnREYXRhRm9ybWF0IHtcbiAgSlNPTiA9ICdKU09OJyxcbiAgRURNNEhFUEpTT04gPSAnRURNNEhFUEpTT04nLFxuICBKSVZFWE1MID0gJ0pJVkVYTUwnLFxuICBJRyA9ICdJRycsXG4gIFpJUCA9ICdaSVAnLFxufVxuXG5leHBvcnQgdHlwZSBFdmVudERhdGFJbXBvcnRPcHRpb24gPSBFdmVudERhdGFGb3JtYXQgfCBJbXBvcnRPcHRpb247XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRPcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZm9ybWF0OiBzdHJpbmcsXG4gICAgcHVibGljIGZpbGVUeXBlOiBzdHJpbmcsXG4gICAgcHVibGljIGhhbmRsZXI6IChmaWxlczogRmlsZUxpc3QpID0+IHZvaWQsXG4gICAgcHVibGljIGFjY2VwdD86IHN0cmluZ1xuICApIHt9XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGF0YS1pbXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc2VydmljZXMvZXh0cmFzL2V2ZW50LWRhdGEtaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBTVg7QUFORCxXQUFZLGVBQWU7SUFDekIsZ0NBQWEsQ0FBQTtJQUNiLDhDQUEyQixDQUFBO0lBQzNCLHNDQUFtQixDQUFBO0lBQ25CLDRCQUFTLENBQUE7SUFDVCw4QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQU5XLGVBQWUsS0FBZixlQUFlLFFBTTFCO0FBSUQsTUFBTSxPQUFPLFlBQVk7SUFFZDtJQUNBO0lBQ0E7SUFDQTtJQUpULFlBQ1MsTUFBYyxFQUNkLFFBQWdCLEVBQ2hCLE9BQWtDLEVBQ2xDLE1BQWU7UUFIZixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQ3JCLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEV2ZW50RGF0YUZvcm1hdCB7XG4gIEpTT04gPSAnSlNPTicsXG4gIEVETTRIRVBKU09OID0gJ0VETTRIRVBKU09OJyxcbiAgSklWRVhNTCA9ICdKSVZFWE1MJyxcbiAgSUcgPSAnSUcnLFxuICBaSVAgPSAnWklQJyxcbn1cblxuZXhwb3J0IHR5cGUgRXZlbnREYXRhSW1wb3J0T3B0aW9uID0gRXZlbnREYXRhRm9ybWF0IHwgSW1wb3J0T3B0aW9uO1xuXG5leHBvcnQgY2xhc3MgSW1wb3J0T3B0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGZvcm1hdDogc3RyaW5nLFxuICAgIHB1YmxpYyBmaWxlVHlwZTogc3RyaW5nLFxuICAgIHB1YmxpYyBoYW5kbGVyOiAoZmlsZXM6IEZpbGVMaXN0KSA9PiB2b2lkLFxuICAgIHB1YmxpYyBhY2NlcHQ/OiBzdHJpbmcsXG4gICkge31cbn1cbiJdfQ==
@@ -0,0 +1,86 @@
1
+ import { Injectable } from '@angular/core';
2
+ import JSZip from 'jszip';
3
+ import { JiveXMLLoader } from 'phoenix-event-display';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service makeing file loading easier
7
+ */
8
+ export class FileLoaderService {
9
+ lastEventsURL = '';
10
+ lastEventsOptions = false;
11
+ async unzip(data) {
12
+ const archive = new JSZip();
13
+ await archive.loadAsync(data);
14
+ let fileData = '';
15
+ let multiFile = false;
16
+ for (const filePath in archive.files) {
17
+ if (multiFile) {
18
+ console.error('Zip archive contains more than one file. Ignoring all but first');
19
+ break;
20
+ }
21
+ fileData = await archive.file(filePath).async('string');
22
+ multiFile = true;
23
+ }
24
+ return fileData;
25
+ }
26
+ // returns whether an error was found
27
+ makeRequest(urlPath, responseType, onData, options = {}) {
28
+ fetch(urlPath, options)
29
+ .then((res) => res[responseType]())
30
+ .then((data) => {
31
+ if (responseType === 'blob') {
32
+ data
33
+ .arrayBuffer()
34
+ .then((buf) => this.unzip(buf))
35
+ .then((d) => onData(d));
36
+ }
37
+ else {
38
+ onData(data);
39
+ }
40
+ })
41
+ .catch((error) => {
42
+ console.error(error);
43
+ return true;
44
+ });
45
+ return false;
46
+ }
47
+ loadJSONEvent(eventData, eventDisplay) {
48
+ eventDisplay.parsePhoenixEvents(JSON.parse(eventData));
49
+ }
50
+ loadJiveXMLEvent(eventData, eventDisplay) {
51
+ const jiveXMLLoader = new JiveXMLLoader();
52
+ jiveXMLLoader.process(eventData);
53
+ const processedEventData = jiveXMLLoader.getEventData();
54
+ eventDisplay.buildEventDataFromJSON(processedEventData);
55
+ }
56
+ loadEvent(file, eventDisplay, options = {}) {
57
+ this.lastEventsURL = file;
58
+ this.lastEventsOptions = options;
59
+ const isZip = file.split('.').pop() === 'zip';
60
+ const rawfile = isZip ? file.substring(0, file.length - 4) : file;
61
+ return this.makeRequest(file, isZip ? 'blob' : 'text', (eventData) => {
62
+ switch (rawfile.split('.').pop()) {
63
+ case 'xml':
64
+ this.loadJiveXMLEvent(eventData, eventDisplay);
65
+ break;
66
+ case 'json':
67
+ this.loadJSONEvent(eventData, eventDisplay);
68
+ break;
69
+ }
70
+ }, options);
71
+ }
72
+ reloadLastEvents(eventDisplay) {
73
+ if (this.lastEventsURL.length > 0) {
74
+ this.loadEvent(this.lastEventsURL, eventDisplay, this.lastEventsOptions);
75
+ }
76
+ }
77
+ static ɵfac = function FileLoaderService_Factory(t) { return new (t || FileLoaderService)(); };
78
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FileLoaderService, factory: FileLoaderService.ɵfac, providedIn: 'root' });
79
+ }
80
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FileLoaderService, [{
81
+ type: Injectable,
82
+ args: [{
83
+ providedIn: 'root',
84
+ }]
85
+ }], null, null); })();
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zZXJ2aWNlcy9maWxlLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFdEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBQ3BCLGFBQWEsR0FBVyxFQUFFLENBQUM7SUFDM0IsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBRTNDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBaUI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUM1QixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQ1gsaUVBQWlFLENBQ2xFLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLENBQUM7WUFDRCxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RCxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLFdBQVcsQ0FDVCxPQUFlLEVBQ2YsWUFBc0MsRUFDdEMsTUFBMkIsRUFDM0IsVUFBZSxFQUFFO1FBRWpCLEtBQUss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QXpGVSxpQkFBaUI7Z0VBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBRmhCLE1BQU07O2lGQUVQLGlCQUFpQjtjQUg3QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgSlNaaXAgZnJvbSAnanN6aXAnO1xuaW1wb3J0IHsgRXZlbnREaXNwbGF5U2VydmljZSB9IGZyb20gJy4vZXZlbnQtZGlzcGxheS5zZXJ2aWNlJztcbmltcG9ydCB7IEppdmVYTUxMb2FkZXIgfSBmcm9tICdwaG9lbml4LWV2ZW50LWRpc3BsYXknO1xuXG4vKipcbiAqIFNlcnZpY2UgbWFrZWluZyBmaWxlIGxvYWRpbmcgZWFzaWVyXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlTG9hZGVyU2VydmljZSB7XG4gIHByaXZhdGUgbGFzdEV2ZW50c1VSTDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgbGFzdEV2ZW50c09wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBhc3luYyB1bnppcChkYXRhOiBBcnJheUJ1ZmZlcikge1xuICAgIGNvbnN0IGFyY2hpdmUgPSBuZXcgSlNaaXAoKTtcbiAgICBhd2FpdCBhcmNoaXZlLmxvYWRBc3luYyhkYXRhKTtcbiAgICBsZXQgZmlsZURhdGEgPSAnJztcbiAgICBsZXQgbXVsdGlGaWxlID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBmaWxlUGF0aCBpbiBhcmNoaXZlLmZpbGVzKSB7XG4gICAgICBpZiAobXVsdGlGaWxlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ1ppcCBhcmNoaXZlIGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgZmlsZS4gSWdub3JpbmcgYWxsIGJ1dCBmaXJzdCcsXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZmlsZURhdGEgPSBhd2FpdCBhcmNoaXZlLmZpbGUoZmlsZVBhdGgpLmFzeW5jKCdzdHJpbmcnKTtcbiAgICAgIG11bHRpRmlsZSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmaWxlRGF0YTtcbiAgfVxuXG4gIC8vIHJldHVybnMgd2hldGhlciBhbiBlcnJvciB3YXMgZm91bmRcbiAgbWFrZVJlcXVlc3QoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nIHwgJ3RleHQnIHwgJ2Jsb2InLFxuICAgIG9uRGF0YTogKGRhdGE6IGFueSkgPT4gdm9pZCxcbiAgICBvcHRpb25zOiBhbnkgPSB7fSxcbiAgKSB7XG4gICAgZmV0Y2godXJsUGF0aCwgb3B0aW9ucylcbiAgICAgIC50aGVuKChyZXMpID0+IHJlc1tyZXNwb25zZVR5cGVdKCkpXG4gICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2VUeXBlID09PSAnYmxvYicpIHtcbiAgICAgICAgICBkYXRhXG4gICAgICAgICAgICAuYXJyYXlCdWZmZXIoKVxuICAgICAgICAgICAgLnRoZW4oKGJ1ZikgPT4gdGhpcy51bnppcChidWYpKVxuICAgICAgICAgICAgLnRoZW4oKGQpID0+IG9uRGF0YShkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25EYXRhKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsb2FkSlNPTkV2ZW50KGV2ZW50RGF0YTogc3RyaW5nLCBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UpIHtcbiAgICBldmVudERpc3BsYXkucGFyc2VQaG9lbml4RXZlbnRzKEpTT04ucGFyc2UoZXZlbnREYXRhKSk7XG4gIH1cblxuICBsb2FkSml2ZVhNTEV2ZW50KGV2ZW50RGF0YTogc3RyaW5nLCBldmVudERpc3BsYXk6IEV2ZW50RGlzcGxheVNlcnZpY2UpIHtcbiAgICBjb25zdCBqaXZlWE1MTG9hZGVyID0gbmV3IEppdmVYTUxMb2FkZXIoKTtcbiAgICBqaXZlWE1MTG9hZGVyLnByb2Nlc3MoZXZlbnREYXRhKTtcbiAgICBjb25zdCBwcm9jZXNzZWRFdmVudERhdGEgPSBqaXZlWE1MTG9hZGVyLmdldEV2ZW50RGF0YSgpO1xuICAgIGV2ZW50RGlzcGxheS5idWlsZEV2ZW50RGF0YUZyb21KU09OKHByb2Nlc3NlZEV2ZW50RGF0YSk7XG4gIH1cblxuICBsb2FkRXZlbnQoXG4gICAgZmlsZTogc3RyaW5nLFxuICAgIGV2ZW50RGlzcGxheTogRXZlbnREaXNwbGF5U2VydmljZSxcbiAgICBvcHRpb25zOiBhbnkgPSB7fSxcbiAgKSB7XG4gICAgdGhpcy5sYXN0RXZlbnRzVVJMID0gZmlsZTtcbiAgICB0aGlzLmxhc3RFdmVudHNPcHRpb25zID0gb3B0aW9ucztcbiAgICBjb25zdCBpc1ppcCA9IGZpbGUuc3BsaXQoJy4nKS5wb3AoKSA9PT0gJ3ppcCc7XG4gICAgY29uc3QgcmF3ZmlsZSA9IGlzWmlwID8gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sZW5ndGggLSA0KSA6IGZpbGU7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3QoXG4gICAgICBmaWxlLFxuICAgICAgaXNaaXAgPyAnYmxvYicgOiAndGV4dCcsXG4gICAgICAoZXZlbnREYXRhKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmF3ZmlsZS5zcGxpdCgnLicpLnBvcCgpKSB7XG4gICAgICAgICAgY2FzZSAneG1sJzpcbiAgICAgICAgICAgIHRoaXMubG9hZEppdmVYTUxFdmVudChldmVudERhdGEsIGV2ZW50RGlzcGxheSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgICAgIHRoaXMubG9hZEpTT05FdmVudChldmVudERhdGEsIGV2ZW50RGlzcGxheSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgfVxuXG4gIHJlbG9hZExhc3RFdmVudHMoZXZlbnREaXNwbGF5OiBFdmVudERpc3BsYXlTZXJ2aWNlKSB7XG4gICAgaWYgKHRoaXMubGFzdEV2ZW50c1VSTC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmxvYWRFdmVudCh0aGlzLmxhc3RFdmVudHNVUkwsIGV2ZW50RGlzcGxheSwgdGhpcy5sYXN0RXZlbnRzT3B0aW9ucyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ErrorMessageService } from './error-message-service';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Global handler for handling app/module wide errors.
6
+ */
7
+ export class GlobalErrorHandler {
8
+ injector;
9
+ /**
10
+ * Instantiate the global error handler.
11
+ * @param injector Injector for getting the error message service.
12
+ */
13
+ constructor(injector) {
14
+ this.injector = injector;
15
+ }
16
+ /**
17
+ * A handler for handling the global error that occurs in the app.
18
+ * @param error The error that occurred.
19
+ */
20
+ handleError(error) {
21
+ console.error('ERROR IN PHOENIX APP', '\n', error);
22
+ this.injector.get(ErrorMessageService).setError(error);
23
+ }
24
+ static ɵfac = function GlobalErrorHandler_Factory(t) { return new (t || GlobalErrorHandler)(i0.ɵɵinject(i0.Injector)); };
25
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GlobalErrorHandler, factory: GlobalErrorHandler.ɵfac });
26
+ }
27
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GlobalErrorHandler, [{
28
+ type: Injectable
29
+ }], () => [{ type: i0.Injector }], null); })();
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc2VydmljZXMvZ2xvYmFsLWVycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUtUO0lBSnBCOzs7T0FHRztJQUNILFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRTFDOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7NEVBZFUsa0JBQWtCO2dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCOztpRkFBbEIsa0JBQWtCO2NBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9lcnJvci1tZXNzYWdlLXNlcnZpY2UnO1xuXG4vKipcbiAqIEdsb2JhbCBoYW5kbGVyIGZvciBoYW5kbGluZyBhcHAvbW9kdWxlIHdpZGUgZXJyb3JzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR2xvYmFsRXJyb3JIYW5kbGVyIGltcGxlbWVudHMgRXJyb3JIYW5kbGVyIHtcbiAgLyoqXG4gICAqIEluc3RhbnRpYXRlIHRoZSBnbG9iYWwgZXJyb3IgaGFuZGxlci5cbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBnZXR0aW5nIHRoZSBlcnJvciBtZXNzYWdlIHNlcnZpY2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICAvKipcbiAgICogQSBoYW5kbGVyIGZvciBoYW5kbGluZyB0aGUgZ2xvYmFsIGVycm9yIHRoYXQgb2NjdXJzIGluIHRoZSBhcHAuXG4gICAqIEBwYXJhbSBlcnJvciBUaGUgZXJyb3IgdGhhdCBvY2N1cnJlZC5cbiAgICovXG4gIGhhbmRsZUVycm9yKGVycm9yOiBFcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SIElOIFBIT0VOSVggQVBQJywgJ1xcbicsIGVycm9yKTtcbiAgICB0aGlzLmluamVjdG9yLmdldChFcnJvck1lc3NhZ2VTZXJ2aWNlKS5zZXRFcnJvcihlcnJvcik7XG4gIH1cbn1cbiJdfQ==