uitec-ng-upload-order 1.0.11 → 1.0.12

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.
@@ -15,6 +15,7 @@ export class UiUploadOrderComponent {
15
15
  this.instantUpload = true;
16
16
  this.onRemove = new EventEmitter();
17
17
  this.onAdded = new EventEmitter();
18
+ this.onAllAdded = new EventEmitter();
18
19
  this.onActivate = new EventEmitter();
19
20
  this.onInit = new EventEmitter();
20
21
  this.onMaxReached = new EventEmitter();
@@ -136,6 +137,16 @@ export class UiUploadOrderComponent {
136
137
  const formattedName = event.file.serverId.replace(/["\[\]]/g, '');
137
138
  this.onAdded.emit(formattedName);
138
139
  }
140
+ //Só funciona quando não tem arquivos iniciais
141
+ pondHandleAllFilesAdded(event) {
142
+ const filesList = [];
143
+ const files = event.pond.getFiles();
144
+ files.forEach((file) => {
145
+ let formattedName = file.serverId.replace(/["\[\]]/g, '');
146
+ filesList.push(formattedName);
147
+ });
148
+ this.onAllAdded.emit(filesList);
149
+ }
139
150
  pondHandleActivateFile(event) {
140
151
  this.onActivate.emit(event);
141
152
  this.lightBox && this.openLightBox(event.file.filenameWithoutExtension);
@@ -209,10 +220,10 @@ export class UiUploadOrderComponent {
209
220
  }
210
221
  }
211
222
  UiUploadOrderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, deps: [{ token: i1.Lightbox }], target: i0.ɵɵFactoryTarget.Component });
212
- UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", url: "url", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload" }, outputs: { onRemove: "onRemove", onAdded: "onAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected" }, viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "component", type: i2.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }] });
223
+ UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", url: "url", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload" }, outputs: { onRemove: "onRemove", onAdded: "onAdded", onAllAdded: "onAllAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected" }, viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "component", type: i2.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }] });
213
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, decorators: [{
214
225
  type: Component,
215
- args: [{ selector: 'ui-upload-order', template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
226
+ args: [{ selector: 'ui-upload-order', template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
216
227
  }], ctorParameters: function () { return [{ type: i1.Lightbox }]; }, propDecorators: { uploadObservable: [{
217
228
  type: Input
218
229
  }], url: [{
@@ -235,6 +246,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
235
246
  type: Output
236
247
  }], onAdded: [{
237
248
  type: Output
249
+ }], onAllAdded: [{
250
+ type: Output
238
251
  }], onActivate: [{
239
252
  type: Output
240
253
  }], onInit: [{
@@ -249,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
249
262
  type: ViewChild,
250
263
  args: ["myPond"]
251
264
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXVwbG9hZC1vcmRlci9zcmMvbGliL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS11cGxvYWQtb3JkZXIvc3JjL2xpYi91aS11cGxvYWQtb3JkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUVsRCxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7O0FBT2hELE1BQU0sT0FBTyxzQkFBc0I7SUF1Qi9CLFlBQW9CLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFqQjlCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBRXJCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFFN0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDckMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQzlDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUN0RCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQy9DLGVBQVUsR0FB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O2dCQUM5QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDOztvSEE1T1Esc0JBQXNCO3dHQUF0QixzQkFBc0IsK2tCQ1huQywyZkFNQTs0RkRLYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksaUJBQWlCOytGQUtsQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRWMsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZpbGVQb25kQ29tcG9uZW50LCB9IGZyb20gXCJuZ3gtZmlsZXBvbmRcIjtcclxuaW1wb3J0IHsgRmlsZVBvbmQsIEZpbGVQb25kRmlsZSwgRmlsZVBvbmRPcHRpb25zIH0gZnJvbSBcImZpbGVwb25kXCI7XHJcbmltcG9ydCB7IElBbGJ1bSwgTGlnaHRib3ggfSBmcm9tICduZ3gtbGlnaHRib3gnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3VpLXVwbG9hZC1vcmRlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVVwbG9hZE9yZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSB1cGxvYWRPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gICAgcHJpdmF0ZSBldmVudHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxyXG5cclxuICAgIEBJbnB1dCgpIHVybDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaW5pdGlhbEZpbGVzOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHJlb3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgbWF4RmlsZXM6IG51bWJlciA9IDY7XHJcbiAgICBASW5wdXQoKSB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGxpZ2h0Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGluc3RhbnRVcGxvYWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIG9uQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlUG9uZEZpbGU+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlUG9uZE9wdGlvbnNbXCJmaWxlc1wiXT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbk1heFJlYWNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlT3JkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVQb25kRmlsZVtdPigpO1xyXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwibXlQb25kXCIpIG15UG9uZDogRmlsZVBvbmRDb21wb25lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfbGlnaHRib3g6IExpZ2h0Ym94KSB7IH1cclxuXHJcbiAgICBwdWJsaWMgcG9uZDogRmlsZVBvbmQ7XHJcbiAgICBwdWJsaWMgcG9uZE9wdGlvbnM6IEZpbGVQb25kT3B0aW9ucztcclxuICAgIHB1YmxpYyBwb25kRmlsZXM6IEZpbGVQb25kT3B0aW9uc1tcImZpbGVzXCJdID0gW107XHJcbiAgICBwdWJsaWMgYWxidW06IElBbGJ1bVtdID0gW107XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wb25kT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgYWxsb3dNdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgICAgICAgbGFiZWxJZGxlOiAnQXJyYXN0ZSBzZXVzIGFycXVpdm9zIG91IDxzcGFuIGNsYXNzPVwiZmlsZXBvbmQtLWxhYmVsLWFjdGlvblwiPmNsaXF1ZSBhcXVpPC9zcGFuPiBwYXJhIHNlbGVjaW9uYXIuJyxcclxuICAgICAgICAgICAgYWxsb3dSZW9yZGVyOiB0aGlzLnJlb3JkZXIsXHJcbiAgICAgICAgICAgIG1heEZpbGVzOiB0aGlzLm1heEZpbGVzLFxyXG4gICAgICAgICAgICBhY2NlcHRlZEZpbGVUeXBlczogWydpbWFnZS8qJ10sXHJcbiAgICAgICAgICAgIGluc3RhbnRVcGxvYWQ6IHRoaXMuaW5zdGFudFVwbG9hZCxcclxuICAgICAgICAgICAgYWxsb3dQcm9jZXNzOiB0aGlzLmluc3RhbnRVcGxvYWQsXHJcbiAgICAgICAgICAgIGRyb3BWYWxpZGF0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgICBpY29uUmVtb3ZlOiBgPHN2ZyB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE1IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxtYXNrIGlkPVwibWFzazBfMzcwNjdfMzQxNDZcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNlwiPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiMC4xMzA4NTlcIiB5PVwiMC42MzE1OTJcIiB3aWR0aD1cIjE0LjczNjhcIiBoZWlnaHQ9XCIxNC43MzY4XCIgZmlsbD1cIiNEOUQ5RDlcIi8+XHJcbiAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgPGcgbWFzaz1cInVybCgjbWFzazBfMzcwNjdfMzQxNDYpXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC40MyAxMy41MjYzQzQuMDkyMjggMTMuNTI2MyAzLjgwMzE3IDEzLjQwNiAzLjU2MjY3IDEzLjE2NTVDMy4zMjIxNyAxMi45MjUgMy4yMDE5MyAxMi42MzU5IDMuMjAxOTMgMTIuMjk4MlY0LjMxNTc0QzMuMDI3OTUgNC4zMTU3NCAyLjg4MjEyIDQuMjU2ODkgMi43NjQ0MyA0LjEzOTJDMi42NDY3NCA0LjAyMTUxIDIuNTg3ODkgMy44NzU2OCAyLjU4Nzg5IDMuNzAxN0MyLjU4Nzg5IDMuNTI3NzMgMi42NDY3NCAzLjM4MTg5IDIuNzY0NDMgMy4yNjQyQzIuODgyMTIgMy4xNDY1MSAzLjAyNzk1IDMuMDg3NjcgMy4yMDE5MyAzLjA4NzY3SDUuNjU4MDdDNS42NTgwNyAyLjkxMzY5IDUuNzE2OTEgMi43Njc4NiA1LjgzNDYgMi42NTAxN0M1Ljk1MjI5IDIuNTMyNDggNi4wOTgxMiAyLjQ3MzYzIDYuMjcyMSAyLjQ3MzYzSDguNzI4MjRDOC45MDIyMiAyLjQ3MzYzIDkuMDQ4MDUgMi41MzI0OCA5LjE2NTc0IDIuNjUwMTdDOS4yODM0MyAyLjc2Nzg2IDkuMzQyMjggMi45MTM2OSA5LjM0MjI4IDMuMDg3NjdIMTEuNzk4NEMxMS45NzI0IDMuMDg3NjcgMTIuMTE4MiAzLjE0NjUxIDEyLjIzNTkgMy4yNjQyQzEyLjM1MzYgMy4zODE4OSAxMi40MTI1IDMuNTI3NzMgMTIuNDEyNSAzLjcwMTdDMTIuNDEyNSAzLjg3NTY4IDEyLjM1MzYgNC4wMjE1MSAxMi4yMzU5IDQuMTM5MkMxMi4xMTgyIDQuMjU2ODkgMTEuOTcyNCA0LjMxNTc0IDExLjc5ODQgNC4zMTU3NFYxMi4yOTgyQzExLjc5ODQgMTIuNjM1OSAxMS42NzgyIDEyLjkyNSAxMS40Mzc3IDEzLjE2NTVDMTEuMTk3MiAxMy40MDYgMTAuOTA4MSAxMy41MjYzIDEwLjU3MDMgMTMuNTI2M0g0LjQzWk00LjQzIDQuMzE1NzRWMTIuMjk4MkgxMC41NzAzVjQuMzE1NzRINC40M1pNNy41MDAxNyA5LjE2NjYyTDguNjY2ODQgMTAuMzMzM0M4Ljc4OTY1IDEwLjQ0NTkgOC45MzU0OCAxMC41MDIxIDkuMTA0MzQgMTAuNTAyMUM5LjI3MzIgMTAuNTAyMSA5LjQxMzkxIDEwLjQ0NTkgOS41MjY0OSAxMC4zMzMzQzkuNjQ5MjkgMTAuMjEwNSA5LjcxMDcgMTAuMDY0NiA5LjcxMDcgOS44OTU3OEM5LjcxMDcgOS43MjY5MiA5LjY0OTI5IDkuNTg2MjEgOS41MjY0OSA5LjQ3MzYzTDguMzU5ODIgOC4zMDY5N0w5LjUyNjQ5IDcuMTQwM0M5LjY0OTI5IDcuMDE3NDkgOS43MTA3IDYuODcxNjYgOS43MTA3IDYuNzAyOEM5LjcxMDcgNi41MzM5NCA5LjY0OTI5IDYuMzkzMjIgOS41MjY0OSA2LjI4MDY1QzkuNDEzOTEgNi4xNTc4NCA5LjI3MzIgNi4wOTY0NCA5LjEwNDM0IDYuMDk2NDRDOC45MzU0OCA2LjA5NjQ0IDguNzg5NjUgNi4xNTc4NCA4LjY2Njg0IDYuMjgwNjVMNy41MDAxNyA3LjQ0NzMyTDYuMzMzNSA2LjI4MDY1QzYuMjIwOTMgNi4xNTc4NCA2LjA4MDIyIDYuMDk2NDQgNS45MTEzNiA2LjA5NjQ0QzUuNzQyNSA2LjA5NjQ0IDUuNTk2NjYgNi4xNTc4NCA1LjQ3Mzg2IDYuMjgwNjVDNS4zNjEyOCA2LjM5MzIyIDUuMzA1IDYuNTMzOTQgNS4zMDUgNi43MDI4QzUuMzA1IDYuODcxNjYgNS4zNjEyOCA3LjAxNzQ5IDUuNDczODYgNy4xNDAzTDYuNjQwNTIgOC4zMDY5N0w1LjQ3Mzg2IDkuNDczNjNDNS4zNjEyOCA5LjU4NjIxIDUuMzA1IDkuNzI2OTIgNS4zMDUgOS44OTU3OEM1LjMwNSAxMC4wNjQ2IDUuMzYxMjggMTAuMjEwNSA1LjQ3Mzg2IDEwLjMzMzNDNS41OTY2NiAxMC40NDU5IDUuNzQyNSAxMC41MDIxIDUuOTExMzYgMTAuNTAyMUM2LjA4MDIyIDEwLjUwMjEgNi4yMjA5MyAxMC40NDU5IDYuMzMzNSAxMC4zMzMzTDcuNTAwMTcgOS4xNjY2MlpcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgIDwvZz48L3N2Zz5gLFxyXG4gICAgICAgICAgICBzdHlsZUJ1dHRvblJlbW92ZUl0ZW1Qb3NpdGlvbjogJ3JpZ2h0JyxcclxuICAgICAgICAgICAgaW1hZ2VSZXNpemVNb2RlOiAnY29udGFpbicsXHJcbiAgICAgICAgICAgIHN0eWxlSXRlbVBhbmVsQXNwZWN0UmF0aW86ICcwLjc1JyxcclxuICAgICAgICAgICAgaXRlbUluc2VydExvY2F0aW9uOiAnYWZ0ZXInLFxyXG4gICAgICAgICAgICBjcmVkaXRzOiBmYWxzZSxcclxuICAgICAgICAgICAgc2VydmVyOiB7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzOiAoZmllbGROYW1lLCBmaWxlLCBtZXRhZGF0YSwgbG9hZCwgZXJyb3IsIHByb2dyZXNzLCBhYm9ydCwgdHJhbnNmZXIsIG9wdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBmaWVsZE5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGlucHV0IGZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZmlsZSBpcyB0aGUgYWN0dWFsIGZpbGUgb2JqZWN0IHRvIHNlbmRcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmaWVsZE5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lm9wZW4oJ1BPU1QnLCB0aGlzLnVybCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNob3VsZCBjYWxsIHRoZSBwcm9ncmVzcyBtZXRob2QgdG8gdXBkYXRlIHRoZSBwcm9ncmVzcyB0byAxMDAlIGJlZm9yZSBjYWxsaW5nIGxvYWRcclxuICAgICAgICAgICAgICAgICAgICAvLyBTZXR0aW5nIGNvbXB1dGFibGUgdG8gZmFsc2Ugc3dpdGNoZXMgdGhlIGxvYWRpbmcgaW5kaWNhdG9yIHRvIGluZmluaXRlIG1vZGVcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnVwbG9hZC5vbnByb2dyZXNzID0gKGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MoZS5sZW5ndGhDb21wdXRhYmxlLCBlLmxvYWRlZCwgZS50b3RhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2hvdWxkIGNhbGwgdGhlIGxvYWQgbWV0aG9kIHdoZW4gZG9uZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgc2VydmVyIGZpbGUgaWRcclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNlcnZlciBmaWxlIGlkIGlzIHRoZW4gdXNlZCBsYXRlciBvbiB3aGVuIHJldmVydGluZyBvciByZXN0b3JpbmcgYSBmaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gc28geW91ciBzZXJ2ZXIga25vd3Mgd2hpY2ggZmlsZSB0byByZXR1cm4gd2l0aG91dCBleHBvc2luZyB0aGF0IGluZm8gdG8gdGhlIGNsaWVudFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPj0gMjAwICYmIHJlcXVlc3Quc3RhdHVzIDwgMzAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbG9hZCBtZXRob2QgYWNjZXB0cyBlaXRoZXIgYSBzdHJpbmcgKGlkKSBvciBhbiBvYmplY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQocmVxdWVzdC5yZXNwb25zZVRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FuIGNhbGwgdGhlIGVycm9yIG1ldGhvZCBpZiBzb21ldGhpbmcgaXMgd3JvbmcsIHNob3VsZCBleGl0IGFmdGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcignb2ggbm8nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2VuZChmb3JtRGF0YSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNob3VsZCBleHBvc2UgYW4gYWJvcnQgbWV0aG9kIHNvIHRoZSByZXF1ZXN0IGNhbiBiZSBjYW5jZWxsZWRcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhYm9ydDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBlbnRlcmVkIGlmIHRoZSB1c2VyIGhhcyB0YXBwZWQgdGhlIGNhbmNlbCBidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYWJvcnQoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZXQgRmlsZVBvbmQga25vdyB0aGUgcmVxdWVzdCBoYXMgYmVlbiBjYW5jZWxsZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFib3J0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBsb2FkOiAoc291cmNlLCBsb2FkLCBlcnJvciwgcHJvZ3Jlc3MsIGFib3J0LCBoZWFkZXJzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG15UmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHNvdXJjZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2gobXlSZXF1ZXN0KS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKS50aGVuKGJ1ZmZlciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgZmlsZSBleHRlbnNpb24gZnJvbSB0aGUgc291cmNlIFVSTFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHNvdXJjZS5zcGxpdCgnLicpLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWFwIGZpbGUgZXh0ZW5zaW9ucyB0byBNSU1FIHR5cGVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW1lVHlwZU1hcCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2VicCc6ICdpbWFnZS93ZWJwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanBnJzogJ2ltYWdlL2pwZWcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqcGVnJzogJ2ltYWdlL2pwZWcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbmcnOiAnaW1hZ2UvcG5nJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgb3RoZXIgc3VwcG9ydGVkIGltYWdlIHR5cGVzIGFzIG5lZWRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVUeXBlID0gbWltZVR5cGVNYXBbZmlsZUV4dGVuc2lvbl0gfHwgY29udGVudFR5cGUgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbXlCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogZmlsZVR5cGUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkKG15QmxvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0VSUk9SOiAnLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW50VXBsb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzU3Vic2NyaXB0aW9uID0gdGhpcy51cGxvYWRPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwbG9hZEZpbGVzKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pbml0aWFsRmlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5wb25kRmlsZXMgPSB0aGlzLmluaXRpYWxGaWxlcy5tYXAoKGl0ZW06IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IGl0ZW0sXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbG9jYWwnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbnRVcGxvYWQpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZUluaXQoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMub25Jbml0LmVtaXQodGhpcy5wb25kRmlsZXMpXHJcblxyXG4gICAgICAgIHRoaXMucG9uZCA9IGV2ZW50LnBvbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZUFkZEZpbGUoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE5hbWUgPSBldmVudC5maWxlLnNlcnZlcklkLnJlcGxhY2UoL1tcIlxcW1xcXV0vZywgJycpO1xyXG4gICAgICAgIHRoaXMub25BZGRlZC5lbWl0KGZvcm1hdHRlZE5hbWUpXHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZUFjdGl2YXRlRmlsZShldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vbkFjdGl2YXRlLmVtaXQoZXZlbnQpO1xyXG4gICAgICAgIHRoaXMubGlnaHRCb3ggJiYgdGhpcy5vcGVuTGlnaHRCb3goZXZlbnQuZmlsZS5maWxlbmFtZVdpdGhvdXRFeHRlbnNpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHBvbmRIYW5kbGVVcGRhdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZmlsbEFsYnVtKGV2ZW50Lml0ZW1zKVxyXG4gICAgfVxyXG5cclxuICAgIHBvbmRIYW5kbGVSZW1vdmUoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGxldCBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgICAgIGlmIChldmVudC5maWxlLnNvdXJjZSBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgICAgICAgZmlsZU5hbWUgPSBldmVudC5maWxlLnNlcnZlcklkPy5yZXBsYWNlKC9bXCJcXFtcXF1dL2csICcnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmaWxlTmFtZSA9IGV2ZW50LmZpbGU/LmZpbGVuYW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KGZpbGVOYW1lKVxyXG4gICAgfVxyXG5cclxuICAgIG9uUmVvcmRlckZpbGVzKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLmZpbGxBbGJ1bShldmVudC5pdGVtcywgdHJ1ZSlcclxuICAgICAgICBsZXQgaXRlbXNMaXN0ID0gZXZlbnQuaXRlbXMubWFwKChpdGVtOiBGaWxlUG9uZEZpbGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0uc291cmNlIGluc3RhbmNlb2YgRmlsZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uc2VydmVySWQucmVwbGFjZSgvW1wiXFxbXFxdXS9nLCAnJyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5maWxlbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLm9uUmVPcmRlci5lbWl0KGl0ZW1zTGlzdClcclxuICAgIH1cclxuXHJcbiAgICB3YXJuaW5nKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBpZiAoZXZlbnQuZXJyb3IuY29kZSA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25NYXhSZWFjaGVkLmVtaXQoYExpbWl0ZSBkZSBBcnF1aXZvcyBhdGluZ2lkby4gVm9jw6ogcG9kZSBpbnNlcmlyIHVtIHRvdGFsIGRlICR7dGhpcy5tYXhGaWxlc30gYXJxdWl2b3MuYClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb3BlbkxpZ2h0Qm94KGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmFsYnVtLm1hcChmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS5jYXB0aW9uOyB9KS5pbmRleE9mKGZpbGVOYW1lKTtcclxuICAgICAgICB0aGlzLl9saWdodGJveC5vcGVuKHRoaXMuYWxidW0sIGluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBmaWxsQWxidW0oZmlsZXM6IFtdLCByZU9yZGVyPzogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09IHRoaXMuYWxidW0ubGVuZ3RoIHx8IHJlT3JkZXIpIHtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHByZUFsYnVtID0gYXdhaXQgUHJvbWlzZS5hbGwoZmlsZXMubWFwKGFzeW5jIChmaWxlOiBGaWxlUG9uZEZpbGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBmaWxlVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZpbGUuc291cmNlIGluc3RhbmNlb2YgRmlsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVVcmwgPSBhd2FpdCB0aGlzLnJlYWRGaWxlQXN5bmMoZmlsZS5zb3VyY2UpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWxlVXJsID0gZmlsZS5zb3VyY2UudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYzogZmlsZVVybCxcclxuICAgICAgICAgICAgICAgICAgICBjYXB0aW9uOiBmaWxlLmZpbGVuYW1lV2l0aG91dEV4dGVuc2lvbixcclxuICAgICAgICAgICAgICAgICAgICB0aHVtYjogJydcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuYWxidW0gPSBwcmVBbGJ1bTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVhZEZpbGVBc3luYyhmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVXJsID0gcmVhZGVyLnJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBkYXRhVXJsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZpbGVVcmwpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwbG9hZEZpbGVzKCkge1xyXG4gICAgICAgIHRoaXMucG9uZC5wcm9jZXNzRmlsZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tIGFwcC5jb21wb25lbnQuaHRtbCAtLT5cclxuPGZpbGUtcG9uZCAjbXlQb25kIG5hbWU9J1VwbG9hZEZvcm1baW1hZ2VtXVtdJyBbY2xhc3MuZmlsZS1wb250LXRyYW5zcGFyZW50XT1cInRyYW5zcGFyZW50XCIgW29wdGlvbnNdPVwicG9uZE9wdGlvbnNcIlxyXG4gICAgKG9uaW5pdCk9XCJwb25kSGFuZGxlSW5pdCgkZXZlbnQpXCIgW2ZpbGVzXT1cInBvbmRGaWxlc1wiIChvbnVwZGF0ZWZpbGVzKT1cInBvbmRIYW5kbGVVcGRhdGUoJGV2ZW50KVwiXHJcbiAgICAob25hY3RpdmF0ZWZpbGUpPVwicG9uZEhhbmRsZUFjdGl2YXRlRmlsZSgkZXZlbnQpXCIgKG9ucmVtb3ZlZmlsZSk9XCJwb25kSGFuZGxlUmVtb3ZlKCRldmVudClcIlxyXG4gICAgKG9ucmVvcmRlcmZpbGVzKT1cIm9uUmVvcmRlckZpbGVzKCRldmVudClcIiAob253YXJuaW5nKT1cIndhcm5pbmcoJGV2ZW50KVwiXHJcbiAgICAob25wcm9jZXNzZmlsZSk9XCJwb25kSGFuZGxlQWRkRmlsZSgkZXZlbnQpXCIgLz5cclxuIl19
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXVwbG9hZC1vcmRlci9zcmMvbGliL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS11cGxvYWQtb3JkZXIvc3JjL2xpYi91aS11cGxvYWQtb3JkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUVsRCxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7O0FBT2hELE1BQU0sT0FBTyxzQkFBc0I7SUF3Qi9CLFlBQW9CLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFsQjlCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBRXJCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFFN0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDckMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDMUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQzlDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUN0RCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsY0FBUyxHQUFH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QUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRmlsZVBvbmRDb21wb25lbnQsIH0gZnJvbSBcIm5neC1maWxlcG9uZFwiO1xyXG5pbXBvcnQgeyBGaWxlUG9uZCwgRmlsZVBvbmRGaWxlLCBGaWxlUG9uZE9wdGlvbnMgfSBmcm9tIFwiZmlsZXBvbmRcIjtcclxuaW1wb3J0IHsgSUFsYnVtLCBMaWdodGJveCB9IGZyb20gJ25neC1saWdodGJveCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndWktdXBsb2FkLW9yZGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS11cGxvYWQtb3JkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVpVXBsb2FkT3JkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIHVwbG9hZE9ic2VydmFibGU6IE9ic2VydmFibGU8dm9pZD47XHJcbiAgICBwcml2YXRlIGV2ZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uXHJcblxyXG4gICAgQElucHV0KCkgdXJsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpbml0aWFsRmlsZXM6IHN0cmluZ1tdO1xyXG4gICAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcmVvcmRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtYXhGaWxlczogbnVtYmVyID0gNjtcclxuICAgIEBJbnB1dCgpIHRyYW5zcGFyZW50OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbGlnaHRCb3g6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgaW5zdGFudFVwbG9hZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQE91dHB1dCgpIG9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25BZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIG9uQWxsQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xyXG4gICAgQE91dHB1dCgpIG9uQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVQb25kRmlsZT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVQb25kT3B0aW9uc1tcImZpbGVzXCJdPigpO1xyXG4gICAgQE91dHB1dCgpIG9uTWF4UmVhY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIG9uUmVPcmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVBvbmRGaWxlW10+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJteVBvbmRcIikgbXlQb25kOiBGaWxlUG9uZENvbXBvbmVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9saWdodGJveDogTGlnaHRib3gpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBwb25kOiBGaWxlUG9uZDtcclxuICAgIHB1YmxpYyBwb25kT3B0aW9uczogRmlsZVBvbmRPcHRpb25zO1xyXG4gICAgcHVibGljIHBvbmRGaWxlczogRmlsZVBvbmRPcHRpb25zW1wiZmlsZXNcIl0gPSBbXTtcclxuICAgIHB1YmxpYyBhbGJ1bTogSUFsYnVtW10gPSBbXTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBvbmRPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBhbGxvd011bHRpcGxlOiB0aGlzLm11bHRpcGxlLFxyXG4gICAgICAgICAgICBsYWJlbElkbGU6ICdBcnJhc3RlIHNldXMgYXJxdWl2b3Mgb3UgPHNwYW4gY2xhc3M9XCJmaWxlcG9uZC0tbGFiZWwtYWN0aW9uXCI+Y2xpcXVlIGFxdWk8L3NwYW4+IHBhcmEgc2VsZWNpb25hci4nLFxyXG4gICAgICAgICAgICBhbGxvd1Jlb3JkZXI6IHRoaXMucmVvcmRlcixcclxuICAgICAgICAgICAgbWF4RmlsZXM6IHRoaXMubWF4RmlsZXMsXHJcbiAgICAgICAgICAgIGFjY2VwdGVkRmlsZVR5cGVzOiBbJ2ltYWdlLyonXSxcclxuICAgICAgICAgICAgaW5zdGFudFVwbG9hZDogdGhpcy5pbnN0YW50VXBsb2FkLFxyXG4gICAgICAgICAgICBhbGxvd1Byb2Nlc3M6IHRoaXMuaW5zdGFudFVwbG9hZCxcclxuICAgICAgICAgICAgZHJvcFZhbGlkYXRpb246IHRydWUsXHJcbiAgICAgICAgICAgIGljb25SZW1vdmU6IGA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTUgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPG1hc2sgaWQ9XCJtYXNrMF8zNzA2N18zNDE0NlwiIHN0eWxlPVwibWFzay10eXBlOmFscGhhXCIgbWFza1VuaXRzPVwidXNlclNwYWNlT25Vc2VcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE2XCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCIwLjEzMDg1OVwiIHk9XCIwLjYzMTU5MlwiIHdpZHRoPVwiMTQuNzM2OFwiIGhlaWdodD1cIjE0LjczNjhcIiBmaWxsPVwiI0Q5RDlEOVwiLz5cclxuICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICA8ZyBtYXNrPVwidXJsKCNtYXNrMF8zNzA2N18zNDE0NilcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk00LjQzIDEzLjUyNjNDNC4wOTIyOCAxMy41MjYzIDMuODAzMTcgMTMuNDA2IDMuNTYyNjcgMTMuMTY1NUMzLjMyMjE3IDEyLjkyNSAzLjIwMTkzIDEyLjYzNTkgMy4yMDE5MyAxMi4yOTgyVjQuMzE1NzRDMy4wMjc5NSA0LjMxNTc0IDIuODgyMTIgNC4yNTY4OSAyLjc2NDQzIDQuMTM5MkMyLjY0Njc0IDQuMDIxNTEgMi41ODc4OSAzLjg3NTY4IDIuNTg3ODkgMy43MDE3QzIuNTg3ODkgMy41Mjc3MyAyLjY0Njc0IDMuMzgxODkgMi43NjQ0MyAzLjI2NDJDMi44ODIxMiAzLjE0NjUxIDMuMDI3OTUgMy4wODc2NyAzLjIwMTkzIDMuMDg3NjdINS42NTgwN0M1LjY1ODA3IDIuOTEzNjkgNS43MTY5MSAyLjc2Nzg2IDUuODM0NiAyLjY1MDE3QzUuOTUyMjkgMi41MzI0OCA2LjA5ODEyIDIuNDczNjMgNi4yNzIxIDIuNDczNjNIOC43MjgyNEM4LjkwMjIyIDIuNDczNjMgOS4wNDgwNSAyLjUzMjQ4IDkuMTY1NzQgMi42NTAxN0M5LjI4MzQzIDIuNzY3ODYgOS4zNDIyOCAyLjkxMzY5IDkuMzQyMjggMy4wODc2N0gxMS43OTg0QzExLjk3MjQgMy4wODc2NyAxMi4xMTgyIDMuMTQ2NTEgMTIuMjM1OSAzLjI2NDJDMTIuMzUzNiAzLjM4MTg5IDEyLjQxMjUgMy41Mjc3MyAxMi40MTI1IDMuNzAxN0MxMi40MTI1IDMuODc1NjggMTIuMzUzNiA0LjAyMTUxIDEyLjIzNTkgNC4xMzkyQzEyLjExODIgNC4yNTY4OSAxMS45NzI0IDQuMzE1NzQgMTEuNzk4NCA0LjMxNTc0VjEyLjI5ODJDMTEuNzk4NCAxMi42MzU5IDExLjY3ODIgMTIuOTI1IDExLjQzNzcgMTMuMTY1NUMxMS4xOTcyIDEzLjQwNiAxMC45MDgxIDEzLjUyNjMgMTAuNTcwMyAxMy41MjYzSDQuNDNaTTQuNDMgNC4zMTU3NFYxMi4yOTgySDEwLjU3MDNWNC4zMTU3NEg0LjQzWk03LjUwMDE3IDkuMTY2NjJMOC42NjY4NCAxMC4zMzMzQzguNzg5NjUgMTAuNDQ1OSA4LjkzNTQ4IDEwLjUwMjEgOS4xMDQzNCAxMC41MDIxQzkuMjczMiAxMC41MDIxIDkuNDEzOTEgMTAuNDQ1OSA5LjUyNjQ5IDEwLjMzMzNDOS42NDkyOSAxMC4yMTA1IDkuNzEwNyAxMC4wNjQ2IDkuNzEwNyA5Ljg5NTc4QzkuNzEwNyA5LjcyNjkyIDkuNjQ5MjkgOS41ODYyMSA5LjUyNjQ5IDkuNDczNjNMOC4zNTk4MiA4LjMwNjk3TDkuNTI2NDkgNy4xNDAzQzkuNjQ5MjkgNy4wMTc0OSA5LjcxMDcgNi44NzE2NiA5LjcxMDcgNi43MDI4QzkuNzEwNyA2LjUzMzk0IDkuNjQ5MjkgNi4zOTMyMiA5LjUyNjQ5IDYuMjgwNjVDOS40MTM5MSA2LjE1Nzg0IDkuMjczMiA2LjA5NjQ0IDkuMTA0MzQgNi4wOTY0NEM4LjkzNTQ4IDYuMDk2NDQgOC43ODk2NSA2LjE1Nzg0IDguNjY2ODQgNi4yODA2NUw3LjUwMDE3IDcuNDQ3MzJMNi4zMzM1IDYuMjgwNjVDNi4yMjA5MyA2LjE1Nzg0IDYuMDgwMjIgNi4wOTY0NCA1LjkxMTM2IDYuMDk2NDRDNS43NDI1IDYuMDk2NDQgNS41OTY2NiA2LjE1Nzg0IDUuNDczODYgNi4yODA2NUM1LjM2MTI4IDYuMzkzMjIgNS4zMDUgNi41MzM5NCA1LjMwNSA2LjcwMjhDNS4zMDUgNi44NzE2NiA1LjM2MTI4IDcuMDE3NDkgNS40NzM4NiA3LjE0MDNMNi42NDA1MiA4LjMwNjk3TDUuNDczODYgOS40NzM2M0M1LjM2MTI4IDkuNTg2MjEgNS4zMDUgOS43MjY5MiA1LjMwNSA5Ljg5NTc4QzUuMzA1IDEwLjA2NDYgNS4zNjEyOCAxMC4yMTA1IDUuNDczODYgMTAuMzMzM0M1LjU5NjY2IDEwLjQ0NTkgNS43NDI1IDEwLjUwMjEgNS45MTEzNiAxMC41MDIxQzYuMDgwMjIgMTAuNTAyMSA2LjIyMDkzIDEwLjQ0NTkgNi4zMzM1IDEwLjMzMzNMNy41MDAxNyA5LjE2NjYyWlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgPC9nPjwvc3ZnPmAsXHJcbiAgICAgICAgICAgIHN0eWxlQnV0dG9uUmVtb3ZlSXRlbVBvc2l0aW9uOiAncmlnaHQnLFxyXG4gICAgICAgICAgICBpbWFnZVJlc2l6ZU1vZGU6ICdjb250YWluJyxcclxuICAgICAgICAgICAgc3R5bGVJdGVtUGFuZWxBc3BlY3RSYXRpbzogJzAuNzUnLFxyXG4gICAgICAgICAgICBpdGVtSW5zZXJ0TG9jYXRpb246ICdhZnRlcicsXHJcbiAgICAgICAgICAgIGNyZWRpdHM6IGZhbHNlLFxyXG4gICAgICAgICAgICBzZXJ2ZXI6IHtcclxuICAgICAgICAgICAgICAgIHByb2Nlc3M6IChmaWVsZE5hbWUsIGZpbGUsIG1ldGFkYXRhLCBsb2FkLCBlcnJvciwgcHJvZ3Jlc3MsIGFib3J0LCB0cmFuc2Zlciwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGZpZWxkTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgaW5wdXQgZmllbGRcclxuICAgICAgICAgICAgICAgICAgICAvLyBmaWxlIGlzIHRoZSBhY3R1YWwgZmlsZSBvYmplY3QgdG8gc2VuZFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpZWxkTmFtZSwgZmlsZSwgZmlsZS5uYW1lKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qub3BlbignUE9TVCcsIHRoaXMudXJsKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2hvdWxkIGNhbGwgdGhlIHByb2dyZXNzIG1ldGhvZCB0byB1cGRhdGUgdGhlIHByb2dyZXNzIHRvIDEwMCUgYmVmb3JlIGNhbGxpbmcgbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldHRpbmcgY29tcHV0YWJsZSB0byBmYWxzZSBzd2l0Y2hlcyB0aGUgbG9hZGluZyBpbmRpY2F0b3IgdG8gaW5maW5pdGUgbW9kZVxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QudXBsb2FkLm9ucHJvZ3Jlc3MgPSAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyhlLmxlbmd0aENvbXB1dGFibGUsIGUubG9hZGVkLCBlLnRvdGFsKTtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBTaG91bGQgY2FsbCB0aGUgbG9hZCBtZXRob2Qgd2hlbiBkb25lIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBzZXJ2ZXIgZmlsZSBpZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2VydmVyIGZpbGUgaWQgaXMgdGhlbiB1c2VkIGxhdGVyIG9uIHdoZW4gcmV2ZXJ0aW5nIG9yIHJlc3RvcmluZyBhIGZpbGVcclxuICAgICAgICAgICAgICAgICAgICAvLyBzbyB5b3VyIHNlcnZlciBrbm93cyB3aGljaCBmaWxlIHRvIHJldHVybiB3aXRob3V0IGV4cG9zaW5nIHRoYXQgaW5mbyB0byB0aGUgY2xpZW50XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA+PSAyMDAgJiYgcmVxdWVzdC5zdGF0dXMgPCAzMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBsb2FkIG1ldGhvZCBhY2NlcHRzIGVpdGhlciBhIHN0cmluZyAoaWQpIG9yIGFuIG9iamVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZChyZXF1ZXN0LnJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDYW4gY2FsbCB0aGUgZXJyb3IgbWV0aG9kIGlmIHNvbWV0aGluZyBpcyB3cm9uZywgc2hvdWxkIGV4aXQgYWZ0ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCdvaCBubycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZW5kKGZvcm1EYXRhKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2hvdWxkIGV4cG9zZSBhbiBhYm9ydCBtZXRob2Qgc28gdGhlIHJlcXVlc3QgY2FuIGJlIGNhbmNlbGxlZFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFib3J0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGVudGVyZWQgaWYgdGhlIHVzZXIgaGFzIHRhcHBlZCB0aGUgY2FuY2VsIGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5hYm9ydCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExldCBGaWxlUG9uZCBrbm93IHRoZSByZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJvcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGxvYWQ6IChzb3VyY2UsIGxvYWQsIGVycm9yLCBwcm9ncmVzcywgYWJvcnQsIGhlYWRlcnMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbXlSZXF1ZXN0ID0gbmV3IFJlcXVlc3Qoc291cmNlKTtcclxuICAgICAgICAgICAgICAgICAgICBmZXRjaChteVJlcXVlc3QpLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5hcnJheUJ1ZmZlcigpLnRoZW4oYnVmZmVyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBmaWxlIGV4dGVuc2lvbiBmcm9tIHRoZSBzb3VyY2UgVVJMXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gc291cmNlLnNwbGl0KCcuJykucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNYXAgZmlsZSBleHRlbnNpb25zIHRvIE1JTUUgdHlwZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbWVUeXBlTWFwID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3ZWJwJzogJ2ltYWdlL3dlYnAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqcGcnOiAnaW1hZ2UvanBlZycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pwZWcnOiAnaW1hZ2UvanBlZycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BuZyc6ICdpbWFnZS9wbmcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCBvdGhlciBzdXBwb3J0ZWQgaW1hZ2UgdHlwZXMgYXMgbmVlZGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVR5cGUgPSBtaW1lVHlwZU1hcFtmaWxlRXh0ZW5zaW9uXSB8fCBjb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBteUJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiBmaWxlVHlwZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQobXlCbG9iKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRVJST1I6ICcsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbnRVcGxvYWQpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNTdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZE9ic2VydmFibGUuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBsb2FkRmlsZXMoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxGaWxlcykge1xyXG4gICAgICAgICAgICB0aGlzLnBvbmRGaWxlcyA9IHRoaXMuaW5pdGlhbEZpbGVzLm1hcCgoaXRlbTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogaXRlbSxcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdsb2NhbCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5zdGFudFVwbG9hZCkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwb25kSGFuZGxlSW5pdChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vbkluaXQuZW1pdCh0aGlzLnBvbmRGaWxlcylcclxuXHJcbiAgICAgICAgdGhpcy5wb25kID0gZXZlbnQucG9uZDtcclxuICAgIH1cclxuXHJcbiAgICBwb25kSGFuZGxlQWRkRmlsZShldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkTmFtZSA9IGV2ZW50LmZpbGUuc2VydmVySWQucmVwbGFjZSgvW1wiXFxbXFxdXS9nLCAnJyk7XHJcbiAgICAgICAgdGhpcy5vbkFkZGVkLmVtaXQoZm9ybWF0dGVkTmFtZSlcclxuICAgIH1cclxuXHJcbiAgICAvL1PDsyBmdW5jaW9uYSBxdWFuZG8gbsOjbyB0ZW0gYXJxdWl2b3MgaW5pY2lhaXNcclxuICAgIHBvbmRIYW5kbGVBbGxGaWxlc0FkZGVkKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBmaWxlc0xpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBldmVudC5wb25kLmdldEZpbGVzKCk7XHJcblxyXG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGU6IEZpbGVQb25kRmlsZSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZm9ybWF0dGVkTmFtZSA9IGZpbGUuc2VydmVySWQucmVwbGFjZSgvW1wiXFxbXFxdXS9nLCAnJyk7XHJcbiAgICAgICAgICAgIGZpbGVzTGlzdC5wdXNoKGZvcm1hdHRlZE5hbWUpO1xyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5vbkFsbEFkZGVkLmVtaXQoZmlsZXNMaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwb25kSGFuZGxlQWN0aXZhdGVGaWxlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQWN0aXZhdGUuZW1pdChldmVudCk7XHJcbiAgICAgICAgdGhpcy5saWdodEJveCAmJiB0aGlzLm9wZW5MaWdodEJveChldmVudC5maWxlLmZpbGVuYW1lV2l0aG91dEV4dGVuc2lvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZVVwZGF0ZShldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5maWxsQWxidW0oZXZlbnQuaXRlbXMpXHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZVJlbW92ZShldmVudDogYW55KSB7XHJcbiAgICAgICAgbGV0IGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgaWYgKGV2ZW50LmZpbGUuc291cmNlIGluc3RhbmNlb2YgRmlsZSkge1xyXG4gICAgICAgICAgICBmaWxlTmFtZSA9IGV2ZW50LmZpbGUuc2VydmVySWQ/LnJlcGxhY2UoL1tcIlxcW1xcXV0vZywgJycpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbGVOYW1lID0gZXZlbnQuZmlsZT8uZmlsZW5hbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uUmVtb3ZlLmVtaXQoZmlsZU5hbWUpXHJcbiAgICB9XHJcblxyXG4gICAgb25SZW9yZGVyRmlsZXMoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZmlsbEFsYnVtKGV2ZW50Lml0ZW1zLCB0cnVlKVxyXG4gICAgICAgIGxldCBpdGVtc0xpc3QgPSBldmVudC5pdGVtcy5tYXAoKGl0ZW06IEZpbGVQb25kRmlsZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zb3VyY2UgaW5zdGFuY2VvZiBGaWxlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5zZXJ2ZXJJZC5yZXBsYWNlKC9bXCJcXFtcXF1dL2csICcnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmZpbGVuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMub25SZU9yZGVyLmVtaXQoaXRlbXNMaXN0KVxyXG4gICAgfVxyXG5cclxuICAgIHdhcm5pbmcoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGlmIChldmVudC5lcnJvci5jb2RlID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5vbk1heFJlYWNoZWQuZW1pdChgTGltaXRlIGRlIEFycXVpdm9zIGF0aW5naWRvLiBWb2PDqiBwb2RlIGluc2VyaXIgdW0gdG90YWwgZGUgJHt0aGlzLm1heEZpbGVzfSBhcnF1aXZvcy5gKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvcGVuTGlnaHRCb3goZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMuYWxidW0ubWFwKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLmNhcHRpb247IH0pLmluZGV4T2YoZmlsZU5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2xpZ2h0Ym94Lm9wZW4odGhpcy5hbGJ1bSwgaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGZpbGxBbGJ1bShmaWxlczogW10sIHJlT3JkZXI/OiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCAhPT0gdGhpcy5hbGJ1bS5sZW5ndGggfHwgcmVPcmRlcikge1xyXG5cclxuICAgICAgICAgICAgY29uc3QgcHJlQWxidW0gPSBhd2FpdCBQcm9taXNlLmFsbChmaWxlcy5tYXAoYXN5bmMgKGZpbGU6IEZpbGVQb25kRmlsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZpbGVVcmw6IHN0cmluZztcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsZS5zb3VyY2UgaW5zdGFuY2VvZiBGaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZVVybCA9IGF3YWl0IHRoaXMucmVhZEZpbGVBc3luYyhmaWxlLnNvdXJjZSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVVcmwgPSBmaWxlLnNvdXJjZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3JjOiBmaWxlVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcHRpb246IGZpbGUuZmlsZW5hbWVXaXRob3V0RXh0ZW5zaW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHRodW1iOiAnJ1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hbGJ1bSA9IHByZUFsYnVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWFkRmlsZUFzeW5jKGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFVcmwgPSByZWFkZXIucmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZVVybCA9IGRhdGFVcmwudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmlsZVVybCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBsb2FkRmlsZXMoKSB7XHJcbiAgICAgICAgdGhpcy5wb25kLnByb2Nlc3NGaWxlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjwhLS0gYXBwLmNvbXBvbmVudC5odG1sIC0tPlxyXG48ZmlsZS1wb25kICNteVBvbmQgbmFtZT0nVXBsb2FkRm9ybVtpbWFnZW1dW10nIFtjbGFzcy5maWxlLXBvbnQtdHJhbnNwYXJlbnRdPVwidHJhbnNwYXJlbnRcIiBbb3B0aW9uc109XCJwb25kT3B0aW9uc1wiXHJcbiAgICAob25pbml0KT1cInBvbmRIYW5kbGVJbml0KCRldmVudClcIiBbZmlsZXNdPVwicG9uZEZpbGVzXCIgKG9udXBkYXRlZmlsZXMpPVwicG9uZEhhbmRsZVVwZGF0ZSgkZXZlbnQpXCJcclxuICAgIChvbmFjdGl2YXRlZmlsZSk9XCJwb25kSGFuZGxlQWN0aXZhdGVGaWxlKCRldmVudClcIiAob25yZW1vdmVmaWxlKT1cInBvbmRIYW5kbGVSZW1vdmUoJGV2ZW50KVwiXHJcbiAgICAob25yZW9yZGVyZmlsZXMpPVwib25SZW9yZGVyRmlsZXMoJGV2ZW50KVwiIChvbndhcm5pbmcpPVwid2FybmluZygkZXZlbnQpXCIgKG9ucHJvY2Vzc2ZpbGVzKT1cInBvbmRIYW5kbGVBbGxGaWxlc0FkZGVkKCRldmVudClcIlxyXG4gICAgKG9ucHJvY2Vzc2ZpbGUpPVwicG9uZEhhbmRsZUFkZEZpbGUoJGV2ZW50KVwiIC8+XHJcbiJdfQ==
@@ -23,6 +23,7 @@ class UiUploadOrderComponent {
23
23
  this.instantUpload = true;
24
24
  this.onRemove = new EventEmitter();
25
25
  this.onAdded = new EventEmitter();
26
+ this.onAllAdded = new EventEmitter();
26
27
  this.onActivate = new EventEmitter();
27
28
  this.onInit = new EventEmitter();
28
29
  this.onMaxReached = new EventEmitter();
@@ -144,6 +145,16 @@ class UiUploadOrderComponent {
144
145
  const formattedName = event.file.serverId.replace(/["\[\]]/g, '');
145
146
  this.onAdded.emit(formattedName);
146
147
  }
148
+ //Só funciona quando não tem arquivos iniciais
149
+ pondHandleAllFilesAdded(event) {
150
+ const filesList = [];
151
+ const files = event.pond.getFiles();
152
+ files.forEach((file) => {
153
+ let formattedName = file.serverId.replace(/["\[\]]/g, '');
154
+ filesList.push(formattedName);
155
+ });
156
+ this.onAllAdded.emit(filesList);
157
+ }
147
158
  pondHandleActivateFile(event) {
148
159
  this.onActivate.emit(event);
149
160
  this.lightBox && this.openLightBox(event.file.filenameWithoutExtension);
@@ -220,10 +231,10 @@ class UiUploadOrderComponent {
220
231
  }
221
232
  }
222
233
  UiUploadOrderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, deps: [{ token: i1.Lightbox }], target: i0.ɵɵFactoryTarget.Component });
223
- UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", url: "url", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload" }, outputs: { onRemove: "onRemove", onAdded: "onAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected" }, viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "component", type: i2.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }] });
234
+ UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", url: "url", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload" }, outputs: { onRemove: "onRemove", onAdded: "onAdded", onAllAdded: "onAllAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected" }, viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "component", type: i2.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }] });
224
235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, decorators: [{
225
236
  type: Component,
226
- args: [{ selector: 'ui-upload-order', template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
237
+ args: [{ selector: 'ui-upload-order', template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
227
238
  }], ctorParameters: function () { return [{ type: i1.Lightbox }]; }, propDecorators: { uploadObservable: [{
228
239
  type: Input
229
240
  }], url: [{
@@ -246,6 +257,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
246
257
  type: Output
247
258
  }], onAdded: [{
248
259
  type: Output
260
+ }], onAllAdded: [{
261
+ type: Output
249
262
  }], onActivate: [{
250
263
  type: Output
251
264
  }], onInit: [{
@@ -1 +1 @@
1
- {"version":3,"file":"uitec-ng-upload-order.mjs","sources":["../../../projects/ui-upload-order/src/lib/ui-upload-order.component.ts","../../../projects/ui-upload-order/src/lib/ui-upload-order.component.html","../../../projects/ui-upload-order/src/lib/ui-upload-order.module.ts","../../../projects/ui-upload-order/src/public-api.ts","../../../projects/ui-upload-order/src/uitec-ng-upload-order.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { FilePondComponent, } from \"ngx-filepond\";\r\nimport { FilePond, FilePondFile, FilePondOptions } from \"filepond\";\r\nimport { IAlbum, Lightbox } from 'ngx-lightbox';\r\nimport { Observable, Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'ui-upload-order',\r\n templateUrl: './ui-upload-order.component.html',\r\n styleUrls: ['./ui-upload-order.component.scss']\r\n})\r\nexport class UiUploadOrderComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() uploadObservable: Observable<void>;\r\n private eventsSubscription: Subscription\r\n\r\n @Input() url: string;\r\n @Input() initialFiles: string[];\r\n @Input() multiple: boolean = true;\r\n @Input() reorder: boolean = true;\r\n @Input() maxFiles: number = 6;\r\n @Input() transparent: boolean;\r\n @Input() lightBox: boolean = true;\r\n @Input() instantUpload: boolean = true;\r\n\r\n @Output() onRemove = new EventEmitter<string>();\r\n @Output() onAdded = new EventEmitter<string>();\r\n @Output() onActivate = new EventEmitter<FilePondFile>();\r\n @Output() onInit = new EventEmitter<FilePondOptions[\"files\"]>();\r\n @Output() onMaxReached = new EventEmitter<string>();\r\n @Output() onReOrder = new EventEmitter<FilePondFile[]>();\r\n @Output() onSelected = new EventEmitter<any>();\r\n\r\n @ViewChild(\"myPond\") myPond: FilePondComponent;\r\n\r\n constructor(private _lightbox: Lightbox) { }\r\n\r\n public pond: FilePond;\r\n public pondOptions: FilePondOptions;\r\n public pondFiles: FilePondOptions[\"files\"] = [];\r\n public album: IAlbum[] = [];\r\n\r\n ngOnInit(): void {\r\n this.pondOptions = {\r\n allowMultiple: this.multiple,\r\n labelIdle: 'Arraste seus arquivos ou <span class=\"filepond--label-action\">clique aqui</span> para selecionar.',\r\n allowReorder: this.reorder,\r\n maxFiles: this.maxFiles,\r\n acceptedFileTypes: ['image/*'],\r\n instantUpload: this.instantUpload,\r\n allowProcess: this.instantUpload,\r\n dropValidation: true,\r\n iconRemove: `<svg width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <mask id=\"mask0_37067_34146\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"15\" height=\"16\">\r\n <rect x=\"0.130859\" y=\"0.631592\" width=\"14.7368\" height=\"14.7368\" fill=\"#D9D9D9\"/>\r\n </mask>\r\n <g mask=\"url(#mask0_37067_34146)\">\r\n <path d=\"M4.43 13.5263C4.09228 13.5263 3.80317 13.406 3.56267 13.1655C3.32217 12.925 3.20193 12.6359 3.20193 12.2982V4.31574C3.02795 4.31574 2.88212 4.25689 2.76443 4.1392C2.64674 4.02151 2.58789 3.87568 2.58789 3.7017C2.58789 3.52773 2.64674 3.38189 2.76443 3.2642C2.88212 3.14651 3.02795 3.08767 3.20193 3.08767H5.65807C5.65807 2.91369 5.71691 2.76786 5.8346 2.65017C5.95229 2.53248 6.09812 2.47363 6.2721 2.47363H8.72824C8.90222 2.47363 9.04805 2.53248 9.16574 2.65017C9.28343 2.76786 9.34228 2.91369 9.34228 3.08767H11.7984C11.9724 3.08767 12.1182 3.14651 12.2359 3.2642C12.3536 3.38189 12.4125 3.52773 12.4125 3.7017C12.4125 3.87568 12.3536 4.02151 12.2359 4.1392C12.1182 4.25689 11.9724 4.31574 11.7984 4.31574V12.2982C11.7984 12.6359 11.6782 12.925 11.4377 13.1655C11.1972 13.406 10.9081 13.5263 10.5703 13.5263H4.43ZM4.43 4.31574V12.2982H10.5703V4.31574H4.43ZM7.50017 9.16662L8.66684 10.3333C8.78965 10.4459 8.93548 10.5021 9.10434 10.5021C9.2732 10.5021 9.41391 10.4459 9.52649 10.3333C9.64929 10.2105 9.7107 10.0646 9.7107 9.89578C9.7107 9.72692 9.64929 9.58621 9.52649 9.47363L8.35982 8.30697L9.52649 7.1403C9.64929 7.01749 9.7107 6.87166 9.7107 6.7028C9.7107 6.53394 9.64929 6.39322 9.52649 6.28065C9.41391 6.15784 9.2732 6.09644 9.10434 6.09644C8.93548 6.09644 8.78965 6.15784 8.66684 6.28065L7.50017 7.44732L6.3335 6.28065C6.22093 6.15784 6.08022 6.09644 5.91136 6.09644C5.7425 6.09644 5.59666 6.15784 5.47386 6.28065C5.36128 6.39322 5.305 6.53394 5.305 6.7028C5.305 6.87166 5.36128 7.01749 5.47386 7.1403L6.64052 8.30697L5.47386 9.47363C5.36128 9.58621 5.305 9.72692 5.305 9.89578C5.305 10.0646 5.36128 10.2105 5.47386 10.3333C5.59666 10.4459 5.7425 10.5021 5.91136 10.5021C6.08022 10.5021 6.22093 10.4459 6.3335 10.3333L7.50017 9.16662Z\" fill=\"white\"/>\r\n </g></svg>`,\r\n styleButtonRemoveItemPosition: 'right',\r\n imageResizeMode: 'contain',\r\n styleItemPanelAspectRatio: '0.75',\r\n itemInsertLocation: 'after',\r\n credits: false,\r\n server: {\r\n process: (fieldName, file, metadata, load, error, progress, abort, transfer, options) => {\r\n // fieldName is the name of the input field\r\n // file is the actual file object to send\r\n const formData = new FormData();\r\n formData.append(fieldName, file, file.name);\r\n\r\n const request = new XMLHttpRequest();\r\n request.open('POST', this.url);\r\n\r\n // Should call the progress method to update the progress to 100% before calling load\r\n // Setting computable to false switches the loading indicator to infinite mode\r\n request.upload.onprogress = (e) => {\r\n progress(e.lengthComputable, e.loaded, e.total);\r\n };\r\n\r\n // Should call the load method when done and pass the returned server file id\r\n // this server file id is then used later on when reverting or restoring a file\r\n // so your server knows which file to return without exposing that info to the client\r\n request.onload = function () {\r\n if (request.status >= 200 && request.status < 300) {\r\n // the load method accepts either a string (id) or an object\r\n load(request.responseText);\r\n } else {\r\n // Can call the error method if something is wrong, should exit after\r\n error('oh no');\r\n }\r\n };\r\n\r\n request.send(formData);\r\n\r\n // Should expose an abort method so the request can be cancelled\r\n return {\r\n abort: () => {\r\n // This function is entered if the user has tapped the cancel button\r\n request.abort();\r\n\r\n // Let FilePond know the request has been cancelled\r\n abort();\r\n },\r\n };\r\n },\r\n load: (source, load, error, progress, abort, headers) => {\r\n var myRequest = new Request(source);\r\n fetch(myRequest).then(response => {\r\n response.arrayBuffer().then(buffer => {\r\n const contentType = response.headers.get('content-type');\r\n // Get the file extension from the source URL\r\n const fileExtension = source.split('.').pop();\r\n // Map file extensions to MIME types\r\n const mimeTypeMap = {\r\n 'webp': 'image/webp',\r\n 'jpg': 'image/jpeg',\r\n 'jpeg': 'image/jpeg',\r\n 'png': 'image/png',\r\n // Add other supported image types as needed\r\n };\r\n const fileType = mimeTypeMap[fileExtension] || contentType || 'application/octet-stream';\r\n\r\n const myBlob = new Blob([buffer], { type: fileType });\r\n load(myBlob);\r\n });\r\n }).catch(error => {\r\n console.log('ERROR: ', error);\r\n });\r\n },\r\n },\r\n };\r\n\r\n if (!this.instantUpload) {\r\n this.eventsSubscription = this.uploadObservable.subscribe(() => this.uploadFiles());\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.initialFiles) {\r\n this.pondFiles = this.initialFiles.map((item: string) => {\r\n return {\r\n source: item,\r\n options: {\r\n type: 'local',\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!this.instantUpload) {\r\n this.eventsSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n pondHandleInit(event: any) {\r\n this.onInit.emit(this.pondFiles)\r\n\r\n this.pond = event.pond;\r\n }\r\n\r\n pondHandleAddFile(event: any) {\r\n const formattedName = event.file.serverId.replace(/[\"\\[\\]]/g, '');\r\n this.onAdded.emit(formattedName)\r\n }\r\n\r\n pondHandleActivateFile(event: any) {\r\n this.onActivate.emit(event);\r\n this.lightBox && this.openLightBox(event.file.filenameWithoutExtension);\r\n }\r\n\r\n pondHandleUpdate(event: any) {\r\n this.fillAlbum(event.items)\r\n }\r\n\r\n pondHandleRemove(event: any) {\r\n let fileName: string;\r\n if (event.file.source instanceof File) {\r\n fileName = event.file.serverId?.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n fileName = event.file?.filename;\r\n }\r\n\r\n this.onRemove.emit(fileName)\r\n }\r\n\r\n onReorderFiles(event: any) {\r\n this.fillAlbum(event.items, true)\r\n let itemsList = event.items.map((item: FilePondFile) => {\r\n if (item.source instanceof File) {\r\n return item.serverId.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n return item.filename\r\n }\r\n })\r\n this.onReOrder.emit(itemsList)\r\n }\r\n\r\n warning(event: any) {\r\n if (event.error.code == 0) {\r\n this.onMaxReached.emit(`Limite de Arquivos atingido. Você pode inserir um total de ${this.maxFiles} arquivos.`)\r\n }\r\n }\r\n\r\n openLightBox(fileName: string): void {\r\n let index = this.album.map(function (e) { return e.caption; }).indexOf(fileName);\r\n this._lightbox.open(this.album, index);\r\n }\r\n\r\n async fillAlbum(files: [], reOrder?: boolean) {\r\n if (files.length !== this.album.length || reOrder) {\r\n\r\n const preAlbum = await Promise.all(files.map(async (file: FilePondFile) => {\r\n let fileUrl: string;\r\n\r\n if (file.source instanceof File) {\r\n fileUrl = await this.readFileAsync(file.source);\r\n } else {\r\n fileUrl = file.source.toString();\r\n }\r\n\r\n return {\r\n src: fileUrl,\r\n caption: file.filenameWithoutExtension,\r\n thumb: ''\r\n };\r\n }));\r\n\r\n this.album = preAlbum;\r\n }\r\n }\r\n\r\n readFileAsync(file: File): Promise<string> {\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n const dataUrl = reader.result;\r\n const fileUrl = dataUrl.toString();\r\n resolve(fileUrl);\r\n };\r\n });\r\n }\r\n\r\n uploadFiles() {\r\n this.pond.processFiles();\r\n }\r\n}\r\n","<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n","import { NgModule } from '@angular/core';\r\nimport { UiUploadOrderComponent } from './ui-upload-order.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LightboxModule } from 'ngx-lightbox';\r\n\r\n// import filepond module\r\nimport { FilePondModule, registerPlugin } from \"ngx-filepond\";\r\n\r\n// import and register filepond plugins\r\nimport FilePondPluginFileValidateType from \"filepond-plugin-file-validate-type\";\r\nimport FilePondPluginImagePreview from 'filepond-plugin-image-preview';\r\nimport FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';\r\nimport FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';\r\nimport FilePondPluginImageCrop from 'filepond-plugin-image-crop';\r\nimport FilePondPluginImageResize from 'filepond-plugin-image-resize';\r\n\r\nregisterPlugin(\r\n FilePondPluginFileValidateType,\r\n FilePondPluginImagePreview,\r\n FilePondPluginImageExifOrientation,\r\n FilePondPluginFileValidateSize,\r\n FilePondPluginImageCrop,\r\n FilePondPluginImageResize\r\n);\r\n\r\n@NgModule({\r\n declarations: [\r\n UiUploadOrderComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FilePondModule,\r\n LightboxModule\r\n ],\r\n exports: [\r\n UiUploadOrderComponent\r\n ]\r\n})\r\nexport class UiUploadOrderModule { }\r\n","/*\r\n * Public API Surface of ui-upload-order\r\n */\r\n\r\nexport * from './lib/ui-upload-order.component';\r\nexport * from './lib/ui-upload-order.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uitec-ng-upload-order.mjs","sources":["../../../projects/ui-upload-order/src/lib/ui-upload-order.component.ts","../../../projects/ui-upload-order/src/lib/ui-upload-order.component.html","../../../projects/ui-upload-order/src/lib/ui-upload-order.module.ts","../../../projects/ui-upload-order/src/public-api.ts","../../../projects/ui-upload-order/src/uitec-ng-upload-order.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { FilePondComponent, } from \"ngx-filepond\";\r\nimport { FilePond, FilePondFile, FilePondOptions } from \"filepond\";\r\nimport { IAlbum, Lightbox } from 'ngx-lightbox';\r\nimport { Observable, Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'ui-upload-order',\r\n templateUrl: './ui-upload-order.component.html',\r\n styleUrls: ['./ui-upload-order.component.scss']\r\n})\r\nexport class UiUploadOrderComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() uploadObservable: Observable<void>;\r\n private eventsSubscription: Subscription\r\n\r\n @Input() url: string;\r\n @Input() initialFiles: string[];\r\n @Input() multiple: boolean = true;\r\n @Input() reorder: boolean = true;\r\n @Input() maxFiles: number = 6;\r\n @Input() transparent: boolean;\r\n @Input() lightBox: boolean = true;\r\n @Input() instantUpload: boolean = true;\r\n\r\n @Output() onRemove = new EventEmitter<string>();\r\n @Output() onAdded = new EventEmitter<string>();\r\n @Output() onAllAdded = new EventEmitter<string[]>();\r\n @Output() onActivate = new EventEmitter<FilePondFile>();\r\n @Output() onInit = new EventEmitter<FilePondOptions[\"files\"]>();\r\n @Output() onMaxReached = new EventEmitter<string>();\r\n @Output() onReOrder = new EventEmitter<FilePondFile[]>();\r\n @Output() onSelected = new EventEmitter<any>();\r\n\r\n @ViewChild(\"myPond\") myPond: FilePondComponent;\r\n\r\n constructor(private _lightbox: Lightbox) { }\r\n\r\n public pond: FilePond;\r\n public pondOptions: FilePondOptions;\r\n public pondFiles: FilePondOptions[\"files\"] = [];\r\n public album: IAlbum[] = [];\r\n\r\n ngOnInit(): void {\r\n this.pondOptions = {\r\n allowMultiple: this.multiple,\r\n labelIdle: 'Arraste seus arquivos ou <span class=\"filepond--label-action\">clique aqui</span> para selecionar.',\r\n allowReorder: this.reorder,\r\n maxFiles: this.maxFiles,\r\n acceptedFileTypes: ['image/*'],\r\n instantUpload: this.instantUpload,\r\n allowProcess: this.instantUpload,\r\n dropValidation: true,\r\n iconRemove: `<svg width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <mask id=\"mask0_37067_34146\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"15\" height=\"16\">\r\n <rect x=\"0.130859\" y=\"0.631592\" width=\"14.7368\" height=\"14.7368\" fill=\"#D9D9D9\"/>\r\n </mask>\r\n <g mask=\"url(#mask0_37067_34146)\">\r\n <path d=\"M4.43 13.5263C4.09228 13.5263 3.80317 13.406 3.56267 13.1655C3.32217 12.925 3.20193 12.6359 3.20193 12.2982V4.31574C3.02795 4.31574 2.88212 4.25689 2.76443 4.1392C2.64674 4.02151 2.58789 3.87568 2.58789 3.7017C2.58789 3.52773 2.64674 3.38189 2.76443 3.2642C2.88212 3.14651 3.02795 3.08767 3.20193 3.08767H5.65807C5.65807 2.91369 5.71691 2.76786 5.8346 2.65017C5.95229 2.53248 6.09812 2.47363 6.2721 2.47363H8.72824C8.90222 2.47363 9.04805 2.53248 9.16574 2.65017C9.28343 2.76786 9.34228 2.91369 9.34228 3.08767H11.7984C11.9724 3.08767 12.1182 3.14651 12.2359 3.2642C12.3536 3.38189 12.4125 3.52773 12.4125 3.7017C12.4125 3.87568 12.3536 4.02151 12.2359 4.1392C12.1182 4.25689 11.9724 4.31574 11.7984 4.31574V12.2982C11.7984 12.6359 11.6782 12.925 11.4377 13.1655C11.1972 13.406 10.9081 13.5263 10.5703 13.5263H4.43ZM4.43 4.31574V12.2982H10.5703V4.31574H4.43ZM7.50017 9.16662L8.66684 10.3333C8.78965 10.4459 8.93548 10.5021 9.10434 10.5021C9.2732 10.5021 9.41391 10.4459 9.52649 10.3333C9.64929 10.2105 9.7107 10.0646 9.7107 9.89578C9.7107 9.72692 9.64929 9.58621 9.52649 9.47363L8.35982 8.30697L9.52649 7.1403C9.64929 7.01749 9.7107 6.87166 9.7107 6.7028C9.7107 6.53394 9.64929 6.39322 9.52649 6.28065C9.41391 6.15784 9.2732 6.09644 9.10434 6.09644C8.93548 6.09644 8.78965 6.15784 8.66684 6.28065L7.50017 7.44732L6.3335 6.28065C6.22093 6.15784 6.08022 6.09644 5.91136 6.09644C5.7425 6.09644 5.59666 6.15784 5.47386 6.28065C5.36128 6.39322 5.305 6.53394 5.305 6.7028C5.305 6.87166 5.36128 7.01749 5.47386 7.1403L6.64052 8.30697L5.47386 9.47363C5.36128 9.58621 5.305 9.72692 5.305 9.89578C5.305 10.0646 5.36128 10.2105 5.47386 10.3333C5.59666 10.4459 5.7425 10.5021 5.91136 10.5021C6.08022 10.5021 6.22093 10.4459 6.3335 10.3333L7.50017 9.16662Z\" fill=\"white\"/>\r\n </g></svg>`,\r\n styleButtonRemoveItemPosition: 'right',\r\n imageResizeMode: 'contain',\r\n styleItemPanelAspectRatio: '0.75',\r\n itemInsertLocation: 'after',\r\n credits: false,\r\n server: {\r\n process: (fieldName, file, metadata, load, error, progress, abort, transfer, options) => {\r\n // fieldName is the name of the input field\r\n // file is the actual file object to send\r\n const formData = new FormData();\r\n formData.append(fieldName, file, file.name);\r\n\r\n const request = new XMLHttpRequest();\r\n request.open('POST', this.url);\r\n\r\n // Should call the progress method to update the progress to 100% before calling load\r\n // Setting computable to false switches the loading indicator to infinite mode\r\n request.upload.onprogress = (e) => {\r\n progress(e.lengthComputable, e.loaded, e.total);\r\n };\r\n\r\n // Should call the load method when done and pass the returned server file id\r\n // this server file id is then used later on when reverting or restoring a file\r\n // so your server knows which file to return without exposing that info to the client\r\n request.onload = function () {\r\n if (request.status >= 200 && request.status < 300) {\r\n // the load method accepts either a string (id) or an object\r\n load(request.responseText);\r\n } else {\r\n // Can call the error method if something is wrong, should exit after\r\n error('oh no');\r\n }\r\n };\r\n\r\n request.send(formData);\r\n\r\n // Should expose an abort method so the request can be cancelled\r\n return {\r\n abort: () => {\r\n // This function is entered if the user has tapped the cancel button\r\n request.abort();\r\n\r\n // Let FilePond know the request has been cancelled\r\n abort();\r\n },\r\n };\r\n },\r\n load: (source, load, error, progress, abort, headers) => {\r\n var myRequest = new Request(source);\r\n fetch(myRequest).then(response => {\r\n response.arrayBuffer().then(buffer => {\r\n const contentType = response.headers.get('content-type');\r\n // Get the file extension from the source URL\r\n const fileExtension = source.split('.').pop();\r\n // Map file extensions to MIME types\r\n const mimeTypeMap = {\r\n 'webp': 'image/webp',\r\n 'jpg': 'image/jpeg',\r\n 'jpeg': 'image/jpeg',\r\n 'png': 'image/png',\r\n // Add other supported image types as needed\r\n };\r\n const fileType = mimeTypeMap[fileExtension] || contentType || 'application/octet-stream';\r\n\r\n const myBlob = new Blob([buffer], { type: fileType });\r\n load(myBlob);\r\n });\r\n }).catch(error => {\r\n console.log('ERROR: ', error);\r\n });\r\n },\r\n },\r\n };\r\n\r\n if (!this.instantUpload) {\r\n this.eventsSubscription = this.uploadObservable.subscribe(() => this.uploadFiles());\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.initialFiles) {\r\n this.pondFiles = this.initialFiles.map((item: string) => {\r\n return {\r\n source: item,\r\n options: {\r\n type: 'local',\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!this.instantUpload) {\r\n this.eventsSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n pondHandleInit(event: any) {\r\n this.onInit.emit(this.pondFiles)\r\n\r\n this.pond = event.pond;\r\n }\r\n\r\n pondHandleAddFile(event: any) {\r\n const formattedName = event.file.serverId.replace(/[\"\\[\\]]/g, '');\r\n this.onAdded.emit(formattedName)\r\n }\r\n\r\n //Só funciona quando não tem arquivos iniciais\r\n pondHandleAllFilesAdded(event: any) {\r\n const filesList: string[] = [];\r\n const files = event.pond.getFiles();\r\n\r\n files.forEach((file: FilePondFile) => {\r\n let formattedName = file.serverId.replace(/[\"\\[\\]]/g, '');\r\n filesList.push(formattedName);\r\n\r\n });\r\n\r\n this.onAllAdded.emit(filesList);\r\n }\r\n\r\n pondHandleActivateFile(event: any) {\r\n this.onActivate.emit(event);\r\n this.lightBox && this.openLightBox(event.file.filenameWithoutExtension);\r\n }\r\n\r\n pondHandleUpdate(event: any) {\r\n this.fillAlbum(event.items)\r\n }\r\n\r\n pondHandleRemove(event: any) {\r\n let fileName: string;\r\n if (event.file.source instanceof File) {\r\n fileName = event.file.serverId?.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n fileName = event.file?.filename;\r\n }\r\n\r\n this.onRemove.emit(fileName)\r\n }\r\n\r\n onReorderFiles(event: any) {\r\n this.fillAlbum(event.items, true)\r\n let itemsList = event.items.map((item: FilePondFile) => {\r\n if (item.source instanceof File) {\r\n return item.serverId.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n return item.filename\r\n }\r\n })\r\n this.onReOrder.emit(itemsList)\r\n }\r\n\r\n warning(event: any) {\r\n if (event.error.code == 0) {\r\n this.onMaxReached.emit(`Limite de Arquivos atingido. Você pode inserir um total de ${this.maxFiles} arquivos.`)\r\n }\r\n }\r\n\r\n openLightBox(fileName: string): void {\r\n let index = this.album.map(function (e) { return e.caption; }).indexOf(fileName);\r\n this._lightbox.open(this.album, index);\r\n }\r\n\r\n async fillAlbum(files: [], reOrder?: boolean) {\r\n if (files.length !== this.album.length || reOrder) {\r\n\r\n const preAlbum = await Promise.all(files.map(async (file: FilePondFile) => {\r\n let fileUrl: string;\r\n\r\n if (file.source instanceof File) {\r\n fileUrl = await this.readFileAsync(file.source);\r\n } else {\r\n fileUrl = file.source.toString();\r\n }\r\n\r\n return {\r\n src: fileUrl,\r\n caption: file.filenameWithoutExtension,\r\n thumb: ''\r\n };\r\n }));\r\n\r\n this.album = preAlbum;\r\n }\r\n }\r\n\r\n readFileAsync(file: File): Promise<string> {\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n const dataUrl = reader.result;\r\n const fileUrl = dataUrl.toString();\r\n resolve(fileUrl);\r\n };\r\n });\r\n }\r\n\r\n uploadFiles() {\r\n this.pond.processFiles();\r\n }\r\n}\r\n","<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n","import { NgModule } from '@angular/core';\r\nimport { UiUploadOrderComponent } from './ui-upload-order.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LightboxModule } from 'ngx-lightbox';\r\n\r\n// import filepond module\r\nimport { FilePondModule, registerPlugin } from \"ngx-filepond\";\r\n\r\n// import and register filepond plugins\r\nimport FilePondPluginFileValidateType from \"filepond-plugin-file-validate-type\";\r\nimport FilePondPluginImagePreview from 'filepond-plugin-image-preview';\r\nimport FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';\r\nimport FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';\r\nimport FilePondPluginImageCrop from 'filepond-plugin-image-crop';\r\nimport FilePondPluginImageResize from 'filepond-plugin-image-resize';\r\n\r\nregisterPlugin(\r\n FilePondPluginFileValidateType,\r\n FilePondPluginImagePreview,\r\n FilePondPluginImageExifOrientation,\r\n FilePondPluginFileValidateSize,\r\n FilePondPluginImageCrop,\r\n FilePondPluginImageResize\r\n);\r\n\r\n@NgModule({\r\n declarations: [\r\n UiUploadOrderComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FilePondModule,\r\n LightboxModule\r\n ],\r\n exports: [\r\n UiUploadOrderComponent\r\n ]\r\n})\r\nexport class UiUploadOrderModule { }\r\n","/*\r\n * Public API Surface of ui-upload-order\r\n */\r\n\r\nexport * from './lib/ui-upload-order.component';\r\nexport * from './lib/ui-upload-order.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ class UiUploadOrderComponent {
23
23
  this.instantUpload = true;
24
24
  this.onRemove = new EventEmitter();
25
25
  this.onAdded = new EventEmitter();
26
+ this.onAllAdded = new EventEmitter();
26
27
  this.onActivate = new EventEmitter();
27
28
  this.onInit = new EventEmitter();
28
29
  this.onMaxReached = new EventEmitter();
@@ -144,6 +145,16 @@ class UiUploadOrderComponent {
144
145
  const formattedName = event.file.serverId.replace(/["\[\]]/g, '');
145
146
  this.onAdded.emit(formattedName);
146
147
  }
148
+ //Só funciona quando não tem arquivos iniciais
149
+ pondHandleAllFilesAdded(event) {
150
+ const filesList = [];
151
+ const files = event.pond.getFiles();
152
+ files.forEach((file) => {
153
+ let formattedName = file.serverId.replace(/["\[\]]/g, '');
154
+ filesList.push(formattedName);
155
+ });
156
+ this.onAllAdded.emit(filesList);
157
+ }
147
158
  pondHandleActivateFile(event) {
148
159
  this.onActivate.emit(event);
149
160
  this.lightBox && this.openLightBox(event.file.filenameWithoutExtension);
@@ -217,10 +228,10 @@ class UiUploadOrderComponent {
217
228
  }
218
229
  }
219
230
  UiUploadOrderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, deps: [{ token: i1.Lightbox }], target: i0.ɵɵFactoryTarget.Component });
220
- UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", url: "url", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload" }, outputs: { onRemove: "onRemove", onAdded: "onAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected" }, viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "component", type: i2.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }] });
231
+ UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", url: "url", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload" }, outputs: { onRemove: "onRemove", onAdded: "onAdded", onAllAdded: "onAllAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected" }, viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "component", type: i2.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }] });
221
232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, decorators: [{
222
233
  type: Component,
223
- args: [{ selector: 'ui-upload-order', template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
234
+ args: [{ selector: 'ui-upload-order', template: "<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
224
235
  }], ctorParameters: function () { return [{ type: i1.Lightbox }]; }, propDecorators: { uploadObservable: [{
225
236
  type: Input
226
237
  }], url: [{
@@ -243,6 +254,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
243
254
  type: Output
244
255
  }], onAdded: [{
245
256
  type: Output
257
+ }], onAllAdded: [{
258
+ type: Output
246
259
  }], onActivate: [{
247
260
  type: Output
248
261
  }], onInit: [{
@@ -1 +1 @@
1
- {"version":3,"file":"uitec-ng-upload-order.mjs","sources":["../../../projects/ui-upload-order/src/lib/ui-upload-order.component.ts","../../../projects/ui-upload-order/src/lib/ui-upload-order.component.html","../../../projects/ui-upload-order/src/lib/ui-upload-order.module.ts","../../../projects/ui-upload-order/src/public-api.ts","../../../projects/ui-upload-order/src/uitec-ng-upload-order.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { FilePondComponent, } from \"ngx-filepond\";\r\nimport { FilePond, FilePondFile, FilePondOptions } from \"filepond\";\r\nimport { IAlbum, Lightbox } from 'ngx-lightbox';\r\nimport { Observable, Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'ui-upload-order',\r\n templateUrl: './ui-upload-order.component.html',\r\n styleUrls: ['./ui-upload-order.component.scss']\r\n})\r\nexport class UiUploadOrderComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() uploadObservable: Observable<void>;\r\n private eventsSubscription: Subscription\r\n\r\n @Input() url: string;\r\n @Input() initialFiles: string[];\r\n @Input() multiple: boolean = true;\r\n @Input() reorder: boolean = true;\r\n @Input() maxFiles: number = 6;\r\n @Input() transparent: boolean;\r\n @Input() lightBox: boolean = true;\r\n @Input() instantUpload: boolean = true;\r\n\r\n @Output() onRemove = new EventEmitter<string>();\r\n @Output() onAdded = new EventEmitter<string>();\r\n @Output() onActivate = new EventEmitter<FilePondFile>();\r\n @Output() onInit = new EventEmitter<FilePondOptions[\"files\"]>();\r\n @Output() onMaxReached = new EventEmitter<string>();\r\n @Output() onReOrder = new EventEmitter<FilePondFile[]>();\r\n @Output() onSelected = new EventEmitter<any>();\r\n\r\n @ViewChild(\"myPond\") myPond: FilePondComponent;\r\n\r\n constructor(private _lightbox: Lightbox) { }\r\n\r\n public pond: FilePond;\r\n public pondOptions: FilePondOptions;\r\n public pondFiles: FilePondOptions[\"files\"] = [];\r\n public album: IAlbum[] = [];\r\n\r\n ngOnInit(): void {\r\n this.pondOptions = {\r\n allowMultiple: this.multiple,\r\n labelIdle: 'Arraste seus arquivos ou <span class=\"filepond--label-action\">clique aqui</span> para selecionar.',\r\n allowReorder: this.reorder,\r\n maxFiles: this.maxFiles,\r\n acceptedFileTypes: ['image/*'],\r\n instantUpload: this.instantUpload,\r\n allowProcess: this.instantUpload,\r\n dropValidation: true,\r\n iconRemove: `<svg width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <mask id=\"mask0_37067_34146\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"15\" height=\"16\">\r\n <rect x=\"0.130859\" y=\"0.631592\" width=\"14.7368\" height=\"14.7368\" fill=\"#D9D9D9\"/>\r\n </mask>\r\n <g mask=\"url(#mask0_37067_34146)\">\r\n <path d=\"M4.43 13.5263C4.09228 13.5263 3.80317 13.406 3.56267 13.1655C3.32217 12.925 3.20193 12.6359 3.20193 12.2982V4.31574C3.02795 4.31574 2.88212 4.25689 2.76443 4.1392C2.64674 4.02151 2.58789 3.87568 2.58789 3.7017C2.58789 3.52773 2.64674 3.38189 2.76443 3.2642C2.88212 3.14651 3.02795 3.08767 3.20193 3.08767H5.65807C5.65807 2.91369 5.71691 2.76786 5.8346 2.65017C5.95229 2.53248 6.09812 2.47363 6.2721 2.47363H8.72824C8.90222 2.47363 9.04805 2.53248 9.16574 2.65017C9.28343 2.76786 9.34228 2.91369 9.34228 3.08767H11.7984C11.9724 3.08767 12.1182 3.14651 12.2359 3.2642C12.3536 3.38189 12.4125 3.52773 12.4125 3.7017C12.4125 3.87568 12.3536 4.02151 12.2359 4.1392C12.1182 4.25689 11.9724 4.31574 11.7984 4.31574V12.2982C11.7984 12.6359 11.6782 12.925 11.4377 13.1655C11.1972 13.406 10.9081 13.5263 10.5703 13.5263H4.43ZM4.43 4.31574V12.2982H10.5703V4.31574H4.43ZM7.50017 9.16662L8.66684 10.3333C8.78965 10.4459 8.93548 10.5021 9.10434 10.5021C9.2732 10.5021 9.41391 10.4459 9.52649 10.3333C9.64929 10.2105 9.7107 10.0646 9.7107 9.89578C9.7107 9.72692 9.64929 9.58621 9.52649 9.47363L8.35982 8.30697L9.52649 7.1403C9.64929 7.01749 9.7107 6.87166 9.7107 6.7028C9.7107 6.53394 9.64929 6.39322 9.52649 6.28065C9.41391 6.15784 9.2732 6.09644 9.10434 6.09644C8.93548 6.09644 8.78965 6.15784 8.66684 6.28065L7.50017 7.44732L6.3335 6.28065C6.22093 6.15784 6.08022 6.09644 5.91136 6.09644C5.7425 6.09644 5.59666 6.15784 5.47386 6.28065C5.36128 6.39322 5.305 6.53394 5.305 6.7028C5.305 6.87166 5.36128 7.01749 5.47386 7.1403L6.64052 8.30697L5.47386 9.47363C5.36128 9.58621 5.305 9.72692 5.305 9.89578C5.305 10.0646 5.36128 10.2105 5.47386 10.3333C5.59666 10.4459 5.7425 10.5021 5.91136 10.5021C6.08022 10.5021 6.22093 10.4459 6.3335 10.3333L7.50017 9.16662Z\" fill=\"white\"/>\r\n </g></svg>`,\r\n styleButtonRemoveItemPosition: 'right',\r\n imageResizeMode: 'contain',\r\n styleItemPanelAspectRatio: '0.75',\r\n itemInsertLocation: 'after',\r\n credits: false,\r\n server: {\r\n process: (fieldName, file, metadata, load, error, progress, abort, transfer, options) => {\r\n // fieldName is the name of the input field\r\n // file is the actual file object to send\r\n const formData = new FormData();\r\n formData.append(fieldName, file, file.name);\r\n\r\n const request = new XMLHttpRequest();\r\n request.open('POST', this.url);\r\n\r\n // Should call the progress method to update the progress to 100% before calling load\r\n // Setting computable to false switches the loading indicator to infinite mode\r\n request.upload.onprogress = (e) => {\r\n progress(e.lengthComputable, e.loaded, e.total);\r\n };\r\n\r\n // Should call the load method when done and pass the returned server file id\r\n // this server file id is then used later on when reverting or restoring a file\r\n // so your server knows which file to return without exposing that info to the client\r\n request.onload = function () {\r\n if (request.status >= 200 && request.status < 300) {\r\n // the load method accepts either a string (id) or an object\r\n load(request.responseText);\r\n } else {\r\n // Can call the error method if something is wrong, should exit after\r\n error('oh no');\r\n }\r\n };\r\n\r\n request.send(formData);\r\n\r\n // Should expose an abort method so the request can be cancelled\r\n return {\r\n abort: () => {\r\n // This function is entered if the user has tapped the cancel button\r\n request.abort();\r\n\r\n // Let FilePond know the request has been cancelled\r\n abort();\r\n },\r\n };\r\n },\r\n load: (source, load, error, progress, abort, headers) => {\r\n var myRequest = new Request(source);\r\n fetch(myRequest).then(response => {\r\n response.arrayBuffer().then(buffer => {\r\n const contentType = response.headers.get('content-type');\r\n // Get the file extension from the source URL\r\n const fileExtension = source.split('.').pop();\r\n // Map file extensions to MIME types\r\n const mimeTypeMap = {\r\n 'webp': 'image/webp',\r\n 'jpg': 'image/jpeg',\r\n 'jpeg': 'image/jpeg',\r\n 'png': 'image/png',\r\n // Add other supported image types as needed\r\n };\r\n const fileType = mimeTypeMap[fileExtension] || contentType || 'application/octet-stream';\r\n\r\n const myBlob = new Blob([buffer], { type: fileType });\r\n load(myBlob);\r\n });\r\n }).catch(error => {\r\n console.log('ERROR: ', error);\r\n });\r\n },\r\n },\r\n };\r\n\r\n if (!this.instantUpload) {\r\n this.eventsSubscription = this.uploadObservable.subscribe(() => this.uploadFiles());\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.initialFiles) {\r\n this.pondFiles = this.initialFiles.map((item: string) => {\r\n return {\r\n source: item,\r\n options: {\r\n type: 'local',\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!this.instantUpload) {\r\n this.eventsSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n pondHandleInit(event: any) {\r\n this.onInit.emit(this.pondFiles)\r\n\r\n this.pond = event.pond;\r\n }\r\n\r\n pondHandleAddFile(event: any) {\r\n const formattedName = event.file.serverId.replace(/[\"\\[\\]]/g, '');\r\n this.onAdded.emit(formattedName)\r\n }\r\n\r\n pondHandleActivateFile(event: any) {\r\n this.onActivate.emit(event);\r\n this.lightBox && this.openLightBox(event.file.filenameWithoutExtension);\r\n }\r\n\r\n pondHandleUpdate(event: any) {\r\n this.fillAlbum(event.items)\r\n }\r\n\r\n pondHandleRemove(event: any) {\r\n let fileName: string;\r\n if (event.file.source instanceof File) {\r\n fileName = event.file.serverId?.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n fileName = event.file?.filename;\r\n }\r\n\r\n this.onRemove.emit(fileName)\r\n }\r\n\r\n onReorderFiles(event: any) {\r\n this.fillAlbum(event.items, true)\r\n let itemsList = event.items.map((item: FilePondFile) => {\r\n if (item.source instanceof File) {\r\n return item.serverId.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n return item.filename\r\n }\r\n })\r\n this.onReOrder.emit(itemsList)\r\n }\r\n\r\n warning(event: any) {\r\n if (event.error.code == 0) {\r\n this.onMaxReached.emit(`Limite de Arquivos atingido. Você pode inserir um total de ${this.maxFiles} arquivos.`)\r\n }\r\n }\r\n\r\n openLightBox(fileName: string): void {\r\n let index = this.album.map(function (e) { return e.caption; }).indexOf(fileName);\r\n this._lightbox.open(this.album, index);\r\n }\r\n\r\n async fillAlbum(files: [], reOrder?: boolean) {\r\n if (files.length !== this.album.length || reOrder) {\r\n\r\n const preAlbum = await Promise.all(files.map(async (file: FilePondFile) => {\r\n let fileUrl: string;\r\n\r\n if (file.source instanceof File) {\r\n fileUrl = await this.readFileAsync(file.source);\r\n } else {\r\n fileUrl = file.source.toString();\r\n }\r\n\r\n return {\r\n src: fileUrl,\r\n caption: file.filenameWithoutExtension,\r\n thumb: ''\r\n };\r\n }));\r\n\r\n this.album = preAlbum;\r\n }\r\n }\r\n\r\n readFileAsync(file: File): Promise<string> {\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n const dataUrl = reader.result;\r\n const fileUrl = dataUrl.toString();\r\n resolve(fileUrl);\r\n };\r\n });\r\n }\r\n\r\n uploadFiles() {\r\n this.pond.processFiles();\r\n }\r\n}\r\n","<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n","import { NgModule } from '@angular/core';\r\nimport { UiUploadOrderComponent } from './ui-upload-order.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LightboxModule } from 'ngx-lightbox';\r\n\r\n// import filepond module\r\nimport { FilePondModule, registerPlugin } from \"ngx-filepond\";\r\n\r\n// import and register filepond plugins\r\nimport FilePondPluginFileValidateType from \"filepond-plugin-file-validate-type\";\r\nimport FilePondPluginImagePreview from 'filepond-plugin-image-preview';\r\nimport FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';\r\nimport FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';\r\nimport FilePondPluginImageCrop from 'filepond-plugin-image-crop';\r\nimport FilePondPluginImageResize from 'filepond-plugin-image-resize';\r\n\r\nregisterPlugin(\r\n FilePondPluginFileValidateType,\r\n FilePondPluginImagePreview,\r\n FilePondPluginImageExifOrientation,\r\n FilePondPluginFileValidateSize,\r\n FilePondPluginImageCrop,\r\n FilePondPluginImageResize\r\n);\r\n\r\n@NgModule({\r\n declarations: [\r\n UiUploadOrderComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FilePondModule,\r\n LightboxModule\r\n ],\r\n exports: [\r\n UiUploadOrderComponent\r\n ]\r\n})\r\nexport class UiUploadOrderModule { }\r\n","/*\r\n * Public API Surface of ui-upload-order\r\n */\r\n\r\nexport * from './lib/ui-upload-order.component';\r\nexport * from './lib/ui-upload-order.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uitec-ng-upload-order.mjs","sources":["../../../projects/ui-upload-order/src/lib/ui-upload-order.component.ts","../../../projects/ui-upload-order/src/lib/ui-upload-order.component.html","../../../projects/ui-upload-order/src/lib/ui-upload-order.module.ts","../../../projects/ui-upload-order/src/public-api.ts","../../../projects/ui-upload-order/src/uitec-ng-upload-order.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { FilePondComponent, } from \"ngx-filepond\";\r\nimport { FilePond, FilePondFile, FilePondOptions } from \"filepond\";\r\nimport { IAlbum, Lightbox } from 'ngx-lightbox';\r\nimport { Observable, Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'ui-upload-order',\r\n templateUrl: './ui-upload-order.component.html',\r\n styleUrls: ['./ui-upload-order.component.scss']\r\n})\r\nexport class UiUploadOrderComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() uploadObservable: Observable<void>;\r\n private eventsSubscription: Subscription\r\n\r\n @Input() url: string;\r\n @Input() initialFiles: string[];\r\n @Input() multiple: boolean = true;\r\n @Input() reorder: boolean = true;\r\n @Input() maxFiles: number = 6;\r\n @Input() transparent: boolean;\r\n @Input() lightBox: boolean = true;\r\n @Input() instantUpload: boolean = true;\r\n\r\n @Output() onRemove = new EventEmitter<string>();\r\n @Output() onAdded = new EventEmitter<string>();\r\n @Output() onAllAdded = new EventEmitter<string[]>();\r\n @Output() onActivate = new EventEmitter<FilePondFile>();\r\n @Output() onInit = new EventEmitter<FilePondOptions[\"files\"]>();\r\n @Output() onMaxReached = new EventEmitter<string>();\r\n @Output() onReOrder = new EventEmitter<FilePondFile[]>();\r\n @Output() onSelected = new EventEmitter<any>();\r\n\r\n @ViewChild(\"myPond\") myPond: FilePondComponent;\r\n\r\n constructor(private _lightbox: Lightbox) { }\r\n\r\n public pond: FilePond;\r\n public pondOptions: FilePondOptions;\r\n public pondFiles: FilePondOptions[\"files\"] = [];\r\n public album: IAlbum[] = [];\r\n\r\n ngOnInit(): void {\r\n this.pondOptions = {\r\n allowMultiple: this.multiple,\r\n labelIdle: 'Arraste seus arquivos ou <span class=\"filepond--label-action\">clique aqui</span> para selecionar.',\r\n allowReorder: this.reorder,\r\n maxFiles: this.maxFiles,\r\n acceptedFileTypes: ['image/*'],\r\n instantUpload: this.instantUpload,\r\n allowProcess: this.instantUpload,\r\n dropValidation: true,\r\n iconRemove: `<svg width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <mask id=\"mask0_37067_34146\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"15\" height=\"16\">\r\n <rect x=\"0.130859\" y=\"0.631592\" width=\"14.7368\" height=\"14.7368\" fill=\"#D9D9D9\"/>\r\n </mask>\r\n <g mask=\"url(#mask0_37067_34146)\">\r\n <path d=\"M4.43 13.5263C4.09228 13.5263 3.80317 13.406 3.56267 13.1655C3.32217 12.925 3.20193 12.6359 3.20193 12.2982V4.31574C3.02795 4.31574 2.88212 4.25689 2.76443 4.1392C2.64674 4.02151 2.58789 3.87568 2.58789 3.7017C2.58789 3.52773 2.64674 3.38189 2.76443 3.2642C2.88212 3.14651 3.02795 3.08767 3.20193 3.08767H5.65807C5.65807 2.91369 5.71691 2.76786 5.8346 2.65017C5.95229 2.53248 6.09812 2.47363 6.2721 2.47363H8.72824C8.90222 2.47363 9.04805 2.53248 9.16574 2.65017C9.28343 2.76786 9.34228 2.91369 9.34228 3.08767H11.7984C11.9724 3.08767 12.1182 3.14651 12.2359 3.2642C12.3536 3.38189 12.4125 3.52773 12.4125 3.7017C12.4125 3.87568 12.3536 4.02151 12.2359 4.1392C12.1182 4.25689 11.9724 4.31574 11.7984 4.31574V12.2982C11.7984 12.6359 11.6782 12.925 11.4377 13.1655C11.1972 13.406 10.9081 13.5263 10.5703 13.5263H4.43ZM4.43 4.31574V12.2982H10.5703V4.31574H4.43ZM7.50017 9.16662L8.66684 10.3333C8.78965 10.4459 8.93548 10.5021 9.10434 10.5021C9.2732 10.5021 9.41391 10.4459 9.52649 10.3333C9.64929 10.2105 9.7107 10.0646 9.7107 9.89578C9.7107 9.72692 9.64929 9.58621 9.52649 9.47363L8.35982 8.30697L9.52649 7.1403C9.64929 7.01749 9.7107 6.87166 9.7107 6.7028C9.7107 6.53394 9.64929 6.39322 9.52649 6.28065C9.41391 6.15784 9.2732 6.09644 9.10434 6.09644C8.93548 6.09644 8.78965 6.15784 8.66684 6.28065L7.50017 7.44732L6.3335 6.28065C6.22093 6.15784 6.08022 6.09644 5.91136 6.09644C5.7425 6.09644 5.59666 6.15784 5.47386 6.28065C5.36128 6.39322 5.305 6.53394 5.305 6.7028C5.305 6.87166 5.36128 7.01749 5.47386 7.1403L6.64052 8.30697L5.47386 9.47363C5.36128 9.58621 5.305 9.72692 5.305 9.89578C5.305 10.0646 5.36128 10.2105 5.47386 10.3333C5.59666 10.4459 5.7425 10.5021 5.91136 10.5021C6.08022 10.5021 6.22093 10.4459 6.3335 10.3333L7.50017 9.16662Z\" fill=\"white\"/>\r\n </g></svg>`,\r\n styleButtonRemoveItemPosition: 'right',\r\n imageResizeMode: 'contain',\r\n styleItemPanelAspectRatio: '0.75',\r\n itemInsertLocation: 'after',\r\n credits: false,\r\n server: {\r\n process: (fieldName, file, metadata, load, error, progress, abort, transfer, options) => {\r\n // fieldName is the name of the input field\r\n // file is the actual file object to send\r\n const formData = new FormData();\r\n formData.append(fieldName, file, file.name);\r\n\r\n const request = new XMLHttpRequest();\r\n request.open('POST', this.url);\r\n\r\n // Should call the progress method to update the progress to 100% before calling load\r\n // Setting computable to false switches the loading indicator to infinite mode\r\n request.upload.onprogress = (e) => {\r\n progress(e.lengthComputable, e.loaded, e.total);\r\n };\r\n\r\n // Should call the load method when done and pass the returned server file id\r\n // this server file id is then used later on when reverting or restoring a file\r\n // so your server knows which file to return without exposing that info to the client\r\n request.onload = function () {\r\n if (request.status >= 200 && request.status < 300) {\r\n // the load method accepts either a string (id) or an object\r\n load(request.responseText);\r\n } else {\r\n // Can call the error method if something is wrong, should exit after\r\n error('oh no');\r\n }\r\n };\r\n\r\n request.send(formData);\r\n\r\n // Should expose an abort method so the request can be cancelled\r\n return {\r\n abort: () => {\r\n // This function is entered if the user has tapped the cancel button\r\n request.abort();\r\n\r\n // Let FilePond know the request has been cancelled\r\n abort();\r\n },\r\n };\r\n },\r\n load: (source, load, error, progress, abort, headers) => {\r\n var myRequest = new Request(source);\r\n fetch(myRequest).then(response => {\r\n response.arrayBuffer().then(buffer => {\r\n const contentType = response.headers.get('content-type');\r\n // Get the file extension from the source URL\r\n const fileExtension = source.split('.').pop();\r\n // Map file extensions to MIME types\r\n const mimeTypeMap = {\r\n 'webp': 'image/webp',\r\n 'jpg': 'image/jpeg',\r\n 'jpeg': 'image/jpeg',\r\n 'png': 'image/png',\r\n // Add other supported image types as needed\r\n };\r\n const fileType = mimeTypeMap[fileExtension] || contentType || 'application/octet-stream';\r\n\r\n const myBlob = new Blob([buffer], { type: fileType });\r\n load(myBlob);\r\n });\r\n }).catch(error => {\r\n console.log('ERROR: ', error);\r\n });\r\n },\r\n },\r\n };\r\n\r\n if (!this.instantUpload) {\r\n this.eventsSubscription = this.uploadObservable.subscribe(() => this.uploadFiles());\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.initialFiles) {\r\n this.pondFiles = this.initialFiles.map((item: string) => {\r\n return {\r\n source: item,\r\n options: {\r\n type: 'local',\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!this.instantUpload) {\r\n this.eventsSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n pondHandleInit(event: any) {\r\n this.onInit.emit(this.pondFiles)\r\n\r\n this.pond = event.pond;\r\n }\r\n\r\n pondHandleAddFile(event: any) {\r\n const formattedName = event.file.serverId.replace(/[\"\\[\\]]/g, '');\r\n this.onAdded.emit(formattedName)\r\n }\r\n\r\n //Só funciona quando não tem arquivos iniciais\r\n pondHandleAllFilesAdded(event: any) {\r\n const filesList: string[] = [];\r\n const files = event.pond.getFiles();\r\n\r\n files.forEach((file: FilePondFile) => {\r\n let formattedName = file.serverId.replace(/[\"\\[\\]]/g, '');\r\n filesList.push(formattedName);\r\n\r\n });\r\n\r\n this.onAllAdded.emit(filesList);\r\n }\r\n\r\n pondHandleActivateFile(event: any) {\r\n this.onActivate.emit(event);\r\n this.lightBox && this.openLightBox(event.file.filenameWithoutExtension);\r\n }\r\n\r\n pondHandleUpdate(event: any) {\r\n this.fillAlbum(event.items)\r\n }\r\n\r\n pondHandleRemove(event: any) {\r\n let fileName: string;\r\n if (event.file.source instanceof File) {\r\n fileName = event.file.serverId?.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n fileName = event.file?.filename;\r\n }\r\n\r\n this.onRemove.emit(fileName)\r\n }\r\n\r\n onReorderFiles(event: any) {\r\n this.fillAlbum(event.items, true)\r\n let itemsList = event.items.map((item: FilePondFile) => {\r\n if (item.source instanceof File) {\r\n return item.serverId.replace(/[\"\\[\\]]/g, '');\r\n } else {\r\n return item.filename\r\n }\r\n })\r\n this.onReOrder.emit(itemsList)\r\n }\r\n\r\n warning(event: any) {\r\n if (event.error.code == 0) {\r\n this.onMaxReached.emit(`Limite de Arquivos atingido. Você pode inserir um total de ${this.maxFiles} arquivos.`)\r\n }\r\n }\r\n\r\n openLightBox(fileName: string): void {\r\n let index = this.album.map(function (e) { return e.caption; }).indexOf(fileName);\r\n this._lightbox.open(this.album, index);\r\n }\r\n\r\n async fillAlbum(files: [], reOrder?: boolean) {\r\n if (files.length !== this.album.length || reOrder) {\r\n\r\n const preAlbum = await Promise.all(files.map(async (file: FilePondFile) => {\r\n let fileUrl: string;\r\n\r\n if (file.source instanceof File) {\r\n fileUrl = await this.readFileAsync(file.source);\r\n } else {\r\n fileUrl = file.source.toString();\r\n }\r\n\r\n return {\r\n src: fileUrl,\r\n caption: file.filenameWithoutExtension,\r\n thumb: ''\r\n };\r\n }));\r\n\r\n this.album = preAlbum;\r\n }\r\n }\r\n\r\n readFileAsync(file: File): Promise<string> {\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n const dataUrl = reader.result;\r\n const fileUrl = dataUrl.toString();\r\n resolve(fileUrl);\r\n };\r\n });\r\n }\r\n\r\n uploadFiles() {\r\n this.pond.processFiles();\r\n }\r\n}\r\n","<!-- app.component.html -->\r\n<file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\" (onremovefile)=\"pondHandleRemove($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\" (onprocessfiles)=\"pondHandleAllFilesAdded($event)\"\r\n (onprocessfile)=\"pondHandleAddFile($event)\" />\r\n","import { NgModule } from '@angular/core';\r\nimport { UiUploadOrderComponent } from './ui-upload-order.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LightboxModule } from 'ngx-lightbox';\r\n\r\n// import filepond module\r\nimport { FilePondModule, registerPlugin } from \"ngx-filepond\";\r\n\r\n// import and register filepond plugins\r\nimport FilePondPluginFileValidateType from \"filepond-plugin-file-validate-type\";\r\nimport FilePondPluginImagePreview from 'filepond-plugin-image-preview';\r\nimport FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';\r\nimport FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';\r\nimport FilePondPluginImageCrop from 'filepond-plugin-image-crop';\r\nimport FilePondPluginImageResize from 'filepond-plugin-image-resize';\r\n\r\nregisterPlugin(\r\n FilePondPluginFileValidateType,\r\n FilePondPluginImagePreview,\r\n FilePondPluginImageExifOrientation,\r\n FilePondPluginFileValidateSize,\r\n FilePondPluginImageCrop,\r\n FilePondPluginImageResize\r\n);\r\n\r\n@NgModule({\r\n declarations: [\r\n UiUploadOrderComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FilePondModule,\r\n LightboxModule\r\n ],\r\n exports: [\r\n UiUploadOrderComponent\r\n ]\r\n})\r\nexport class UiUploadOrderModule { }\r\n","/*\r\n * Public API Surface of ui-upload-order\r\n */\r\n\r\nexport * from './lib/ui-upload-order.component';\r\nexport * from './lib/ui-upload-order.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export declare class UiUploadOrderComponent implements OnInit, OnChanges, OnDest
18
18
  instantUpload: boolean;
19
19
  onRemove: EventEmitter<string>;
20
20
  onAdded: EventEmitter<string>;
21
+ onAllAdded: EventEmitter<string[]>;
21
22
  onActivate: EventEmitter<FilePondFile>;
22
23
  onInit: EventEmitter<(string | Blob | import("filepond").ActualFileObject | import("filepond").FilePondInitialFile)[]>;
23
24
  onMaxReached: EventEmitter<string>;
@@ -34,6 +35,7 @@ export declare class UiUploadOrderComponent implements OnInit, OnChanges, OnDest
34
35
  ngOnDestroy(): void;
35
36
  pondHandleInit(event: any): void;
36
37
  pondHandleAddFile(event: any): void;
38
+ pondHandleAllFilesAdded(event: any): void;
37
39
  pondHandleActivateFile(event: any): void;
38
40
  pondHandleUpdate(event: any): void;
39
41
  pondHandleRemove(event: any): void;
@@ -44,5 +46,5 @@ export declare class UiUploadOrderComponent implements OnInit, OnChanges, OnDest
44
46
  readFileAsync(file: File): Promise<string>;
45
47
  uploadFiles(): void;
46
48
  static ɵfac: i0.ɵɵFactoryDeclaration<UiUploadOrderComponent, never>;
47
- static ɵcmp: i0.ɵɵComponentDeclaration<UiUploadOrderComponent, "ui-upload-order", never, { "uploadObservable": "uploadObservable"; "url": "url"; "initialFiles": "initialFiles"; "multiple": "multiple"; "reorder": "reorder"; "maxFiles": "maxFiles"; "transparent": "transparent"; "lightBox": "lightBox"; "instantUpload": "instantUpload"; }, { "onRemove": "onRemove"; "onAdded": "onAdded"; "onActivate": "onActivate"; "onInit": "onInit"; "onMaxReached": "onMaxReached"; "onReOrder": "onReOrder"; "onSelected": "onSelected"; }, never, never, false, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiUploadOrderComponent, "ui-upload-order", never, { "uploadObservable": "uploadObservable"; "url": "url"; "initialFiles": "initialFiles"; "multiple": "multiple"; "reorder": "reorder"; "maxFiles": "maxFiles"; "transparent": "transparent"; "lightBox": "lightBox"; "instantUpload": "instantUpload"; }, { "onRemove": "onRemove"; "onAdded": "onAdded"; "onAllAdded": "onAllAdded"; "onActivate": "onActivate"; "onInit": "onInit"; "onMaxReached": "onMaxReached"; "onReOrder": "onReOrder"; "onSelected": "onSelected"; }, never, never, false, never>;
48
50
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uitec-ng-upload-order",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.2.0",
6
6
  "@angular/core": "^15.2.0"