@dignite-ng/expand.file-explorer 3.0.0-rc.49 → 3.0.0-rc.50

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.
@@ -1,29 +1,27 @@
1
+ /* eslint-disable @typescript-eslint/no-this-alias */
1
2
  /* eslint-disable @angular-eslint/component-selector */
2
3
  import { Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
3
4
  import { FormBuilder, Validators } from '@angular/forms';
4
5
  import * as DescriptorService from '../../proxy/dignite/file-explorer/directories';
5
6
  import { ConfirmationService, ToasterService } from '@abp/ng.theme.shared';
6
7
  import { finalize, map, of, tap } from 'rxjs';
7
- import { FileApiService } from '../../services/file-api.service';
8
8
  import { LocalizationService } from '@abp/ng.core';
9
9
  import { ValidatorsService } from '@dignite-ng/expand.core';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "../../proxy/dignite/file-explorer/directories";
12
12
  import * as i2 from "@angular/forms";
13
13
  import * as i3 from "@abp/ng.theme.shared";
14
- import * as i4 from "../../services/file-api.service";
15
- import * as i5 from "@abp/ng.core";
16
- import * as i6 from "@angular/common";
17
- import * as i7 from "@ngx-validate/core";
18
- import * as i8 from "@ng-bootstrap/ng-bootstrap";
19
- import * as i9 from "@abp/ng.components/tree";
20
- var that;
14
+ import * as i4 from "@abp/ng.core";
15
+ import * as i5 from "@angular/common";
16
+ import * as i6 from "@ngx-validate/core";
17
+ import * as i7 from "@ng-bootstrap/ng-bootstrap";
18
+ import * as i8 from "@abp/ng.components/tree";
19
+ let that;
21
20
  export class FileModalTreeComponent {
22
- constructor(_DescriptorService, fb, toaster, _FileApiService, _LocalizationService, confirmation) {
21
+ constructor(_DescriptorService, fb, toaster, _LocalizationService, confirmation) {
23
22
  this._DescriptorService = _DescriptorService;
24
23
  this.fb = fb;
25
24
  this.toaster = toaster;
26
- this._FileApiService = _FileApiService;
27
25
  this._LocalizationService = _LocalizationService;
28
26
  this.confirmation = confirmation;
29
27
  /**文件分组列表 */
@@ -96,8 +94,8 @@ export class FileModalTreeComponent {
96
94
  }
97
95
  /**递归-将列表转化为父子级结构 */
98
96
  setTheValueOfTheNodeRecursively(array, parentId = null, root) {
99
- let rootList = root || array;
100
- let result = array.filter(item => item.parentId === parentId);
97
+ const rootList = root || array;
98
+ const result = array.filter(item => item.parentId === parentId);
101
99
  result.sort((a, b) => a.order - b.order);
102
100
  result.map((el) => {
103
101
  el.title = el.name;
@@ -201,7 +199,7 @@ export class FileModalTreeComponent {
201
199
  }
202
200
  /**f分组模态框保存 */
203
201
  createOrEditSave() {
204
- let input = this.ModalDescriptorForm.value;
202
+ const input = this.ModalDescriptorForm.value;
205
203
  this.formValidation = this._ValidatorsService.getFormValidationStatus(this.ModalDescriptorForm);
206
204
  if (this._ValidatorsService.isCheckForm(this.formValidation, 'FileExplorer'))
207
205
  return;
@@ -234,13 +232,13 @@ export class FileModalTreeComponent {
234
232
  this.getFileGroupList();
235
233
  });
236
234
  }
237
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalTreeComponent, deps: [{ token: i1.FileDescriptorService }, { token: i2.FormBuilder }, { token: i3.ToasterService }, { token: i4.FileApiService }, { token: i5.LocalizationService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component }); }
238
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: FileModalTreeComponent, selector: "fe-file-modal-tree", inputs: { theSelectedTreeNode: "theSelectedTreeNode", fileContainerName: "fileContainerName" }, outputs: { nodeClick: "nodeClick", treeNodeData: "treeNodeData", lookAllBtn: "lookAllBtn" }, viewQueries: [{ propertyName: "ModalFormDescriptorSubmit", first: true, predicate: ["ModalFormDescriptorSubmit"], descendants: true }], ngImport: i0, template: "<div class=\"card-header p-0 mb-1 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0 btn-link\" role=\"button\" (click.stop)=\"onLookAllBtn()\">{{'FileExplorer::MyDirectories' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-light btn-sm ms-2\" (click.stop)=\"addDescriptorBtn()\"><i\n class=\"fas fa-plus-circle\" aria-hidden=\"true\"></i></button>\n</div>\n@if(fileGroupList.length>0){\n<abp-tree [nodes]=\"fileGroupList\" (nzExpandChange)=\"nzExpandChange($event)\" [draggable]=\"true\"\n (dropOver)=\"nzEvent($event)\" [beforeDrop]=\"beforeDrop\" (selectedNodeChange)=\"activeNode($event)\" [changeCheckboxWithNode]=\"true\" [isNodeSelected]=\"isNodeSelected\">\n\n <ng-template #menu let-node>\n <button ngbDropdownItem (click.stop)=\"addDescriptorBtn(node)\"><i\n class=\" me-1 fa fa-pencil\"></i>{{'FileExplorer::NewDirectory' | abpLocalization}}</button>\n <button ngbDropdownItem (click.stop)=\"addDescriptorBtn(node,true)\"><i\n class=\" me-1 fa fa-plus\"></i>{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem (click.stop)=\"deleteDescriptorBtn(node)\"><i\n class=\" me-1 fa fa-remove\"></i>{{'AbpUi::Delete' | abpLocalization}}</button>\n </ng-template>\n\n <ng-template abpTreeExpandedIconTemplate let-node let-origin=\"origin\">\n <i aria-hidden=\"true\" *ngIf=\"node.children.length>0\">\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"></ng-container></i>\n </ng-template>\n\n <ng-template #minusIcon>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\"\n clip-rule=\"evenodd\">\n <path\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\" />\n </svg>\n </ng-template>\n\n <ng-template #plusIcon>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\"\n clip-rule=\"evenodd\">\n <path\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\" />\n </svg>\n </ng-template>\n</abp-tree>\n\n}\n<abp-modal [(visible)]=\"ModalDescriptorOpen\" [busy]=\"ModalDescriptorBusy\"\n (visibleChange)=\"ModalDescriptorVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{theNodeBeingEdited?('AbpUi::Edit' | abpLocalization):('FileExplorer::NewDirectory' | abpLocalization)}}\n </h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"ModalDescriptorForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"ModalDescriptorForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #ModalFormDescriptorSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'FileExplorer::DirectoryName' | abpLocalization}}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [loading]=\"ModalDescriptorBusy\"\n (click)=\"ModalFormDescriptorSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [""], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i8.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i8.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "directive", type: i9.ExpandedIconTemplateDirective, selector: "[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]" }, { kind: "component", type: i9.TreeComponent, selector: "abp-tree", inputs: ["noAnimation", "draggable", "checkable", "checkStrictly", "checkedKeys", "nodes", "expandedKeys", "selectedNode", "changeCheckboxWithNode", "isNodeSelected", "beforeDrop"], outputs: ["checkedKeysChange", "expandedKeysChange", "selectedNodeChange", "dropOver", "nzExpandChange"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] }); }
235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalTreeComponent, deps: [{ token: i1.FileDescriptorService }, { token: i2.FormBuilder }, { token: i3.ToasterService }, { token: i4.LocalizationService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component }); }
236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: FileModalTreeComponent, selector: "fe-file-modal-tree", inputs: { theSelectedTreeNode: "theSelectedTreeNode", fileContainerName: "fileContainerName" }, outputs: { nodeClick: "nodeClick", treeNodeData: "treeNodeData", lookAllBtn: "lookAllBtn" }, viewQueries: [{ propertyName: "ModalFormDescriptorSubmit", first: true, predicate: ["ModalFormDescriptorSubmit"], descendants: true }], ngImport: i0, template: "<div class=\"card-header p-0 mb-1 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0 btn-link\" role=\"button\" (click.stop)=\"onLookAllBtn()\">{{'FileExplorer::MyDirectories' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-light btn-sm ms-2\" (click.stop)=\"addDescriptorBtn()\"><i\n class=\"fas fa-plus-circle\" aria-hidden=\"true\"></i></button>\n</div>\n@if(fileGroupList.length>0){\n<abp-tree [nodes]=\"fileGroupList\" (nzExpandChange)=\"nzExpandChange($event)\" [draggable]=\"true\"\n (dropOver)=\"nzEvent($event)\" [beforeDrop]=\"beforeDrop\" (selectedNodeChange)=\"activeNode($event)\" [changeCheckboxWithNode]=\"true\" [isNodeSelected]=\"isNodeSelected\">\n\n <ng-template #menu let-node>\n <button ngbDropdownItem (click.stop)=\"addDescriptorBtn(node)\"><i\n class=\" me-1 fa fa-pencil\"></i>{{'FileExplorer::NewDirectory' | abpLocalization}}</button>\n <button ngbDropdownItem (click.stop)=\"addDescriptorBtn(node,true)\"><i\n class=\" me-1 fa fa-plus\"></i>{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem (click.stop)=\"deleteDescriptorBtn(node)\"><i\n class=\" me-1 fa fa-remove\"></i>{{'AbpUi::Delete' | abpLocalization}}</button>\n </ng-template>\n\n <ng-template abpTreeExpandedIconTemplate let-node let-origin=\"origin\">\n <i aria-hidden=\"true\" *ngIf=\"node.children.length>0\">\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"></ng-container></i>\n </ng-template>\n\n <ng-template #minusIcon>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\"\n clip-rule=\"evenodd\">\n <path\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\" />\n </svg>\n </ng-template>\n\n <ng-template #plusIcon>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\"\n clip-rule=\"evenodd\">\n <path\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\" />\n </svg>\n </ng-template>\n</abp-tree>\n\n}\n<abp-modal [(visible)]=\"ModalDescriptorOpen\" [busy]=\"ModalDescriptorBusy\"\n (visibleChange)=\"ModalDescriptorVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{theNodeBeingEdited?('AbpUi::Edit' | abpLocalization):('FileExplorer::NewDirectory' | abpLocalization)}}\n </h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"ModalDescriptorForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"ModalDescriptorForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #ModalFormDescriptorSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'FileExplorer::DirectoryName' | abpLocalization}}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [loading]=\"ModalDescriptorBusy\"\n (click)=\"ModalFormDescriptorSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [""], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i6.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i7.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i7.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "directive", type: i8.ExpandedIconTemplateDirective, selector: "[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]" }, { kind: "component", type: i8.TreeComponent, selector: "abp-tree", inputs: ["noAnimation", "draggable", "checkable", "checkStrictly", "checkedKeys", "nodes", "expandedKeys", "selectedNode", "changeCheckboxWithNode", "isNodeSelected", "beforeDrop"], outputs: ["checkedKeysChange", "expandedKeysChange", "selectedNodeChange", "dropOver", "nzExpandChange"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
239
237
  }
240
238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalTreeComponent, decorators: [{
241
239
  type: Component,
242
240
  args: [{ selector: 'fe-file-modal-tree', template: "<div class=\"card-header p-0 mb-1 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0 btn-link\" role=\"button\" (click.stop)=\"onLookAllBtn()\">{{'FileExplorer::MyDirectories' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-light btn-sm ms-2\" (click.stop)=\"addDescriptorBtn()\"><i\n class=\"fas fa-plus-circle\" aria-hidden=\"true\"></i></button>\n</div>\n@if(fileGroupList.length>0){\n<abp-tree [nodes]=\"fileGroupList\" (nzExpandChange)=\"nzExpandChange($event)\" [draggable]=\"true\"\n (dropOver)=\"nzEvent($event)\" [beforeDrop]=\"beforeDrop\" (selectedNodeChange)=\"activeNode($event)\" [changeCheckboxWithNode]=\"true\" [isNodeSelected]=\"isNodeSelected\">\n\n <ng-template #menu let-node>\n <button ngbDropdownItem (click.stop)=\"addDescriptorBtn(node)\"><i\n class=\" me-1 fa fa-pencil\"></i>{{'FileExplorer::NewDirectory' | abpLocalization}}</button>\n <button ngbDropdownItem (click.stop)=\"addDescriptorBtn(node,true)\"><i\n class=\" me-1 fa fa-plus\"></i>{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem (click.stop)=\"deleteDescriptorBtn(node)\"><i\n class=\" me-1 fa fa-remove\"></i>{{'AbpUi::Delete' | abpLocalization}}</button>\n </ng-template>\n\n <ng-template abpTreeExpandedIconTemplate let-node let-origin=\"origin\">\n <i aria-hidden=\"true\" *ngIf=\"node.children.length>0\">\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"></ng-container></i>\n </ng-template>\n\n <ng-template #minusIcon>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\"\n clip-rule=\"evenodd\">\n <path\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\" />\n </svg>\n </ng-template>\n\n <ng-template #plusIcon>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\"\n clip-rule=\"evenodd\">\n <path\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\" />\n </svg>\n </ng-template>\n</abp-tree>\n\n}\n<abp-modal [(visible)]=\"ModalDescriptorOpen\" [busy]=\"ModalDescriptorBusy\"\n (visibleChange)=\"ModalDescriptorVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{theNodeBeingEdited?('AbpUi::Edit' | abpLocalization):('FileExplorer::NewDirectory' | abpLocalization)}}\n </h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"ModalDescriptorForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"ModalDescriptorForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #ModalFormDescriptorSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'FileExplorer::DirectoryName' | abpLocalization}}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [loading]=\"ModalDescriptorBusy\"\n (click)=\"ModalFormDescriptorSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>" }]
243
- }], ctorParameters: () => [{ type: i1.FileDescriptorService }, { type: i2.FormBuilder }, { type: i3.ToasterService }, { type: i4.FileApiService }, { type: i5.LocalizationService }, { type: i3.ConfirmationService }], propDecorators: { theSelectedTreeNode: [{
241
+ }], ctorParameters: () => [{ type: i1.FileDescriptorService }, { type: i2.FormBuilder }, { type: i3.ToasterService }, { type: i4.LocalizationService }, { type: i3.ConfirmationService }], propDecorators: { theSelectedTreeNode: [{
244
242
  type: Input
245
243
  }], nodeClick: [{
246
244
  type: Output
@@ -254,4 +252,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
254
252
  type: ViewChild,
255
253
  args: ['ModalFormDescriptorSubmit', { static: false }]
256
254
  }] } });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tb2RhbC10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ZpbGUtZXhwbG9yZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbW9kYWwtdHJlZS9maWxlLW1vZGFsLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tb2RhbC10cmVlL2ZpbGUtbW9kYWwtdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQWdCLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpGLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFDNUQsSUFBSSxJQUFJLENBQUM7QUFNVCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1Usa0JBQTJELEVBQzNELEVBQWUsRUFDZixPQUF1QixFQUN4QixlQUErQixFQUMvQixv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SSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztnQkFDakMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNMLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ2IsSUFBSSxDQUNILFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUNqQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTFQVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwrWEMxQm5DLHNuSUFtRVk7OzJGRHpDQyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO2tQQXNCbkIsbUJBQW1CO3NCQUQ3QixLQUFLO2dCQW1CSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFHSSxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBZ0txRCx5QkFBeUI7c0JBQW5GLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOekZvcm1hdEVtaXRFdmVudCwgTnpUcmVlTm9kZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvdHJlZSc7XG5pbXBvcnQgKiBhcyBEZXNjcmlwdG9yU2VydmljZSBmcm9tICcuLi8uLi9wcm94eS9kaWduaXRlL2ZpbGUtZXhwbG9yZXIvZGlyZWN0b3JpZXMnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE56Rm9ybWF0QmVmb3JlRHJvcEV2ZW50IH0gZnJvbSAnbmctem9ycm8tYW50ZC90cmVlJztcbmltcG9ydCB7IGZpbmFsaXplLCBtYXAsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbGVBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmlsZS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnNTZXJ2aWNlIH0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmUnO1xudmFyIHRoYXQ7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmZS1maWxlLW1vZGFsLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1tb2RhbC10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1tb2RhbC10cmVlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVNb2RhbFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfRGVzY3JpcHRvclNlcnZpY2U6IERlc2NyaXB0b3JTZXJ2aWNlLkZpbGVEZXNjcmlwdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfRmlsZUFwaVNlcnZpY2U6IEZpbGVBcGlTZXJ2aWNlLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgdGhhdCA9IHRoaXM7XG4gIH1cblxuICAvKirmlofku7bliIbnu4TliJfooaggKi9cbiAgZmlsZUdyb3VwTGlzdDogYW55W10gPSBbXTtcblxuICAvKirpgInmi6nnmoR0cmVl6IqC54K5ICovXG4gIF90aGVTZWxlY3RlZFRyZWVOb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0aGVTZWxlY3RlZFRyZWVOb2RlKHY6IGFueSkge1xuICAgIHRoaXMuX3RoZVNlbGVjdGVkVHJlZU5vZGUgPSB2O1xuXG4gICAgaWYgKHYgPT0gJycpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKirmraPlnKjnvJbovpHnmoToioLngrkgKi9cbiAgdGhlTm9kZUJlaW5nRWRpdGVkOiBhbnkgPSAnJztcblxuICAvKirlt7LlsZXlvIDnmoToioLngrkgKi9cbiAgYW5FeHBhbmRlZE5vZGU6IGFueVtdID0gW107XG5cbiAgLyoq5Zu+54mH5a655ZmoICovXG4gIF9maWxlQ29udGFpbmVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKnRyZWXoioLngrnpgInmi6nlm57osIMgKi9cbiAgQE91dHB1dCgpIG5vZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoq6I635Y+W5pWw5o2u5ZCO5Zue6LCD57uZZmlsZS1tb2RhbCAqL1xuICBAT3V0cHV0KCkgdHJlZU5vZGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKirmn6XnnIvmiYDmnInmlofku7blm57osIPlh73mlbDvvIzlnKhmaWxlLW1vZGFs5Lit5aSE55CG6YC76L6RICovXG4gIEBPdXRwdXQoKSBsb29rQWxsQnRuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmlsZUNvbnRhaW5lck5hbWUodjogc3RyaW5nKSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX2ZpbGVDb250YWluZXJOYW1lID0gdjtcbiAgICAgIC8vIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vQ2FsbGVkIGFmdGVyIG5nT25Jbml0IHdoZW4gdGhlIGNvbXBvbmVudCdzIG9yIGRpcmVjdGl2ZSdzIGNvbnRlbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCcgdG8gdGhlIGNsYXNzLlxuICAgIGlmICh0aGlzLl9maWxlQ29udGFpbmVyTmFtZSkge1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsaWNrID0gZXZlbnQgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgbG9hZERhdGEoKSB7XG4gICAgaWYgKHRoaXMuX2ZpbGVDb250YWluZXJOYW1lKSB7XG4gICAgICB0aGlzLmdldEZpbGVHcm91cExpc3QoKTtcbiAgICB9XG4gIH1cblxuICAvKirojrflj5bmlofku7bliIbnu4QgKi9cbiAgZ2V0RmlsZUdyb3VwTGlzdCgpIHtcbiAgICB0aGlzLl9EZXNjcmlwdG9yU2VydmljZVxuICAgICAgLmdldExpc3Qoe1xuICAgICAgICBjb250YWluZXJOYW1lOiB0aGlzLl9maWxlQ29udGFpbmVyTmFtZSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jIHJlcyA9PiB7XG4gICAgICAgIHRoaXMuZmlsZUdyb3VwTGlzdCA9IGF3YWl0IHRoaXMuc2V0VGhlVmFsdWVPZlRoZU5vZGVSZWN1cnNpdmVseShyZXMuaXRlbXMpO1xuICAgICAgICB0aGlzLnRyZWVOb2RlRGF0YS5lbWl0KHRoaXMuZmlsZUdyb3VwTGlzdCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKuafpeeci+aJgOacieaWh+S7tiAqL1xuICBvbkxvb2tBbGxCdG4oKSB7XG4gICAgdGhpcy5sb29rQWxsQnRuLmVtaXQoKTtcbiAgfVxuXG4gIC8qKumAkuW9ki3lsIbliJfooajovazljJbkuLrniLblrZDnuqfnu5PmnoQgKi9cbiAgc2V0VGhlVmFsdWVPZlRoZU5vZGVSZWN1cnNpdmVseShhcnJheTogYW55W10sIHBhcmVudElkOiBhbnkgPSBudWxsLCByb290PzogYW55W10pOiBhbnkge1xuICAgIGxldCByb290TGlzdCA9IHJvb3QgfHwgYXJyYXk7XG4gICAgbGV0IHJlc3VsdCA9IGFycmF5LmZpbHRlcihpdGVtID0+IGl0ZW0ucGFyZW50SWQgPT09IHBhcmVudElkKTtcbiAgICByZXN1bHQuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIHJlc3VsdC5tYXAoKGVsOiBhbnkpID0+IHtcbiAgICAgIGVsLnRpdGxlID0gZWwubmFtZTtcbiAgICAgIGVsLmtleSA9IGVsLmlkO1xuICAgICAgZWwuZW50aXR5ID0gZWwuaWQ7IC8qKiDoioLngrnlgLwgKi9cbiAgICAgIGVsLmV4cGFuZGVkID0gdGhpcy5hbkV4cGFuZGVkTm9kZS5pbmNsdWRlcyhlbC5rZXkpO1xuICAgICAgZWwuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgICAgaWYgKGVsLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZXRUaGVWYWx1ZU9mVGhlTm9kZVJlY3Vyc2l2ZWx5KGVsLmNoaWxkcmVuLCBlbC5pZCwgcm9vdExpc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKip0cmVlLeaLluaLvSAqL1xuICBuekV2ZW50KGV2ZW50OiBOekZvcm1hdEVtaXRFdmVudCk6IHZvaWQge31cblxuICAvKip0cmVlLeaLluaLvSAt6aqM6K+BKi9cbiAgYmVmb3JlRHJvcChhcmc6IE56Rm9ybWF0QmVmb3JlRHJvcEV2ZW50KSB7XG4gICAgY29uc3QgeyBwb3MsIGRyYWdOb2RlLCBub2RlIH0gPSBhcmc7XG4gICAgLy8g5Y+q5aSE55CG5pyJ5pWI55qE5ouW5ou95L2N572uXG4gICAgaWYgKHBvcyA9PT0gMCB8fCBwb3MgPT09IDEgfHwgcG9zID09PSAtMSkge1xuICAgICAgLy8g5qC55o2u5LiN5ZCM55qE5ouW5ou95L2N572u6K6h566X5Y+C5pWwXG4gICAgICBjb25zdCBwYXJlbnRJZCA9IHBvcyA9PT0gMCA/IG5vZGUua2V5IDogbm9kZS5wYXJlbnROb2RlPy5rZXkgfHwgJyc7XG5cbiAgICAgIGxldCBvcmRlcjtcbiAgICAgIGlmIChwb3MgPT09IDEpIHtcbiAgICAgICAgb3JkZXIgPSBub2RlLm9yaWdpbi5vcmRlciArIDE7XG4gICAgICB9IGVsc2UgaWYgKHBvcyA9PT0gMCkge1xuICAgICAgICBvcmRlciA9IG5vZGUub3JpZ2luLmNoaWxkcmVuLmxlbmd0aCArIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBwb3MgPT09IC0xXG4gICAgICAgIG9yZGVyID0gTWF0aC5tYXgoMCwgbm9kZS5vcmlnaW4ub3JkZXIgLSAxKTtcbiAgICAgIH1cbiAgICAgIC8vIOe7n+S4gOWkhOeQhuenu+WKqOmAu+i+kVxuICAgICAgcmV0dXJuIHRoYXQuX0Rlc2NyaXB0b3JTZXJ2aWNlLm1vdmUoZHJhZ05vZGUua2V5LCB7IHBhcmVudElkLCBvcmRlciB9KS5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhhdC5nZXRGaWxlR3JvdXBMaXN0KCkpLFxuICAgICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgfVxuXG4gIHNlbGVjdGVkTm9kZTogTnpUcmVlTm9kZVtdID0gW107XG4gIC8qKnRyZWUtLemAieaLqeiKgueCuSAqL1xuICBhY3RpdmVOb2RlKG5vZGU6IE56VHJlZU5vZGUpIHtcbiAgICBpZiAoKGV2ZW50IGFzIGFueSk/LnRhcmdldD8ubG9jYWxOYW1lID09ICdpJykgcmV0dXJuO1xuICAgIGlmICh0aGlzLl90aGVTZWxlY3RlZFRyZWVOb2RlPy5rZXkgPT0gbm9kZS5rZXkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IFtub2RlXTtcbiAgICB0aGlzLl90aGVTZWxlY3RlZFRyZWVOb2RlID0gbm9kZTtcbiAgICB0aGlzLm5vZGVDbGljay5lbWl0KG5vZGUpO1xuICB9XG5cbiAgLyoq5Yik5pat6IqC54K55piv5ZCm6YCJ5LitICovXG4gIGlzTm9kZVNlbGVjdGVkID0gZWwgPT4ge1xuICAgIHJldHVybiBlbC5rZXkgPT09IHRoaXMuX3RoZVNlbGVjdGVkVHJlZU5vZGU/LmtleTtcbiAgfTtcblxuICAvKirngrnlh7vlsZXlvIDmoJHoioLngrnlm77moIfop6blj5EgKi9cbiAgbnpFeHBhbmRDaGFuZ2UoZXZlbnQpIHtcbiAgICBsZXQgYW5FeHBhbmRlZE5vZGUgPSB0aGlzLmFuRXhwYW5kZWROb2RlO1xuICAgIGlmIChhbkV4cGFuZGVkTm9kZS5pbmNsdWRlcyhldmVudC5ub2RlLmtleSkpIHtcbiAgICAgIGFuRXhwYW5kZWROb2RlID0gYW5FeHBhbmRlZE5vZGUuZmlsdGVyKGtleSA9PiBrZXkgIT09IGV2ZW50Lm5vZGUua2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYW5FeHBhbmRlZE5vZGUucHVzaChldmVudC5ub2RlLmtleSk7XG4gICAgfVxuICAgIHRoaXMuYW5FeHBhbmRlZE5vZGUgPSBhbkV4cGFuZGVkTm9kZTtcbiAgfVxuXG4gIC8qKuWinuWKoOWIhue7hCAqL1xuICBhZGREZXNjcmlwdG9yQnRuKGl0ZW1zOiBhbnkgPSAnJywgZWRpdCA9IGZhbHNlKSB7XG4gICAgdGhpcy5Nb2RhbERlc2NyaXB0b3JPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLk1vZGFsRGVzY3JpcHRvckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNvbnRhaW5lck5hbWU6IFt0aGlzLl9maWxlQ29udGFpbmVyTmFtZSB8fCAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcGFyZW50SWQ6IFtpdGVtcz8ua2V5IHx8ICcnXSxcbiAgICB9KTtcbiAgICAvKirnvJbovpEgKi9cbiAgICBpZiAoZWRpdCkge1xuICAgICAgdGhpcy50aGVOb2RlQmVpbmdFZGl0ZWQgPSBpdGVtcy5vcmlnaW47XG4gICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIG5hbWU6IGl0ZW1zLm9yaWdpbi5uYW1lLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoq5Yig6Zmk5YiG57uEICovXG4gIGRlbGV0ZURlc2NyaXB0b3JCdG4obm9kZSkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uXG4gICAgICAud2FybignJywge1xuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgRmlsZUV4cGxvcmVyOjpEZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2VgLG5vZGUudGl0bGUpLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09ICdjb25maXJtJykge1xuICAgICAgICAgIHRoaXMuX0Rlc2NyaXB0b3JTZXJ2aWNlLmRlbGV0ZShub2RlLmtleSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvck9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoZU5vZGVCZWluZ0VkaXRlZC5rZXkgPT0gbm9kZS5rZXkpIHRoaXMudGhlTm9kZUJlaW5nRWRpdGVkID0gJyc7XG4gICAgICAgICAgICB0aGlzLmdldEZpbGVHcm91cExpc3QoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKirliIbnu4QgKi9cbiAgLyoq5qih5oCB5qGGLeeKtuaAgS3mmK/lkKbmiZPlvIAgKi9cbiAgTW9kYWxEZXNjcmlwdG9yT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKuaooeaAgeahhi1kZXNjcmlwdG9yLee5geW/meeKtuaAgS3nlKjkuo7noa7lrprmqKHmgIHnmoTnuYHlv5nnirbmgIHmmK/lkKbkuLrnnJ8gKi9cbiAgTW9kYWxEZXNjcmlwdG9yQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKuaooeaAgeahhi1kZXNjcmlwdG9yLeihqOWNlSAqL1xuICBNb2RhbERlc2NyaXB0b3JGb3JtOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgLyoq5qih5oCB5qGGLWRlc2NyaXB0b3It6KGo5Y2VLS3mjqfku7bmqKHmnb8t5Yqo5oCB6LWL5YC86KGo5Y2V5o6n5Lu2ICovXG4gIEBWaWV3Q2hpbGQoJ01vZGFsRm9ybURlc2NyaXB0b3JTdWJtaXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgTW9kYWxGb3JtRGVzY3JpcHRvclN1Ym1pdDogRWxlbWVudFJlZjtcblxuICAvKirmqKHmgIHmoYYtZGVzY3JpcHRvci3nirbmgIHmlLnlj5jlm57osIMgKi9cbiAgTW9kYWxEZXNjcmlwdG9yVmlzaWJsZUNoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yRm9ybSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudGhlTm9kZUJlaW5nRWRpdGVkID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIGZvcm1WYWxpZGF0aW9uOiBhbnkgPSAnJztcbiAgcHJpdmF0ZSBfVmFsaWRhdG9yc1NlcnZpY2UgPSBpbmplY3QoVmFsaWRhdG9yc1NlcnZpY2UpO1xuICAvKipm5YiG57uE5qih5oCB5qGG5L+d5a2YICovXG4gIGNyZWF0ZU9yRWRpdFNhdmUoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5Nb2RhbERlc2NyaXB0b3JGb3JtLnZhbHVlO1xuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5nZXRGb3JtVmFsaWRhdGlvblN0YXR1cyh0aGlzLk1vZGFsRGVzY3JpcHRvckZvcm0pO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCAnRmlsZUV4cGxvcmVyJykpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuTW9kYWxEZXNjcmlwdG9yRm9ybS52YWxpZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLk1vZGFsRGVzY3JpcHRvckJ1c3kpIHJldHVybjtcbiAgICB0aGlzLk1vZGFsRGVzY3JpcHRvckJ1c3kgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMudGhlTm9kZUJlaW5nRWRpdGVkKSB7XG4gICAgICB0aGlzLl9EZXNjcmlwdG9yU2VydmljZVxuICAgICAgICAudXBkYXRlKHRoaXMudGhlTm9kZUJlaW5nRWRpdGVkLmtleSwgaW5wdXQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yT3BlbiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yVmlzaWJsZUNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgdGhpcy5nZXRGaWxlR3JvdXBMaXN0KCk7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9EZXNjcmlwdG9yU2VydmljZVxuICAgICAgLmNyZWF0ZShpbnB1dClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5Nb2RhbERlc2NyaXB0b3JCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvclZpc2libGVDaGFuZ2UoZmFsc2UpO1xuICAgICAgICB0aGlzLmdldEZpbGVHcm91cExpc3QoKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgIHAtMCBtYi0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8aDYgY2xhc3M9XCJoNiBtYi0wIGJ0bi1saW5rXCIgcm9sZT1cImJ1dHRvblwiIChjbGljay5zdG9wKT1cIm9uTG9va0FsbEJ0bigpXCI+e3snRmlsZUV4cGxvcmVyOjpNeURpcmVjdG9yaWVzJyB8IGFicExvY2FsaXphdGlvbn19PC9oNj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIG1zLTJcIiAoY2xpY2suc3RvcCk9XCJhZGREZXNjcmlwdG9yQnRuKClcIj48aVxuICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9idXR0b24+XG48L2Rpdj5cbkBpZihmaWxlR3JvdXBMaXN0Lmxlbmd0aD4wKXtcbjxhYnAtdHJlZSBbbm9kZXNdPVwiZmlsZUdyb3VwTGlzdFwiIChuekV4cGFuZENoYW5nZSk9XCJuekV4cGFuZENoYW5nZSgkZXZlbnQpXCIgW2RyYWdnYWJsZV09XCJ0cnVlXCJcbiAgICAoZHJvcE92ZXIpPVwibnpFdmVudCgkZXZlbnQpXCIgW2JlZm9yZURyb3BdPVwiYmVmb3JlRHJvcFwiIChzZWxlY3RlZE5vZGVDaGFuZ2UpPVwiYWN0aXZlTm9kZSgkZXZlbnQpXCIgW2NoYW5nZUNoZWNrYm94V2l0aE5vZGVdPVwidHJ1ZVwiICBbaXNOb2RlU2VsZWN0ZWRdPVwiaXNOb2RlU2VsZWN0ZWRcIj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbWVudSBsZXQtbm9kZT5cbiAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrLnN0b3ApPVwiYWRkRGVzY3JpcHRvckJ0bihub2RlKVwiPjxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIgbWUtMSBmYSBmYS1wZW5jaWxcIj48L2k+e3snRmlsZUV4cGxvcmVyOjpOZXdEaXJlY3RvcnknIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrLnN0b3ApPVwiYWRkRGVzY3JpcHRvckJ0bihub2RlLHRydWUpXCI+PGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiBtZS0xIGZhIGZhLXBsdXNcIj48L2k+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrLnN0b3ApPVwiZGVsZXRlRGVzY3JpcHRvckJ0bihub2RlKVwiPjxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIgbWUtMSBmYSBmYS1yZW1vdmVcIj48L2k+e3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgYWJwVHJlZUV4cGFuZGVkSWNvblRlbXBsYXRlIGxldC1ub2RlIGxldC1vcmlnaW49XCJvcmlnaW5cIj5cbiAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgKm5nSWY9XCJub2RlLmNoaWxkcmVuLmxlbmd0aD4wXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZS5pc0V4cGFuZGVkID8gbWludXNJY29uIDogcGx1c0ljb25cIj48L25nLWNvbnRhaW5lcj48L2k+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbWludXNJY29uPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNMTEuNSAwYzYuMzQ3IDAgMTEuNSA1LjE1MyAxMS41IDExLjVzLTUuMTUzIDExLjUtMTEuNSAxMS41LTExLjUtNS4xNTMtMTEuNS0xMS41IDUuMTUzLTExLjUgMTEuNS0xMS41em0wIDFjNS43OTUgMCAxMC41IDQuNzA1IDEwLjUgMTAuNXMtNC43MDUgMTAuNS0xMC41IDEwLjUtMTAuNS00LjcwNS0xMC41LTEwLjUgNC43MDUtMTAuNSAxMC41LTEwLjV6bS02LjUgMTBoMTN2MWgtMTN2LTF6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcGx1c0ljb24+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xMS41IDBjNi4zNDcgMCAxMS41IDUuMTUzIDExLjUgMTEuNXMtNS4xNTMgMTEuNS0xMS41IDExLjUtMTEuNS01LjE1My0xMS41LTExLjUgNS4xNTMtMTEuNSAxMS41LTExLjV6bTAgMWM1Ljc5NSAwIDEwLjUgNC43MDUgMTAuNSAxMC41cy00LjcwNSAxMC41LTEwLjUgMTAuNS0xMC41LTQuNzA1LTEwLjUtMTAuNSA0LjcwNS0xMC41IDEwLjUtMTAuNXptLjUgMTBoNnYxaC02djZoLTF2LTZoLTZ2LTFoNnYtNmgxdjZ6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLXRyZWU+XG5cbn1cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJNb2RhbERlc2NyaXB0b3JPcGVuXCIgW2J1c3ldPVwiTW9kYWxEZXNjcmlwdG9yQnVzeVwiXG4gICAgKHZpc2libGVDaGFuZ2UpPVwiTW9kYWxEZXNjcmlwdG9yVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57e3RoZU5vZGVCZWluZ0VkaXRlZD8oJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbik6KCdGaWxlRXhwbG9yZXI6Ok5ld0RpcmVjdG9yeScgfCBhYnBMb2NhbGl6YXRpb24pfX1cbiAgICAgICAgPC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJSZWY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImZhIGZhLXB1bHNlIGZhLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJNb2RhbERlc2NyaXB0b3JGb3JtOyBlbHNlIGxvYWRlclJlZlwiPlxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJzaXRlcy1tb2RhbC1mb3JtXCIgI215Rm9ybT1cIm5nRm9ybVwiIFtmb3JtR3JvdXBdPVwiTW9kYWxEZXNjcmlwdG9yRm9ybVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoc3VibWl0KT1cImNyZWF0ZU9yRWRpdFNhdmUoKVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiICNNb2RhbEZvcm1EZXNjcmlwdG9yU3VibWl0IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydGaWxlRXhwbG9yZXI6OkRpcmVjdG9yeU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImVtYWlsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBbbG9hZGluZ109XCJNb2RhbERlc2NyaXB0b3JCdXN5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJNb2RhbEZvcm1EZXNjcmlwdG9yU3VibWl0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tb2RhbC10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ZpbGUtZXhwbG9yZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbW9kYWwtdHJlZS9maWxlLW1vZGFsLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tb2RhbC10cmVlL2ZpbGUtbW9kYWwtdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsdURBQXVEO0FBQ3ZELE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEtBQUssaUJBQWlCLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztBQUM1RCxJQUFJLElBQUksQ0FBQztBQU1ULE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDVSxrQkFBMkQsRUFDM0QsRUFBZSxFQUNmLE9BQXVCLEVBQ3hCLG9CQUF5QyxFQUN4QyxZQUFpQztRQUpqQyx1QkFBa0IsR0FBbEIsa0JBQWtC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QztnQkFDekMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDTCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNiLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F6UFUsc0JBQXNCO2tHQUF0QixzQkFBc0IsK1hDMUJuQyxzbklBbUVZOzsyRkR6Q0Msc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjtxTkFxQm5CLG1CQUFtQjtzQkFEN0IsS0FBSztnQkFtQkksU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0ksaUJBQWlCO3NCQUQzQixLQUFLO2dCQWdLcUQseUJBQXlCO3NCQUFuRixTQUFTO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE56Rm9ybWF0RW1pdEV2ZW50LCBOelRyZWVOb2RlIH0gZnJvbSAnbmctem9ycm8tYW50ZC90cmVlJztcbmltcG9ydCAqIGFzIERlc2NyaXB0b3JTZXJ2aWNlIGZyb20gJy4uLy4uL3Byb3h5L2RpZ25pdGUvZmlsZS1leHBsb3Jlci9kaXJlY3Rvcmllcyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTnpGb3JtYXRCZWZvcmVEcm9wRXZlbnQgfSBmcm9tICduZy16b3Jyby1hbnRkL3RyZWUnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCwgb2YsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmxldCB0aGF0O1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmUtZmlsZS1tb2RhbC10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtbW9kYWwtdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtbW9kYWwtdHJlZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlTW9kYWxUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX0Rlc2NyaXB0b3JTZXJ2aWNlOiBEZXNjcmlwdG9yU2VydmljZS5GaWxlRGVzY3JpcHRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICkge1xuICAgIHRoYXQgPSB0aGlzO1xuICB9XG5cbiAgLyoq5paH5Lu25YiG57uE5YiX6KGoICovXG4gIGZpbGVHcm91cExpc3Q6IGFueVtdID0gW107XG5cbiAgLyoq6YCJ5oup55qEdHJlZeiKgueCuSAqL1xuICBfdGhlU2VsZWN0ZWRUcmVlTm9kZTogYW55ID0gJyc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGhlU2VsZWN0ZWRUcmVlTm9kZSh2OiBhbnkpIHtcbiAgICB0aGlzLl90aGVTZWxlY3RlZFRyZWVOb2RlID0gdjtcblxuICAgIGlmICh2ID09ICcnKSB7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgLyoq5q2j5Zyo57yW6L6R55qE6IqC54K5ICovXG4gIHRoZU5vZGVCZWluZ0VkaXRlZDogYW55ID0gJyc7XG5cbiAgLyoq5bey5bGV5byA55qE6IqC54K5ICovXG4gIGFuRXhwYW5kZWROb2RlOiBhbnlbXSA9IFtdO1xuXG4gIC8qKuWbvueJh+WuueWZqCAqL1xuICBfZmlsZUNvbnRhaW5lck5hbWU6IHN0cmluZztcblxuICAvKip0cmVl6IqC54K56YCJ5oup5Zue6LCDICovXG4gIEBPdXRwdXQoKSBub2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8qKuiOt+WPluaVsOaNruWQjuWbnuiwg+e7mWZpbGUtbW9kYWwgKi9cbiAgQE91dHB1dCgpIHRyZWVOb2RlRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoq5p+l55yL5omA5pyJ5paH5Lu25Zue6LCD5Ye95pWw77yM5ZyoZmlsZS1tb2RhbOS4reWkhOeQhumAu+i+kSAqL1xuICBAT3V0cHV0KCkgbG9va0FsbEJ0biA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZpbGVDb250YWluZXJOYW1lKHY6IHN0cmluZykge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9maWxlQ29udGFpbmVyTmFtZSA9IHY7XG4gICAgICAvLyB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvL0NhbGxlZCBhZnRlciBuZ09uSW5pdCB3aGVuIHRoZSBjb21wb25lbnQncyBvciBkaXJlY3RpdmUncyBjb250ZW50IGhhcyBiZWVuIGluaXRpYWxpemVkLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQnIHRvIHRoZSBjbGFzcy5cbiAgICBpZiAodGhpcy5fZmlsZUNvbnRhaW5lck5hbWUpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDbGljayA9IGV2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gIGxvYWREYXRhKCkge1xuICAgIGlmICh0aGlzLl9maWxlQ29udGFpbmVyTmFtZSkge1xuICAgICAgdGhpcy5nZXRGaWxlR3JvdXBMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoq6I635Y+W5paH5Lu25YiG57uEICovXG4gIGdldEZpbGVHcm91cExpc3QoKSB7XG4gICAgdGhpcy5fRGVzY3JpcHRvclNlcnZpY2VcbiAgICAgIC5nZXRMaXN0KHtcbiAgICAgICAgY29udGFpbmVyTmFtZTogdGhpcy5fZmlsZUNvbnRhaW5lck5hbWUsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZShhc3luYyByZXMgPT4ge1xuICAgICAgICB0aGlzLmZpbGVHcm91cExpc3QgPSBhd2FpdCB0aGlzLnNldFRoZVZhbHVlT2ZUaGVOb2RlUmVjdXJzaXZlbHkocmVzLml0ZW1zKTtcbiAgICAgICAgdGhpcy50cmVlTm9kZURhdGEuZW1pdCh0aGlzLmZpbGVHcm91cExpc3QpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKirmn6XnnIvmiYDmnInmlofku7YgKi9cbiAgb25Mb29rQWxsQnRuKCkge1xuICAgIHRoaXMubG9va0FsbEJ0bi5lbWl0KCk7XG4gIH1cblxuICAvKirpgJLlvZIt5bCG5YiX6KGo6L2s5YyW5Li654i25a2Q57qn57uT5p6EICovXG4gIHNldFRoZVZhbHVlT2ZUaGVOb2RlUmVjdXJzaXZlbHkoYXJyYXk6IGFueVtdLCBwYXJlbnRJZDogYW55ID0gbnVsbCwgcm9vdD86IGFueVtdKTogYW55IHtcbiAgICBjb25zdCByb290TGlzdCA9IHJvb3QgfHwgYXJyYXk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXJyYXkuZmlsdGVyKGl0ZW0gPT4gaXRlbS5wYXJlbnRJZCA9PT0gcGFyZW50SWQpO1xuICAgIHJlc3VsdC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgcmVzdWx0Lm1hcCgoZWw6IGFueSkgPT4ge1xuICAgICAgZWwudGl0bGUgPSBlbC5uYW1lO1xuICAgICAgZWwua2V5ID0gZWwuaWQ7XG4gICAgICBlbC5lbnRpdHkgPSBlbC5pZDsgLyoqIOiKgueCueWAvCAqL1xuICAgICAgZWwuZXhwYW5kZWQgPSB0aGlzLmFuRXhwYW5kZWROb2RlLmluY2x1ZGVzKGVsLmtleSk7XG4gICAgICBlbC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgICBpZiAoZWwuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNldFRoZVZhbHVlT2ZUaGVOb2RlUmVjdXJzaXZlbHkoZWwuY2hpbGRyZW4sIGVsLmlkLCByb290TGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKnRyZWUt5ouW5ou9ICovXG4gIG56RXZlbnQoZXZlbnQ6IE56Rm9ybWF0RW1pdEV2ZW50KTogdm9pZCB7fVxuXG4gIC8qKnRyZWUt5ouW5ou9IC3pqozor4EqL1xuICBiZWZvcmVEcm9wKGFyZzogTnpGb3JtYXRCZWZvcmVEcm9wRXZlbnQpIHtcbiAgICBjb25zdCB7IHBvcywgZHJhZ05vZGUsIG5vZGUgfSA9IGFyZztcbiAgICAvLyDlj6rlpITnkIbmnInmlYjnmoTmi5bmi73kvY3nva5cbiAgICBpZiAocG9zID09PSAwIHx8IHBvcyA9PT0gMSB8fCBwb3MgPT09IC0xKSB7XG4gICAgICAvLyDmoLnmja7kuI3lkIznmoTmi5bmi73kvY3nva7orqHnrpflj4LmlbBcbiAgICAgIGNvbnN0IHBhcmVudElkID0gcG9zID09PSAwID8gbm9kZS5rZXkgOiBub2RlLnBhcmVudE5vZGU/LmtleSB8fCAnJztcblxuICAgICAgbGV0IG9yZGVyO1xuICAgICAgaWYgKHBvcyA9PT0gMSkge1xuICAgICAgICBvcmRlciA9IG5vZGUub3JpZ2luLm9yZGVyICsgMTtcbiAgICAgIH0gZWxzZSBpZiAocG9zID09PSAwKSB7XG4gICAgICAgIG9yZGVyID0gbm9kZS5vcmlnaW4uY2hpbGRyZW4ubGVuZ3RoICsgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBvcyA9PT0gLTFcbiAgICAgICAgb3JkZXIgPSBNYXRoLm1heCgwLCBub2RlLm9yaWdpbi5vcmRlciAtIDEpO1xuICAgICAgfVxuICAgICAgLy8g57uf5LiA5aSE55CG56e75Yqo6YC76L6RXG4gICAgICByZXR1cm4gdGhhdC5fRGVzY3JpcHRvclNlcnZpY2UubW92ZShkcmFnTm9kZS5rZXksIHsgcGFyZW50SWQsIG9yZGVyIH0pLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGF0LmdldEZpbGVHcm91cExpc3QoKSksXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoZmFsc2UpO1xuICB9XG5cbiAgc2VsZWN0ZWROb2RlOiBOelRyZWVOb2RlW10gPSBbXTtcbiAgLyoqdHJlZS0t6YCJ5oup6IqC54K5ICovXG4gIGFjdGl2ZU5vZGUobm9kZTogTnpUcmVlTm9kZSkge1xuICAgIGlmICgoZXZlbnQgYXMgYW55KT8udGFyZ2V0Py5sb2NhbE5hbWUgPT0gJ2knKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3RoZVNlbGVjdGVkVHJlZU5vZGU/LmtleSA9PSBub2RlLmtleSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gW25vZGVdO1xuICAgIHRoaXMuX3RoZVNlbGVjdGVkVHJlZU5vZGUgPSBub2RlO1xuICAgIHRoaXMubm9kZUNsaWNrLmVtaXQobm9kZSk7XG4gIH1cblxuICAvKirliKTmlq3oioLngrnmmK/lkKbpgInkuK0gKi9cbiAgaXNOb2RlU2VsZWN0ZWQgPSBlbCA9PiB7XG4gICAgcmV0dXJuIGVsLmtleSA9PT0gdGhpcy5fdGhlU2VsZWN0ZWRUcmVlTm9kZT8ua2V5O1xuICB9O1xuXG4gIC8qKueCueWHu+WxleW8gOagkeiKgueCueWbvuagh+inpuWPkSAqL1xuICBuekV4cGFuZENoYW5nZShldmVudCkge1xuICAgIGxldCBhbkV4cGFuZGVkTm9kZSA9IHRoaXMuYW5FeHBhbmRlZE5vZGU7XG4gICAgaWYgKGFuRXhwYW5kZWROb2RlLmluY2x1ZGVzKGV2ZW50Lm5vZGUua2V5KSkge1xuICAgICAgYW5FeHBhbmRlZE5vZGUgPSBhbkV4cGFuZGVkTm9kZS5maWx0ZXIoa2V5ID0+IGtleSAhPT0gZXZlbnQubm9kZS5rZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbkV4cGFuZGVkTm9kZS5wdXNoKGV2ZW50Lm5vZGUua2V5KTtcbiAgICB9XG4gICAgdGhpcy5hbkV4cGFuZGVkTm9kZSA9IGFuRXhwYW5kZWROb2RlO1xuICB9XG5cbiAgLyoq5aKe5Yqg5YiG57uEICovXG4gIGFkZERlc2NyaXB0b3JCdG4oaXRlbXM6IGFueSA9ICcnLCBlZGl0ID0gZmFsc2UpIHtcbiAgICB0aGlzLk1vZGFsRGVzY3JpcHRvck9wZW4gPSB0cnVlO1xuICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY29udGFpbmVyTmFtZTogW3RoaXMuX2ZpbGVDb250YWluZXJOYW1lIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBwYXJlbnRJZDogW2l0ZW1zPy5rZXkgfHwgJyddLFxuICAgIH0pO1xuICAgIC8qKue8lui+kSAqL1xuICAgIGlmIChlZGl0KSB7XG4gICAgICB0aGlzLnRoZU5vZGVCZWluZ0VkaXRlZCA9IGl0ZW1zLm9yaWdpbjtcbiAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgbmFtZTogaXRlbXMub3JpZ2luLm5hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKirliKDpmaTliIbnu4QgKi9cbiAgZGVsZXRlRGVzY3JpcHRvckJ0bihub2RlKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25cbiAgICAgIC53YXJuKCcnLCB7XG4gICAgICAgIGtleTogJycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBGaWxlRXhwbG9yZXI6OkRlbGV0aW9uQ29uZmlybWF0aW9uTWVzc2FnZWAsbm9kZS50aXRsZSksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgICAgdGhpcy5fRGVzY3JpcHRvclNlcnZpY2UuZGVsZXRlKG5vZGUua2V5KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRoaXMudGhlTm9kZUJlaW5nRWRpdGVkLmtleSA9PSBub2RlLmtleSkgdGhpcy50aGVOb2RlQmVpbmdFZGl0ZWQgPSAnJztcbiAgICAgICAgICAgIHRoaXMuZ2V0RmlsZUdyb3VwTGlzdCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKuWIhue7hCAqL1xuICAvKirmqKHmgIHmoYYt54q25oCBLeaYr+WQpuaJk+W8gCAqL1xuICBNb2RhbERlc2NyaXB0b3JPcGVuID0gZmFsc2U7XG5cbiAgLyoq5qih5oCB5qGGLWRlc2NyaXB0b3It57mB5b+Z54q25oCBLeeUqOS6juehruWumuaooeaAgeeahOe5geW/meeKtuaAgeaYr+WQpuS4uuecnyAqL1xuICBNb2RhbERlc2NyaXB0b3JCdXN5ID0gZmFsc2U7XG5cbiAgLyoq5qih5oCB5qGGLWRlc2NyaXB0b3It6KGo5Y2VICovXG4gIE1vZGFsRGVzY3JpcHRvckZvcm06IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKirmqKHmgIHmoYYtZGVzY3JpcHRvci3ooajljZUtLeaOp+S7tuaooeadvy3liqjmgIHotYvlgLzooajljZXmjqfku7YgKi9cbiAgQFZpZXdDaGlsZCgnTW9kYWxGb3JtRGVzY3JpcHRvclN1Ym1pdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBNb2RhbEZvcm1EZXNjcmlwdG9yU3VibWl0OiBFbGVtZW50UmVmO1xuXG4gIC8qKuaooeaAgeahhi1kZXNjcmlwdG9yLeeKtuaAgeaUueWPmOWbnuiwgyAqL1xuICBNb2RhbERlc2NyaXB0b3JWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5Nb2RhbERlc2NyaXB0b3JGb3JtID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy50aGVOb2RlQmVpbmdFZGl0ZWQgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xuICBwcml2YXRlIF9WYWxpZGF0b3JzU2VydmljZSA9IGluamVjdChWYWxpZGF0b3JzU2VydmljZSk7XG4gIC8qKmbliIbnu4TmqKHmgIHmoYbkv53lrZggKi9cbiAgY3JlYXRlT3JFZGl0U2F2ZSgpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuTW9kYWxEZXNjcmlwdG9yRm9ybS52YWx1ZTtcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uID0gdGhpcy5fVmFsaWRhdG9yc1NlcnZpY2UuZ2V0Rm9ybVZhbGlkYXRpb25TdGF0dXModGhpcy5Nb2RhbERlc2NyaXB0b3JGb3JtKTtcbiAgICBpZiAodGhpcy5fVmFsaWRhdG9yc1NlcnZpY2UuaXNDaGVja0Zvcm0odGhpcy5mb3JtVmFsaWRhdGlvbiwgJ0ZpbGVFeHBsb3JlcicpKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLk1vZGFsRGVzY3JpcHRvckZvcm0udmFsaWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5Nb2RhbERlc2NyaXB0b3JCdXN5KSByZXR1cm47XG4gICAgdGhpcy5Nb2RhbERlc2NyaXB0b3JCdXN5ID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnRoZU5vZGVCZWluZ0VkaXRlZCkge1xuICAgICAgdGhpcy5fRGVzY3JpcHRvclNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZSh0aGlzLnRoZU5vZGVCZWluZ0VkaXRlZC5rZXksIGlucHV0KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvckJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvck9wZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvclZpc2libGVDaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuZ2V0RmlsZUdyb3VwTGlzdCgpO1xuICAgICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fRGVzY3JpcHRvclNlcnZpY2VcbiAgICAgIC5jcmVhdGUoaW5wdXQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yQnVzeSA9IGZhbHNlO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvck9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Nb2RhbERlc2NyaXB0b3JWaXNpYmxlQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5nZXRGaWxlR3JvdXBMaXN0KCk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyICBwLTAgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGg2IGNsYXNzPVwiaDYgbWItMCBidG4tbGlua1wiIHJvbGU9XCJidXR0b25cIiAoY2xpY2suc3RvcCk9XCJvbkxvb2tBbGxCdG4oKVwiPnt7J0ZpbGVFeHBsb3Jlcjo6TXlEaXJlY3RvcmllcycgfCBhYnBMb2NhbGl6YXRpb259fTwvaDY+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBtcy0yXCIgKGNsaWNrLnN0b3ApPVwiYWRkRGVzY3JpcHRvckJ0bigpXCI+PGlcbiAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYnV0dG9uPlxuPC9kaXY+XG5AaWYoZmlsZUdyb3VwTGlzdC5sZW5ndGg+MCl7XG48YWJwLXRyZWUgW25vZGVzXT1cImZpbGVHcm91cExpc3RcIiAobnpFeHBhbmRDaGFuZ2UpPVwibnpFeHBhbmRDaGFuZ2UoJGV2ZW50KVwiIFtkcmFnZ2FibGVdPVwidHJ1ZVwiXG4gICAgKGRyb3BPdmVyKT1cIm56RXZlbnQoJGV2ZW50KVwiIFtiZWZvcmVEcm9wXT1cImJlZm9yZURyb3BcIiAoc2VsZWN0ZWROb2RlQ2hhbmdlKT1cImFjdGl2ZU5vZGUoJGV2ZW50KVwiIFtjaGFuZ2VDaGVja2JveFdpdGhOb2RlXT1cInRydWVcIiAgW2lzTm9kZVNlbGVjdGVkXT1cImlzTm9kZVNlbGVjdGVkXCI+XG5cbiAgICA8bmctdGVtcGxhdGUgI21lbnUgbGV0LW5vZGU+XG4gICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljay5zdG9wKT1cImFkZERlc2NyaXB0b3JCdG4obm9kZSlcIj48aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIG1lLTEgZmEgZmEtcGVuY2lsXCI+PC9pPnt7J0ZpbGVFeHBsb3Jlcjo6TmV3RGlyZWN0b3J5JyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljay5zdG9wKT1cImFkZERlc2NyaXB0b3JCdG4obm9kZSx0cnVlKVwiPjxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIgbWUtMSBmYSBmYS1wbHVzXCI+PC9pPnt7J0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljay5zdG9wKT1cImRlbGV0ZURlc2NyaXB0b3JCdG4obm9kZSlcIj48aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIG1lLTEgZmEgZmEtcmVtb3ZlXCI+PC9pPnt7J0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlIGFicFRyZWVFeHBhbmRlZEljb25UZW1wbGF0ZSBsZXQtbm9kZSBsZXQtb3JpZ2luPVwib3JpZ2luXCI+XG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiICpuZ0lmPVwibm9kZS5jaGlsZHJlbi5sZW5ndGg+MFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vZGUuaXNFeHBhbmRlZCA/IG1pbnVzSWNvbiA6IHBsdXNJY29uXCI+PC9uZy1jb250YWluZXI+PC9pPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI21pbnVzSWNvbj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTExLjUgMGM2LjM0NyAwIDExLjUgNS4xNTMgMTEuNSAxMS41cy01LjE1MyAxMS41LTExLjUgMTEuNS0xMS41LTUuMTUzLTExLjUtMTEuNSA1LjE1My0xMS41IDExLjUtMTEuNXptMCAxYzUuNzk1IDAgMTAuNSA0LjcwNSAxMC41IDEwLjVzLTQuNzA1IDEwLjUtMTAuNSAxMC41LTEwLjUtNC43MDUtMTAuNS0xMC41IDQuNzA1LTEwLjUgMTAuNS0xMC41em0tNi41IDEwaDEzdjFoLTEzdi0xelwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI3BsdXNJY29uPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNMTEuNSAwYzYuMzQ3IDAgMTEuNSA1LjE1MyAxMS41IDExLjVzLTUuMTUzIDExLjUtMTEuNSAxMS41LTExLjUtNS4xNTMtMTEuNS0xMS41IDUuMTUzLTExLjUgMTEuNS0xMS41em0wIDFjNS43OTUgMCAxMC41IDQuNzA1IDEwLjUgMTAuNXMtNC43MDUgMTAuNS0xMC41IDEwLjUtMTAuNS00LjcwNS0xMC41LTEwLjUgNC43MDUtMTAuNSAxMC41LTEwLjV6bS41IDEwaDZ2MWgtNnY2aC0xdi02aC02di0xaDZ2LTZoMXY2elwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC10cmVlPlxuXG59XG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwiTW9kYWxEZXNjcmlwdG9yT3BlblwiIFtidXN5XT1cIk1vZGFsRGVzY3JpcHRvckJ1c3lcIlxuICAgICh2aXNpYmxlQ2hhbmdlKT1cIk1vZGFsRGVzY3JpcHRvclZpc2libGVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3t0aGVOb2RlQmVpbmdFZGl0ZWQ/KCdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24pOignRmlsZUV4cGxvcmVyOjpOZXdEaXJlY3RvcnknIHwgYWJwTG9jYWxpemF0aW9uKX19XG4gICAgICAgIDwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9kYWxEZXNjcmlwdG9yRm9ybTsgZWxzZSBsb2FkZXJSZWZcIj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwic2l0ZXMtbW9kYWwtZm9ybVwiICNteUZvcm09XCJuZ0Zvcm1cIiBbZm9ybUdyb3VwXT1cIk1vZGFsRGVzY3JpcHRvckZvcm1cIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgKHN1Ym1pdCk9XCJjcmVhdGVPckVkaXRTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjTW9kYWxGb3JtRGVzY3JpcHRvclN1Ym1pdCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snRmlsZUV4cGxvcmVyOjpEaXJlY3RvcnlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2xvYWRpbmddPVwiTW9kYWxEZXNjcmlwdG9yQnVzeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiTW9kYWxGb3JtRGVzY3JpcHRvclN1Ym1pdC5uYXRpdmVFbGVtZW50LmNsaWNrKClcIj57eydBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9hYnAtbW9kYWw+Il19
@@ -1,17 +1,15 @@
1
1
  /* eslint-disable @angular-eslint/component-selector */
2
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { FileApiService } from '../../services/file-api.service';
4
3
  import { moveItemInArray } from '@angular/cdk/drag-drop';
5
4
  import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/file-api.service";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@abp/ng.core";
9
- import * as i4 from "@angular/cdk/drag-drop";
10
- import * as i5 from "../file-modal/file-modal.component";
11
- import * as i6 from "../../previews/file-preview.component";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@abp/ng.core";
7
+ import * as i3 from "@angular/cdk/drag-drop";
8
+ import * as i4 from "../file-modal/file-modal.component";
9
+ import * as i5 from "../../previews/file-preview.component";
10
+ import * as i6 from "../../pipe/format-file-size.pipe";
12
11
  export class FilePickerComponent {
13
- constructor(_FileApiService) {
14
- this._FileApiService = _FileApiService;
12
+ constructor() {
15
13
  /**是否多选 */
16
14
  this._multiple = false;
17
15
  /**图片容器 */
@@ -28,14 +26,14 @@ export class FilePickerComponent {
28
26
  this._fileContainerName = v;
29
27
  }
30
28
  ngOnChanges(changes) {
31
- let selectFormFilengOnChanges = changes.selectFormFile['currentValue'];
29
+ const selectFormFilengOnChanges = changes.selectFormFile['currentValue'];
32
30
  if (selectFormFilengOnChanges.length > 0) {
33
31
  this._fileShowTable = selectFormFilengOnChanges;
34
32
  }
35
33
  }
36
34
  /**表格选择的文件回调 */
37
35
  _selectFilefn(event) {
38
- let _fileShowTable = this._FileApiService.deepClone(event);
36
+ const _fileShowTable = structuredClone(event);
39
37
  this._fileShowTable = _fileShowTable;
40
38
  this.selectFormFile = _fileShowTable;
41
39
  this.selectedFileChange.emit(_fileShowTable);
@@ -54,13 +52,13 @@ export class FilePickerComponent {
54
52
  this.selectedFileChange.emit(this.selectFormFile);
55
53
  // this._fileShowTable.updateValueAndValidity()
56
54
  }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePickerComponent, deps: [{ token: i1.FileApiService }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FilePickerComponent, selector: "fe-file-picker", inputs: { multiple: "multiple", fileContainerName: "fileContainerName", selectFormFile: "selectFormFile" }, outputs: { selectedFileChange: "selectedFileChange" }, usesOnChanges: true, ngImport: i0, template: "<button class=\"btn btn-sm btn-dark soft ms-2 float-end\" type=\"button\"\n (click.stop)=\"ModalOpen = true\">{{'FileExplorer::SelectFile' | abpLocalization}}</button>\n\n<fe-file-modal [(visible)]=\"ModalOpen\" [selectPickerFile]=\"selectFormFile\" [multiple]=\"_multiple\"\n (selectFilefn)=\"_selectFilefn($event)\" [fileContainerName]=\"_fileContainerName\"></fe-file-modal>\n<table class=\"table\" *ngIf=\"_fileShowTable.length>0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th scope=\"col\" style=\"width: 30px;\"></th>\n <th scope=\"col\"></th>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of _fileShowTable;let i =index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <td>\n <fe-file-preview [width]=\"'80px'\" [src]=\"item.url||item.Url\" [name]=\"item.name||item.Name\"\n [type]=\"item.mimeType||item.MimeType\" [preview]=\"true\"></fe-file-preview>\n </td>\n <th scope=\"row\">\n <div>{{item.name||item.Name}}</div>\n </th>\n <td>{{_FileApiService.formatFileSize(item.Size||item.size)}}</td>\n <td>\n <button class=\"btn btn-sm p-0 btn-light \" (click.stop)=\"deleteFileTableItem(i,item)\">\n <i class=\"fas fa-trash p-2\"></i>\n </button>\n </td>\n </tr>\n </ng-container>\n </tbody>\n</table>", styles: [".table{border-collapse:collapse;table-layout:fixed}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i5.FileModalComponent, selector: "fe-file-modal", inputs: ["fileContainerName", "multiple", "limit", "visible", "selectPickerFile"], outputs: ["visibleChange", "selectFilefn"] }, { kind: "component", type: i6.FilePreviewComponent, selector: "fe-file-preview", inputs: ["width", "src", "preview", "type", "name", "className"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FilePickerComponent, selector: "fe-file-picker", inputs: { multiple: "multiple", fileContainerName: "fileContainerName", selectFormFile: "selectFormFile" }, outputs: { selectedFileChange: "selectedFileChange" }, usesOnChanges: true, ngImport: i0, template: "<button class=\"btn btn-sm btn-dark soft ms-2 float-end\" type=\"button\"\n (click.stop)=\"ModalOpen = true\">{{'FileExplorer::SelectFile' | abpLocalization}}</button>\n\n<fe-file-modal [(visible)]=\"ModalOpen\" [selectPickerFile]=\"selectFormFile\" [multiple]=\"_multiple\"\n (selectFilefn)=\"_selectFilefn($event)\" [fileContainerName]=\"_fileContainerName\"></fe-file-modal>\n<table class=\"table\" *ngIf=\"_fileShowTable.length>0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th scope=\"col\" style=\"width: 30px;\"></th>\n <th scope=\"col\"></th>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of _fileShowTable;let i =index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <td>\n <fe-file-preview [width]=\"'80px'\" [src]=\"item.url||item.Url\" [name]=\"item.name||item.Name\"\n [type]=\"item.mimeType||item.MimeType\" [preview]=\"true\"></fe-file-preview>\n </td>\n <th scope=\"row\">\n <div>{{item.name||item.Name}}</div>\n </th>\n <td>{{(item.Size||item.size)|formatFileSize}}</td>\n <td>\n <button class=\"btn btn-sm p-0 btn-light \" (click.stop)=\"deleteFileTableItem(i,item)\">\n <i class=\"fas fa-trash p-2\"></i>\n </button>\n </td>\n </tr>\n </ng-container>\n </tbody>\n</table>", styles: [".table{border-collapse:collapse;table-layout:fixed}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.FileModalComponent, selector: "fe-file-modal", inputs: ["fileContainerName", "multiple", "limit", "visible", "selectPickerFile"], outputs: ["visibleChange", "selectFilefn"] }, { kind: "component", type: i5.FilePreviewComponent, selector: "fe-file-preview", inputs: ["width", "src", "preview", "type", "name", "className"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i6.FormatFileSizePipe, name: "formatFileSize" }] }); }
59
57
  }
60
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePickerComponent, decorators: [{
61
59
  type: Component,
62
- args: [{ selector: 'fe-file-picker', template: "<button class=\"btn btn-sm btn-dark soft ms-2 float-end\" type=\"button\"\n (click.stop)=\"ModalOpen = true\">{{'FileExplorer::SelectFile' | abpLocalization}}</button>\n\n<fe-file-modal [(visible)]=\"ModalOpen\" [selectPickerFile]=\"selectFormFile\" [multiple]=\"_multiple\"\n (selectFilefn)=\"_selectFilefn($event)\" [fileContainerName]=\"_fileContainerName\"></fe-file-modal>\n<table class=\"table\" *ngIf=\"_fileShowTable.length>0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th scope=\"col\" style=\"width: 30px;\"></th>\n <th scope=\"col\"></th>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of _fileShowTable;let i =index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <td>\n <fe-file-preview [width]=\"'80px'\" [src]=\"item.url||item.Url\" [name]=\"item.name||item.Name\"\n [type]=\"item.mimeType||item.MimeType\" [preview]=\"true\"></fe-file-preview>\n </td>\n <th scope=\"row\">\n <div>{{item.name||item.Name}}</div>\n </th>\n <td>{{_FileApiService.formatFileSize(item.Size||item.size)}}</td>\n <td>\n <button class=\"btn btn-sm p-0 btn-light \" (click.stop)=\"deleteFileTableItem(i,item)\">\n <i class=\"fas fa-trash p-2\"></i>\n </button>\n </td>\n </tr>\n </ng-container>\n </tbody>\n</table>", styles: [".table{border-collapse:collapse;table-layout:fixed}\n"] }]
63
- }], ctorParameters: () => [{ type: i1.FileApiService }], propDecorators: { multiple: [{
60
+ args: [{ selector: 'fe-file-picker', template: "<button class=\"btn btn-sm btn-dark soft ms-2 float-end\" type=\"button\"\n (click.stop)=\"ModalOpen = true\">{{'FileExplorer::SelectFile' | abpLocalization}}</button>\n\n<fe-file-modal [(visible)]=\"ModalOpen\" [selectPickerFile]=\"selectFormFile\" [multiple]=\"_multiple\"\n (selectFilefn)=\"_selectFilefn($event)\" [fileContainerName]=\"_fileContainerName\"></fe-file-modal>\n<table class=\"table\" *ngIf=\"_fileShowTable.length>0\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <thead>\n <tr>\n <th scope=\"col\" style=\"width: 30px;\"></th>\n <th scope=\"col\"></th>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of _fileShowTable;let i =index\">\n <tr cdkDrag cdkDragLockAxis=\"y\" [cdkDragData]=\"item\">\n <td>\n <div class=\"drag-handle\" cdkDragHandle>\n <span class=\"bi bi-arrows-move fs-5\"></span>\n </div>\n </td>\n <td>\n <fe-file-preview [width]=\"'80px'\" [src]=\"item.url||item.Url\" [name]=\"item.name||item.Name\"\n [type]=\"item.mimeType||item.MimeType\" [preview]=\"true\"></fe-file-preview>\n </td>\n <th scope=\"row\">\n <div>{{item.name||item.Name}}</div>\n </th>\n <td>{{(item.Size||item.size)|formatFileSize}}</td>\n <td>\n <button class=\"btn btn-sm p-0 btn-light \" (click.stop)=\"deleteFileTableItem(i,item)\">\n <i class=\"fas fa-trash p-2\"></i>\n </button>\n </td>\n </tr>\n </ng-container>\n </tbody>\n</table>", styles: [".table{border-collapse:collapse;table-layout:fixed}\n"] }]
61
+ }], propDecorators: { multiple: [{
64
62
  type: Input
65
63
  }], fileContainerName: [{
66
64
  type: Input
@@ -69,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
69
67
  }], selectedFileChange: [{
70
68
  type: Output
71
69
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFDVSxlQUErQjtRQUEvQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFNekMsVUFBVTtRQUNWLGNBQVMsR0FBWSxLQUFLLENBQUE7UUFNMUIsVUFBVTtRQUNWLHVCQUFrQixHQUFXLFFBQVEsQ0FBQTtRQWdCM0IsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUVqRCxtQkFBYyxHQUFVLEVBQUUsQ0FBQTtRQVUxQixpQkFBaUI7UUFDakIsY0FBUyxHQUFZLEtBQUssQ0FBQTtJQXhDMUIsQ0FBQztJQUtELElBQ1csUUFBUSxDQUFDLENBQVU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELElBQ1csaUJBQWlCLENBQUMsQ0FBUztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFLRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSx5QkFBeUIsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3RFLElBQUkseUJBQXlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcseUJBQXlCLENBQUE7UUFDakQsQ0FBQztJQUNILENBQUM7SUFNRCxlQUFlO0lBQ2YsYUFBYSxDQUFDLEtBQVk7UUFDeEIsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBS0QsYUFBYTtJQUNiLG1CQUFtQixDQUFDLENBQUMsRUFBRSxJQUFJO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUE7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsWUFBWTtJQUNWLElBQUksQ0FBQyxLQUFVO1FBQ2IsZUFBZSxDQUNiLElBQUksQ0FBQyxjQUFjLEVBQ25CLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxZQUFZLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUE7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDakQsK0NBQStDO0lBQ2pELENBQUM7OEdBbkVRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhPQ1ZoQyw2OERBdUNROzsyRkQ3QkssbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjttRkFrQmYsUUFBUTtzQkFEbEIsS0FBSztnQkFRSyxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFTSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbGUtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZlLWZpbGUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfRmlsZUFwaVNlcnZpY2U6IEZpbGVBcGlTZXJ2aWNlLFxuICApIHtcblxuICB9XG5cblxuICAvKirmmK/lkKblpJrpgIkgKi9cbiAgX211bHRpcGxlOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtdWx0aXBsZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSB2O1xuICB9XG5cbiAgLyoq5Zu+54mH5a655ZmoICovXG4gIF9maWxlQ29udGFpbmVyTmFtZTogc3RyaW5nID0gJ0ltYWdlcydcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWxlQ29udGFpbmVyTmFtZSh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWxlQ29udGFpbmVyTmFtZSA9IHY7XG4gIH1cblxuICAvKirlt7LpgInlrprnmoTmlofku7YgKi9cbiAgQElucHV0KCkgc2VsZWN0Rm9ybUZpbGU6IGFueVtdXG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGxldCBzZWxlY3RGb3JtRmlsZW5nT25DaGFuZ2VzID0gY2hhbmdlcy5zZWxlY3RGb3JtRmlsZVsnY3VycmVudFZhbHVlJ11cbiAgICBpZiAoc2VsZWN0Rm9ybUZpbGVuZ09uQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9maWxlU2hvd1RhYmxlID0gc2VsZWN0Rm9ybUZpbGVuZ09uQ2hhbmdlc1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBfZmlsZVNob3dUYWJsZTogYW55W10gPSBbXVxuXG4gIC8qKuihqOagvOmAieaLqeeahOaWh+S7tuWbnuiwgyAqL1xuICBfc2VsZWN0RmlsZWZuKGV2ZW50OiBhbnlbXSkge1xuICAgIGxldCBfZmlsZVNob3dUYWJsZSA9IHRoaXMuX0ZpbGVBcGlTZXJ2aWNlLmRlZXBDbG9uZShldmVudClcbiAgICB0aGlzLl9maWxlU2hvd1RhYmxlID0gX2ZpbGVTaG93VGFibGVcbiAgICB0aGlzLnNlbGVjdEZvcm1GaWxlID0gX2ZpbGVTaG93VGFibGVcbiAgICB0aGlzLnNlbGVjdGVkRmlsZUNoYW5nZS5lbWl0KF9maWxlU2hvd1RhYmxlKVxuICB9XG5cbiAgLyoq5qih5oCB5qGGLeeKtuaAgS3mmK/lkKbmiZPlvIAgKi9cbiAgTW9kYWxPcGVuOiBib29sZWFuID0gZmFsc2VcblxuICAvKirliKDpmaTmlofku7booajmoLzpobkgKi9cbiAgZGVsZXRlRmlsZVRhYmxlSXRlbShpLCBmaWxlKSB7XG4gICAgdGhpcy5fZmlsZVNob3dUYWJsZS5zcGxpY2UoaSwgMSlcbiAgICB0aGlzLnNlbGVjdEZvcm1GaWxlID0gdGhpcy5fZmlsZVNob3dUYWJsZVxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlQ2hhbmdlLmVtaXQoW10pXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdEZvcm1GaWxlKVxuICB9XG4gIC8qKuiwg+aVtOihqOagvOS9jee9riAqL1xuICAgIGRyb3AoZXZlbnQ6IGFueSkge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICB0aGlzLl9maWxlU2hvd1RhYmxlLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdEZvcm1GaWxlID0gdGhpcy5fZmlsZVNob3dUYWJsZVxuICAgICAgdGhpcy5zZWxlY3RlZEZpbGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdEZvcm1GaWxlKVxuICAgICAgLy8gdGhpcy5fZmlsZVNob3dUYWJsZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGFyayBzb2Z0IG1zLTIgZmxvYXQtZW5kXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrLnN0b3ApPVwiTW9kYWxPcGVuID0gdHJ1ZVwiPnt7J0ZpbGVFeHBsb3Jlcjo6U2VsZWN0RmlsZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuXG48ZmUtZmlsZS1tb2RhbCBbKHZpc2libGUpXT1cIk1vZGFsT3BlblwiIFtzZWxlY3RQaWNrZXJGaWxlXT1cInNlbGVjdEZvcm1GaWxlXCIgW211bHRpcGxlXT1cIl9tdWx0aXBsZVwiXG4gICAgKHNlbGVjdEZpbGVmbik9XCJfc2VsZWN0RmlsZWZuKCRldmVudClcIiBbZmlsZUNvbnRhaW5lck5hbWVdPVwiX2ZpbGVDb250YWluZXJOYW1lXCI+PC9mZS1maWxlLW1vZGFsPlxuPHRhYmxlIGNsYXNzPVwidGFibGVcIiAqbmdJZj1cIl9maWxlU2hvd1RhYmxlLmxlbmd0aD4wXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIHN0eWxlPVwid2lkdGg6IDMwcHg7XCI+PC90aD5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPjwvdGg+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj57eydGaWxlRXhwbG9yZXI6OkZpbGVOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC90aD5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPnt7J0ZpbGVFeHBsb3Jlcjo6RmlsZVNpemUnIHwgYWJwTG9jYWxpemF0aW9ufX08L3RoPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfZmlsZVNob3dUYWJsZTtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgIDx0ciBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIiBbY2RrRHJhZ0RhdGFdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctaGFuZGxlXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmUgZnMtNVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZS1maWxlLXByZXZpZXcgW3dpZHRoXT1cIic4MHB4J1wiIFtzcmNdPVwiaXRlbS51cmx8fGl0ZW0uVXJsXCIgW25hbWVdPVwiaXRlbS5uYW1lfHxpdGVtLk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS5taW1lVHlwZXx8aXRlbS5NaW1lVHlwZVwiIFtwcmV2aWV3XT1cInRydWVcIj48L2ZlLWZpbGUtcHJldmlldz5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7aXRlbS5uYW1lfHxpdGVtLk5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkPnt7X0ZpbGVBcGlTZXJ2aWNlLmZvcm1hdEZpbGVTaXplKGl0ZW0uU2l6ZXx8aXRlbS5zaXplKX19PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIHAtMCBidG4tbGlnaHQgXCIgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRmlsZVRhYmxlSXRlbShpLGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10cmFzaCBwLTJcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuPC90YWJsZT4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9FLFVBQVU7UUFDVixjQUFTLEdBQUcsS0FBSyxDQUFBO1FBTWpCLFVBQVU7UUFDVix1QkFBa0IsR0FBRyxRQUFRLENBQUE7UUFnQm5CLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7UUFFakQsbUJBQWMsR0FBVSxFQUFFLENBQUE7UUFVMUIsaUJBQWlCO1FBQ2pCLGNBQVMsR0FBRSxLQUFLLENBQUE7S0FvQmpCO0lBdkRDLElBQ1csUUFBUSxDQUFDLENBQVU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlELElBQ1csaUJBQWlCLENBQUMsQ0FBUztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFLRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3hFLElBQUkseUJBQXlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcseUJBQXlCLENBQUE7UUFDakQsQ0FBQztJQUNILENBQUM7SUFNRCxlQUFlO0lBQ2YsYUFBYSxDQUFDLEtBQVk7UUFDeEIsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUtELGFBQWE7SUFDYixtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsSUFBSTtRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUNELFlBQVk7SUFDVixJQUFJLENBQUMsS0FBVTtRQUNiLGVBQWUsQ0FDYixJQUFJLENBQUMsY0FBYyxFQUNuQixLQUFLLENBQUMsYUFBYSxFQUNuQixLQUFLLENBQUMsWUFBWSxDQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2pELCtDQUErQztJQUNqRCxDQUFDOzhHQTFEUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4T0NUaEMsODdEQXVDUTs7MkZEOUJLLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7OEJBU2YsUUFBUTtzQkFEbEIsS0FBSztnQkFRSyxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFTSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmUtZmlsZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXBpY2tlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIC8qKuaYr+WQpuWkmumAiSAqL1xuICBfbXVsdGlwbGUgPSBmYWxzZVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG11bHRpcGxlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tdWx0aXBsZSA9IHY7XG4gIH1cblxuICAvKirlm77niYflrrnlmaggKi9cbiAgX2ZpbGVDb250YWluZXJOYW1lID0gJ0ltYWdlcydcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWxlQ29udGFpbmVyTmFtZSh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWxlQ29udGFpbmVyTmFtZSA9IHY7XG4gIH1cblxuICAvKirlt7LpgInlrprnmoTmlofku7YgKi9cbiAgQElucHV0KCkgc2VsZWN0Rm9ybUZpbGU6IGFueVtdXG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdEZvcm1GaWxlbmdPbkNoYW5nZXMgPSBjaGFuZ2VzLnNlbGVjdEZvcm1GaWxlWydjdXJyZW50VmFsdWUnXVxuICAgIGlmIChzZWxlY3RGb3JtRmlsZW5nT25DaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2ZpbGVTaG93VGFibGUgPSBzZWxlY3RGb3JtRmlsZW5nT25DaGFuZ2VzXG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIF9maWxlU2hvd1RhYmxlOiBhbnlbXSA9IFtdXG5cbiAgLyoq6KGo5qC86YCJ5oup55qE5paH5Lu25Zue6LCDICovXG4gIF9zZWxlY3RGaWxlZm4oZXZlbnQ6IGFueVtdKSB7XG4gICAgY29uc3QgX2ZpbGVTaG93VGFibGUgPSBzdHJ1Y3R1cmVkQ2xvbmUoZXZlbnQpXG4gICAgdGhpcy5fZmlsZVNob3dUYWJsZSA9IF9maWxlU2hvd1RhYmxlXG4gICAgdGhpcy5zZWxlY3RGb3JtRmlsZSA9IF9maWxlU2hvd1RhYmxlXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVDaGFuZ2UuZW1pdChfZmlsZVNob3dUYWJsZSlcbiAgfVxuXG4gIC8qKuaooeaAgeahhi3nirbmgIEt5piv5ZCm5omT5byAICovXG4gIE1vZGFsT3Blbj0gZmFsc2VcblxuICAvKirliKDpmaTmlofku7booajmoLzpobkgKi9cbiAgZGVsZXRlRmlsZVRhYmxlSXRlbShpLCBmaWxlKSB7XG4gICAgdGhpcy5fZmlsZVNob3dUYWJsZS5zcGxpY2UoaSwgMSlcbiAgICB0aGlzLnNlbGVjdEZvcm1GaWxlID0gdGhpcy5fZmlsZVNob3dUYWJsZVxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlQ2hhbmdlLmVtaXQoW10pXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdEZvcm1GaWxlKVxuICB9XG4gIC8qKuiwg+aVtOihqOagvOS9jee9riAqL1xuICAgIGRyb3AoZXZlbnQ6IGFueSkge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICB0aGlzLl9maWxlU2hvd1RhYmxlLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdEZvcm1GaWxlID0gdGhpcy5fZmlsZVNob3dUYWJsZVxuICAgICAgdGhpcy5zZWxlY3RlZEZpbGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdEZvcm1GaWxlKVxuICAgICAgLy8gdGhpcy5fZmlsZVNob3dUYWJsZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGFyayBzb2Z0IG1zLTIgZmxvYXQtZW5kXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrLnN0b3ApPVwiTW9kYWxPcGVuID0gdHJ1ZVwiPnt7J0ZpbGVFeHBsb3Jlcjo6U2VsZWN0RmlsZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuXG48ZmUtZmlsZS1tb2RhbCBbKHZpc2libGUpXT1cIk1vZGFsT3BlblwiIFtzZWxlY3RQaWNrZXJGaWxlXT1cInNlbGVjdEZvcm1GaWxlXCIgW211bHRpcGxlXT1cIl9tdWx0aXBsZVwiXG4gICAgKHNlbGVjdEZpbGVmbik9XCJfc2VsZWN0RmlsZWZuKCRldmVudClcIiBbZmlsZUNvbnRhaW5lck5hbWVdPVwiX2ZpbGVDb250YWluZXJOYW1lXCI+PC9mZS1maWxlLW1vZGFsPlxuPHRhYmxlIGNsYXNzPVwidGFibGVcIiAqbmdJZj1cIl9maWxlU2hvd1RhYmxlLmxlbmd0aD4wXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIHN0eWxlPVwid2lkdGg6IDMwcHg7XCI+PC90aD5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPjwvdGg+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj57eydGaWxlRXhwbG9yZXI6OkZpbGVOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC90aD5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPnt7J0ZpbGVFeHBsb3Jlcjo6RmlsZVNpemUnIHwgYWJwTG9jYWxpemF0aW9ufX08L3RoPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PC90aD5cbiAgICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfZmlsZVNob3dUYWJsZTtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgIDx0ciBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIiBbY2RrRHJhZ0RhdGFdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctaGFuZGxlXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmUgZnMtNVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZS1maWxlLXByZXZpZXcgW3dpZHRoXT1cIic4MHB4J1wiIFtzcmNdPVwiaXRlbS51cmx8fGl0ZW0uVXJsXCIgW25hbWVdPVwiaXRlbS5uYW1lfHxpdGVtLk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS5taW1lVHlwZXx8aXRlbS5NaW1lVHlwZVwiIFtwcmV2aWV3XT1cInRydWVcIj48L2ZlLWZpbGUtcHJldmlldz5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7aXRlbS5uYW1lfHxpdGVtLk5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkPnt7KGl0ZW0uU2l6ZXx8aXRlbS5zaXplKXxmb3JtYXRGaWxlU2l6ZX19PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIHAtMCBidG4tbGlnaHQgXCIgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRmlsZVRhYmxlSXRlbShpLGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10cmFzaCBwLTJcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuPC90YWJsZT4iXX0=
@@ -14,6 +14,7 @@ import { FileExplorerViewComponent } from './components/dynamic-form/file-explor
14
14
  import { TreeModule } from '@abp/ng.components/tree';
15
15
  import { GetDirectoryNamePipe } from './pipe/get-directory-name.pipe';
16
16
  import { DragDropModule } from '@angular/cdk/drag-drop';
17
+ import { FormatFileSizePipe } from './pipe/format-file-size.pipe';
17
18
  import * as i0 from "@angular/core";
18
19
  export class FileExplorerModule {
19
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -35,13 +36,23 @@ export class FileExplorerModule {
35
36
  FileExplorerRoutingModule,
36
37
  TreeModule,
37
38
  GetDirectoryNamePipe,
38
- DragDropModule], exports: [FileEditComponent,
39
+ DragDropModule,
40
+ FormatFileSizePipe], exports: [FileEditComponent,
39
41
  FilePickerComponent,
40
42
  FileModalComponent,
41
43
  FileModalTreeComponent,
42
44
  FileDomeComponent,
43
45
  FilePreviewComponent] }); }
44
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, imports: [FormsModule,
46
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, providers: [
47
+ FormatFileSizePipe,
48
+ // GetImageUrlPipe
49
+ // // [Required]
50
+ // ListService,
51
+ // // [Optional]
52
+ // // Provide this token if you want a different debounce time.
53
+ // // Default is 300. Cannot be 0. Any value below 100 is not recommended.
54
+ // { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
55
+ ], imports: [FormsModule,
45
56
  CoreModule,
46
57
  ThemeSharedModule,
47
58
  ReactiveFormsModule,
@@ -78,6 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
78
89
  TreeModule,
79
90
  GetDirectoryNamePipe,
80
91
  DragDropModule,
92
+ FormatFileSizePipe,
81
93
  ],
82
94
  exports: [
83
95
  FileEditComponent,
@@ -86,18 +98,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
86
98
  FileModalTreeComponent,
87
99
  FileDomeComponent,
88
100
  FilePreviewComponent,
101
+ // FormatFileSizePipe
89
102
  // FileExplorerConfigComponent,
90
103
  // FileExplorerControlComponent,
91
104
  ],
92
105
  providers: [
93
- // GetImageUrlPipe
94
- // // [Required]
95
- // ListService,
96
- // // [Optional]
97
- // // Provide this token if you want a different debounce time.
98
- // // Default is 300. Cannot be 0. Any value below 100 is not recommended.
99
- // { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
106
+ FormatFileSizePipe,
107
+ // GetImageUrlPipe
108
+ // // [Required]
109
+ // ListService,
110
+ // // [Optional]
111
+ // // Provide this token if you want a different debounce time.
112
+ // // Default is 300. Cannot be 0. Any value below 100 is not recommended.
113
+ // { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
100
114
  ],
101
115
  }]
102
116
  }] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1leHBsb3Jlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9maWxlLWV4cGxvcmVyL3NyYy9saWIvZmlsZS1leHBsb3Jlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUF5QixNQUFNLGNBQWMsQ0FBQztBQUM1SixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUNySCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQStDdEQsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsaUJBM0MzQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQiwyQkFBMkI7WUFDM0IsNEJBQTRCO1lBQzVCLHlCQUF5QixhQUd6QixXQUFXO1lBQ1gsVUFBVTtZQUNWLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixxQkFBcUI7WUFDckIseUJBQXlCO1lBQ3pCLFVBQVU7WUFDVixvQkFBb0I7WUFDcEIsY0FBYyxhQUdkLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixpQkFBaUI7WUFDakIsb0JBQW9COytHQWNYLGtCQUFrQixZQWhDM0IsV0FBVztZQUNYLFVBQVU7WUFDVixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1oscUJBQXFCO1lBQ3JCLHlCQUF5QjtZQUN6QixVQUFVO1lBRVYsY0FBYzs7MkZBc0JMLGtCQUFrQjtrQkE3QzlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IsNEJBQTRCO3dCQUM1Qix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsVUFBVTt3QkFDVixvQkFBb0I7d0JBQ3BCLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLCtCQUErQjt3QkFDL0IsZ0NBQWdDO3FCQUNqQztvQkFDRCxTQUFTLEVBQUU7b0JBQ1Qsa0JBQWtCO29CQUNsQixnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsZ0JBQWdCO29CQUNoQiwrREFBK0Q7b0JBQy9ELDBFQUEwRTtvQkFDMUUsd0RBQXdEO3FCQUN6RDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE56VHJlZU1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvdHJlZSc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgRmlsZUV4cGxvcmVyUm91dGluZ01vZHVsZSB9IGZyb20gJy4vZmlsZS1leHBsb3Jlci1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBGaWxlRWRpdENvbXBvbmVudCwgRmlsZVBpY2tlckNvbXBvbmVudCwgRmlsZU1vZGFsQ29tcG9uZW50LCBGaWxlTW9kYWxUcmVlQ29tcG9uZW50LCBGaWxlRG9tZUNvbXBvbmVudCwgZmllbEZpZWxkQ29udHJvbEdyb3VwIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEZpbGVQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9wcmV2aWV3cy9maWxlLXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVFeHBsb3JlckNvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmlsZS1leHBsb3Jlci9maWxlLWV4cGxvcmVyLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZUV4cGxvcmVyQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmlsZS1leHBsb3Jlci9maWxlLWV4cGxvcmVyLWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVFeHBsb3JlclZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2ZpbGUtZXhwbG9yZXIvZmlsZS1leHBsb3Jlci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL3RyZWUnO1xuaW1wb3J0IHsgR2V0RGlyZWN0b3J5TmFtZVBpcGUgfSBmcm9tICcuL3BpcGUvZ2V0LWRpcmVjdG9yeS1uYW1lLnBpcGUnO1xuaW1wb3J0IHtEcmFnRHJvcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZpbGVFZGl0Q29tcG9uZW50LFxuICAgIEZpbGVQaWNrZXJDb21wb25lbnQsXG4gICAgRmlsZU1vZGFsQ29tcG9uZW50LFxuICAgIEZpbGVNb2RhbFRyZWVDb21wb25lbnQsXG4gICAgRmlsZURvbWVDb21wb25lbnQsXG4gICAgRmlsZVByZXZpZXdDb21wb25lbnQsXG4gICAgRmlsZUV4cGxvcmVyQ29uZmlnQ29tcG9uZW50LFxuICAgIEZpbGVFeHBsb3JlckNvbnRyb2xDb21wb25lbnQsXG4gICAgRmlsZUV4cGxvcmVyVmlld0NvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvcmVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgICBOelRyZWVNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICAgIEZpbGVFeHBsb3JlclJvdXRpbmdNb2R1bGUsXG4gICAgVHJlZU1vZHVsZSxcbiAgICBHZXREaXJlY3RvcnlOYW1lUGlwZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEZpbGVFZGl0Q29tcG9uZW50LFxuICAgIEZpbGVQaWNrZXJDb21wb25lbnQsXG4gICAgRmlsZU1vZGFsQ29tcG9uZW50LFxuICAgIEZpbGVNb2RhbFRyZWVDb21wb25lbnQsXG4gICAgRmlsZURvbWVDb21wb25lbnQsXG4gICAgRmlsZVByZXZpZXdDb21wb25lbnQsXG4gICAgLy8gRmlsZUV4cGxvcmVyQ29uZmlnQ29tcG9uZW50LFxuICAgIC8vIEZpbGVFeHBsb3JlckNvbnRyb2xDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIC8vIEdldEltYWdlVXJsUGlwZVxuICAgIC8vIC8vIFtSZXF1aXJlZF1cbiAgICAvLyBMaXN0U2VydmljZSxcbiAgICAvLyAvLyBbT3B0aW9uYWxdXG4gICAgLy8gLy8gUHJvdmlkZSB0aGlzIHRva2VuIGlmIHlvdSB3YW50IGEgZGlmZmVyZW50IGRlYm91bmNlIHRpbWUuXG4gICAgLy8gLy8gRGVmYXVsdCBpcyAzMDAuIENhbm5vdCBiZSAwLiBBbnkgdmFsdWUgYmVsb3cgMTAwIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICAvLyB7IHByb3ZpZGU6IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgdXNlVmFsdWU6IDUwMCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRXhwbG9yZXJNb2R1bGUge1xuXG59XG4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1leHBsb3Jlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9maWxlLWV4cGxvcmVyL3NyYy9saWIvZmlsZS1leHBsb3Jlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3JILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBa0RsRSxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixpQkE5QzNCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLDJCQUEyQjtZQUMzQiw0QkFBNEI7WUFDNUIseUJBQXlCLGFBR3pCLFdBQVc7WUFDWCxVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsVUFBVTtZQUNWLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2Qsa0JBQWtCLGFBR2xCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixpQkFBaUI7WUFDakIsb0JBQW9COytHQWdCWCxrQkFBa0IsYUFYbEI7WUFDVCxrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLCtEQUErRDtZQUMvRCwwRUFBMEU7WUFDMUUsd0RBQXdEO1NBQ3pELFlBakNDLFdBQVc7WUFDWCxVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsVUFBVTtZQUVWLGNBQWM7OzJGQXlCTCxrQkFBa0I7a0JBaEQ5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLDRCQUE0Qjt3QkFDNUIseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLFVBQVU7d0JBQ1Ysb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsK0JBQStCO3dCQUMvQixnQ0FBZ0M7cUJBQ2pDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsK0RBQStEO3dCQUMvRCwwRUFBMEU7d0JBQzFFLHdEQUF3RDtxQkFDekQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOelRyZWVNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3RyZWUnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IEZpbGVFeHBsb3JlclJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2ZpbGUtZXhwbG9yZXItcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgRmlsZUVkaXRDb21wb25lbnQsIEZpbGVQaWNrZXJDb21wb25lbnQsIEZpbGVNb2RhbENvbXBvbmVudCwgRmlsZU1vZGFsVHJlZUNvbXBvbmVudCwgRmlsZURvbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRmlsZVByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3ByZXZpZXdzL2ZpbGUtcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZUV4cGxvcmVyQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9maWxlLWV4cGxvcmVyL2ZpbGUtZXhwbG9yZXItY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlRXhwbG9yZXJDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9maWxlLWV4cGxvcmVyL2ZpbGUtZXhwbG9yZXItY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZUV4cGxvcmVyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmlsZS1leHBsb3Jlci9maWxlLWV4cGxvcmVyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvdHJlZSc7XG5pbXBvcnQgeyBHZXREaXJlY3RvcnlOYW1lUGlwZSB9IGZyb20gJy4vcGlwZS9nZXQtZGlyZWN0b3J5LW5hbWUucGlwZSc7XG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IEZvcm1hdEZpbGVTaXplUGlwZSB9IGZyb20gJy4vcGlwZS9mb3JtYXQtZmlsZS1zaXplLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaWxlRWRpdENvbXBvbmVudCxcbiAgICBGaWxlUGlja2VyQ29tcG9uZW50LFxuICAgIEZpbGVNb2RhbENvbXBvbmVudCxcbiAgICBGaWxlTW9kYWxUcmVlQ29tcG9uZW50LFxuICAgIEZpbGVEb21lQ29tcG9uZW50LFxuICAgIEZpbGVQcmV2aWV3Q29tcG9uZW50LFxuICAgIEZpbGVFeHBsb3JlckNvbmZpZ0NvbXBvbmVudCxcbiAgICBGaWxlRXhwbG9yZXJDb250cm9sQ29tcG9uZW50LFxuICAgIEZpbGVFeHBsb3JlclZpZXdDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgTnpUcmVlTW9kdWxlLFxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcbiAgICBGaWxlRXhwbG9yZXJSb3V0aW5nTW9kdWxlLFxuICAgIFRyZWVNb2R1bGUsXG4gICAgR2V0RGlyZWN0b3J5TmFtZVBpcGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgRm9ybWF0RmlsZVNpemVQaXBlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRmlsZUVkaXRDb21wb25lbnQsXG4gICAgRmlsZVBpY2tlckNvbXBvbmVudCxcbiAgICBGaWxlTW9kYWxDb21wb25lbnQsXG4gICAgRmlsZU1vZGFsVHJlZUNvbXBvbmVudCxcbiAgICBGaWxlRG9tZUNvbXBvbmVudCxcbiAgICBGaWxlUHJldmlld0NvbXBvbmVudCxcbiAgICAvLyBGb3JtYXRGaWxlU2l6ZVBpcGVcbiAgICAvLyBGaWxlRXhwbG9yZXJDb25maWdDb21wb25lbnQsXG4gICAgLy8gRmlsZUV4cGxvcmVyQ29udHJvbENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRm9ybWF0RmlsZVNpemVQaXBlLFxuICAgIC8vIEdldEltYWdlVXJsUGlwZVxuICAgIC8vIC8vIFtSZXF1aXJlZF1cbiAgICAvLyBMaXN0U2VydmljZSxcbiAgICAvLyAvLyBbT3B0aW9uYWxdXG4gICAgLy8gLy8gUHJvdmlkZSB0aGlzIHRva2VuIGlmIHlvdSB3YW50IGEgZGlmZmVyZW50IGRlYm91bmNlIHRpbWUuXG4gICAgLy8gLy8gRGVmYXVsdCBpcyAzMDAuIENhbm5vdCBiZSAwLiBBbnkgdmFsdWUgYmVsb3cgMTAwIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICAvLyB7IHByb3ZpZGU6IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgdXNlVmFsdWU6IDUwMCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRXhwbG9yZXJNb2R1bGUge1xuXG59XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * 转换文件大小单位 输入k
5
+ * @description 用于转换文件大小单位 输入k
6
+ * @returns {string} 文件大小单位 输入k
7
+ */
8
+ export class FormatFileSizePipe {
9
+ transform(value, ...args) {
10
+ return this.get(value);
11
+ }
12
+ /**转换文件大小单位 输入k */
13
+ get(bytes) {
14
+ const units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
15
+ let size = bytes;
16
+ let unitIndex = 0;
17
+ while (size >= 1024 && unitIndex < units.length - 1) {
18
+ size /= 1024;
19
+ unitIndex++;
20
+ }
21
+ // 保留两位小数,四舍五入
22
+ size = size.toFixed(1);
23
+ return `${size} ${units[unitIndex]}`;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FormatFileSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
26
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: FormatFileSizePipe, isStandalone: true, name: "formatFileSize" }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FormatFileSizePipe, decorators: [{
29
+ type: Pipe,
30
+ args: [{
31
+ name: 'formatFileSize',
32
+ standalone: true
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbGUtc2l6ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZmlsZS1leHBsb3Jlci9zcmMvbGliL3BpcGUvZm9ybWF0LWZpbGUtc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRDs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixTQUFTLENBQUMsS0FBYyxFQUFFLEdBQUcsSUFBZTtRQUMxQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUdELGtCQUFrQjtJQUNsQixHQUFHLENBQUMsS0FBVTtRQUNaLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLElBQUksR0FBTyxLQUFLLENBQUM7UUFDckIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLElBQUksSUFBSSxDQUFDO1lBQ2IsU0FBUyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsY0FBYztRQUNkLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3RCLE9BQU8sR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs4R0FuQlUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiDovazmjaLmlofku7blpKflsI/ljZXkvY0g6L6T5YWlayBcclxuICogQGRlc2NyaXB0aW9uIOeUqOS6jui9rOaNouaWh+S7tuWkp+Wwj+WNleS9jSDovpPlhaVrXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IOaWh+S7tuWkp+Wwj+WNleS9jSDovpPlhaVrXHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2Zvcm1hdEZpbGVTaXplJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXRGaWxlU2l6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pOiB1bmtub3duIHtcclxuICAgIHJldHVybiB0aGlzLmdldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBcclxuICAvKirovazmjaLmlofku7blpKflsI/ljZXkvY0g6L6T5YWlayAqL1xyXG4gIGdldChieXRlczogYW55KSB7XHJcbiAgICBjb25zdCB1bml0cyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcclxuICAgIGxldCBzaXplOmFueSA9IGJ5dGVzO1xyXG4gICAgbGV0IHVuaXRJbmRleCA9IDA7XHJcbiAgICB3aGlsZSAoc2l6ZSA+PSAxMDI0ICYmIHVuaXRJbmRleCA8IHVuaXRzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgc2l6ZSAvPSAxMDI0O1xyXG4gICAgICB1bml0SW5kZXgrKztcclxuICAgIH1cclxuICAgIC8vIOS/neeVmeS4pOS9jeWwj+aVsO+8jOWbm+iIjeS6lOWFpVxyXG4gICAgc2l6ZSA9IHNpemUudG9GaXhlZCgxKVxyXG4gICAgcmV0dXJuIGAke3NpemV9ICR7dW5pdHNbdW5pdEluZGV4XX1gO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -4,7 +4,5 @@
4
4
  export * from './lib/file-explorer.module';
5
5
  export * from './lib/components/dynamic-form/form-control-group';
6
6
  export * from './lib/components';
7
- // export * from './lib/services';
8
- // export * from './lib/proxy';
9
7
  export * from './lib/previews';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2ZpbGUtZXhwbG9yZXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFHSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxrQ0FBa0M7QUFDbEMsK0JBQStCO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGZpbGUtZXhwbG9yZXJcbiAqL1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtZXhwbG9yZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2Zvcm0tY29udHJvbC1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3h5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByZXZpZXdzJztcbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2ZpbGUtZXhwbG9yZXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFHSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBmaWxlLWV4cGxvcmVyXG4gKi9cblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLWV4cGxvcmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9mb3JtLWNvbnRyb2wtZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcmV2aWV3cyc7XG4iXX0=