phoenix-ui-components 2.5.1 → 2.5.2

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.
@@ -50,7 +50,7 @@ import * as i48 from "@angular/material/slider";
50
50
  import * as i49 from "@angular/material/slide-toggle";
51
51
  import * as i50 from "@angular/material/checkbox";
52
52
  import * as i51 from "@angular/material/icon";
53
- import * as i52 from "@angular-slider/ngx-slider";
53
+ import * as i52 from "@rp3e11/ngx-slider";
54
54
  export declare class PhoenixUIModule {
55
55
  static ɵfac: i0.ɵɵFactoryDeclaration<PhoenixUIModule, never>;
56
56
  static ɵmod: i0.ɵɵNgModuleDeclaration<PhoenixUIModule, [typeof i1.NavComponent, typeof i2.UiMenuComponent, typeof i3.CollectionsInfoComponent, typeof i4.MenuToggleComponent, typeof i5.CollectionsInfoOverlayComponent, typeof i6.IoOptionsComponent, typeof i7.IOOptionsDialogComponent, typeof i8.OverlayViewComponent, typeof i9.AttributePipe, typeof i10.ObjectSelectionComponent, typeof i11.ObjectSelectionOverlayComponent, typeof i12.EventSelectorComponent, typeof i13.ObjectClippingComponent, typeof i14.DarkThemeComponent, typeof i15.AutoRotateComponent, typeof i16.ViewOptionsComponent, typeof i17.OverlayViewWindowComponent, typeof i18.OverlayComponent, typeof i19.ExperimentInfoComponent, typeof i20.InfoPanelComponent, typeof i21.InfoPanelOverlayComponent, typeof i22.MainViewToggleComponent, typeof i23.ZoomControlsComponent, typeof i24.TreeMenuComponent, typeof i25.TreeMenuItemComponent, typeof i26.PhoenixMenuComponent, typeof i27.PhoenixMenuItemComponent, typeof i28.ConfigSliderComponent, typeof i29.AnimateCameraComponent, typeof i30.AnimateEventComponent, typeof i31.VrToggleComponent, typeof i32.ArToggleComponent, typeof i33.SSModeComponent, typeof i34.PerformanceToggleComponent, typeof i35.LoaderComponent, typeof i36.ShareLinkComponent, typeof i37.ShareLinkDialogComponent, typeof i38.EmbedMenuComponent, typeof i39.ExperimentLinkComponent], [typeof i40.CommonModule, typeof i41.RouterModule, typeof i42.DragDropModule, typeof i43.MatDialogModule, typeof i44.MatButtonModule, typeof i45.MatTooltipModule, typeof i46.OverlayModule, typeof i47.MatMenuModule, typeof i48.MatSliderModule, typeof i49.MatSlideToggleModule, typeof i50.MatCheckboxModule, typeof i51.MatIconModule, typeof i52.NgxSliderModule], [typeof i1.NavComponent, typeof i2.UiMenuComponent, typeof i3.CollectionsInfoComponent, typeof i4.MenuToggleComponent, typeof i5.CollectionsInfoOverlayComponent, typeof i6.IoOptionsComponent, typeof i7.IOOptionsDialogComponent, typeof i8.OverlayViewComponent, typeof i9.AttributePipe, typeof i10.ObjectSelectionComponent, typeof i11.ObjectSelectionOverlayComponent, typeof i12.EventSelectorComponent, typeof i13.ObjectClippingComponent, typeof i14.DarkThemeComponent, typeof i15.AutoRotateComponent, typeof i16.ViewOptionsComponent, typeof i17.OverlayViewWindowComponent, typeof i18.OverlayComponent, typeof i19.ExperimentInfoComponent, typeof i20.InfoPanelComponent, typeof i21.InfoPanelOverlayComponent, typeof i22.MainViewToggleComponent, typeof i23.ZoomControlsComponent, typeof i24.TreeMenuComponent, typeof i25.TreeMenuItemComponent, typeof i26.PhoenixMenuComponent, typeof i27.PhoenixMenuItemComponent, typeof i28.ConfigSliderComponent, typeof i29.AnimateCameraComponent, typeof i30.AnimateEventComponent, typeof i31.VrToggleComponent, typeof i32.ArToggleComponent, typeof i33.SSModeComponent, typeof i34.PerformanceToggleComponent, typeof i35.LoaderComponent, typeof i36.ShareLinkComponent, typeof i37.ShareLinkDialogComponent, typeof i38.EmbedMenuComponent, typeof i39.ExperimentLinkComponent]>;
@@ -4,7 +4,7 @@ import * as i1 from "@angular/material/slide-toggle";
4
4
  import * as i2 from "@angular/material/checkbox";
5
5
  import * as i3 from "../config/config-slider/config-slider.component";
6
6
  import * as i4 from "@angular/material/button";
7
- import * as i5 from "@angular-slider/ngx-slider";
7
+ import * as i5 from "@rp3e11/ngx-slider";
8
8
  import * as i6 from "@angular/common";
9
9
  export class PhoenixMenuItemComponent {
10
10
  constructor(cdr) {
@@ -19,7 +19,7 @@ export class PhoenixMenuItemComponent {
19
19
  }
20
20
  }
21
21
  PhoenixMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PhoenixMenuItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
22
- PhoenixMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: { currentNode: "currentNode" }, viewQueries: [{ propertyName: "phoenixMenuItem", first: true, predicate: ["phoenixMenuItem"], descendants: true }], ngImport: i0, template: "<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of currentNode.configs\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <label class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <span\n class=\"item-config-label\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </span>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <ngx-slider\n *ngSwitchCase=\"'rangeSlider'\"\n class=\"range-slider\"\n [value]=\"config.value ? config.value : config.min\"\n [highValue]=\"config.highValue ? config.highValue : config.max\"\n (userChange)=\"\n config.onChange($event);\n config.value = $event.value;\n config.highValue = $event.highValue\n \"\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n\n <select\n *ngSwitchCase=\"'select'\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </label>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n", styles: [".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-bar{background:var(--phoenix-text-color-secondary);height:.2rem}.range-slider.ngx-slider .ngx-slider-selection{background:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer{width:1rem;height:1rem;top:-.45rem;bottom:0;background-color:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer:after{display:none}.range-slider.ngx-slider .ngx-slider-bubble{color:var(--phoenix-text-color);font-size:.8rem}.range-slider.ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:var(--phoenix-text-color-secondary)}\n"], components: [{ type: i1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.ConfigSliderComponent, selector: "app-config-slider", inputs: ["value", "min", "max", "step", "allowCustomValue"], outputs: ["onChange"] }, { 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"] }, { type: i5.ɵa, selector: "ngx-slider", inputs: ["value", "highValue", "options", "manualRefresh", "triggerFocus"], outputs: ["valueChange", "highValueChange", "userChangeStart", "userChange", "userChangeEnd"] }, { type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: ["currentNode"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], encapsulation: i0.ViewEncapsulation.None });
22
+ PhoenixMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: { currentNode: "currentNode" }, viewQueries: [{ propertyName: "phoenixMenuItem", first: true, predicate: ["phoenixMenuItem"], descendants: true }], ngImport: i0, template: "<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of currentNode.configs\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <label class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <span\n class=\"item-config-label\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </span>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <ngx-slider\n *ngSwitchCase=\"'rangeSlider'\"\n class=\"range-slider\"\n [value]=\"config.value ? config.value : config.min\"\n [highValue]=\"config.highValue ? config.highValue : config.max\"\n (userChange)=\"\n config.onChange($event);\n config.value = $event.value;\n config.highValue = $event.highValue\n \"\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n\n <select\n *ngSwitchCase=\"'select'\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </label>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n", styles: [".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-bar{background:var(--phoenix-text-color-secondary);height:.2rem}.range-slider.ngx-slider .ngx-slider-selection{background:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer{width:1rem;height:1rem;top:-.45rem;bottom:0;background-color:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer:after{display:none}.range-slider.ngx-slider .ngx-slider-bubble{color:var(--phoenix-text-color);font-size:.8rem}.range-slider.ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:var(--phoenix-text-color-secondary)}\n"], components: [{ type: i1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i3.ConfigSliderComponent, selector: "app-config-slider", inputs: ["value", "min", "max", "step", "allowCustomValue"], outputs: ["onChange"] }, { 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"] }, { type: i5.SliderComponent, selector: "ngx-slider", inputs: ["value", "highValue", "options", "manualRefresh", "triggerFocus"], outputs: ["valueChange", "highValueChange", "userChangeStart", "userChange", "userChangeEnd"] }, { type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: ["currentNode"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], encapsulation: i0.ViewEncapsulation.None });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PhoenixMenuItemComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'app-phoenix-menu-item', encapsulation: ViewEncapsulation.None, template: "<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of currentNode.configs\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <label class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <span\n class=\"item-config-label\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </span>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <ngx-slider\n *ngSwitchCase=\"'rangeSlider'\"\n class=\"range-slider\"\n [value]=\"config.value ? config.value : config.min\"\n [highValue]=\"config.highValue ? config.highValue : config.max\"\n (userChange)=\"\n config.onChange($event);\n config.value = $event.value;\n config.highValue = $event.highValue\n \"\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n\n <select\n *ngSwitchCase=\"'select'\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </label>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n", styles: [".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-bar{background:var(--phoenix-text-color-secondary);height:.2rem}.range-slider.ngx-slider .ngx-slider-selection{background:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer{width:1rem;height:1rem;top:-.45rem;bottom:0;background-color:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer:after{display:none}.range-slider.ngx-slider .ngx-slider-bubble{color:var(--phoenix-text-color);font-size:.8rem}.range-slider.ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:var(--phoenix-text-color-secondary)}\n"] }]
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
29
29
  type: ViewChild,
30
30
  args: ['phoenixMenuItem']
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvZW5peC1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvcGhvZW5peC1tZW51L3BoZW9uaXgtbWVudS1pdGVtL3Bob2VuaXgtbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3Bob2VuaXgtbWVudS9waGVvbml4LW1lbnUtaXRlbS9waG9lbml4LW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVN2QixNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUU5QyxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTO2dCQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOztxSEFiVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix5TkNoQnJDLDhtTEFxS0Esc3RJRHJKYSx3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUk7d0dBRzVCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ3dCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBQaG9lbml4TWVudU5vZGUgfSBmcm9tICdwaG9lbml4LWV2ZW50LWRpc3BsYXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGhvZW5peC1tZW51LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvZW5peC1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waG9lbml4LW1lbnUtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQaG9lbml4TWVudUl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBjdXJyZW50Tm9kZTogUGhvZW5peE1lbnVOb2RlO1xuICBAVmlld0NoaWxkKCdwaG9lbml4TWVudUl0ZW0nKSBwaG9lbml4TWVudUl0ZW06IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBjb25maWdUb3A6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY2FsY3VsYXRlQ29uZmlnVG9wKCkge1xuICAgIGlmICh0aGlzLnBob2VuaXhNZW51SXRlbSkge1xuICAgICAgdGhpcy5jb25maWdUb3AgPVxuICAgICAgICB0aGlzLnBob2VuaXhNZW51SXRlbS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwaG9lbml4LW1lbnUtaXRlbVwiICNwaG9lbml4TWVudUl0ZW0+XG4gIDxkaXYgY2xhc3M9XCJwaG9lbml4LW1lbnUtaXRlbS1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDwhLS0gSWYgdGhlIGl0ZW0gaGFzIHNvbWUgdG9nZ2xlIGZ1bmN0aW9uIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50Tm9kZS5vblRvZ2dsZTsgZWxzZSBub2RlTmFtZVwiPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgW2NoZWNrZWRdPVwiY3VycmVudE5vZGUudG9nZ2xlU3RhdGVcIlxuICAgICAgICAoY2hhbmdlKT1cImN1cnJlbnROb2RlLnRvZ2dsZVNlbGZBbmREZXNjZW5kYW50cygkZXZlbnQuY2hlY2tlZClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZU5hbWVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIElmIHRoZSBpdGVtIGhhcyBubyB0b2dnbGUgZnVuY3Rpb24gLS0+XG4gICAgPG5nLXRlbXBsYXRlICNub2RlTmFtZT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IHctMTAwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImN1cnJlbnROb2RlLmljb25cIiBjbGFzcz1cImljb24td3JhcHBlciBpdGVtLWljb25cIj5cbiAgICAgICAgICA8c3ZnPlxuICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICBhdHRyLmhyZWY9XCJhc3NldHMvaWNvbnMve3sgY3VycmVudE5vZGUuaWNvbiB9fS5zdmcje3tcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZS5pY29uXG4gICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbmFtZVwiIFt0aXRsZV09XCJjdXJyZW50Tm9kZS5uYW1lXCI+e3tcbiAgICAgICAgICBjdXJyZW50Tm9kZS5uYW1lXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGhvZW5peC1tZW51LWl0ZW0tcmlnaHRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudE5vZGUuY29uZmlncy5sZW5ndGggPiAwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiaWNvbi13cmFwcGVyIGljb24tYnV0dG9uIGJ0bi1ibGFuayBpdGVtLXNldHRpbmdzXCJcbiAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgIGNhbGN1bGF0ZUNvbmZpZ1RvcCgpO1xuICAgICAgICAgIGN1cnJlbnROb2RlLmNvbmZpZ0FjdGl2ZSA9ICFjdXJyZW50Tm9kZS5jb25maWdBY3RpdmVcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPHN2Zz5cbiAgICAgICAgICA8dXNlIGhyZWY9XCJhc3NldHMvaWNvbnMvZ2Vhci5zdmcjZ2VhclwiPjwvdXNlPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW0tY29uZmlnLWJhY2tkcm9wXCJcbiAgICAgICAgKm5nSWY9XCJjdXJyZW50Tm9kZS5jb25maWdBY3RpdmVcIlxuICAgICAgICAoY2xpY2spPVwiY3VycmVudE5vZGUuY29uZmlnQWN0aXZlID0gZmFsc2VcIlxuICAgICAgPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW0tY29uZmlnXCJcbiAgICAgICAgW2hpZGRlbl09XCIhY3VycmVudE5vZGUuY29uZmlnQWN0aXZlXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyAndG9wLnB4JzogY29uZmlnVG9wIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbmZpZyBvZiBjdXJyZW50Tm9kZS5jb25maWdzXCJcbiAgICAgICAgICBbbmdTd2l0Y2hdPVwiY29uZmlnLnR5cGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBDb25maWcgdHlwZXMgLS0+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXRlbS1jb25maWctc2luZ2xlXCIgKm5nSWY9XCIhY29uZmlnLmhpZGRlblwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtLWNvbmZpZy1sYWJlbFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnR5cGUgIT09ICdidXR0b24nXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZm9udC13ZWlnaHQtYm9sZCB3LTEwMCc6IGNvbmZpZy50eXBlID09PSAnbGFiZWwnIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjb25maWcubGFiZWwgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtLWNvbmZpZy1kYXRhXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC0wJzogY29uZmlnLnR5cGUgPT09ICdidXR0b24nIH1cIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy50eXBlICE9PSAnbGFiZWwnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWcuaXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgY29uZmlnLm9uQ2hhbmdlKCRldmVudC5jaGVja2VkKTtcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy5pc0NoZWNrZWQgPSAkZXZlbnQuY2hlY2tlZFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID48L21hdC1jaGVja2JveD5cblxuICAgICAgICAgICAgICA8YXBwLWNvbmZpZy1zbGlkZXJcbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NsaWRlcidcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWcudmFsdWVcIlxuICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJjb25maWcub25DaGFuZ2UoJGV2ZW50KTsgY29uZmlnLnZhbHVlID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgICBbbWluXT1cImNvbmZpZy5taW5cIlxuICAgICAgICAgICAgICAgIFttYXhdPVwiY29uZmlnLm1heFwiXG4gICAgICAgICAgICAgICAgW3N0ZXBdPVwiY29uZmlnLnN0ZXBcIlxuICAgICAgICAgICAgICAgIFthbGxvd0N1c3RvbVZhbHVlXT1cImNvbmZpZy5hbGxvd0N1c3RvbVZhbHVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2FwcC1jb25maWctc2xpZGVyPlxuXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb25maWcub25DbGljaygpXCJcbiAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjb25maWcubGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidjb2xvcidcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZy5jb2xvclwiXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIlxuICAgICAgICAgICAgICAgICAgY29uZmlnLm9uQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgY29uZmlnLmNvbG9yID0gJGV2ZW50LnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPG5neC1zbGlkZXJcbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhbmdlU2xpZGVyJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyYW5nZS1zbGlkZXJcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWcudmFsdWUgPyBjb25maWcudmFsdWUgOiBjb25maWcubWluXCJcbiAgICAgICAgICAgICAgICBbaGlnaFZhbHVlXT1cImNvbmZpZy5oaWdoVmFsdWUgPyBjb25maWcuaGlnaFZhbHVlIDogY29uZmlnLm1heFwiXG4gICAgICAgICAgICAgICAgKHVzZXJDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICBjb25maWcub25DaGFuZ2UoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy52YWx1ZSA9ICRldmVudC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy5oaWdoVmFsdWUgPSAkZXZlbnQuaGlnaFZhbHVlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJ7XG4gICAgICAgICAgICAgICAgICBmbG9vcjogY29uZmlnLm1pbixcbiAgICAgICAgICAgICAgICAgIGNlaWw6IGNvbmZpZy5tYXgsXG4gICAgICAgICAgICAgICAgICBzdGVwOiBjb25maWcuc3RlcCxcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID48L25neC1zbGlkZXI+XG5cbiAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjb25maWcub25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNpbmdsZU9wdGlvbiBvZiBjb25maWcub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2luZ2xlT3B0aW9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBzaW5nbGVPcHRpb24gfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwhLS0gQ29uZmlnIHR5cGVzIEVORCAtLT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImljb24td3JhcHBlciBpY29uLWJ1dHRvbiBidG4tYmxhbmsgaXRlbS1leHBhbmRcIlxuICAgICAgKm5nSWY9XCJjdXJyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwXCJcbiAgICAgIChjbGljayk9XCJjdXJyZW50Tm9kZS5jaGlsZHJlbkFjdGl2ZSA9ICFjdXJyZW50Tm9kZS5jaGlsZHJlbkFjdGl2ZVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGV4cGFuZGVkOiBjdXJyZW50Tm9kZS5jaGlsZHJlbkFjdGl2ZSB9XCJcbiAgICA+XG4gICAgICA8c3ZnPlxuICAgICAgICA8dXNlIGhyZWY9XCJhc3NldHMvaWNvbnMvZXhwYW5kLnN2ZyNleHBhbmRcIj48L3VzZT5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBob2VuaXgtbWVudS1jaGlsZHJlblwiICpuZ0lmPVwiY3VycmVudE5vZGUuY2hpbGRyZW5BY3RpdmVcIj5cbiAgPGFwcC1waG9lbml4LW1lbnUtaXRlbVxuICAgICpuZ0Zvcj1cImxldCBjaGlsZE5vZGUgb2YgY3VycmVudE5vZGUuY2hpbGRyZW5cIlxuICAgIFtjdXJyZW50Tm9kZV09XCJjaGlsZE5vZGVcIlxuICA+XG4gIDwvYXBwLXBob2VuaXgtbWVudS1pdGVtPlxuPC9kaXY+XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvZW5peC1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL2NvbXBvbmVudHMvcGhvZW5peC1tZW51L3BoZW9uaXgtbWVudS1pdGVtL3Bob2VuaXgtbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9jb21wb25lbnRzL3Bob2VuaXgtbWVudS9waGVvbml4LW1lbnUtaXRlbS9waG9lbml4LW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVN2QixNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUU5QyxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTO2dCQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOztxSEFiVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix5TkNoQnJDLDhtTEFxS0EsbXVJRHJKYSx3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUk7d0dBRzVCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ3dCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBQaG9lbml4TWVudU5vZGUgfSBmcm9tICdwaG9lbml4LWV2ZW50LWRpc3BsYXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGhvZW5peC1tZW51LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvZW5peC1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waG9lbml4LW1lbnUtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQaG9lbml4TWVudUl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBjdXJyZW50Tm9kZTogUGhvZW5peE1lbnVOb2RlO1xuICBAVmlld0NoaWxkKCdwaG9lbml4TWVudUl0ZW0nKSBwaG9lbml4TWVudUl0ZW06IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBjb25maWdUb3A6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY2FsY3VsYXRlQ29uZmlnVG9wKCkge1xuICAgIGlmICh0aGlzLnBob2VuaXhNZW51SXRlbSkge1xuICAgICAgdGhpcy5jb25maWdUb3AgPVxuICAgICAgICB0aGlzLnBob2VuaXhNZW51SXRlbS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwaG9lbml4LW1lbnUtaXRlbVwiICNwaG9lbml4TWVudUl0ZW0+XG4gIDxkaXYgY2xhc3M9XCJwaG9lbml4LW1lbnUtaXRlbS1sZWZ0IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDwhLS0gSWYgdGhlIGl0ZW0gaGFzIHNvbWUgdG9nZ2xlIGZ1bmN0aW9uIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50Tm9kZS5vblRvZ2dsZTsgZWxzZSBub2RlTmFtZVwiPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgW2NoZWNrZWRdPVwiY3VycmVudE5vZGUudG9nZ2xlU3RhdGVcIlxuICAgICAgICAoY2hhbmdlKT1cImN1cnJlbnROb2RlLnRvZ2dsZVNlbGZBbmREZXNjZW5kYW50cygkZXZlbnQuY2hlY2tlZClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZU5hbWVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIElmIHRoZSBpdGVtIGhhcyBubyB0b2dnbGUgZnVuY3Rpb24gLS0+XG4gICAgPG5nLXRlbXBsYXRlICNub2RlTmFtZT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IHctMTAwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImN1cnJlbnROb2RlLmljb25cIiBjbGFzcz1cImljb24td3JhcHBlciBpdGVtLWljb25cIj5cbiAgICAgICAgICA8c3ZnPlxuICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICBhdHRyLmhyZWY9XCJhc3NldHMvaWNvbnMve3sgY3VycmVudE5vZGUuaWNvbiB9fS5zdmcje3tcbiAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZS5pY29uXG4gICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbmFtZVwiIFt0aXRsZV09XCJjdXJyZW50Tm9kZS5uYW1lXCI+e3tcbiAgICAgICAgICBjdXJyZW50Tm9kZS5uYW1lXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGhvZW5peC1tZW51LWl0ZW0tcmlnaHRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudE5vZGUuY29uZmlncy5sZW5ndGggPiAwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiaWNvbi13cmFwcGVyIGljb24tYnV0dG9uIGJ0bi1ibGFuayBpdGVtLXNldHRpbmdzXCJcbiAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgIGNhbGN1bGF0ZUNvbmZpZ1RvcCgpO1xuICAgICAgICAgIGN1cnJlbnROb2RlLmNvbmZpZ0FjdGl2ZSA9ICFjdXJyZW50Tm9kZS5jb25maWdBY3RpdmVcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPHN2Zz5cbiAgICAgICAgICA8dXNlIGhyZWY9XCJhc3NldHMvaWNvbnMvZ2Vhci5zdmcjZ2VhclwiPjwvdXNlPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW0tY29uZmlnLWJhY2tkcm9wXCJcbiAgICAgICAgKm5nSWY9XCJjdXJyZW50Tm9kZS5jb25maWdBY3RpdmVcIlxuICAgICAgICAoY2xpY2spPVwiY3VycmVudE5vZGUuY29uZmlnQWN0aXZlID0gZmFsc2VcIlxuICAgICAgPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW0tY29uZmlnXCJcbiAgICAgICAgW2hpZGRlbl09XCIhY3VycmVudE5vZGUuY29uZmlnQWN0aXZlXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyAndG9wLnB4JzogY29uZmlnVG9wIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbmZpZyBvZiBjdXJyZW50Tm9kZS5jb25maWdzXCJcbiAgICAgICAgICBbbmdTd2l0Y2hdPVwiY29uZmlnLnR5cGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBDb25maWcgdHlwZXMgLS0+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXRlbS1jb25maWctc2luZ2xlXCIgKm5nSWY9XCIhY29uZmlnLmhpZGRlblwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtLWNvbmZpZy1sYWJlbFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnR5cGUgIT09ICdidXR0b24nXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZm9udC13ZWlnaHQtYm9sZCB3LTEwMCc6IGNvbmZpZy50eXBlID09PSAnbGFiZWwnIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjb25maWcubGFiZWwgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtLWNvbmZpZy1kYXRhXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC0wJzogY29uZmlnLnR5cGUgPT09ICdidXR0b24nIH1cIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy50eXBlICE9PSAnbGFiZWwnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjb25maWcuaXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgY29uZmlnLm9uQ2hhbmdlKCRldmVudC5jaGVja2VkKTtcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy5pc0NoZWNrZWQgPSAkZXZlbnQuY2hlY2tlZFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID48L21hdC1jaGVja2JveD5cblxuICAgICAgICAgICAgICA8YXBwLWNvbmZpZy1zbGlkZXJcbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NsaWRlcidcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWcudmFsdWVcIlxuICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJjb25maWcub25DaGFuZ2UoJGV2ZW50KTsgY29uZmlnLnZhbHVlID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgICBbbWluXT1cImNvbmZpZy5taW5cIlxuICAgICAgICAgICAgICAgIFttYXhdPVwiY29uZmlnLm1heFwiXG4gICAgICAgICAgICAgICAgW3N0ZXBdPVwiY29uZmlnLnN0ZXBcIlxuICAgICAgICAgICAgICAgIFthbGxvd0N1c3RvbVZhbHVlXT1cImNvbmZpZy5hbGxvd0N1c3RvbVZhbHVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2FwcC1jb25maWctc2xpZGVyPlxuXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb25maWcub25DbGljaygpXCJcbiAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjb25maWcubGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidjb2xvcidcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbmZpZy5jb2xvclwiXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIlxuICAgICAgICAgICAgICAgICAgY29uZmlnLm9uQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgY29uZmlnLmNvbG9yID0gJGV2ZW50LnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPG5neC1zbGlkZXJcbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhbmdlU2xpZGVyJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyYW5nZS1zbGlkZXJcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWcudmFsdWUgPyBjb25maWcudmFsdWUgOiBjb25maWcubWluXCJcbiAgICAgICAgICAgICAgICBbaGlnaFZhbHVlXT1cImNvbmZpZy5oaWdoVmFsdWUgPyBjb25maWcuaGlnaFZhbHVlIDogY29uZmlnLm1heFwiXG4gICAgICAgICAgICAgICAgKHVzZXJDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICBjb25maWcub25DaGFuZ2UoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy52YWx1ZSA9ICRldmVudC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy5oaWdoVmFsdWUgPSAkZXZlbnQuaGlnaFZhbHVlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJ7XG4gICAgICAgICAgICAgICAgICBmbG9vcjogY29uZmlnLm1pbixcbiAgICAgICAgICAgICAgICAgIGNlaWw6IGNvbmZpZy5tYXgsXG4gICAgICAgICAgICAgICAgICBzdGVwOiBjb25maWcuc3RlcCxcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID48L25neC1zbGlkZXI+XG5cbiAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjb25maWcub25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNpbmdsZU9wdGlvbiBvZiBjb25maWcub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2luZ2xlT3B0aW9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBzaW5nbGVPcHRpb24gfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwhLS0gQ29uZmlnIHR5cGVzIEVORCAtLT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImljb24td3JhcHBlciBpY29uLWJ1dHRvbiBidG4tYmxhbmsgaXRlbS1leHBhbmRcIlxuICAgICAgKm5nSWY9XCJjdXJyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwXCJcbiAgICAgIChjbGljayk9XCJjdXJyZW50Tm9kZS5jaGlsZHJlbkFjdGl2ZSA9ICFjdXJyZW50Tm9kZS5jaGlsZHJlbkFjdGl2ZVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGV4cGFuZGVkOiBjdXJyZW50Tm9kZS5jaGlsZHJlbkFjdGl2ZSB9XCJcbiAgICA+XG4gICAgICA8c3ZnPlxuICAgICAgICA8dXNlIGhyZWY9XCJhc3NldHMvaWNvbnMvZXhwYW5kLnN2ZyNleHBhbmRcIj48L3VzZT5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBob2VuaXgtbWVudS1jaGlsZHJlblwiICpuZ0lmPVwiY3VycmVudE5vZGUuY2hpbGRyZW5BY3RpdmVcIj5cbiAgPGFwcC1waG9lbml4LW1lbnUtaXRlbVxuICAgICpuZ0Zvcj1cImxldCBjaGlsZE5vZGUgb2YgY3VycmVudE5vZGUuY2hpbGRyZW5cIlxuICAgIFtjdXJyZW50Tm9kZV09XCJjaGlsZE5vZGVcIlxuICA+XG4gIDwvYXBwLXBob2VuaXgtbWVudS1pdGVtPlxuPC9kaXY+XG4iXX0=
@@ -11,7 +11,7 @@ import { MatMenuModule } from '@angular/material/menu';
11
11
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
12
12
  import { MatSliderModule } from '@angular/material/slider';
13
13
  import { MatTooltipModule } from '@angular/material/tooltip';
14
- import { NgxSliderModule } from '@angular-slider/ngx-slider';
14
+ import { NgxSliderModule } from '@rp3e11/ngx-slider';
15
15
  import { NavComponent } from './nav/nav.component';
16
16
  import { PhoenixMenuComponent, PhoenixMenuItemComponent, ConfigSliderComponent, } from './phoenix-menu';
17
17
  import { UiMenuComponent, CollectionsInfoComponent, MenuToggleComponent, CollectionsInfoOverlayComponent, IoOptionsComponent, IOOptionsDialogComponent, OverlayViewComponent, ObjectSelectionComponent, ObjectSelectionOverlayComponent, EventSelectorComponent, ObjectClippingComponent, DarkThemeComponent, AutoRotateComponent, ViewOptionsComponent, OverlayViewWindowComponent, OverlayComponent, ExperimentInfoComponent, InfoPanelComponent, InfoPanelOverlayComponent, MainViewToggleComponent, ZoomControlsComponent, TreeMenuComponent, TreeMenuItemComponent, AnimateCameraComponent, AnimateEventComponent, VrToggleComponent, ArToggleComponent, SSModeComponent, PerformanceToggleComponent, ShareLinkComponent, ShareLinkDialogComponent, } from './ui-menu';
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
198
198
  exports: [PHOENIX_COMPONENTS],
199
199
  }]
200
200
  }] });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvZW5peC11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tcG9uZW50cy9waG9lbml4LXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIscUJBQXFCLEdBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIs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O3dCQUNoQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQiwrQkFBK0I7d0JBQy9CLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE5neFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLXNsaWRlci9uZ3gtc2xpZGVyJztcbmltcG9ydCB7IE5hdkNvbXBvbmVudCB9IGZyb20gJy4vbmF2L25hdi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgUGhvZW5peE1lbnVDb21wb25lbnQsXG4gIFBob2VuaXhNZW51SXRlbUNvbXBvbmVudCxcbiAgQ29uZmlnU2xpZGVyQ29tcG9uZW50LFxufSBmcm9tICcuL3Bob2VuaXgtbWVudSc7XG5pbXBvcnQge1xuICBVaU1lbnVDb21wb25lbnQsXG4gIENvbGxlY3Rpb25zSW5mb0NvbXBvbmVudCxcbiAgTWVudVRvZ2dsZUNvbXBvbmVudCxcbiAgQ29sbGVjdGlvbnNJbmZvT3ZlcmxheUNvbXBvbmVudCxcbiAgSW9PcHRpb25zQ29tcG9uZW50LFxuICBJT09wdGlvbnNEaWFsb2dDb21wb25lbnQsXG4gIE92ZXJsYXlWaWV3Q29tcG9uZW50LFxuICBPYmplY3RTZWxlY3Rpb25Db21wb25lbnQsXG4gIE9iamVjdFNlbGVjdGlvbk92ZXJsYXlDb21wb25lbnQsXG4gIEV2ZW50U2VsZWN0b3JDb21wb25lbnQsXG4gIE9iamVjdENsaXBwaW5nQ29tcG9uZW50LFxuICBEYXJrVGhlbWVDb21wb25lbnQsXG4gIEF1dG9Sb3RhdGVDb21wb25lbnQsXG4gIFZpZXdPcHRpb25zQ29tcG9uZW50LFxuICBPdmVybGF5Vmlld1dpbmRvd0NvbXBvbmVudCxcbiAgT3ZlcmxheUNvbXBvbmVudCxcbiAgRXhwZXJpbWVudEluZm9Db21wb25lbnQsXG4gIEluZm9QYW5lbENvbXBvbmVudCxcbiAgSW5mb1BhbmVsT3ZlcmxheUNvbXBvbmVudCxcbiAgTWFpblZpZXdUb2dnbGVDb21wb25lbnQsXG4gIFpvb21Db250cm9sc0NvbXBvbmVudCxcbiAgVHJlZU1lbnVDb21wb25lbnQsXG4gIFRyZWVNZW51SXRlbUNvbXBvbmVudCxcbiAgQW5pbWF0ZUNhbWVyYUNvbXBvbmVudCxcbiAgQW5pbWF0ZUV2ZW50Q29tcG9uZW50LFxuICBWclRvZ2dsZUNvbXBvbmVudCxcbiAgQXJUb2dnbGVDb21wb25lbnQsXG4gIFNTTW9kZUNvbXBvbmVudCxcbiAgUGVyZm9ybWFuY2VUb2dnbGVDb21wb25lbnQsXG4gIFNoYXJlTGlua0NvbXBvbmVudCxcbiAgU2hhcmVMaW5rRGlhbG9nQ29tcG9uZW50LFxufSBmcm9tICcuL3VpLW1lbnUnO1xuaW1wb3J0IHsgQXR0cmlidXRlUGlwZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V4dHJhcy9hdHRyaWJ1dGUucGlwZSc7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVtYmVkTWVudUNvbXBvbmVudCB9IGZyb20gJy4vZW1iZWQtbWVudS9lbWJlZC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHBlcmltZW50TGlua0NvbXBvbmVudCB9IGZyb20gJy4vZW1iZWQtbWVudS9leHBlcmltZW50LWxpbmsvZXhwZXJpbWVudC1saW5rLmNvbXBvbmVudCc7XG5cbmNvbnN0IFBIT0VOSVhfQ09NUE9ORU5UUzogVHlwZTxhbnk+W10gPSBbXG4gIE5hdkNvbXBvbmVudCxcbiAgVWlNZW51Q29tcG9uZW50LFxuICBDb2xsZWN0aW9uc0luZm9Db21wb25lbnQsXG4gIE1lbnVUb2dnbGVDb21wb25lbnQsXG4gIENvbGxlY3Rpb25zSW5mb092ZXJsYXlDb21wb25lbnQsXG4gIElvT3B0aW9uc0NvbXBvbmVudCxcbiAgSU9PcHRpb25zRGlhbG9nQ29tcG9uZW50LFxuICBPdmVybGF5Vmlld0NvbXBvbmVudCxcbiAgQXR0cmlidXRlUGlwZSxcbiAgT2JqZWN0U2VsZWN0aW9uQ29tcG9uZW50LFxuICBPYmplY3RTZWxlY3Rpb25PdmVybGF5Q29tcG9uZW50LFxuICBFdmVudFNlbGVjdG9yQ29tcG9uZW50LFxuICBPYmplY3RDbGlwcGluZ0NvbXBvbmVudCxcbiAgRGFya1RoZW1lQ29tcG9uZW50LFxuICBBdXRvUm90YXRlQ29tcG9uZW50LFxuICBWaWV3T3B0aW9uc0NvbXBvbmVudCxcbiAgT3ZlcmxheVZpZXdXaW5kb3dDb21wb25lbnQsXG4gIE92ZXJsYXlDb21wb25lbnQsXG4gIEV4cGVyaW1lbnRJbmZvQ29tcG9uZW50LFxuICBJbmZvUGFuZWxDb21wb25lbnQsXG4gIEluZm9QYW5lbE92ZXJsYXlDb21wb25lbnQsXG4gIE1haW5WaWV3VG9nZ2xlQ29tcG9uZW50LFxuICBab29tQ29udHJvbHNDb21wb25lbnQsXG4gIFRyZWVNZW51Q29tcG9uZW50LFxuICBUcmVlTWVudUl0ZW1Db21wb25lbnQsXG4gIFBob2VuaXhNZW51Q29tcG9uZW50LFxuICBQaG9lbml4TWVudUl0ZW1Db21wb25lbnQsXG4gIENvbmZpZ1NsaWRlckNvbXBvbmVudCxcbiAgQW5pbWF0ZUNhbWVyYUNvbXBvbmVudCxcbiAgQW5pbWF0ZUV2ZW50Q29tcG9uZW50LFxuICBWclRvZ2dsZUNvbXBvbmVudCxcbiAgQXJUb2dnbGVDb21wb25lbnQsXG4gIFNTTW9kZUNvbXBvbmVudCxcbiAgUGVyZm9ybWFuY2VUb2dnbGVDb21wb25lbnQsXG4gIExvYWRlckNvbXBvbmVudCxcbiAgU2hhcmVMaW5rQ29tcG9uZW50LFxuICBTaGFyZUxpbmtEaWFsb2dDb21wb25lbnQsXG4gIEVtYmVkTWVudUNvbXBvbmVudCxcbiAgRXhwZXJpbWVudExpbmtDb21wb25lbnQsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5QSE9FTklYX0NPTVBPTkVOVFNdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFNsaWRlck1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE5neFNsaWRlck1vZHVsZSxcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgT3ZlcmxheUNvbXBvbmVudCxcbiAgICBPdmVybGF5Vmlld1dpbmRvd0NvbXBvbmVudCxcbiAgICBJT09wdGlvbnNEaWFsb2dDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvbnNJbmZvT3ZlcmxheUNvbXBvbmVudCxcbiAgICBPYmplY3RTZWxlY3Rpb25PdmVybGF5Q29tcG9uZW50LFxuICAgIEluZm9QYW5lbE92ZXJsYXlDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtQSE9FTklYX0NPTVBPTkVOVFNdLFxufSlcbmV4cG9ydCBjbGFzcyBQaG9lbml4VUlNb2R1bGUge31cbiJdfQ==
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvZW5peC11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tcG9uZW50cy9waG9lbml4LXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIscUJBQXFCLEdBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLCtCQUErQixFQUMvQixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHdCQUF3QixHQUN6QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOztBQUVqRyxNQUFNLGtCQUFrQixHQUFnQjtJQUN0QyxZQUFZO0lBQ1osZUFBZTtJQUNmLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFDbkIsK0JBQStCO0lBQy9CLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYix3QkFBd0I7SUFDeEIsK0JBQStCO0lBQy9CLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsMEJBQTBCO0lBQzFCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLHdCQUF3QjtJQUN4QixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZiwwQkFBMEI7SUFDMUIsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsa0JBQWtCO0lBQ2xCLHVCQUF1QjtDQUN4QixDQUFDO0FBNkJGLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBcEUxQixZQUFZO1FBQ1osZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixtQkFBbUI7UUFDbkIsK0JBQStCO1FBQy9CLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLGFBQWE7UUFDYix3QkFBd0I7UUFDeEIsK0JBQStCO1FBQy9CLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLGdCQUFnQjtRQUNoQix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6Qix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsa0JBQWtCO1FBQ2xCLHVCQUF1QixhQU1yQixZQUFZO1FBQ1osWUFBWTtRQUNaLGNBQWM7UUFDZCxlQUFlO1FBQ2YsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2IsYUFBYTtRQUNiLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixlQUFlLGFBeERqQixZQUFZO1FBQ1osZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixtQkFBbUI7UUFDbkIsK0JBQStCO1FBQy9CLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLGFBQWE7UUFDYix3QkFBd0I7UUFDeEIsK0JBQStCO1FBQy9CLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLGdCQUFnQjtRQUNoQix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6Qix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsa0JBQWtCO1FBQ2xCLHVCQUF1Qjs2R0E4QlosZUFBZSxZQXpCakI7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLGNBQWM7WUFDZCxlQUFlO1lBQ2YsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixlQUFlO1NBQ2hCOzJGQVdVLGVBQWU7a0JBM0IzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixlQUFlO3FCQUNoQjtvQkFDRCxlQUFlLEVBQUU7d0JBQ2YsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQiwrQkFBK0I7d0JBQy9CLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE5neFNsaWRlck1vZHVsZSB9IGZyb20gJ0BycDNlMTEvbmd4LXNsaWRlcic7XG5pbXBvcnQgeyBOYXZDb21wb25lbnQgfSBmcm9tICcuL25hdi9uYXYuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFBob2VuaXhNZW51Q29tcG9uZW50LFxuICBQaG9lbml4TWVudUl0ZW1Db21wb25lbnQsXG4gIENvbmZpZ1NsaWRlckNvbXBvbmVudCxcbn0gZnJvbSAnLi9waG9lbml4LW1lbnUnO1xuaW1wb3J0IHtcbiAgVWlNZW51Q29tcG9uZW50LFxuICBDb2xsZWN0aW9uc0luZm9Db21wb25lbnQsXG4gIE1lbnVUb2dnbGVDb21wb25lbnQsXG4gIENvbGxlY3Rpb25zSW5mb092ZXJsYXlDb21wb25lbnQsXG4gIElvT3B0aW9uc0NvbXBvbmVudCxcbiAgSU9PcHRpb25zRGlhbG9nQ29tcG9uZW50LFxuICBPdmVybGF5Vmlld0NvbXBvbmVudCxcbiAgT2JqZWN0U2VsZWN0aW9uQ29tcG9uZW50LFxuICBPYmplY3RTZWxlY3Rpb25PdmVybGF5Q29tcG9uZW50LFxuICBFdmVudFNlbGVjdG9yQ29tcG9uZW50LFxuICBPYmplY3RDbGlwcGluZ0NvbXBvbmVudCxcbiAgRGFya1RoZW1lQ29tcG9uZW50LFxuICBBdXRvUm90YXRlQ29tcG9uZW50LFxuICBWaWV3T3B0aW9uc0NvbXBvbmVudCxcbiAgT3ZlcmxheVZpZXdXaW5kb3dDb21wb25lbnQsXG4gIE92ZXJsYXlDb21wb25lbnQsXG4gIEV4cGVyaW1lbnRJbmZvQ29tcG9uZW50LFxuICBJbmZvUGFuZWxDb21wb25lbnQsXG4gIEluZm9QYW5lbE92ZXJsYXlDb21wb25lbnQsXG4gIE1haW5WaWV3VG9nZ2xlQ29tcG9uZW50LFxuICBab29tQ29udHJvbHNDb21wb25lbnQsXG4gIFRyZWVNZW51Q29tcG9uZW50LFxuICBUcmVlTWVudUl0ZW1Db21wb25lbnQsXG4gIEFuaW1hdGVDYW1lcmFDb21wb25lbnQsXG4gIEFuaW1hdGVFdmVudENvbXBvbmVudCxcbiAgVnJUb2dnbGVDb21wb25lbnQsXG4gIEFyVG9nZ2xlQ29tcG9uZW50LFxuICBTU01vZGVDb21wb25lbnQsXG4gIFBlcmZvcm1hbmNlVG9nZ2xlQ29tcG9uZW50LFxuICBTaGFyZUxpbmtDb21wb25lbnQsXG4gIFNoYXJlTGlua0RpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnLi91aS1tZW51JztcbmltcG9ydCB7IEF0dHJpYnV0ZVBpcGUgfSBmcm9tICcuLi9zZXJ2aWNlcy9leHRyYXMvYXR0cmlidXRlLnBpcGUnO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbWJlZE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2VtYmVkLW1lbnUvZW1iZWQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXhwZXJpbWVudExpbmtDb21wb25lbnQgfSBmcm9tICcuL2VtYmVkLW1lbnUvZXhwZXJpbWVudC1saW5rL2V4cGVyaW1lbnQtbGluay5jb21wb25lbnQnO1xuXG5jb25zdCBQSE9FTklYX0NPTVBPTkVOVFM6IFR5cGU8YW55PltdID0gW1xuICBOYXZDb21wb25lbnQsXG4gIFVpTWVudUNvbXBvbmVudCxcbiAgQ29sbGVjdGlvbnNJbmZvQ29tcG9uZW50LFxuICBNZW51VG9nZ2xlQ29tcG9uZW50LFxuICBDb2xsZWN0aW9uc0luZm9PdmVybGF5Q29tcG9uZW50LFxuICBJb09wdGlvbnNDb21wb25lbnQsXG4gIElPT3B0aW9uc0RpYWxvZ0NvbXBvbmVudCxcbiAgT3ZlcmxheVZpZXdDb21wb25lbnQsXG4gIEF0dHJpYnV0ZVBpcGUsXG4gIE9iamVjdFNlbGVjdGlvbkNvbXBvbmVudCxcbiAgT2JqZWN0U2VsZWN0aW9uT3ZlcmxheUNvbXBvbmVudCxcbiAgRXZlbnRTZWxlY3RvckNvbXBvbmVudCxcbiAgT2JqZWN0Q2xpcHBpbmdDb21wb25lbnQsXG4gIERhcmtUaGVtZUNvbXBvbmVudCxcbiAgQXV0b1JvdGF0ZUNvbXBvbmVudCxcbiAgVmlld09wdGlvbnNDb21wb25lbnQsXG4gIE92ZXJsYXlWaWV3V2luZG93Q29tcG9uZW50LFxuICBPdmVybGF5Q29tcG9uZW50LFxuICBFeHBlcmltZW50SW5mb0NvbXBvbmVudCxcbiAgSW5mb1BhbmVsQ29tcG9uZW50LFxuICBJbmZvUGFuZWxPdmVybGF5Q29tcG9uZW50LFxuICBNYWluVmlld1RvZ2dsZUNvbXBvbmVudCxcbiAgWm9vbUNvbnRyb2xzQ29tcG9uZW50LFxuICBUcmVlTWVudUNvbXBvbmVudCxcbiAgVHJlZU1lbnVJdGVtQ29tcG9uZW50LFxuICBQaG9lbml4TWVudUNvbXBvbmVudCxcbiAgUGhvZW5peE1lbnVJdGVtQ29tcG9uZW50LFxuICBDb25maWdTbGlkZXJDb21wb25lbnQsXG4gIEFuaW1hdGVDYW1lcmFDb21wb25lbnQsXG4gIEFuaW1hdGVFdmVudENvbXBvbmVudCxcbiAgVnJUb2dnbGVDb21wb25lbnQsXG4gIEFyVG9nZ2xlQ29tcG9uZW50LFxuICBTU01vZGVDb21wb25lbnQsXG4gIFBlcmZvcm1hbmNlVG9nZ2xlQ29tcG9uZW50LFxuICBMb2FkZXJDb21wb25lbnQsXG4gIFNoYXJlTGlua0NvbXBvbmVudCxcbiAgU2hhcmVMaW5rRGlhbG9nQ29tcG9uZW50LFxuICBFbWJlZE1lbnVDb21wb25lbnQsXG4gIEV4cGVyaW1lbnRMaW5rQ29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uUEhPRU5JWF9DT01QT05FTlRTXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRTbGlkZXJNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBOZ3hTbGlkZXJNb2R1bGUsXG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIE92ZXJsYXlDb21wb25lbnQsXG4gICAgT3ZlcmxheVZpZXdXaW5kb3dDb21wb25lbnQsXG4gICAgSU9PcHRpb25zRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25zSW5mb092ZXJsYXlDb21wb25lbnQsXG4gICAgT2JqZWN0U2VsZWN0aW9uT3ZlcmxheUNvbXBvbmVudCxcbiAgICBJbmZvUGFuZWxPdmVybGF5Q29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbUEhPRU5JWF9DT01QT05FTlRTXSxcbn0pXG5leHBvcnQgY2xhc3MgUGhvZW5peFVJTW9kdWxlIHt9XG4iXX0=
@@ -12,8 +12,8 @@ import * as i3 from '@angular/material/checkbox';
12
12
  import { MatCheckboxModule } from '@angular/material/checkbox';
13
13
  import * as i3$1 from '@angular/material/button';
14
14
  import { MatButtonModule } from '@angular/material/button';
15
- import * as i5 from '@angular-slider/ngx-slider';
16
- import { NgxSliderModule } from '@angular-slider/ngx-slider';
15
+ import * as i5 from '@rp3e11/ngx-slider';
16
+ import { NgxSliderModule } from '@rp3e11/ngx-slider';
17
17
  import { EventDisplay, SceneManager, PrettySymbols, JiveXMLLoader, ScriptLoader, CMSLoader, VRManager, XRSessionType, ARManager, phoenixURLOptions, ActiveVariable } from 'phoenix-event-display';
18
18
  import * as i2 from '@angular/material/menu';
19
19
  import { MatMenuModule } from '@angular/material/menu';
@@ -92,7 +92,7 @@ class PhoenixMenuItemComponent {
92
92
  }
93
93
  }
94
94
  PhoenixMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PhoenixMenuItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
95
- PhoenixMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: { currentNode: "currentNode" }, viewQueries: [{ propertyName: "phoenixMenuItem", first: true, predicate: ["phoenixMenuItem"], descendants: true }], ngImport: i0, template: "<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of currentNode.configs\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <label class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <span\n class=\"item-config-label\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </span>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <ngx-slider\n *ngSwitchCase=\"'rangeSlider'\"\n class=\"range-slider\"\n [value]=\"config.value ? config.value : config.min\"\n [highValue]=\"config.highValue ? config.highValue : config.max\"\n (userChange)=\"\n config.onChange($event);\n config.value = $event.value;\n config.highValue = $event.highValue\n \"\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n\n <select\n *ngSwitchCase=\"'select'\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </label>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n", styles: [".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-bar{background:var(--phoenix-text-color-secondary);height:.2rem}.range-slider.ngx-slider .ngx-slider-selection{background:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer{width:1rem;height:1rem;top:-.45rem;bottom:0;background-color:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer:after{display:none}.range-slider.ngx-slider .ngx-slider-bubble{color:var(--phoenix-text-color);font-size:.8rem}.range-slider.ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:var(--phoenix-text-color-secondary)}\n"], components: [{ type: i1$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: ConfigSliderComponent, selector: "app-config-slider", inputs: ["value", "min", "max", "step", "allowCustomValue"], outputs: ["onChange"] }, { type: i3$1.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"] }, { type: i5.ɵa, selector: "ngx-slider", inputs: ["value", "highValue", "options", "manualRefresh", "triggerFocus"], outputs: ["valueChange", "highValueChange", "userChangeStart", "userChange", "userChangeEnd"] }, { type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: ["currentNode"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], encapsulation: i0.ViewEncapsulation.None });
95
+ PhoenixMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: { currentNode: "currentNode" }, viewQueries: [{ propertyName: "phoenixMenuItem", first: true, predicate: ["phoenixMenuItem"], descendants: true }], ngImport: i0, template: "<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of currentNode.configs\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <label class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <span\n class=\"item-config-label\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </span>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <ngx-slider\n *ngSwitchCase=\"'rangeSlider'\"\n class=\"range-slider\"\n [value]=\"config.value ? config.value : config.min\"\n [highValue]=\"config.highValue ? config.highValue : config.max\"\n (userChange)=\"\n config.onChange($event);\n config.value = $event.value;\n config.highValue = $event.highValue\n \"\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n\n <select\n *ngSwitchCase=\"'select'\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </label>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n", styles: [".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-bar{background:var(--phoenix-text-color-secondary);height:.2rem}.range-slider.ngx-slider .ngx-slider-selection{background:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer{width:1rem;height:1rem;top:-.45rem;bottom:0;background-color:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer:after{display:none}.range-slider.ngx-slider .ngx-slider-bubble{color:var(--phoenix-text-color);font-size:.8rem}.range-slider.ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:var(--phoenix-text-color-secondary)}\n"], components: [{ type: i1$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: ConfigSliderComponent, selector: "app-config-slider", inputs: ["value", "min", "max", "step", "allowCustomValue"], outputs: ["onChange"] }, { type: i3$1.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"] }, { type: i5.SliderComponent, selector: "ngx-slider", inputs: ["value", "highValue", "options", "manualRefresh", "triggerFocus"], outputs: ["valueChange", "highValueChange", "userChangeStart", "userChange", "userChangeEnd"] }, { type: PhoenixMenuItemComponent, selector: "app-phoenix-menu-item", inputs: ["currentNode"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], encapsulation: i0.ViewEncapsulation.None });
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PhoenixMenuItemComponent, decorators: [{
97
97
  type: Component,
98
98
  args: [{ selector: 'app-phoenix-menu-item', encapsulation: ViewEncapsulation.None, template: "<div class=\"phoenix-menu-item\" #phoenixMenuItem>\n <div class=\"phoenix-menu-item-left align-items-center\">\n <!-- If the item has some toggle function -->\n <ng-container *ngIf=\"currentNode.onToggle; else nodeName\">\n <mat-slide-toggle\n [checked]=\"currentNode.toggleState\"\n (change)=\"currentNode.toggleSelfAndDescendants($event.checked)\"\n >\n <ng-container *ngTemplateOutlet=\"nodeName\"></ng-container>\n </mat-slide-toggle>\n </ng-container>\n <!-- If the item has no toggle function -->\n <ng-template #nodeName>\n <span class=\"d-flex w-100 align-items-center\">\n <span *ngIf=\"currentNode.icon\" class=\"icon-wrapper item-icon\">\n <svg>\n <use\n attr.href=\"assets/icons/{{ currentNode.icon }}.svg#{{\n currentNode.icon\n }}\"\n ></use>\n </svg>\n </span>\n <span class=\"item-name\" [title]=\"currentNode.name\">{{\n currentNode.name\n }}</span>\n </span>\n </ng-template>\n </div>\n <div class=\"phoenix-menu-item-right\">\n <div *ngIf=\"currentNode.configs.length > 0\">\n <button\n class=\"icon-wrapper icon-button btn-blank item-settings\"\n (click)=\"\n calculateConfigTop();\n currentNode.configActive = !currentNode.configActive\n \"\n >\n <svg>\n <use href=\"assets/icons/gear.svg#gear\"></use>\n </svg>\n </button>\n <div\n class=\"item-config-backdrop\"\n *ngIf=\"currentNode.configActive\"\n (click)=\"currentNode.configActive = false\"\n ></div>\n <div\n class=\"item-config\"\n [hidden]=\"!currentNode.configActive\"\n [ngStyle]=\"{ 'top.px': configTop }\"\n >\n <ng-container\n *ngFor=\"let config of currentNode.configs\"\n [ngSwitch]=\"config.type\"\n >\n <!-- Config types -->\n <label class=\"item-config-single\" *ngIf=\"!config.hidden\">\n <span\n class=\"item-config-label\"\n *ngIf=\"config.type !== 'button'\"\n [ngClass]=\"{ 'font-weight-bold w-100': config.type === 'label' }\"\n >\n {{ config.label }}\n </span>\n <div\n class=\"item-config-data\"\n [ngClass]=\"{ 'p-0': config.type === 'button' }\"\n *ngIf=\"config.type !== 'label'\"\n >\n <mat-checkbox\n *ngSwitchCase=\"'checkbox'\"\n [checked]=\"config.isChecked\"\n (change)=\"\n config.onChange($event.checked);\n config.isChecked = $event.checked\n \"\n ></mat-checkbox>\n\n <app-config-slider\n *ngSwitchCase=\"'slider'\"\n [value]=\"config.value\"\n (onChange)=\"config.onChange($event); config.value = $event\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [step]=\"config.step\"\n [allowCustomValue]=\"config.allowCustomValue\"\n >\n </app-config-slider>\n\n <button\n *ngSwitchCase=\"'button'\"\n class=\"w-100\"\n (click)=\"config.onClick()\"\n mat-button\n mat-stroked-button\n >\n {{ config.label }}\n </button>\n\n <input\n *ngSwitchCase=\"'color'\"\n type=\"color\"\n [value]=\"config.color\"\n (input)=\"\n config.onChange($event.target.value);\n config.color = $event.target.value\n \"\n />\n\n <ngx-slider\n *ngSwitchCase=\"'rangeSlider'\"\n class=\"range-slider\"\n [value]=\"config.value ? config.value : config.min\"\n [highValue]=\"config.highValue ? config.highValue : config.max\"\n (userChange)=\"\n config.onChange($event);\n config.value = $event.value;\n config.highValue = $event.highValue\n \"\n [options]=\"{\n floor: config.min,\n ceil: config.max,\n step: config.step,\n animate: false\n }\"\n ></ngx-slider>\n\n <select\n *ngSwitchCase=\"'select'\"\n class=\"w-100\"\n (change)=\"config.onChange($event.target.value)\"\n >\n <option\n *ngFor=\"let singleOption of config.options\"\n [value]=\"singleOption\"\n >\n {{ singleOption }}\n </option>\n </select>\n </div>\n </label>\n <!-- Config types END -->\n </ng-container>\n </div>\n </div>\n <button\n class=\"icon-wrapper icon-button btn-blank item-expand\"\n *ngIf=\"currentNode.children.length > 0\"\n (click)=\"currentNode.childrenActive = !currentNode.childrenActive\"\n [ngClass]=\"{ expanded: currentNode.childrenActive }\"\n >\n <svg>\n <use href=\"assets/icons/expand.svg#expand\"></use>\n </svg>\n </button>\n </div>\n</div>\n<div class=\"phoenix-menu-children\" *ngIf=\"currentNode.childrenActive\">\n <app-phoenix-menu-item\n *ngFor=\"let childNode of currentNode.children\"\n [currentNode]=\"childNode\"\n >\n </app-phoenix-menu-item>\n</div>\n", styles: [".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-bar{background:var(--phoenix-text-color-secondary);height:.2rem}.range-slider.ngx-slider .ngx-slider-selection{background:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer{width:1rem;height:1rem;top:-.45rem;bottom:0;background-color:var(--phoenix-accent)}.range-slider.ngx-slider .ngx-slider-pointer:after{display:none}.range-slider.ngx-slider .ngx-slider-bubble{color:var(--phoenix-text-color);font-size:.8rem}.range-slider.ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:var(--phoenix-text-color-secondary)}\n"] }]