@dotglitch/ngx-common 1.1.34 → 1.1.35

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.
@@ -126,7 +126,7 @@ export class ToolbarComponent {
126
126
  this.fileManager.fileGrids.forEach(g => g.loadFolder());
127
127
  }
128
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.FilemanagerComponent }, { token: i2.DialogService }, { token: i2.Fetch }], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ToolbarComponent, isStandalone: true, selector: "app-toolbar", inputs: { config: "config", currentTab: "currentTab", showHiddenFiles: "showHiddenFiles", showSidebar: "showSidebar", drawerMode: "drawerMode", showBareMinimum: "showBareMinimum" }, outputs: { onBreadcrumbClick: "onBreadcrumbClick", showHiddenFilesChange: "showHiddenFilesChange", showSidebarChange: "showSidebarChange" }, viewQueries: [{ propertyName: "zoomTemplate", first: true, predicate: ["zoomTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }], ngImport: i0, template: "<button\n *ngIf=\"fileManager.sidebarOverlay && !drawerMode\"\n mat-icon-button\n (click)=\"toggleDrawer()\"\n>\n <mat-icon>list</mat-icon>\n</button>\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n\n<app-breadcrumb\n *ngIf=\"currentTab\"\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n/>\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: GtkIconButtonComponent, selector: "gtk-icon-button", inputs: ["fontIcon", "disabled"], outputs: ["click"] }, { kind: "component", type: GtkBreadcrumbComponent, selector: "app-breadcrumb", inputs: ["crumbs", "config"], outputs: ["crumbClick"] }, { kind: "directive", type: MenuDirective, selector: "[ngx-contextmenu],[ngx-menu]", inputs: ["ngx-menu-context", "ngx-contextmenu", "ngx-menu", "ngx-menu-config"] }] }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ToolbarComponent, isStandalone: true, selector: "app-toolbar", inputs: { config: "config", currentTab: "currentTab", showHiddenFiles: "showHiddenFiles", showSidebar: "showSidebar", drawerMode: "drawerMode", showBareMinimum: "showBareMinimum" }, outputs: { onBreadcrumbClick: "onBreadcrumbClick", showHiddenFilesChange: "showHiddenFilesChange", showSidebarChange: "showSidebarChange" }, viewQueries: [{ propertyName: "zoomTemplate", first: true, predicate: ["zoomTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }], ngImport: i0, template: "@if (fileManager.sidebarOverlay && !drawerMode) {\n <button\n mat-icon-button\n (click)=\"toggleDrawer()\"\n >\n <mat-icon>list</mat-icon>\n </button>\n}\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n@if (currentTab) {\n <app-breadcrumb\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n />\n}\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: GtkIconButtonComponent, selector: "gtk-icon-button", inputs: ["fontIcon", "disabled"], outputs: ["click"] }, { kind: "component", type: GtkBreadcrumbComponent, selector: "app-breadcrumb", inputs: ["crumbs", "config"], outputs: ["crumbClick"] }, { kind: "directive", type: MenuDirective, selector: "[ngx-contextmenu],[ngx-menu]", inputs: ["ngx-menu-context", "ngx-contextmenu", "ngx-menu", "ngx-menu-config"] }] }); }
130
130
  }
131
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ToolbarComponent, decorators: [{
132
132
  type: Component,
@@ -136,7 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
136
136
  GtkIconButtonComponent,
137
137
  GtkBreadcrumbComponent,
138
138
  MenuDirective
139
- ], standalone: true, template: "<button\n *ngIf=\"fileManager.sidebarOverlay && !drawerMode\"\n mat-icon-button\n (click)=\"toggleDrawer()\"\n>\n <mat-icon>list</mat-icon>\n</button>\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n\n<app-breadcrumb\n *ngIf=\"currentTab\"\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n/>\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"] }]
139
+ ], standalone: true, template: "@if (fileManager.sidebarOverlay && !drawerMode) {\n <button\n mat-icon-button\n (click)=\"toggleDrawer()\"\n >\n <mat-icon>list</mat-icon>\n </button>\n}\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n@if (currentTab) {\n <app-breadcrumb\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n />\n}\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"] }]
140
140
  }], ctorParameters: () => [{ type: i1.FilemanagerComponent }, { type: i2.DialogService }, { type: i2.Fetch }], propDecorators: { zoomTemplate: [{
141
141
  type: ViewChild,
142
142
  args: ['zoomTemplate']
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
162
162
  }], showBareMinimum: [{
163
163
  type: Input
164
164
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvZmlsZW1hbmFnZXIvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUczRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBd0IsYUFBYSxFQUFZLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQWVwRixNQUFNLE9BQU8sZ0JBQWdCO0lBbUJ6QixZQUNXLFdBQWlDLEVBQ2hDLE1BQXFCLEVBQ3JCLEtBQVk7UUFGYixnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBZmQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4QyxlQUFVLEdBQWdCLEVBQVMsQ0FBQztRQUduQywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXBELHNCQUFpQixHQUFHLElBQUksWUFBWSxF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T0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs4R0F2SVEsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMmxCQ3hCN0IscXhEQXVFQSw4RUR2RFEsYUFBYSxtTEFDYixlQUFlLDRJQUNmLHNCQUFzQixrSEFDdEIsc0JBQXNCLGtIQUN0QixhQUFhOzsyRkFJUixnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0ksYUFBYSxXQUdkO3dCQUNMLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsYUFBYTtxQkFDaEIsY0FDVyxJQUFJO3lJQUdXLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFbEIsTUFBTTtzQkFBZCxLQUFLO2dCQUdJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFRSxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0kscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBHdGtJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3RrQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlbWFuYWdlckNvbXBvbmVudCwgRmlsZVZpZXdUYWIsIEZTRGVzY3JpcHRvciwgTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZmlsZW1hbmFnZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVTb3J0aW5nIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgdXBsb2FkRmlsZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRmV0Y2gsIE1lbnVEaXJlY3RpdmUsIE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIEd0a0ljb25CdXR0b25Db21wb25lbnQsXG4gICAgICAgIEd0a0JyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgICAgIE1lbnVEaXJlY3RpdmVcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnem9vbVRlbXBsYXRlJykgem9vbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2FjdGlvblRlbXBsYXRlJykgYWN0aW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBjb25maWc6IE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbjtcblxuXG4gICAgQE91dHB1dCgpIG9uQnJlYWRjcnVtYkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQElucHV0KCkgY3VycmVudFRhYjogRmlsZVZpZXdUYWIgPSB7fSBhcyBhbnk7XG5cbiAgICBASW5wdXQoKSBzaG93SGlkZGVuRmlsZXM6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHNob3dIaWRkZW5GaWxlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBASW5wdXQoKSBzaG93U2lkZWJhcjogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgc2hvd1NpZGViYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBASW5wdXQoKSBkcmF3ZXJNb2RlID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvd0JhcmVNaW5pbXVtID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGZpbGVNYW5hZ2VyOiBGaWxlbWFuYWdlckNvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmV0Y2g6IEZldGNoXG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBmaWxlT3B0aW9uczogTWVudUl0ZW08RlNEZXNjcmlwdG9yPltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJOZXcgRm9sZGVyXCIsXG4gICAgICAgICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKFwiZm9sZGVyLXJlbmFtZVwiLCBcIkBkb3RnbGl0Y2gvbmd4LXdlYi1jb21wb25lbnRzXCIsIHsgaW5wdXRzOiB7IHBhdGg6IHRoaXMuY3VycmVudFRhYi5wYXRoLCBuYW1lOiAnJywgY29uZmlnOiB0aGlzLmNvbmZpZyB9IH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwbG9hZCBmaWxlXCIsXG4gICAgICAgICAgICBpY29uOiBcImZpbGVfdXBsb2FkXCIsXG4gICAgICAgICAgICBhY3Rpb246IChldnQpID0+IHVwbG9hZEZpbGUodGhpcy5mZXRjaCwgdGhpcy5jb25maWcsIHRoaXMuZmlsZU1hbmFnZXIuY3VycmVudFRhYi5wYXRoLCBudWxsLCB0aGlzLmZpbGVNYW5hZ2VyLmNvbnRleHRUYWdzKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgLy8gVGVsbCB0aGUgY3VycmVudCB0YWIgdG8gcmVsb2FkIGl0J3MgZGF0YS5cbiAgICAgICAgICAgICAgICBjb25zdCB0YWIgPSAgdGhpcy5maWxlTWFuYWdlci5jdXJyZW50VGFiO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyaWQgPSB0aGlzLmZpbGVNYW5hZ2VyLmZpbGVHcmlkcy5maW5kKHQgPT4gdC50YWIuaWQgPT0gdGFiLmlkKTtcbiAgICAgICAgICAgICAgICBncmlkLmxvYWRGb2xkZXIoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICAgIGxhYmVsOiBcIkFkZCB0byBCb29rbWFya3MgKFdJUClcIixcbiAgICAgICAgLy8gICAgIGFjdGlvbjogKGZvbGRlcikgPT4ge1xuICAgICAgICAvLyAgICAgICAgIC8vXG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0sXG4gICAgICAgIC8vIFwic2VwYXJhdG9yXCIsXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICAgIGxhYmVsOiBcIlBhc3RlXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAvL1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBsYWJlbDogXCJTZWxlY3QgQWxsXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAvL1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyBcInNlcGFyYXRvclwiLFxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBsYWJlbDogXCJQcm9wZXJ0aWVzXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAvL1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgIF1cblxuICAgIHNvcnRPcHRpb25zOiBNZW51SXRlbTxGU0Rlc2NyaXB0b3I+W10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlNvcnRcIixcbiAgICAgICAgICAgIHNlcGFyYXRvcjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJBLVpcIixcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5zZXRTb3J0ZXIoJ2EteicpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlotQVwiLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnNldFNvcnRlcignei1hJylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IFwiTGFzdCBNb2RpZmllZFwiLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnNldFNvcnRlcignbGFzdG1vZCcpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIkZpcnN0IE1vZGlmaWVkXCIsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuc2V0U29ydGVyKCdmaXJzdG1vZCcpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlNpemVcIixcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5zZXRTb3J0ZXIoJ3NpemUnKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJUeXBlXCIsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuc2V0U29ydGVyKCd0eXBlJylcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXBhcmF0b3JcIixcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IFwiUmVmcmVzaFwiLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmZpbGVNYW5hZ2VyLmN1cnJlbnRGaWxlR3JpZC5sb2FkRm9sZGVyKClcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBoaXN0b3J5QmFjayh0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaGlzdG9yeSAtPlwiLCB0YWIpXG4gICAgICAgIHRhYi5oaXN0b3J5SW5kZXgtLTtcbiAgICAgICAgdGFiLnBhdGggPSB0YWIuaGlzdG9yeVt0YWIuaGlzdG9yeUluZGV4IC0gMV07XG4gICAgfVxuXG4gICAgaGlzdG9yeUZvcndhcmQodGFiOiBGaWxlVmlld1RhYikge1xuICAgICAgICBjb25zb2xlLmxvZyhcImhpc3RvcnkgPC1cIiwgdGFiKVxuICAgICAgICB0YWIuaGlzdG9yeUluZGV4Kys7XG4gICAgICAgIHRhYi5wYXRoID0gdGFiLmhpc3RvcnlbdGFiLmhpc3RvcnlJbmRleCAtIDFdO1xuICAgIH1cblxuICAgIHRvZ2dsZURyYXdlcigpIHtcbiAgICAgICAgaWYgKFsuLi50aGlzLmZpbGVNYW5hZ2VyLmRyYXdlci5fZHJhd2Vyc11bMF0ub3BlbmVkKVxuICAgICAgICAgICAgdGhpcy5maWxlTWFuYWdlci5kcmF3ZXIuY2xvc2UoKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5maWxlTWFuYWdlci5kcmF3ZXIub3BlbigpO1xuICAgIH1cblxuICAgIHNldFNvcnRlcihtb2RlOiBGaWxlU29ydGluZykge1xuICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyLmN1cnJlbnRUYWIuc29ydE9yZGVyID0gbW9kZTtcbiAgICAgICAgdGhpcy5maWxlTWFuYWdlci5yZWZyZXNoU29ydGluZygpO1xuICAgIH1cblxuICAgIG9uUmVmcmVzaCgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5maWxlTWFuYWdlcik7XG4gICAgICAgIHRoaXMuZmlsZU1hbmFnZXIuZmlsZUdyaWRzLmZvckVhY2goZyA9PiBnLmxvYWRGb2xkZXIoKSk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgICpuZ0lmPVwiZmlsZU1hbmFnZXIuc2lkZWJhck92ZXJsYXkgJiYgIWRyYXdlck1vZGVcIlxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIChjbGljayk9XCJ0b2dnbGVEcmF3ZXIoKVwiXG4+XG4gICAgPG1hdC1pY29uPmxpc3Q8L21hdC1pY29uPlxuPC9idXR0b24+XG5cbkBpZiAoIXNob3dCYXJlTWluaW11bSkge1xuICAgIDxkaXYgY2xhc3M9XCJidXR0b25ncm91cFwiPlxuICAgICAgICA8Z3RrLWljb24tYnV0dG9uXG4gICAgICAgICAgICBmb250SWNvbj1cImFycm93X2JhY2tfaW9zX25ld1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGlzdG9yeUJhY2soY3VycmVudFRhYilcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRUYWIuaGlzdG9yeT8ubGVuZ3RoIDw9IDFcIlxuICAgICAgICAvPlxuICAgICAgICA8Z3RrLWljb24tYnV0dG9uXG4gICAgICAgICAgICBmb250SWNvbj1cImFycm93X2ZvcndhcmRfaW9zXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoaXN0b3J5Rm9yd2FyZChjdXJyZW50VGFiKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFRhYi5oaXN0b3J5SW5kZXggPj0gKGN1cnJlbnRUYWIuaGlzdG9yeT8ubGVuZ3RoLTEpXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoIWRyYXdlck1vZGUpIHtcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiA0MHB4XCI+PC9kaXY+XG4gICAgfVxuICAgIDxndGstaWNvbi1idXR0b25cbiAgICAgICAgZm9udEljb249XCJzeW5jXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCJcbiAgICAvPlxufVxuXG5cbjxhcHAtYnJlYWRjcnVtYlxuICAgICpuZ0lmPVwiY3VycmVudFRhYlwiXG4gICAgc3R5bGU9XCJmbGV4OiAxXCJcbiAgICBbY3J1bWJzXT1cImN1cnJlbnRUYWIuYnJlYWRjcnVtYlwiXG4gICAgKGNydW1iQ2xpY2spPVwib25CcmVhZGNydW1iQ2xpY2submV4dCgkZXZlbnQpXCJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4vPlxuXG5AaWYgKCFkcmF3ZXJNb2RlKSB7XG4gICAgPCEtLSA8ZGl2IHN0eWxlPVwiZmxleDogMVwiPjwvZGl2PiAtLT5cblxuICAgIDxndGstaWNvbi1idXR0b25cbiAgICAgICAgZm9udEljb249XCJtb3JlX3ZlcnRcIlxuICAgICAgICBbbmd4LW1lbnVdPVwiZmlsZU9wdGlvbnNcIlxuICAgICAgICBbbmd4LW1lbnUtY29uZmlnXT1cIntwb3NpdGlvbjogJ2JvdHRvbSd9XCJcbiAgICAvPlxuXG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiA4cHhcIj48L2Rpdj5cblxuICAgIDwhLS0gPGd0ay1pY29uLWJ1dHRvblxuICAgICAgICBmb250SWNvbj1cInNlYXJjaFwiXG4gICAgLz4gLS0+XG5cbiAgICBAaWYgKGZpbGVNYW5hZ2VyLndpZHRoID4gODAwKSB7XG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwcHhcIj48L2Rpdj5cbiAgICB9XG5cbiAgICA8Z3RrLWljb24tYnV0dG9uXG4gICAgICAgIFtmb250SWNvbl09XCJjdXJyZW50VGFiLnZpZXdNb2RlID09ICdsaXN0JyA/ICd2aWV3X2xpc3QnIDogJ2dyaWRfdmlldydcIlxuICAgICAgICAoY2xpY2spPVwiY3VycmVudFRhYi52aWV3TW9kZSA9IGN1cnJlbnRUYWIudmlld01vZGUgPT0gJ2xpc3QnID8gJ2dyaWQnIDogJ2xpc3QnOyBmaWxlTWFuYWdlci5vblJlc2l6ZSgpXCJcbiAgICAvPlxuXG4gICAgPGd0ay1pY29uLWJ1dHRvblxuICAgICAgICBmb250SWNvbj1cInNvcnRcIlxuICAgICAgICBbbmd4LW1lbnVdPVwic29ydE9wdGlvbnNcIlxuICAgICAgICBbbmd4LW1lbnUtY29uZmlnXT1cIntwb3NpdGlvbjogJ2JvdHRvbSd9XCJcbiAgICAvPlxuXG59XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvZmlsZW1hbmFnZXIvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUczRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBd0IsYUFBYSxFQUFZLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQWVwRixNQUFNLE9BQU8sZ0JBQWdCO0lBbUJ6QixZQUNXLFdBQWlDLEVBQ2hDLE1BQXFCLEVBQ3JCLEtBQVk7UUFGYixnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBZmQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4QyxlQUFVLEdBQWdCLEVBQVMsQ0FBQztRQUduQywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXBELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFakQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQVVqQyxnQkFBVyxHQUE2QjtZQUNwQztnQkFDSSxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLCtCQUErQixFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQ2pKLENBQUM7YUFDSjtZQUNEO2dCQUNJLEtBQUssRUFBRSxhQUFhO2dCQUNwQixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2xJLDRDQUE0QztvQkFDNUMsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7b0JBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUM7YUFDTDtZQUNELElBQUk7WUFDSix1Q0FBdUM7WUFDdkMsNEJBQTRCO1lBQzVCLGFBQWE7WUFDYixRQUFRO1lBQ1IsS0FBSztZQUNMLGVBQWU7WUFDZixJQUFJO1lBQ0osc0JBQXNCO1lBQ3RCLDRCQUE0QjtZQUM1QixhQUFhO1lBQ2IsUUFBUTtZQUNSLEtBQUs7WUFDTCxJQUFJO1lBQ0osMkJBQTJCO1lBQzNCLDRCQUE0QjtZQUM1QixhQUFhO1lBQ2IsUUFBUTtZQUNSLEtBQUs7WUFDTCxlQUFlO1lBQ2YsSUFBSTtZQUNKLDJCQUEyQjtZQUMzQiw0QkFBNEI7WUFDNUIsYUFBYTtZQUNiLFFBQVE7WUFDUixLQUFLO1NBQ1IsQ0FBQTtRQUVELGdCQUFXLEdBQTZCO1lBQ3BDO2dCQUNJLEtBQUssRUFBRSxNQUFNO2dCQUNiLFNBQVMsRUFBRSxJQUFJO2FBQ2xCO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLEtBQUs7Z0JBQ1osTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ3RDO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLEtBQUs7Z0JBQ1osTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ3RDO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQzthQUMxQztZQUNEO2dCQUNJLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUMzQztZQUNEO2dCQUNJLEtBQUssRUFBRSxNQUFNO2dCQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUN2QztZQUNEO2dCQUNJLEtBQUssRUFBRSxNQUFNO2dCQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUN2QztZQUNELFdBQVc7WUFDWDtnQkFDSSxLQUFLLEVBQUUsU0FBUztnQkFDaEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRTthQUM5RDtTQUNKLENBQUM7SUFqRkYsQ0FBQztJQW1GRCxXQUFXLENBQUMsR0FBZ0I7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDOUIsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjLENBQUMsR0FBZ0I7UUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDOUIsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzs7WUFFaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFpQjtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVM7UUFDTCxpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs4R0F2SVEsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMmxCQ3hCN0IsNnpEQXdFQSw4RUR4RFEsYUFBYSxtTEFDYixlQUFlLDRJQUNmLHNCQUFzQixrSEFDdEIsc0JBQXNCLGtIQUN0QixhQUFhOzsyRkFJUixnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0ksYUFBYSxXQUdkO3dCQUNMLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsYUFBYTtxQkFDaEIsY0FDVyxJQUFJO3lJQUdXLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFbEIsTUFBTTtzQkFBZCxLQUFLO2dCQUdJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFRSxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0kscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBHdGtJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3RrQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlbWFuYWdlckNvbXBvbmVudCwgRmlsZVZpZXdUYWIsIEZTRGVzY3JpcHRvciwgTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZmlsZW1hbmFnZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVTb3J0aW5nIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgdXBsb2FkRmlsZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRmV0Y2gsIE1lbnVEaXJlY3RpdmUsIE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIEd0a0ljb25CdXR0b25Db21wb25lbnQsXG4gICAgICAgIEd0a0JyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgICAgIE1lbnVEaXJlY3RpdmVcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnem9vbVRlbXBsYXRlJykgem9vbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2FjdGlvblRlbXBsYXRlJykgYWN0aW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBjb25maWc6IE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbjtcblxuXG4gICAgQE91dHB1dCgpIG9uQnJlYWRjcnVtYkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQElucHV0KCkgY3VycmVudFRhYjogRmlsZVZpZXdUYWIgPSB7fSBhcyBhbnk7XG5cbiAgICBASW5wdXQoKSBzaG93SGlkZGVuRmlsZXM6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHNob3dIaWRkZW5GaWxlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBASW5wdXQoKSBzaG93U2lkZWJhcjogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgc2hvd1NpZGViYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBASW5wdXQoKSBkcmF3ZXJNb2RlID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvd0JhcmVNaW5pbXVtID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGZpbGVNYW5hZ2VyOiBGaWxlbWFuYWdlckNvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmV0Y2g6IEZldGNoXG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBmaWxlT3B0aW9uczogTWVudUl0ZW08RlNEZXNjcmlwdG9yPltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJOZXcgRm9sZGVyXCIsXG4gICAgICAgICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKFwiZm9sZGVyLXJlbmFtZVwiLCBcIkBkb3RnbGl0Y2gvbmd4LXdlYi1jb21wb25lbnRzXCIsIHsgaW5wdXRzOiB7IHBhdGg6IHRoaXMuY3VycmVudFRhYi5wYXRoLCBuYW1lOiAnJywgY29uZmlnOiB0aGlzLmNvbmZpZyB9IH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwbG9hZCBmaWxlXCIsXG4gICAgICAgICAgICBpY29uOiBcImZpbGVfdXBsb2FkXCIsXG4gICAgICAgICAgICBhY3Rpb246IChldnQpID0+IHVwbG9hZEZpbGUodGhpcy5mZXRjaCwgdGhpcy5jb25maWcsIHRoaXMuZmlsZU1hbmFnZXIuY3VycmVudFRhYi5wYXRoLCBudWxsLCB0aGlzLmZpbGVNYW5hZ2VyLmNvbnRleHRUYWdzKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgLy8gVGVsbCB0aGUgY3VycmVudCB0YWIgdG8gcmVsb2FkIGl0J3MgZGF0YS5cbiAgICAgICAgICAgICAgICBjb25zdCB0YWIgPSAgdGhpcy5maWxlTWFuYWdlci5jdXJyZW50VGFiO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyaWQgPSB0aGlzLmZpbGVNYW5hZ2VyLmZpbGVHcmlkcy5maW5kKHQgPT4gdC50YWIuaWQgPT0gdGFiLmlkKTtcbiAgICAgICAgICAgICAgICBncmlkLmxvYWRGb2xkZXIoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICAgIGxhYmVsOiBcIkFkZCB0byBCb29rbWFya3MgKFdJUClcIixcbiAgICAgICAgLy8gICAgIGFjdGlvbjogKGZvbGRlcikgPT4ge1xuICAgICAgICAvLyAgICAgICAgIC8vXG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0sXG4gICAgICAgIC8vIFwic2VwYXJhdG9yXCIsXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICAgIGxhYmVsOiBcIlBhc3RlXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAvL1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBsYWJlbDogXCJTZWxlY3QgQWxsXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAvL1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyBcInNlcGFyYXRvclwiLFxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBsYWJlbDogXCJQcm9wZXJ0aWVzXCIsXG4gICAgICAgIC8vICAgICBhY3Rpb246IChmb2xkZXIpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAvL1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9LFxuICAgIF1cblxuICAgIHNvcnRPcHRpb25zOiBNZW51SXRlbTxGU0Rlc2NyaXB0b3I+W10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlNvcnRcIixcbiAgICAgICAgICAgIHNlcGFyYXRvcjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJBLVpcIixcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5zZXRTb3J0ZXIoJ2EteicpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlotQVwiLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnNldFNvcnRlcignei1hJylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IFwiTGFzdCBNb2RpZmllZFwiLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnNldFNvcnRlcignbGFzdG1vZCcpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIkZpcnN0IE1vZGlmaWVkXCIsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuc2V0U29ydGVyKCdmaXJzdG1vZCcpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBcIlNpemVcIixcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5zZXRTb3J0ZXIoJ3NpemUnKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogXCJUeXBlXCIsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuc2V0U29ydGVyKCd0eXBlJylcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXBhcmF0b3JcIixcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IFwiUmVmcmVzaFwiLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmZpbGVNYW5hZ2VyLmN1cnJlbnRGaWxlR3JpZC5sb2FkRm9sZGVyKClcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBoaXN0b3J5QmFjayh0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaGlzdG9yeSAtPlwiLCB0YWIpXG4gICAgICAgIHRhYi5oaXN0b3J5SW5kZXgtLTtcbiAgICAgICAgdGFiLnBhdGggPSB0YWIuaGlzdG9yeVt0YWIuaGlzdG9yeUluZGV4IC0gMV07XG4gICAgfVxuXG4gICAgaGlzdG9yeUZvcndhcmQodGFiOiBGaWxlVmlld1RhYikge1xuICAgICAgICBjb25zb2xlLmxvZyhcImhpc3RvcnkgPC1cIiwgdGFiKVxuICAgICAgICB0YWIuaGlzdG9yeUluZGV4Kys7XG4gICAgICAgIHRhYi5wYXRoID0gdGFiLmhpc3RvcnlbdGFiLmhpc3RvcnlJbmRleCAtIDFdO1xuICAgIH1cblxuICAgIHRvZ2dsZURyYXdlcigpIHtcbiAgICAgICAgaWYgKFsuLi50aGlzLmZpbGVNYW5hZ2VyLmRyYXdlci5fZHJhd2Vyc11bMF0ub3BlbmVkKVxuICAgICAgICAgICAgdGhpcy5maWxlTWFuYWdlci5kcmF3ZXIuY2xvc2UoKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5maWxlTWFuYWdlci5kcmF3ZXIub3BlbigpO1xuICAgIH1cblxuICAgIHNldFNvcnRlcihtb2RlOiBGaWxlU29ydGluZykge1xuICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyLmN1cnJlbnRUYWIuc29ydE9yZGVyID0gbW9kZTtcbiAgICAgICAgdGhpcy5maWxlTWFuYWdlci5yZWZyZXNoU29ydGluZygpO1xuICAgIH1cblxuICAgIG9uUmVmcmVzaCgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5maWxlTWFuYWdlcik7XG4gICAgICAgIHRoaXMuZmlsZU1hbmFnZXIuZmlsZUdyaWRzLmZvckVhY2goZyA9PiBnLmxvYWRGb2xkZXIoKSk7XG4gICAgfVxufVxuIiwiQGlmIChmaWxlTWFuYWdlci5zaWRlYmFyT3ZlcmxheSAmJiAhZHJhd2VyTW9kZSkge1xuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVEcmF3ZXIoKVwiXG4gICAgPlxuICAgICAgICA8bWF0LWljb24+bGlzdDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG59XG5cbkBpZiAoIXNob3dCYXJlTWluaW11bSkge1xuICAgIDxkaXYgY2xhc3M9XCJidXR0b25ncm91cFwiPlxuICAgICAgICA8Z3RrLWljb24tYnV0dG9uXG4gICAgICAgICAgICBmb250SWNvbj1cImFycm93X2JhY2tfaW9zX25ld1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGlzdG9yeUJhY2soY3VycmVudFRhYilcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRUYWIuaGlzdG9yeT8ubGVuZ3RoIDw9IDFcIlxuICAgICAgICAvPlxuICAgICAgICA8Z3RrLWljb24tYnV0dG9uXG4gICAgICAgICAgICBmb250SWNvbj1cImFycm93X2ZvcndhcmRfaW9zXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoaXN0b3J5Rm9yd2FyZChjdXJyZW50VGFiKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFRhYi5oaXN0b3J5SW5kZXggPj0gKGN1cnJlbnRUYWIuaGlzdG9yeT8ubGVuZ3RoLTEpXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoIWRyYXdlck1vZGUpIHtcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiA0MHB4XCI+PC9kaXY+XG4gICAgfVxuICAgIDxndGstaWNvbi1idXR0b25cbiAgICAgICAgZm9udEljb249XCJzeW5jXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCJcbiAgICAvPlxufVxuXG5AaWYgKGN1cnJlbnRUYWIpIHtcbiAgICA8YXBwLWJyZWFkY3J1bWJcbiAgICAgICAgc3R5bGU9XCJmbGV4OiAxXCJcbiAgICAgICAgW2NydW1ic109XCJjdXJyZW50VGFiLmJyZWFkY3J1bWJcIlxuICAgICAgICAoY3J1bWJDbGljayk9XCJvbkJyZWFkY3J1bWJDbGljay5uZXh0KCRldmVudClcIlxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgLz5cbn1cblxuQGlmICghZHJhd2VyTW9kZSkge1xuICAgIDwhLS0gPGRpdiBzdHlsZT1cImZsZXg6IDFcIj48L2Rpdj4gLS0+XG5cbiAgICA8Z3RrLWljb24tYnV0dG9uXG4gICAgICAgIGZvbnRJY29uPVwibW9yZV92ZXJ0XCJcbiAgICAgICAgW25neC1tZW51XT1cImZpbGVPcHRpb25zXCJcbiAgICAgICAgW25neC1tZW51LWNvbmZpZ109XCJ7cG9zaXRpb246ICdib3R0b20nfVwiXG4gICAgLz5cblxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogOHB4XCI+PC9kaXY+XG5cbiAgICA8IS0tIDxndGstaWNvbi1idXR0b25cbiAgICAgICAgZm9udEljb249XCJzZWFyY2hcIlxuICAgIC8+IC0tPlxuXG4gICAgQGlmIChmaWxlTWFuYWdlci53aWR0aCA+IDgwMCkge1xuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMHB4XCI+PC9kaXY+XG4gICAgfVxuXG4gICAgPGd0ay1pY29uLWJ1dHRvblxuICAgICAgICBbZm9udEljb25dPVwiY3VycmVudFRhYi52aWV3TW9kZSA9PSAnbGlzdCcgPyAndmlld19saXN0JyA6ICdncmlkX3ZpZXcnXCJcbiAgICAgICAgKGNsaWNrKT1cImN1cnJlbnRUYWIudmlld01vZGUgPSBjdXJyZW50VGFiLnZpZXdNb2RlID09ICdsaXN0JyA/ICdncmlkJyA6ICdsaXN0JzsgZmlsZU1hbmFnZXIub25SZXNpemUoKVwiXG4gICAgLz5cblxuICAgIDxndGstaWNvbi1idXR0b25cbiAgICAgICAgZm9udEljb249XCJzb3J0XCJcbiAgICAgICAgW25neC1tZW51XT1cInNvcnRPcHRpb25zXCJcbiAgICAgICAgW25neC1tZW51LWNvbmZpZ109XCJ7cG9zaXRpb246ICdib3R0b20nfVwiXG4gICAgLz5cblxufVxuIl19
@@ -10175,7 +10175,7 @@ class ToolbarComponent {
10175
10175
  this.fileManager.fileGrids.forEach(g => g.loadFolder());
10176
10176
  }
10177
10177
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ToolbarComponent, deps: [{ token: FilemanagerComponent }, { token: DialogService }, { token: Fetch }], target: i0.ɵɵFactoryTarget.Component }); }
10178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ToolbarComponent, isStandalone: true, selector: "app-toolbar", inputs: { config: "config", currentTab: "currentTab", showHiddenFiles: "showHiddenFiles", showSidebar: "showSidebar", drawerMode: "drawerMode", showBareMinimum: "showBareMinimum" }, outputs: { onBreadcrumbClick: "onBreadcrumbClick", showHiddenFilesChange: "showHiddenFilesChange", showSidebarChange: "showSidebarChange" }, viewQueries: [{ propertyName: "zoomTemplate", first: true, predicate: ["zoomTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }], ngImport: i0, template: "<button\n *ngIf=\"fileManager.sidebarOverlay && !drawerMode\"\n mat-icon-button\n (click)=\"toggleDrawer()\"\n>\n <mat-icon>list</mat-icon>\n</button>\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n\n<app-breadcrumb\n *ngIf=\"currentTab\"\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n/>\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: GtkIconButtonComponent, selector: "gtk-icon-button", inputs: ["fontIcon", "disabled"], outputs: ["click"] }, { kind: "component", type: GtkBreadcrumbComponent, selector: "app-breadcrumb", inputs: ["crumbs", "config"], outputs: ["crumbClick"] }, { kind: "directive", type: MenuDirective, selector: "[ngx-contextmenu],[ngx-menu]", inputs: ["ngx-menu-context", "ngx-contextmenu", "ngx-menu", "ngx-menu-config"] }] }); }
10178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ToolbarComponent, isStandalone: true, selector: "app-toolbar", inputs: { config: "config", currentTab: "currentTab", showHiddenFiles: "showHiddenFiles", showSidebar: "showSidebar", drawerMode: "drawerMode", showBareMinimum: "showBareMinimum" }, outputs: { onBreadcrumbClick: "onBreadcrumbClick", showHiddenFilesChange: "showHiddenFilesChange", showSidebarChange: "showSidebarChange" }, viewQueries: [{ propertyName: "zoomTemplate", first: true, predicate: ["zoomTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }], ngImport: i0, template: "@if (fileManager.sidebarOverlay && !drawerMode) {\n <button\n mat-icon-button\n (click)=\"toggleDrawer()\"\n >\n <mat-icon>list</mat-icon>\n </button>\n}\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n@if (currentTab) {\n <app-breadcrumb\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n />\n}\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: GtkIconButtonComponent, selector: "gtk-icon-button", inputs: ["fontIcon", "disabled"], outputs: ["click"] }, { kind: "component", type: GtkBreadcrumbComponent, selector: "app-breadcrumb", inputs: ["crumbs", "config"], outputs: ["crumbClick"] }, { kind: "directive", type: MenuDirective, selector: "[ngx-contextmenu],[ngx-menu]", inputs: ["ngx-menu-context", "ngx-contextmenu", "ngx-menu", "ngx-menu-config"] }] }); }
10179
10179
  }
10180
10180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ToolbarComponent, decorators: [{
10181
10181
  type: Component,
@@ -10185,7 +10185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
10185
10185
  GtkIconButtonComponent,
10186
10186
  GtkBreadcrumbComponent,
10187
10187
  MenuDirective
10188
- ], standalone: true, template: "<button\n *ngIf=\"fileManager.sidebarOverlay && !drawerMode\"\n mat-icon-button\n (click)=\"toggleDrawer()\"\n>\n <mat-icon>list</mat-icon>\n</button>\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n\n<app-breadcrumb\n *ngIf=\"currentTab\"\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n/>\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"] }]
10188
+ ], standalone: true, template: "@if (fileManager.sidebarOverlay && !drawerMode) {\n <button\n mat-icon-button\n (click)=\"toggleDrawer()\"\n >\n <mat-icon>list</mat-icon>\n </button>\n}\n\n@if (!showBareMinimum) {\n <div class=\"buttongroup\">\n <gtk-icon-button\n fontIcon=\"arrow_back_ios_new\"\n (click)=\"historyBack(currentTab)\"\n [disabled]=\"currentTab.history?.length <= 1\"\n />\n <gtk-icon-button\n fontIcon=\"arrow_forward_ios\"\n (click)=\"historyForward(currentTab)\"\n [disabled]=\"currentTab.historyIndex >= (currentTab.history?.length-1)\"\n />\n </div>\n\n @if (!drawerMode) {\n <div style=\"width: 40px\"></div>\n }\n <gtk-icon-button\n fontIcon=\"sync\"\n (click)=\"onRefresh()\"\n />\n}\n\n@if (currentTab) {\n <app-breadcrumb\n style=\"flex: 1\"\n [crumbs]=\"currentTab.breadcrumb\"\n (crumbClick)=\"onBreadcrumbClick.next($event)\"\n [config]=\"config\"\n />\n}\n\n@if (!drawerMode) {\n <!-- <div style=\"flex: 1\"></div> -->\n\n <gtk-icon-button\n fontIcon=\"more_vert\"\n [ngx-menu]=\"fileOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n <div style=\"width: 8px\"></div>\n\n <!-- <gtk-icon-button\n fontIcon=\"search\"\n /> -->\n\n @if (fileManager.width > 800) {\n <div style=\"width: 100px\"></div>\n }\n\n <gtk-icon-button\n [fontIcon]=\"currentTab.viewMode == 'list' ? 'view_list' : 'grid_view'\"\n (click)=\"currentTab.viewMode = currentTab.viewMode == 'list' ? 'grid' : 'list'; fileManager.onResize()\"\n />\n\n <gtk-icon-button\n fontIcon=\"sort\"\n [ngx-menu]=\"sortOptions\"\n [ngx-menu-config]=\"{position: 'bottom'}\"\n />\n\n}\n", styles: [":host{display:flex}\n"] }]
10189
10189
  }], ctorParameters: () => [{ type: FilemanagerComponent }, { type: DialogService }, { type: Fetch }], propDecorators: { zoomTemplate: [{
10190
10190
  type: ViewChild,
10191
10191
  args: ['zoomTemplate']