nuxeo-development-framework 5.7.9 → 5.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +667 -12
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.js +123 -0
  4. package/esm2015/lib/components/ndf-uploader/components/index.js +2 -0
  5. package/esm2015/lib/components/ndf-uploader/config/index.js +2 -0
  6. package/esm2015/lib/components/ndf-uploader/config/uploader.config.js +10 -0
  7. package/esm2015/lib/components/ndf-uploader/constant/file-content.js +6 -0
  8. package/esm2015/lib/components/ndf-uploader/constant/index.js +2 -0
  9. package/esm2015/lib/components/ndf-uploader/helpers/index.js +2 -0
  10. package/esm2015/lib/components/ndf-uploader/helpers/uploader.helper.js +100 -0
  11. package/esm2015/lib/components/ndf-uploader/index.js +6 -0
  12. package/esm2015/lib/components/ndf-uploader/models/batch.model.js +2 -0
  13. package/esm2015/lib/components/ndf-uploader/models/index.js +4 -0
  14. package/esm2015/lib/components/ndf-uploader/models/ndf-file.model.js +20 -0
  15. package/esm2015/lib/components/ndf-uploader/models/provider.model.js +2 -0
  16. package/esm2015/lib/components/ndf-uploader/providers/index.js +3 -0
  17. package/esm2015/lib/components/ndf-uploader/providers/nuxeo-provider.service.js +32 -0
  18. package/esm2015/lib/components/ndf-uploader/providers/s3-provider.service.js +26 -0
  19. package/esm2015/lib/components/ndf-uploader/uploader-bottom-sheet.service.js +72 -0
  20. package/esm2015/lib/components/ndf-uploader/uploader.module.js +53 -0
  21. package/esm2015/lib/components/ndf-uploader/uploader.service.js +241 -0
  22. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +1 -1
  23. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +2 -3
  24. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +6 -6
  25. package/esm2015/public-api.js +2 -1
  26. package/fesm2015/nuxeo-development-framework.js +626 -11
  27. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  28. package/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.d.ts +27 -0
  29. package/lib/components/ndf-uploader/components/index.d.ts +1 -0
  30. package/lib/components/ndf-uploader/config/index.d.ts +1 -0
  31. package/lib/components/ndf-uploader/config/uploader.config.d.ts +9 -0
  32. package/lib/components/ndf-uploader/constant/file-content.d.ts +5 -0
  33. package/lib/components/ndf-uploader/constant/index.d.ts +1 -0
  34. package/lib/components/ndf-uploader/helpers/index.d.ts +1 -0
  35. package/lib/components/ndf-uploader/helpers/uploader.helper.d.ts +10 -0
  36. package/lib/components/ndf-uploader/index.d.ts +5 -0
  37. package/lib/components/ndf-uploader/models/batch.model.d.ts +28 -0
  38. package/lib/components/ndf-uploader/models/index.d.ts +3 -0
  39. package/lib/components/ndf-uploader/models/ndf-file.model.d.ts +46 -0
  40. package/lib/components/ndf-uploader/models/provider.model.d.ts +7 -0
  41. package/lib/components/ndf-uploader/providers/index.d.ts +2 -0
  42. package/lib/components/ndf-uploader/providers/nuxeo-provider.service.d.ts +13 -0
  43. package/lib/components/ndf-uploader/providers/s3-provider.service.d.ts +13 -0
  44. package/lib/components/ndf-uploader/uploader-bottom-sheet.service.d.ts +30 -0
  45. package/lib/components/ndf-uploader/uploader.module.d.ts +16 -0
  46. package/lib/components/ndf-uploader/uploader.service.d.ts +25 -0
  47. package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts +1 -0
  48. package/package.json +1 -1
  49. package/public-api.d.ts +1 -0
@@ -0,0 +1,123 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';
3
+ import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
4
+ import { BehaviorSubject, of, Subject } from 'rxjs';
5
+ import { BaseComponent } from '../../../../shared/components/base';
6
+ import { FileEventType, FileStatus } from '../../models';
7
+ import { UploaderSheetEventType } from '../../uploader-bottom-sheet.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../../shared/components/nuxeo-dialog/services/nuxeo-dialog.service";
10
+ import * as i2 from "../../uploader.service";
11
+ import * as i3 from "../../uploader-bottom-sheet.service";
12
+ import * as i4 from "@angular/material/expansion";
13
+ import * as i5 from "@angular/material/icon";
14
+ import * as i6 from "@angular/material/progress-spinner";
15
+ import * as i7 from "@angular/common";
16
+ import * as i8 from "@angular/material/tooltip";
17
+ import * as i9 from "@ngx-translate/core";
18
+ export class NdfUploaderBottomSheetComponent extends BaseComponent {
19
+ constructor(injector, nuxeoDialogService, uploaderService, uploaderBottomSheetService, files) {
20
+ super(injector);
21
+ this.nuxeoDialogService = nuxeoDialogService;
22
+ this.uploaderService = uploaderService;
23
+ this.uploaderBottomSheetService = uploaderBottomSheetService;
24
+ this.files = files;
25
+ this.expanded = true;
26
+ this.completed$ = new Subject();
27
+ this.fileStatus = FileStatus;
28
+ this.uploaderBottomSheetService.filesInfo$ = new BehaviorSubject([]);
29
+ this.uploaderService.reset();
30
+ }
31
+ ngOnInit() {
32
+ if (this.files.length) {
33
+ this.uploaderService
34
+ .upload(this.files)
35
+ .pipe(takeUntil(this.destroy$), distinctUntilChanged())
36
+ .subscribe((event) => {
37
+ if (event.type == FileEventType.Changes) {
38
+ const data = event.data;
39
+ this.uploaderBottomSheetService.filesInfo$.value.forEach((item) => {
40
+ const updatedFile = data.find((q) => q.batchId == item.batchId);
41
+ if (updatedFile) {
42
+ updatedFile.documentId = item.documentId;
43
+ }
44
+ });
45
+ this.uploaderBottomSheetService.filesInfo$.next(data);
46
+ this.completed$.next(data.filter((q) => q.status == FileStatus.Completed).length);
47
+ }
48
+ else if (event.type == FileEventType.Complete) {
49
+ this.uploaderBottomSheetService.notify({
50
+ type: UploaderSheetEventType.Submit,
51
+ data: event.data[0]
52
+ });
53
+ }
54
+ });
55
+ }
56
+ }
57
+ open(fileInfo) {
58
+ const ids = fileInfo
59
+ ? [fileInfo.documentId]
60
+ : this.uploaderBottomSheetService.filesInfo$.value
61
+ .filter((f) => f.status == FileStatus.Completed)
62
+ .map((f) => f.documentId);
63
+ this.uploaderBottomSheetService.notify({
64
+ type: UploaderSheetEventType.Open,
65
+ data: ids
66
+ });
67
+ }
68
+ add(event) {
69
+ const input = event.target;
70
+ this.uploaderBottomSheetService.open(Array.from(input.files));
71
+ this.expanded = true;
72
+ }
73
+ dismiss() {
74
+ const allFilesCompleted = this.uploaderBottomSheetService.filesInfo$.value.every((f) => f.status === FileStatus.Completed);
75
+ if (allFilesCompleted) {
76
+ this.uploaderService.reset();
77
+ return this.uploaderBottomSheetService.close();
78
+ }
79
+ this.nuxeoDialogService.showConfirm({
80
+ message: 'confirmDialog.closeUploading',
81
+ actions: {
82
+ confirm: {
83
+ label: 'BUTTONS.confirm',
84
+ fn: () => {
85
+ this.uploaderBottomSheetService.close();
86
+ // const hasNotCompleted = this.filesInfo$.value.every(
87
+ // (f) => f.status != FileStatus.Completed
88
+ // );
89
+ // if (hasNotCompleted) {
90
+ // // will delete all not completed batches or not
91
+ // return this.uploaderService.cancel();
92
+ // }
93
+ this.uploaderService.reset();
94
+ return of(true);
95
+ }
96
+ }
97
+ }
98
+ });
99
+ }
100
+ retry(fileInfo) {
101
+ this.uploaderService.resume(fileInfo.id);
102
+ }
103
+ cancel(fileInfo) {
104
+ this.uploaderService.stop(fileInfo.id);
105
+ }
106
+ trackFile(index, item) {
107
+ return item.id;
108
+ }
109
+ }
110
+ NdfUploaderBottomSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfUploaderBottomSheetComponent, deps: [{ token: i0.Injector }, { token: i1.NuxeoDialogService }, { token: i2.UploaderService }, { token: i3.UploaderBottomSheetService }, { token: MAT_BOTTOM_SHEET_DATA }], target: i0.ɵɵFactoryTarget.Component });
111
+ NdfUploaderBottomSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfUploaderBottomSheetComponent, selector: "ndf-uploader-bottom-sheet", usesInheritance: true, ngImport: i0, template: "<mat-expansion-panel [expanded]=\"expanded\" hideToggle>\r\n\t<mat-expansion-panel-header #panelH (click)=\"panelH._toggle()\">\r\n\t\t<div class=\"w-full d-flex justify-content-between\">\r\n\t\t\t<ng-container *ngIf=\"completed$ | async as completed; else generalMsg\">\r\n\t\t\t\t<ng-container *ngIf=\"completed > 1; else single\">\r\n\t\t\t\t\t<div class=\"flex items-center justify-center font-weight-bold\">\r\n\t\t\t\t\t\t{{ 'UploaderBottomSheet.MultiUploadsComplete' | translate : { completed: completed } }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-template #single>\r\n\t\t\t\t\t<div class=\"flex items-center justify-center font-weight-bold\">\r\n\t\t\t\t\t\t{{ 'UploaderBottomSheet.SingleUploadsComplete' | translate }}\r\n\t\t\t\t\t</div></ng-template\r\n\t\t\t\t>\r\n\t\t\t</ng-container>\r\n\t\t\t<ng-template #generalMsg>\r\n\t\t\t\t<div class=\"flex items-center justify-center font-weight-bold\">\r\n\t\t\t\t\t{{ 'UploaderBottomSheet.UploadingData' | translate }}\r\n\t\t\t\t</div>\r\n\t\t\t</ng-template>\r\n\r\n\t\t\t<div>\r\n\t\t\t\t<mat-icon\r\n\t\t\t\t\tclass=\"icon-size-3.5 mx-2\"\r\n\t\t\t\t\t[svgIcon]=\"'icons:plus'\"\r\n\t\t\t\t\t(click)=\"$event.stopPropagation(); fileInput.click()\"\r\n\t\t\t\t\tmatTooltip=\"{{ 'UploaderBottomSheet.CREATE' | translate }}\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-icon>\r\n\t\t\t\t<input type=\"file\" hidden #fileInput (change)=\"add($event)\" multiple />\r\n\r\n\t\t\t\t<mat-icon\r\n\t\t\t\t\tclass=\"icon-size-3.5 mx-2\"\r\n\t\t\t\t\t[svgIcon]=\"'icons:open-folder'\"\r\n\t\t\t\t\t(click)=\"$event.stopPropagation(); open()\"\r\n\t\t\t\t\tmatTooltip=\"{{ 'UploaderBottomSheet.ShowUploadedFiles' | translate }}\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-icon>\r\n\r\n\t\t\t\t<mat-icon\r\n\t\t\t\t\tclass=\"icon-size-3.5 mx-2\"\r\n\t\t\t\t\t[svgIcon]=\"'icons:expand'\"\r\n\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\tcontainerOpened: !expanded,\r\n\t\t\t\t\t\tcontainerClosed: expanded\r\n\t\t\t\t\t}\"\r\n\t\t\t\t\t(click)=\"$event.stopPropagation(); expanded = !expanded\"\r\n\t\t\t\t\tmatTooltip=\"{{ (expanded ? 'UploaderBottomSheet.MINIMIZED' : 'UploaderBottomSheet.MAXIMIZED') | translate }}\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-icon>\r\n\r\n\t\t\t\t<mat-icon\r\n\t\t\t\t\tclass=\"icon-size-3.5 close-sheet\"\r\n\t\t\t\t\t[svgIcon]=\"'icons:cancel-icon'\"\r\n\t\t\t\t\t(click)=\"$event.stopPropagation(); dismiss()\"\r\n\t\t\t\t\tmatTooltip=\"{{ 'UploaderBottomSheet.CLOSE' | translate }}\"\r\n\t\t\t\t>\r\n\t\t\t\t</mat-icon>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</mat-expansion-panel-header>\r\n\r\n\t<div>\r\n\t\t<div\r\n\t\t\tclass=\"file-item d-flex justify-content-between align-items-center py-2 px-5\"\r\n\t\t\t*ngFor=\"let fileInfo of uploaderBottomSheetService.filesInfo$ | async; trackBy: trackFile\"\r\n\t\t>\r\n\t\t\t<div class=\"d-flex align-items-center truncate\">\r\n\t\t\t\t<img src=\"{{ fileInfo.icon }}\" class=\"file-icon\" alt=\"{{ fileInfo.data.name }}\" />\r\n\t\t\t\t<span class=\"truncate file-name\">{{ fileInfo.data.name }}</span>\r\n\t\t\t</div>\r\n\t\t\t<div>\r\n\t\t\t\t<!-- only if user hover the row -->\r\n\t\t\t\t<span class=\"more-upload-actions align-items-center\">\r\n\t\t\t\t\t<!-- cancel if file : pending or uploading + hover -->\r\n\t\t\t\t\t<mat-icon\r\n\t\t\t\t\t\tclass=\"icon-size-3.5\"\r\n\t\t\t\t\t\t[svgIcon]=\"'icons:cancel-icon'\"\r\n\t\t\t\t\t\t(click)=\"$event.stopPropagation(); cancel(fileInfo)\"\r\n\t\t\t\t\t\tmatTooltip=\"{{ 'UploaderBottomSheet.CANCEL' | translate }}\"\r\n\t\t\t\t\t\t*ngIf=\"fileInfo.status == fileStatus.Pending || fileInfo.status == fileStatus.InProgress\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</mat-icon>\r\n\r\n\t\t\t\t\t<!-- retry if file : canceled or error + hover -->\r\n\t\t\t\t\t<mat-icon\r\n\t\t\t\t\t\tclass=\"icon-size-4.5\"\r\n\t\t\t\t\t\t[svgIcon]=\"'icons:retry'\"\r\n\t\t\t\t\t\t(click)=\"$event.stopPropagation(); retry(fileInfo)\"\r\n\t\t\t\t\t\tmatTooltip=\"{{ 'UploaderBottomSheet.RETRY' | translate }}\"\r\n\t\t\t\t\t\t*ngIf=\"fileInfo.status == fileStatus.Canceled || fileInfo.status == fileStatus.Error\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</mat-icon>\r\n\r\n\t\t\t\t\t<!-- open file : hover + completed -->\r\n\t\t\t\t\t<mat-icon\r\n\t\t\t\t\t\tclass=\"icon-size-4.5\"\r\n\t\t\t\t\t\t[svgIcon]=\"'icons:open-folder'\"\r\n\t\t\t\t\t\t(click)=\"$event.stopPropagation(); open(fileInfo)\"\r\n\t\t\t\t\t\tmatTooltip=\"{{ 'UploaderBottomSheet.OPEN' | translate }}\"\r\n\t\t\t\t\t\t*ngIf=\"fileInfo.status == fileStatus.Completed\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</mat-icon>\r\n\t\t\t\t</span>\r\n\r\n\t\t\t\t<span class=\"base-upload-actions align-items-center\">\r\n\t\t\t\t\t<!-- file completed -->\r\n\t\t\t\t\t<mat-icon class=\"icon-size-4.5\" [svgIcon]=\"'icons:complete'\" *ngIf=\"fileInfo.status == fileStatus.Completed\">\r\n\t\t\t\t\t</mat-icon>\r\n\r\n\t\t\t\t\t<!-- file has error -->\r\n\t\t\t\t\t<mat-icon class=\"icon-size-4.5\" [svgIcon]=\"'icons:error'\" *ngIf=\"fileInfo.status == fileStatus.Error\">\r\n\t\t\t\t\t</mat-icon>\r\n\r\n\t\t\t\t\t<!-- user cancle the file -->\r\n\t\t\t\t\t<mat-icon class=\"icon-size-4.5\" [svgIcon]=\"'icons:error'\" *ngIf=\"fileInfo.status == fileStatus.Canceled\">\r\n\t\t\t\t\t</mat-icon>\r\n\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclass=\"spinner-container\"\r\n\t\t\t\t\t\t*ngIf=\"fileInfo.status == fileStatus.Pending || fileInfo.status == fileStatus.InProgress\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<mat-spinner [value]=\"fileInfo.progress\" diameter=\"20\" strokeWidth=\"2\" color=\"primary\"></mat-spinner>\r\n\t\t\t\t\t\t<div class=\"spinner-percentage\" *ngIf=\"fileInfo.status == fileStatus.InProgress\">\r\n\t\t\t\t\t\t\t{{ fileInfo.progress | number : '1.0-0' }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</mat-expansion-panel>\r\n", styles: [".spinner-container{position:relative;display:inline-flex;align-items:center;justify-content:center}.spinner-percentage{position:absolute;font-size:10px}.file-name{height:24px}.base-upload-actions{display:inline-block}.more-upload-actions{display:none}.file-item:hover{cursor:pointer;background:#f5f5f5}.file-item:hover .base-upload-actions{display:none}.file-item:hover .more-upload-actions{display:flex}.close-sheet{margin-inline-start:.5rem}\n"], components: [{ type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i7.AsyncPipe, "translate": i9.TranslatePipe, "number": i7.DecimalPipe } });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfUploaderBottomSheetComponent, decorators: [{
113
+ type: Component,
114
+ args: [{
115
+ selector: 'ndf-uploader-bottom-sheet',
116
+ styleUrls: ['./ndf-uploader-bottom-sheet.component.scss'],
117
+ templateUrl: './ndf-uploader-bottom-sheet.component.html'
118
+ }]
119
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NuxeoDialogService }, { type: i2.UploaderService }, { type: i3.UploaderBottomSheetService }, { type: Array, decorators: [{
120
+ type: Inject,
121
+ args: [MAT_BOTTOM_SHEET_DATA]
122
+ }] }]; } });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXVwbG9hZGVyLWJvdHRvbS1zaGVldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9jb21wb25lbnRzL2JvdHRvbS1zaGVldC9uZGYtdXBsb2FkZXItYm90dG9tLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLXVwbG9hZGVyL2NvbXBvbmVudHMvYm90dG9tLXNoZWV0L25kZi11cGxvYWRlci1ib3R0b20tc2hlZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQVksVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR25FLE9BQU8sRUFBOEIsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPekcsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGFBQWE7SUFNakUsWUFDQyxRQUFrQixFQUNWLGtCQUFzQyxFQUM3QixlQUFnQyxFQUNqQywwQkFBc0QsRUFDdEIsS0FBa0I7UUFFbEUsS0FB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LGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBa0I7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQWM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7OzZIQXZHVywrQkFBK0IscUpBV2xDLHFCQUFxQjtpSEFYbEIsK0JBQStCLHdGQ2Y1QywycExBb0lBOzRGRHJIYSwrQkFBK0I7a0JBTDNDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsU0FBUyxFQUFFLENBQUMsNENBQTRDLENBQUM7b0JBQ3pELFdBQVcsRUFBRSw0Q0FBNEM7aUJBQ3pEO3lMQVl3RCxLQUFLOzBCQUEzRCxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9CT1RUT01fU0hFRVRfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2Jhc2UnO1xyXG5pbXBvcnQgeyBGaWxlRXZlbnRUeXBlLCBGaWxlSW5mbywgRmlsZVN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE51eGVvRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9zZXJ2aWNlcy9udXhlby1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3VwbG9hZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcGxvYWRlckJvdHRvbVNoZWV0U2VydmljZSwgVXBsb2FkZXJTaGVldEV2ZW50VHlwZSB9IGZyb20gJy4uLy4uL3VwbG9hZGVyLWJvdHRvbS1zaGVldC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbmRmLXVwbG9hZGVyLWJvdHRvbS1zaGVldCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbmRmLXVwbG9hZGVyLWJvdHRvbS1zaGVldC5jb21wb25lbnQuc2NzcyddLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9uZGYtdXBsb2FkZXItYm90dG9tLXNoZWV0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmVXBsb2FkZXJCb3R0b21TaGVldENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdGV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0Y29tcGxldGVkJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuXHRmaWxlU3RhdHVzID0gRmlsZVN0YXR1cztcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRpbmplY3RvcjogSW5qZWN0b3IsXHJcblx0XHRwcml2YXRlIG51eGVvRGlhbG9nU2VydmljZTogTnV4ZW9EaWFsb2dTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB1cGxvYWRlclNlcnZpY2U6IFVwbG9hZGVyU2VydmljZSxcclxuXHRcdHB1YmxpYyByZWFkb25seSB1cGxvYWRlckJvdHRvbVNoZWV0U2VydmljZTogVXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2UsXHJcblx0XHRASW5qZWN0KE1BVF9CT1RUT01fU0hFRVRfREFUQSkgcHJpdmF0ZSByZWFkb25seSBmaWxlczogQXJyYXk8RmlsZT5cclxuXHQpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHRcdHRoaXMudXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2UuZmlsZXNJbmZvJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG5cdFx0dGhpcy51cGxvYWRlclNlcnZpY2UucmVzZXQoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuZmlsZXMubGVuZ3RoKSB7XHJcblx0XHRcdHRoaXMudXBsb2FkZXJTZXJ2aWNlXHJcblx0XHRcdFx0LnVwbG9hZCh0aGlzLmZpbGVzKVxyXG5cdFx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGV2ZW50LnR5cGUgPT0gRmlsZUV2ZW50VHlwZS5DaGFuZ2VzKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGRhdGEgPSBldmVudC5kYXRhO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVwbG9hZGVyQm90dG9tU2hlZXRTZXJ2aWNlLmZpbGVzSW5mbyQudmFsdWUuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHVwZGF0ZWRGaWxlID0gZGF0YS5maW5kKChxKSA9PiBxLmJhdGNoSWQgPT0gaXRlbS5iYXRjaElkKTtcclxuXHRcdFx0XHRcdFx0XHRpZiAodXBkYXRlZEZpbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHVwZGF0ZWRGaWxlLmRvY3VtZW50SWQgPSBpdGVtLmRvY3VtZW50SWQ7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0dGhpcy51cGxvYWRlckJvdHRvbVNoZWV0U2VydmljZS5maWxlc0luZm8kLm5leHQoZGF0YSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuY29tcGxldGVkJC5uZXh0KGRhdGEuZmlsdGVyKChxKSA9PiBxLnN0YXR1cyA9PSBGaWxlU3RhdHVzLkNvbXBsZXRlZCkubGVuZ3RoKTtcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBGaWxlRXZlbnRUeXBlLkNvbXBsZXRlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMudXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2Uubm90aWZ5KHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBVcGxvYWRlclNoZWV0RXZlbnRUeXBlLlN1Ym1pdCxcclxuXHRcdFx0XHRcdFx0XHRkYXRhOiBldmVudC5kYXRhWzBdXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b3BlbihmaWxlSW5mbz86IEZpbGVJbmZvKSB7XHJcblx0XHRjb25zdCBpZHMgPSBmaWxlSW5mb1xyXG5cdFx0XHQ/IFtmaWxlSW5mby5kb2N1bWVudElkXVxyXG5cdFx0XHQ6IHRoaXMudXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2UuZmlsZXNJbmZvJC52YWx1ZVxyXG5cdFx0XHRcdFx0LmZpbHRlcigoZikgPT4gZi5zdGF0dXMgPT0gRmlsZVN0YXR1cy5Db21wbGV0ZWQpXHJcblx0XHRcdFx0XHQubWFwKChmKSA9PiBmLmRvY3VtZW50SWQpO1xyXG5cclxuXHRcdHRoaXMudXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2Uubm90aWZ5KHtcclxuXHRcdFx0dHlwZTogVXBsb2FkZXJTaGVldEV2ZW50VHlwZS5PcGVuLFxyXG5cdFx0XHRkYXRhOiBpZHNcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0YWRkKGV2ZW50OiBFdmVudCkge1xyXG5cdFx0Y29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHRcdHRoaXMudXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2Uub3BlbihBcnJheS5mcm9tKGlucHV0LmZpbGVzKSk7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHR9XHJcblx0ZGlzbWlzcygpIHtcclxuXHRcdGNvbnN0IGFsbEZpbGVzQ29tcGxldGVkID0gdGhpcy51cGxvYWRlckJvdHRvbVNoZWV0U2VydmljZS5maWxlc0luZm8kLnZhbHVlLmV2ZXJ5KFxyXG5cdFx0XHQoZikgPT4gZi5zdGF0dXMgPT09IEZpbGVTdGF0dXMuQ29tcGxldGVkXHJcblx0XHQpO1xyXG5cdFx0aWYgKGFsbEZpbGVzQ29tcGxldGVkKSB7XHJcblx0XHRcdHRoaXMudXBsb2FkZXJTZXJ2aWNlLnJlc2V0KCk7XHJcblx0XHRcdHJldHVybiB0aGlzLnVwbG9hZGVyQm90dG9tU2hlZXRTZXJ2aWNlLmNsb3NlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5udXhlb0RpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm0oe1xyXG5cdFx0XHRtZXNzYWdlOiAnY29uZmlybURpYWxvZy5jbG9zZVVwbG9hZGluZycsXHJcblx0XHRcdGFjdGlvbnM6IHtcclxuXHRcdFx0XHRjb25maXJtOiB7XHJcblx0XHRcdFx0XHRsYWJlbDogJ0JVVFRPTlMuY29uZmlybScsXHJcblx0XHRcdFx0XHRmbjogKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVwbG9hZGVyQm90dG9tU2hlZXRTZXJ2aWNlLmNsb3NlKCk7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnN0IGhhc05vdENvbXBsZXRlZCA9IHRoaXMuZmlsZXNJbmZvJC52YWx1ZS5ldmVyeShcclxuXHRcdFx0XHRcdFx0Ly8gXHQoZikgPT4gZi5zdGF0dXMgIT0gRmlsZVN0YXR1cy5Db21wbGV0ZWRcclxuXHRcdFx0XHRcdFx0Ly8gKTtcclxuXHRcdFx0XHRcdFx0Ly8gaWYgKGhhc05vdENvbXBsZXRlZCkge1xyXG5cdFx0XHRcdFx0XHQvLyBcdC8vIHdpbGwgZGVsZXRlIGFsbCBub3QgY29tcGxldGVkIGJhdGNoZXMgb3Igbm90XHJcblx0XHRcdFx0XHRcdC8vIFx0cmV0dXJuIHRoaXMudXBsb2FkZXJTZXJ2aWNlLmNhbmNlbCgpO1xyXG5cdFx0XHRcdFx0XHQvLyB9XHJcblx0XHRcdFx0XHRcdHRoaXMudXBsb2FkZXJTZXJ2aWNlLnJlc2V0KCk7XHJcblx0XHRcdFx0XHRcdHJldHVybiBvZih0cnVlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cmV0cnkoZmlsZUluZm86IEZpbGVJbmZvKSB7XHJcblx0XHR0aGlzLnVwbG9hZGVyU2VydmljZS5yZXN1bWUoZmlsZUluZm8uaWQpO1xyXG5cdH1cclxuXHJcblx0Y2FuY2VsKGZpbGVJbmZvOiBGaWxlSW5mbykge1xyXG5cdFx0dGhpcy51cGxvYWRlclNlcnZpY2Uuc3RvcChmaWxlSW5mby5pZCk7XHJcblx0fVxyXG5cclxuXHR0cmFja0ZpbGUoaW5kZXg6IG51bWJlciwgaXRlbTogRmlsZUluZm8pOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGl0ZW0uaWQ7XHJcblx0fVxyXG59XHJcbiIsIjxtYXQtZXhwYW5zaW9uLXBhbmVsIFtleHBhbmRlZF09XCJleHBhbmRlZFwiIGhpZGVUb2dnbGU+XHJcblx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyICNwYW5lbEggKGNsaWNrKT1cInBhbmVsSC5fdG9nZ2xlKClcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21wbGV0ZWQkIHwgYXN5bmMgYXMgY29tcGxldGVkOyBlbHNlIGdlbmVyYWxNc2dcIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29tcGxldGVkID4gMTsgZWxzZSBzaW5nbGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LXdlaWdodC1ib2xkXCI+XHJcblx0XHRcdFx0XHRcdHt7ICdVcGxvYWRlckJvdHRvbVNoZWV0Lk11bHRpVXBsb2Fkc0NvbXBsZXRlJyB8IHRyYW5zbGF0ZSA6IHsgY29tcGxldGVkOiBjb21wbGV0ZWQgfSB9fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlICNzaW5nbGU+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZm9udC13ZWlnaHQtYm9sZFwiPlxyXG5cdFx0XHRcdFx0XHR7eyAnVXBsb2FkZXJCb3R0b21TaGVldC5TaW5nbGVVcGxvYWRzQ29tcGxldGUnIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHQ8L2Rpdj48L25nLXRlbXBsYXRlXHJcblx0XHRcdFx0PlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PG5nLXRlbXBsYXRlICNnZW5lcmFsTXNnPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LXdlaWdodC1ib2xkXCI+XHJcblx0XHRcdFx0XHR7eyAnVXBsb2FkZXJCb3R0b21TaGVldC5VcGxvYWRpbmdEYXRhJyB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRcdFx0PGRpdj5cclxuXHRcdFx0XHQ8bWF0LWljb25cclxuXHRcdFx0XHRcdGNsYXNzPVwiaWNvbi1zaXplLTMuNSBteC0yXCJcclxuXHRcdFx0XHRcdFtzdmdJY29uXT1cIidpY29uczpwbHVzJ1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWxlSW5wdXQuY2xpY2soKVwiXHJcblx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgJ1VwbG9hZGVyQm90dG9tU2hlZXQuQ1JFQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbWF0LWljb24+XHJcblx0XHRcdFx0PGlucHV0IHR5cGU9XCJmaWxlXCIgaGlkZGVuICNmaWxlSW5wdXQgKGNoYW5nZSk9XCJhZGQoJGV2ZW50KVwiIG11bHRpcGxlIC8+XHJcblxyXG5cdFx0XHRcdDxtYXQtaWNvblxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJpY29uLXNpemUtMy41IG14LTJcIlxyXG5cdFx0XHRcdFx0W3N2Z0ljb25dPVwiJ2ljb25zOm9wZW4tZm9sZGVyJ1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBvcGVuKClcIlxyXG5cdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdVcGxvYWRlckJvdHRvbVNoZWV0LlNob3dVcGxvYWRlZEZpbGVzJyB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbWF0LWljb24+XHJcblxyXG5cdFx0XHRcdDxtYXQtaWNvblxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJpY29uLXNpemUtMy41IG14LTJcIlxyXG5cdFx0XHRcdFx0W3N2Z0ljb25dPVwiJ2ljb25zOmV4cGFuZCdcIlxyXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xyXG5cdFx0XHRcdFx0XHRjb250YWluZXJPcGVuZWQ6ICFleHBhbmRlZCxcclxuXHRcdFx0XHRcdFx0Y29udGFpbmVyQ2xvc2VkOiBleHBhbmRlZFxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBleHBhbmRlZCA9ICFleHBhbmRlZFwiXHJcblx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgKGV4cGFuZGVkID8gJ1VwbG9hZGVyQm90dG9tU2hlZXQuTUlOSU1JWkVEJyA6ICdVcGxvYWRlckJvdHRvbVNoZWV0Lk1BWElNSVpFRCcpIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0PC9tYXQtaWNvbj5cclxuXHJcblx0XHRcdFx0PG1hdC1pY29uXHJcblx0XHRcdFx0XHRjbGFzcz1cImljb24tc2l6ZS0zLjUgY2xvc2Utc2hlZXRcIlxyXG5cdFx0XHRcdFx0W3N2Z0ljb25dPVwiJ2ljb25zOmNhbmNlbC1pY29uJ1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkaXNtaXNzKClcIlxyXG5cdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdVcGxvYWRlckJvdHRvbVNoZWV0LkNMT1NFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbWF0LWljb24+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHJcblx0PGRpdj5cclxuXHRcdDxkaXZcclxuXHRcdFx0Y2xhc3M9XCJmaWxlLWl0ZW0gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweS0yIHB4LTVcIlxyXG5cdFx0XHQqbmdGb3I9XCJsZXQgZmlsZUluZm8gb2YgdXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2UuZmlsZXNJbmZvJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0ZpbGVcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB0cnVuY2F0ZVwiPlxyXG5cdFx0XHRcdDxpbWcgc3JjPVwie3sgZmlsZUluZm8uaWNvbiB9fVwiIGNsYXNzPVwiZmlsZS1pY29uXCIgYWx0PVwie3sgZmlsZUluZm8uZGF0YS5uYW1lIH19XCIgLz5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRydW5jYXRlIGZpbGUtbmFtZVwiPnt7IGZpbGVJbmZvLmRhdGEubmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXY+XHJcblx0XHRcdFx0PCEtLSBvbmx5IGlmIHVzZXIgaG92ZXIgdGhlIHJvdyAtLT5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cIm1vcmUtdXBsb2FkLWFjdGlvbnMgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0XHQ8IS0tIGNhbmNlbCBpZiBmaWxlIDogcGVuZGluZyBvciB1cGxvYWRpbmcgKyBob3ZlciAtLT5cclxuXHRcdFx0XHRcdDxtYXQtaWNvblxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cImljb24tc2l6ZS0zLjVcIlxyXG5cdFx0XHRcdFx0XHRbc3ZnSWNvbl09XCInaWNvbnM6Y2FuY2VsLWljb24nXCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgY2FuY2VsKGZpbGVJbmZvKVwiXHJcblx0XHRcdFx0XHRcdG1hdFRvb2x0aXA9XCJ7eyAnVXBsb2FkZXJCb3R0b21TaGVldC5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJmaWxlSW5mby5zdGF0dXMgPT0gZmlsZVN0YXR1cy5QZW5kaW5nIHx8IGZpbGVJbmZvLnN0YXR1cyA9PSBmaWxlU3RhdHVzLkluUHJvZ3Jlc3NcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PC9tYXQtaWNvbj5cclxuXHJcblx0XHRcdFx0XHQ8IS0tIHJldHJ5IGlmIGZpbGUgOiBjYW5jZWxlZCBvciBlcnJvciArIGhvdmVyIC0tPlxyXG5cdFx0XHRcdFx0PG1hdC1pY29uXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiaWNvbi1zaXplLTQuNVwiXHJcblx0XHRcdFx0XHRcdFtzdmdJY29uXT1cIidpY29uczpyZXRyeSdcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyByZXRyeShmaWxlSW5mbylcIlxyXG5cdFx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgJ1VwbG9hZGVyQm90dG9tU2hlZXQuUkVUUlknIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJmaWxlSW5mby5zdGF0dXMgPT0gZmlsZVN0YXR1cy5DYW5jZWxlZCB8fCBmaWxlSW5mby5zdGF0dXMgPT0gZmlsZVN0YXR1cy5FcnJvclwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8L21hdC1pY29uPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gb3BlbiBmaWxlIDogaG92ZXIgKyBjb21wbGV0ZWQgLS0+XHJcblx0XHRcdFx0XHQ8bWF0LWljb25cclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJpY29uLXNpemUtNC41XCJcclxuXHRcdFx0XHRcdFx0W3N2Z0ljb25dPVwiJ2ljb25zOm9wZW4tZm9sZGVyJ1wiXHJcblx0XHRcdFx0XHRcdChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IG9wZW4oZmlsZUluZm8pXCJcclxuXHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdVcGxvYWRlckJvdHRvbVNoZWV0Lk9QRU4nIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJmaWxlSW5mby5zdGF0dXMgPT0gZmlsZVN0YXR1cy5Db21wbGV0ZWRcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PC9tYXQtaWNvbj5cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiYmFzZS11cGxvYWQtYWN0aW9ucyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHRcdDwhLS0gZmlsZSBjb21wbGV0ZWQgLS0+XHJcblx0XHRcdFx0XHQ8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtNC41XCIgW3N2Z0ljb25dPVwiJ2ljb25zOmNvbXBsZXRlJ1wiICpuZ0lmPVwiZmlsZUluZm8uc3RhdHVzID09IGZpbGVTdGF0dXMuQ29tcGxldGVkXCI+XHJcblx0XHRcdFx0XHQ8L21hdC1pY29uPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gZmlsZSBoYXMgZXJyb3IgLS0+XHJcblx0XHRcdFx0XHQ8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtNC41XCIgW3N2Z0ljb25dPVwiJ2ljb25zOmVycm9yJ1wiICpuZ0lmPVwiZmlsZUluZm8uc3RhdHVzID09IGZpbGVTdGF0dXMuRXJyb3JcIj5cclxuXHRcdFx0XHRcdDwvbWF0LWljb24+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSB1c2VyIGNhbmNsZSB0aGUgZmlsZSAtLT5cclxuXHRcdFx0XHRcdDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS00LjVcIiBbc3ZnSWNvbl09XCInaWNvbnM6ZXJyb3InXCIgKm5nSWY9XCJmaWxlSW5mby5zdGF0dXMgPT0gZmlsZVN0YXR1cy5DYW5jZWxlZFwiPlxyXG5cdFx0XHRcdFx0PC9tYXQtaWNvbj5cclxuXHJcblx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdGNsYXNzPVwic3Bpbm5lci1jb250YWluZXJcIlxyXG5cdFx0XHRcdFx0XHQqbmdJZj1cImZpbGVJbmZvLnN0YXR1cyA9PSBmaWxlU3RhdHVzLlBlbmRpbmcgfHwgZmlsZUluZm8uc3RhdHVzID09IGZpbGVTdGF0dXMuSW5Qcm9ncmVzc1wiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdDxtYXQtc3Bpbm5lciBbdmFsdWVdPVwiZmlsZUluZm8ucHJvZ3Jlc3NcIiBkaWFtZXRlcj1cIjIwXCIgc3Ryb2tlV2lkdGg9XCIyXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9tYXQtc3Bpbm5lcj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInNwaW5uZXItcGVyY2VudGFnZVwiICpuZ0lmPVwiZmlsZUluZm8uc3RhdHVzID09IGZpbGVTdGF0dXMuSW5Qcm9ncmVzc1wiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IGZpbGVJbmZvLnByb2dyZXNzIHwgbnVtYmVyIDogJzEuMC0wJyB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './bottom-sheet/ndf-uploader-bottom-sheet.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0RBQW9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JvdHRvbS1zaGVldC9uZGYtdXBsb2FkZXItYm90dG9tLXNoZWV0LmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './uploader.config';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdXBsb2FkZXIuY29uZmlnJztcclxuIl19
@@ -0,0 +1,10 @@
1
+ export const UPLOADER_CONFIG = {
2
+ DEFAULT_PROVIDER: 'nuxeo',
3
+ MAX_CONCURRENT_REQUESTS: 5,
4
+ IS_CHUNKED_ENABLED: true,
5
+ MIN_File_SIZE: 1024 * 1024 * 5,
6
+ CHUNK_SIZE: 1024 * 1024 * 5,
7
+ DELAY_RETRY_ATTEMPTS: 500,
8
+ MAX_RETRY_ATTEMPTS: 3 // maximum number of retry attempts if an upload request fails
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtdXBsb2FkZXIvY29uZmlnL3VwbG9hZGVyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDOUIsZ0JBQWdCLEVBQUUsT0FBTztJQUN6Qix1QkFBdUIsRUFBRSxDQUFDO0lBQzFCLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsYUFBYSxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUM5QixVQUFVLEVBQUUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLG9CQUFvQixFQUFFLEdBQUc7SUFDekIsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLDhEQUE4RDtDQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVQTE9BREVSX0NPTkZJRyA9IHtcclxuXHRERUZBVUxUX1BST1ZJREVSOiAnbnV4ZW8nLCAvLyBkZWZhdWx0IHVwbG9hZCBwcm92aWRlciBuYW1lXHJcblx0TUFYX0NPTkNVUlJFTlRfUkVRVUVTVFM6IDUsIC8vIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgdXBsb2FkIHJlcXVlc3RzXHJcblx0SVNfQ0hVTktFRF9FTkFCTEVEOiB0cnVlLCAvLyB0b2dnbGUgdG8gZW5hYmxlIG9yIGRpc2FibGUgY2h1bmtlZCB1cGxvYWRzXHJcblx0TUlOX0ZpbGVfU0laRTogMTAyNCAqIDEwMjQgKiA1LCAvLyBtaW5pbXVtIGZpbGUgc2l6ZSAoaW4gYnl0ZXMpIGZvciBjaHVua2VkIHVwbG9hZCB0byBiZSBhcHBsaWVkXHJcblx0Q0hVTktfU0laRTogMTAyNCAqIDEwMjQgKiA1LCAvLyBzaXplIChpbiBieXRlcykgb2YgZWFjaCBjaHVuayBmb3IgY2h1bmtlZCB1cGxvYWRcclxuXHRERUxBWV9SRVRSWV9BVFRFTVBUUzogNTAwLCAvLyBkZWxheSAoaW4gbWlsbGlzZWNvbmRzKSBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzIGFmdGVyIGEgZmFpbHVyZVxyXG5cdE1BWF9SRVRSWV9BVFRFTVBUUzogMyAvLyBtYXhpbXVtIG51bWJlciBvZiByZXRyeSBhdHRlbXB0cyBpZiBhbiB1cGxvYWQgcmVxdWVzdCBmYWlsc1xyXG59O1xyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export const FILE_CONTENT = {
2
+ CONTENT: 'file:content',
3
+ BATCH: 'upload-batch',
4
+ FILE_INDEX: 'upload-fileId'
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtdXBsb2FkZXIvY29uc3RhbnQvZmlsZS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMzQixPQUFPLEVBQUUsY0FBYztJQUN2QixLQUFLLEVBQUUsY0FBYztJQUNyQixVQUFVLEVBQUUsZUFBZTtDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEZJTEVfQ09OVEVOVCA9IHtcclxuXHRDT05URU5UOiAnZmlsZTpjb250ZW50JyxcclxuXHRCQVRDSDogJ3VwbG9hZC1iYXRjaCcsXHJcblx0RklMRV9JTkRFWDogJ3VwbG9hZC1maWxlSWQnXHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './file-content';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9jb25zdGFudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWxlLWNvbnRlbnQnO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './uploader.helper';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VwbG9hZGVyLmhlbHBlcic7XHJcbiJdfQ==
@@ -0,0 +1,100 @@
1
+ var _a, _UploaderHelper_prepareChunks;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { UPLOADER_CONFIG } from '../config';
4
+ import { FileStatus } from '../models';
5
+ import { FormioUtils } from 'angular-formio';
6
+ import { concatMap, retryWhen, delay, catchError } from 'rxjs/operators';
7
+ import { EMPTY, of, throwError } from 'rxjs';
8
+ import { EnvManager } from '../../../core/env';
9
+ export class UploaderHelper {
10
+ static catchError() {
11
+ return catchError((error) => {
12
+ if (error.status === 308 /* PermanentRedirect */) {
13
+ return of(error === null || error === void 0 ? void 0 : error.error);
14
+ }
15
+ else {
16
+ return EMPTY;
17
+ }
18
+ });
19
+ }
20
+ static retryWhen() {
21
+ return retryWhen((errors) => errors.pipe(concatMap((error, index) => {
22
+ if (index >= UPLOADER_CONFIG.MAX_RETRY_ATTEMPTS - 1) {
23
+ return throwError(() => new Error('Failed after retries'));
24
+ }
25
+ return of(error).pipe(delay(UPLOADER_CONFIG.DELAY_RETRY_ATTEMPTS));
26
+ })));
27
+ }
28
+ static createFileHeader(file, chunk) {
29
+ const headers = {
30
+ 'Cache-Control': 'no-cache',
31
+ 'X-File-Name': encodeURIComponent(file.data.name),
32
+ 'X-File-Type': file.data.type,
33
+ 'Content-Type': 'application/octet-stream',
34
+ 'Content-Length': file.data.size,
35
+ 'X-File-Size': file.data.size.toString()
36
+ };
37
+ if (file.chunks.length > 1) {
38
+ Object.assign(headers, {
39
+ 'X-Upload-Type': 'chunked',
40
+ 'X-Upload-Chunk-Index': file.chunks.findIndex((c) => c.index == chunk.index).toString(),
41
+ 'X-Upload-Chunk-Count': file.chunks.length.toString(),
42
+ 'Content-Length': chunk.blob.size
43
+ });
44
+ }
45
+ return headers;
46
+ }
47
+ static prepareConfig() {
48
+ var _b, _c, _d, _e, _f, _g, _h;
49
+ UPLOADER_CONFIG.DEFAULT_PROVIDER =
50
+ ((_b = EnvManager.environment.uploader) === null || _b === void 0 ? void 0 : _b.defaultUploader) || UPLOADER_CONFIG.DEFAULT_PROVIDER;
51
+ UPLOADER_CONFIG.MAX_CONCURRENT_REQUESTS =
52
+ ((_c = EnvManager.environment.uploader) === null || _c === void 0 ? void 0 : _c.maxConcurrentRequests) || UPLOADER_CONFIG.MAX_CONCURRENT_REQUESTS;
53
+ UPLOADER_CONFIG.IS_CHUNKED_ENABLED = ((_d = EnvManager.environment.uploader) === null || _d === void 0 ? void 0 : _d.isChunkedEnabled) == 'YES';
54
+ UPLOADER_CONFIG.MIN_File_SIZE = ((_e = EnvManager.environment.uploader) === null || _e === void 0 ? void 0 : _e.minFileSize) || UPLOADER_CONFIG.MIN_File_SIZE;
55
+ UPLOADER_CONFIG.CHUNK_SIZE = ((_f = EnvManager.environment.uploader) === null || _f === void 0 ? void 0 : _f.chunkSize) || UPLOADER_CONFIG.CHUNK_SIZE;
56
+ UPLOADER_CONFIG.DELAY_RETRY_ATTEMPTS =
57
+ ((_g = EnvManager.environment.uploader) === null || _g === void 0 ? void 0 : _g.delayRetryAttempts) || UPLOADER_CONFIG.DELAY_RETRY_ATTEMPTS;
58
+ UPLOADER_CONFIG.MAX_RETRY_ATTEMPTS =
59
+ ((_h = EnvManager.environment.uploader) === null || _h === void 0 ? void 0 : _h.maxRetryAttempts) || UPLOADER_CONFIG.MAX_RETRY_ATTEMPTS;
60
+ }
61
+ static prepareFiles(options, startFromIndex = 0) {
62
+ const batchsFile = options.files.map((file, index) => {
63
+ const id = FormioUtils.guid();
64
+ const batchFile = {
65
+ id,
66
+ index: startFromIndex + index,
67
+ data: file,
68
+ progress: 0,
69
+ status: FileStatus.Pending,
70
+ provider: (options.provider || UPLOADER_CONFIG.DEFAULT_PROVIDER),
71
+ chunks: __classPrivateFieldGet(this, _a, "m", _UploaderHelper_prepareChunks).call(this, id, file),
72
+ metadata: options.metadata
73
+ };
74
+ return batchFile;
75
+ });
76
+ return batchsFile;
77
+ }
78
+ }
79
+ _a = UploaderHelper, _UploaderHelper_prepareChunks = function _UploaderHelper_prepareChunks(fileId, file) {
80
+ const { CHUNK_SIZE, MIN_File_SIZE } = UPLOADER_CONFIG;
81
+ if (file.size <= MIN_File_SIZE) {
82
+ return [
83
+ {
84
+ fileId,
85
+ index: 0,
86
+ start: 0,
87
+ end: file.size,
88
+ status: FileStatus.Pending
89
+ }
90
+ ];
91
+ }
92
+ return Array.from({ length: Math.ceil(file.size / CHUNK_SIZE) }, (_, index) => ({
93
+ fileId,
94
+ index,
95
+ start: index * CHUNK_SIZE,
96
+ end: Math.min((index + 1) * CHUNK_SIZE, file.size),
97
+ status: FileStatus.Pending
98
+ }));
99
+ };
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtdXBsb2FkZXIvaGVscGVycy91cGxvYWRlci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBNkMsVUFBVSxFQUFrQixNQUFNLFdBQVcsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQTRCLEVBQUUsRUFBb0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxNQUFNLE9BQU8sY0FBYztJQUMxQixNQUFNLENBQUMsVUFBVTtRQUNoQixPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLE1BQU0sZ0NBQXFDLEVBQUU7Z0JBQ3RELE9BQU8sRUFBRSxDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLENBQUMsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTixPQUFPLEtBQUssQ0FBQzthQUNiO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxDQUFDLFNBQVM7UUFDZixPQUFPLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQ1YsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFF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S0FBSztRQUNMLEtBQUssRUFBRSxLQUFLLEdBQUcsVUFBVTtRQUN6QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsRCxNQUFNLEVBQUUsVUFBVSxDQUFDLE9BQU87S0FDMUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVVBMT0FERVJfQ09ORklHIH0gZnJvbSAnLi4vY29uZmlnJztcclxuaW1wb3J0IHsgQmF0Y2hGaWxlLCBDaHVuaywgRmlsZUhlYWRlcnMsIEZpbGVPcHRpb24sIEZpbGVTdGF0dXMsIFVwbG9hZFByb3ZpZGVyIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybWlvVXRpbHMgfSBmcm9tICdhbmd1bGFyLWZvcm1pbyc7XHJcbmltcG9ydCB7IGNvbmNhdE1hcCwgcmV0cnlXaGVuLCBkZWxheSwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRU1QVFksIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgb2YsIE9wZXJhdG9yRnVuY3Rpb24sIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEVudk1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Vudic7XHJcblxyXG5leHBvcnQgY2xhc3MgVXBsb2FkZXJIZWxwZXIge1xyXG5cdHN0YXRpYyBjYXRjaEVycm9yPFQ+KCk6IE9wZXJhdG9yRnVuY3Rpb248VCwgYW55PiB7XHJcblx0XHRyZXR1cm4gY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0aWYgKGVycm9yLnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpIHtcclxuXHRcdFx0XHRyZXR1cm4gb2YoZXJyb3I/LmVycm9yKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRyZXR1cm4gRU1QVFk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHRzdGF0aWMgcmV0cnlXaGVuPFQ+KCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XHJcblx0XHRyZXR1cm4gcmV0cnlXaGVuKChlcnJvcnMpID0+XHJcblx0XHRcdGVycm9ycy5waXBlKFxyXG5cdFx0XHRcdGNvbmNhdE1hcCgoZXJyb3IsIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoaW5kZXggPj0gVVBMT0FERVJfQ09ORklHLk1BWF9SRVRSWV9BVFRFTVBUUyAtIDEpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdGYWlsZWQgYWZ0ZXIgcmV0cmllcycpKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBvZihlcnJvcikucGlwZShkZWxheShVUExPQURFUl9DT05GSUcuREVMQVlfUkVUUllfQVRURU1QVFMpKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpXHJcblx0XHQpO1xyXG5cdH1cclxuXHRzdGF0aWMgY3JlYXRlRmlsZUhlYWRlcihmaWxlOiBCYXRjaEZpbGUsIGNodW5rOiBDaHVuayk6IEZpbGVIZWFkZXJzIHtcclxuXHRcdGNvbnN0IGhlYWRlcnM6IEZpbGVIZWFkZXJzID0ge1xyXG5cdFx0XHQnQ2FjaGUtQ29udHJvbCc6ICduby1jYWNoZScsXHJcblx0XHRcdCdYLUZpbGUtTmFtZSc6IGVuY29kZVVSSUNvbXBvbmVudChmaWxlLmRhdGEubmFtZSksXHJcblx0XHRcdCdYLUZpbGUtVHlwZSc6IGZpbGUuZGF0YS50eXBlLFxyXG5cdFx0XHQnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXHJcblx0XHRcdCdDb250ZW50LUxlbmd0aCc6IGZpbGUuZGF0YS5zaXplLFxyXG5cdFx0XHQnWC1GaWxlLVNpemUnOiBmaWxlLmRhdGEuc2l6ZS50b1N0cmluZygpXHJcblx0XHR9O1xyXG5cdFx0aWYgKGZpbGUuY2h1bmtzLmxlbmd0aCA+IDEpIHtcclxuXHRcdFx0T2JqZWN0LmFzc2lnbihoZWFkZXJzLCB7XHJcblx0XHRcdFx0J1gtVXBsb2FkLVR5cGUnOiAnY2h1bmtlZCcsXHJcblx0XHRcdFx0J1gtVXBsb2FkLUNodW5rLUluZGV4JzogZmlsZS5jaHVua3MuZmluZEluZGV4KChjKSA9PiBjLmluZGV4ID09IGNodW5rLmluZGV4KS50b1N0cmluZygpLFxyXG5cdFx0XHRcdCdYLVVwbG9hZC1DaHVuay1Db3VudCc6IGZpbGUuY2h1bmtzLmxlbmd0aC50b1N0cmluZygpLFxyXG5cdFx0XHRcdCdDb250ZW50LUxlbmd0aCc6IGNodW5rLmJsb2Iuc2l6ZVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBoZWFkZXJzO1xyXG5cdH1cclxuXHRzdGF0aWMgcHJlcGFyZUNvbmZpZygpIHtcclxuXHRcdFVQTE9BREVSX0NPTkZJRy5ERUZBVUxUX1BST1ZJREVSID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudC51cGxvYWRlcj8uZGVmYXVsdFVwbG9hZGVyIHx8IFVQTE9BREVSX0NPTkZJRy5ERUZBVUxUX1BST1ZJREVSO1xyXG5cdFx0VVBMT0FERVJfQ09ORklHLk1BWF9DT05DVVJSRU5UX1JFUVVFU1RTID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudC51cGxvYWRlcj8ubWF4Q29uY3VycmVudFJlcXVlc3RzIHx8IFVQTE9BREVSX0NPTkZJRy5NQVhfQ09OQ1VSUkVOVF9SRVFVRVNUUztcclxuXHRcdFVQTE9BREVSX0NPTkZJRy5JU19DSFVOS0VEX0VOQUJMRUQgPSBFbnZNYW5hZ2VyLmVudmlyb25tZW50LnVwbG9hZGVyPy5pc0NodW5rZWRFbmFibGVkID09ICdZRVMnO1xyXG5cdFx0VVBMT0FERVJfQ09ORklHLk1JTl9GaWxlX1NJWkUgPSBFbnZNYW5hZ2VyLmVudmlyb25tZW50LnVwbG9hZGVyPy5taW5GaWxlU2l6ZSB8fCBVUExPQURFUl9DT05GSUcuTUlOX0ZpbGVfU0laRTtcclxuXHRcdFVQTE9BREVSX0NPTkZJRy5DSFVOS19TSVpFID0gRW52TWFuYWdlci5lbnZpcm9ubWVudC51cGxvYWRlcj8uY2h1bmtTaXplIHx8IFVQTE9BREVSX0NPTkZJRy5DSFVOS19TSVpFO1xyXG5cdFx0VVBMT0FERVJfQ09ORklHLkRFTEFZX1JFVFJZX0FUVEVNUFRTID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudC51cGxvYWRlcj8uZGVsYXlSZXRyeUF0dGVtcHRzIHx8IFVQTE9BREVSX0NPTkZJRy5ERUxBWV9SRVRSWV9BVFRFTVBUUztcclxuXHRcdFVQTE9BREVSX0NPTkZJRy5NQVhfUkVUUllfQVRURU1QVFMgPVxyXG5cdFx0XHRFbnZNYW5hZ2VyLmVudmlyb25tZW50LnVwbG9hZGVyPy5tYXhSZXRyeUF0dGVtcHRzIHx8IFVQTE9BREVSX0NPTkZJRy5NQVhfUkVUUllfQVRURU1QVFM7XHJcblx0fVxyXG5cdHN0YXRpYyBwcmVwYXJlRmlsZXMob3B0aW9uczogRmlsZU9wdGlvbiwgc3RhcnRGcm9tSW5kZXg6IG51bWJlciA9IDApIHtcclxuXHRcdGNvbnN0IGJhdGNoc0ZpbGUgPSBvcHRpb25zLmZpbGVzLm1hcCgoZmlsZSwgaW5kZXgpID0+IHtcclxuXHRcdFx0Y29uc3QgaWQgPSBGb3JtaW9VdGlscy5ndWlkKCk7XHJcblx0XHRcdGNvbnN0IGJhdGNoRmlsZTogQmF0Y2hGaWxlID0ge1xyXG5cdFx0XHRcdGlkLFxyXG5cdFx0XHRcdGluZGV4OiBzdGFydEZyb21JbmRleCArIGluZGV4LFxyXG5cdFx0XHRcdGRhdGE6IGZpbGUsXHJcblx0XHRcdFx0cHJvZ3Jlc3M6IDAsXHJcblx0XHRcdFx0c3RhdHVzOiBGaWxlU3RhdHVzLlBlbmRpbmcsXHJcblx0XHRcdFx0cHJvdmlkZXI6IChvcHRpb25zLnByb3ZpZGVyIHx8IFVQTE9BREVSX0NPTkZJRy5ERUZBVUxUX1BST1ZJREVSKSBhcyBVcGxvYWRQcm92aWRlcixcclxuXHRcdFx0XHRjaHVua3M6IHRoaXMuI3ByZXBhcmVDaHVua3MoaWQsIGZpbGUpLFxyXG5cdFx0XHRcdG1ldGFkYXRhOiBvcHRpb25zLm1ldGFkYXRhXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRyZXR1cm4gYmF0Y2hGaWxlO1xyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gYmF0Y2hzRmlsZTtcclxuXHR9XHJcblx0c3RhdGljICNwcmVwYXJlQ2h1bmtzKGZpbGVJZDogc3RyaW5nLCBmaWxlOiBGaWxlKTogQXJyYXk8Q2h1bms+IHtcclxuXHRcdGNvbnN0IHsgQ0hVTktfU0laRSwgTUlOX0ZpbGVfU0laRSB9ID0gVVBMT0FERVJfQ09ORklHO1xyXG5cdFx0aWYgKGZpbGUuc2l6ZSA8PSBNSU5fRmlsZV9TSVpFKSB7XHJcblx0XHRcdHJldHVybiBbXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0ZmlsZUlkLFxyXG5cdFx0XHRcdFx0aW5kZXg6IDAsXHJcblx0XHRcdFx0XHRzdGFydDogMCxcclxuXHRcdFx0XHRcdGVuZDogZmlsZS5zaXplLFxyXG5cdFx0XHRcdFx0c3RhdHVzOiBGaWxlU3RhdHVzLlBlbmRpbmdcclxuXHRcdFx0XHR9XHJcblx0XHRcdF07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGguY2VpbChmaWxlLnNpemUgLyBDSFVOS19TSVpFKSB9LCAoXywgaW5kZXgpID0+ICh7XHJcblx0XHRcdGZpbGVJZCxcclxuXHRcdFx0aW5kZXgsXHJcblx0XHRcdHN0YXJ0OiBpbmRleCAqIENIVU5LX1NJWkUsXHJcblx0XHRcdGVuZDogTWF0aC5taW4oKGluZGV4ICsgMSkgKiBDSFVOS19TSVpFLCBmaWxlLnNpemUpLFxyXG5cdFx0XHRzdGF0dXM6IEZpbGVTdGF0dXMuUGVuZGluZ1xyXG5cdFx0fSkpO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './uploader.service';
2
+ export * from './uploader-bottom-sheet.service';
3
+ export * from './models/index';
4
+ export * from './constant/index';
5
+ export * from './uploader.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VwbG9hZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VwbG9hZGVyLWJvdHRvbS1zaGVldC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50L2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi91cGxvYWRlci5tb2R1bGUnO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2gubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9tb2RlbHMvYmF0Y2gubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVwbG9hZFByb3ZpZGVyIH0gZnJvbSAnLi9uZGYtZmlsZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoIHtcclxuXHRiYXRjaElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsZU9wdGlvbiB7XHJcblx0ZmlsZXM6IEZpbGVbXTtcclxuXHRwcm92aWRlcj86IFVwbG9hZFByb3ZpZGVyO1xyXG5cdG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRlUmVzcG9uc2Uge1xyXG5cdGJhdGNoSWQ6IHN0cmluZztcclxuXHRmaWxlSWR4OiBzdHJpbmc7XHJcblx0dXBsb2FkVHlwZTogc3RyaW5nO1xyXG5cdHVwbG9hZGVkU2l6ZTogbnVtYmVyO1xyXG5cdHVwbG9hZGVkQ2h1bmtJZHM6IG51bWJlcltdO1xyXG5cdGNodW5rQ291bnQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRmlsZUhlYWRlcnMgPSB7XHJcblx0J0NhY2hlLUNvbnRyb2wnOiAnbm8tY2FjaGUnO1xyXG5cdCdYLUZpbGUtTmFtZSc6IHN0cmluZztcclxuXHQnWC1GaWxlLVR5cGUnOiBzdHJpbmc7XHJcblx0J0NvbnRlbnQtVHlwZSc6IHN0cmluZztcclxuXHQnQ29udGVudC1MZW5ndGgnOiBudW1iZXI7XHJcblx0J1gtVXBsb2FkLVR5cGUnPzogJ2NodW5rZWQnO1xyXG5cdCdYLVVwbG9hZC1DaHVuay1JbmRleCc/OiBzdHJpbmc7XHJcblx0J1gtVXBsb2FkLUNodW5rLUNvdW50Jz86IHN0cmluZztcclxuXHQnWC1GaWxlLVNpemUnPzogc3RyaW5nO1xyXG59O1xyXG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './ndf-file.model';
2
+ export * from './provider.model';
3
+ export * from './batch.model';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZGYtZmlsZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2JhdGNoLm1vZGVsJztcclxuIl19
@@ -0,0 +1,20 @@
1
+ export var FileStatus;
2
+ (function (FileStatus) {
3
+ FileStatus[FileStatus["Pending"] = 0] = "Pending";
4
+ FileStatus[FileStatus["InProgress"] = 1] = "InProgress";
5
+ FileStatus[FileStatus["Canceled"] = 2] = "Canceled";
6
+ FileStatus[FileStatus["Error"] = 3] = "Error";
7
+ FileStatus[FileStatus["Completed"] = 4] = "Completed";
8
+ })(FileStatus || (FileStatus = {}));
9
+ export var UploadProvider;
10
+ (function (UploadProvider) {
11
+ UploadProvider["Nuxeo"] = "nuxeo";
12
+ UploadProvider["S3"] = "s3";
13
+ })(UploadProvider || (UploadProvider = {}));
14
+ export var FileEventType;
15
+ (function (FileEventType) {
16
+ FileEventType[FileEventType["Changes"] = 0] = "Changes";
17
+ FileEventType[FileEventType["Complete"] = 1] = "Complete";
18
+ FileEventType[FileEventType["Reset"] = 2] = "Reset";
19
+ })(FileEventType || (FileEventType = {}));
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLWZpbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9tb2RlbHMvbmRmLWZpbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNyQixpREFBTyxDQUFBO0lBQ1AsdURBQVUsQ0FBQTtJQUNWLG1EQUFRLENBQUE7SUFDUiw2Q0FBSyxDQUFBO0lBQ0wscURBQVMsQ0FBQTtBQUNWLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQUNELE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDekIsaUNBQWUsQ0FBQTtJQUNmLDJCQUFTLENBQUE7QUFDVixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekI7QUFpQ0QsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN4Qix1REFBTyxDQUFBO0lBQ1AseURBQVEsQ0FBQTtJQUNSLG1EQUFLLENBQUE7QUFDTixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGaWxlU3RhdHVzIHtcclxuXHRQZW5kaW5nLFxyXG5cdEluUHJvZ3Jlc3MsXHJcblx0Q2FuY2VsZWQsXHJcblx0RXJyb3IsXHJcblx0Q29tcGxldGVkXHJcbn1cclxuZXhwb3J0IGVudW0gVXBsb2FkUHJvdmlkZXIge1xyXG5cdE51eGVvID0gJ251eGVvJyxcclxuXHRTMyA9ICdzMydcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VGaWxlSW5mbyB7XHJcblx0YmF0Y2hJZD86IHN0cmluZztcclxuXHRpZDogc3RyaW5nO1xyXG5cdGluZGV4OiBudW1iZXI7XHJcblx0ZGF0YTogRmlsZTtcclxuXHRzdGF0dXM6IEZpbGVTdGF0dXM7XHJcblx0cHJvZ3Jlc3M6IG51bWJlcjtcclxuXHRwcm92aWRlcjogVXBsb2FkUHJvdmlkZXI7XHJcblx0bWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUluZm8gZXh0ZW5kcyBCYXNlRmlsZUluZm8ge1xyXG5cdGljb246IHN0cmluZztcclxuXHRkb2N1bWVudElkPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hGaWxlIGV4dGVuZHMgQmFzZUZpbGVJbmZvIHtcclxuXHRjaHVua3M6IEFycmF5PENodW5rPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaHVuayB7XHJcblx0YmF0Y2hJZD86IHN0cmluZztcclxuXHRmaWxlSWQ6IHN0cmluZztcclxuXHRpbmRleDogbnVtYmVyO1xyXG5cdHN0YXJ0OiBudW1iZXI7XHJcblx0ZW5kOiBudW1iZXI7XHJcblx0YmxvYj86IEJsb2I7XHJcblx0c3RhdHVzOiBGaWxlU3RhdHVzO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVFdmVudCB7XHJcblx0dHlwZTogRmlsZUV2ZW50VHlwZTtcclxuXHRkYXRhOiBGaWxlSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBlbnVtIEZpbGVFdmVudFR5cGUge1xyXG5cdENoYW5nZXMsXHJcblx0Q29tcGxldGUsXHJcblx0UmVzZXRcclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9tb2RlbHMvcHJvdmlkZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmF0Y2hGaWxlLCBDaHVuayB9IGZyb20gJy4vbmRmLWZpbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBVcGxvYWRlUmVzcG9uc2UgfSBmcm9tICcuL2JhdGNoLm1vZGVsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXIge1xyXG5cdHVwbG9hZChmaWxlOiBCYXRjaEZpbGUsIGNodW5rOiBDaHVuayk6IE9ic2VydmFibGU8VXBsb2FkZVJlc3BvbnNlPjtcclxuXHRjb21wbGV0ZShmaWxlOiBCYXRjaEZpbGUpOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './nuxeo-provider.service';
2
+ export * from './s3-provider.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9udXhlby1wcm92aWRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zMy1wcm92aWRlci5zZXJ2aWNlJztcclxuIl19
@@ -0,0 +1,32 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { nuxeoBaseUrl } from '../uploader.service';
4
+ import { UploaderHelper } from '../helpers';
5
+ import { BaseService } from '../../../shared';
6
+ import * as i0 from "@angular/core";
7
+ export class NuxeoProvider extends BaseService {
8
+ constructor(injector) {
9
+ super(injector);
10
+ }
11
+ upload(file, chunk) {
12
+ chunk.blob = file.data.slice(chunk.start, chunk.end);
13
+ const headers = UploaderHelper.createFileHeader(file, chunk);
14
+ return this.post({
15
+ endpoint: `${nuxeoBaseUrl()}upload/${file.batchId}/${file.index}`,
16
+ headers,
17
+ payload: chunk.blob
18
+ }).pipe(UploaderHelper.catchError(), UploaderHelper.retryWhen());
19
+ }
20
+ complete(file) {
21
+ return of(null);
22
+ }
23
+ }
24
+ NuxeoProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NuxeoProvider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
25
+ NuxeoProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NuxeoProvider, providedIn: 'root' });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NuxeoProvider, decorators: [{
27
+ type: Injectable,
28
+ args: [{
29
+ providedIn: 'root'
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4ZW8tcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLXVwbG9hZGVyL3Byb3ZpZGVycy9udXhlby1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHckQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyxhQUFjLFNBQVEsV0FBVztJQUM3QyxZQUFZLFFBQWtCO1FBQzdCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQWUsRUFBRSxLQUFZO1FBQ25DLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQWtCO1lBQ2pDLFFBQVEsRUFBRSxHQUFHLFlBQVksRUFBRSxVQUFVLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNqRSxPQUFPO1lBQ1AsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxFQUFFLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBZTtRQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDOzsyR0FqQlcsYUFBYTsrR0FBYixhQUFhLGNBRmIsTUFBTTs0RkFFTixhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb3ZpZGVyLCBVcGxvYWRlUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCYXRjaEZpbGUsIENodW5rIH0gZnJvbSAnLi4vbW9kZWxzL25kZi1maWxlLm1vZGVsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbnV4ZW9CYXNlVXJsIH0gZnJvbSAnLi4vdXBsb2FkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVwbG9hZGVySGVscGVyIH0gZnJvbSAnLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE51eGVvUHJvdmlkZXIgZXh0ZW5kcyBCYXNlU2VydmljZSBpbXBsZW1lbnRzIFByb3ZpZGVyIHtcclxuXHRjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHR9XHJcblxyXG5cdHVwbG9hZChmaWxlOiBCYXRjaEZpbGUsIGNodW5rOiBDaHVuayk6IE9ic2VydmFibGU8VXBsb2FkZVJlc3BvbnNlPiB7XHJcblx0XHRjaHVuay5ibG9iID0gZmlsZS5kYXRhLnNsaWNlKGNodW5rLnN0YXJ0LCBjaHVuay5lbmQpO1xyXG5cdFx0Y29uc3QgaGVhZGVycyA9IFVwbG9hZGVySGVscGVyLmNyZWF0ZUZpbGVIZWFkZXIoZmlsZSwgY2h1bmspO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLnBvc3Q8VXBsb2FkZVJlc3BvbnNlPih7XHJcblx0XHRcdGVuZHBvaW50OiBgJHtudXhlb0Jhc2VVcmwoKX11cGxvYWQvJHtmaWxlLmJhdGNoSWR9LyR7ZmlsZS5pbmRleH1gLFxyXG5cdFx0XHRoZWFkZXJzLFxyXG5cdFx0XHRwYXlsb2FkOiBjaHVuay5ibG9iXHJcblx0XHR9KS5waXBlKFVwbG9hZGVySGVscGVyLmNhdGNoRXJyb3IoKSwgVXBsb2FkZXJIZWxwZXIucmV0cnlXaGVuKCkpO1xyXG5cdH1cclxuXHRjb21wbGV0ZShmaWxlOiBCYXRjaEZpbGUpOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcclxuXHRcdHJldHVybiBvZihudWxsKTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,26 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { iif, of } from 'rxjs';
3
+ import { nuxeoBaseUrl } from '../uploader.service';
4
+ import { UploaderHelper } from '../helpers';
5
+ import { BaseService } from '../../../shared';
6
+ import * as i0 from "@angular/core";
7
+ export class S3Provider extends BaseService {
8
+ constructor(injector) {
9
+ super(injector);
10
+ }
11
+ upload(file, chunk) {
12
+ throw new Error('Method not implemented.');
13
+ }
14
+ complete(file) {
15
+ return iif(() => file.chunks.length > 1, this.post(`${nuxeoBaseUrl()}upload/${file.batchId}/${file.index}/complete`).pipe(UploaderHelper.catchError(), UploaderHelper.retryWhen()), of(null));
16
+ }
17
+ }
18
+ S3Provider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: S3Provider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
19
+ S3Provider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: S3Provider, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: S3Provider, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root'
24
+ }]
25
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLXVwbG9hZGVyL3Byb3ZpZGVycy9zMy1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHckQsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUs5QyxNQUFNLE9BQU8sVUFBVyxTQUFRLFdBQVc7SUFDMUMsWUFBWSxRQUFrQjtRQUM3QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFlLEVBQUUsS0FBWTtRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFlO1FBQ3ZCLE9BQU8sR0FBRyxDQUNULEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBa0IsR0FBRyxZQUFZLEVBQUUsVUFBVSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDaEcsY0FBYyxDQUFDLFVBQVUsRUFBRSxFQUMzQixjQUFjLENBQUMsU0FBUyxFQUFFLENBQzFCLEVBQ0QsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUNSLENBQUM7SUFDSCxDQUFDOzt3R0FqQlcsVUFBVTs0R0FBVixVQUFVLGNBRlYsTUFBTTs0RkFFTixVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb3ZpZGVyLCBVcGxvYWRlUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCYXRjaEZpbGUsIENodW5rIH0gZnJvbSAnLi4vbW9kZWxzL25kZi1maWxlLm1vZGVsJztcclxuaW1wb3J0IHsgaWlmLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBudXhlb0Jhc2VVcmwgfSBmcm9tICcuLi91cGxvYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXBsb2FkZXJIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUzNQcm92aWRlciBleHRlbmRzIEJhc2VTZXJ2aWNlIGltcGxlbWVudHMgUHJvdmlkZXIge1xyXG5cdGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cdFx0c3VwZXIoaW5qZWN0b3IpO1xyXG5cdH1cclxuXHJcblx0dXBsb2FkKGZpbGU6IEJhdGNoRmlsZSwgY2h1bms6IENodW5rKTogT2JzZXJ2YWJsZTxVcGxvYWRlUmVzcG9uc2U+IHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcclxuXHR9XHJcblx0Y29tcGxldGUoZmlsZTogQmF0Y2hGaWxlKTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XHJcblx0XHRyZXR1cm4gaWlmKFxyXG5cdFx0XHQoKSA9PiBmaWxlLmNodW5rcy5sZW5ndGggPiAxLFxyXG5cdFx0XHR0aGlzLnBvc3Q8VXBsb2FkZVJlc3BvbnNlPihgJHtudXhlb0Jhc2VVcmwoKX11cGxvYWQvJHtmaWxlLmJhdGNoSWR9LyR7ZmlsZS5pbmRleH0vY29tcGxldGVgKS5waXBlKFxyXG5cdFx0XHRcdFVwbG9hZGVySGVscGVyLmNhdGNoRXJyb3IoKSxcclxuXHRcdFx0XHRVcGxvYWRlckhlbHBlci5yZXRyeVdoZW4oKVxyXG5cdFx0XHQpLFxyXG5cdFx0XHRvZihudWxsKVxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,72 @@
1
+ var _UploaderBottomSheetService_instances, _UploaderBottomSheetService_events, _UploaderBottomSheetService_isBottomSheetOpen_get;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { Injectable } from '@angular/core';
4
+ import { BehaviorSubject, Subject } from 'rxjs';
5
+ import { NdfUploaderBottomSheetComponent } from './components';
6
+ import { tap } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/bottom-sheet";
9
+ import * as i2 from "./uploader.service";
10
+ import * as i3 from "@ngx-translate/core";
11
+ const CUSTOM_PANEL_CLASS = 'upload-bottom-sheet';
12
+ export var UploaderSheetEventType;
13
+ (function (UploaderSheetEventType) {
14
+ UploaderSheetEventType["Open"] = "Open";
15
+ UploaderSheetEventType["Submit"] = "Submit";
16
+ })(UploaderSheetEventType || (UploaderSheetEventType = {}));
17
+ export class UploaderBottomSheetService {
18
+ constructor(bottomSheetService, uploaderService, translateService) {
19
+ this.bottomSheetService = bottomSheetService;
20
+ this.uploaderService = uploaderService;
21
+ this.translateService = translateService;
22
+ _UploaderBottomSheetService_instances.add(this);
23
+ this.filesInfo$ = new BehaviorSubject([]);
24
+ _UploaderBottomSheetService_events.set(this, new Subject());
25
+ this.events$ = __classPrivateFieldGet(this, _UploaderBottomSheetService_events, "f").asObservable();
26
+ }
27
+ open(files) {
28
+ if (__classPrivateFieldGet(this, _UploaderBottomSheetService_instances, "a", _UploaderBottomSheetService_isBottomSheetOpen_get)) {
29
+ this.uploaderService.upload(files);
30
+ return this.events$;
31
+ }
32
+ else {
33
+ this.bottomSheetService.open(NdfUploaderBottomSheetComponent, {
34
+ panelClass: CUSTOM_PANEL_CLASS,
35
+ direction: this.translateService.currentLang == 'ar' ? 'rtl' : 'ltr',
36
+ disableClose: true,
37
+ hasBackdrop: false,
38
+ data: files
39
+ });
40
+ return this.events$;
41
+ }
42
+ }
43
+ close() {
44
+ if (!__classPrivateFieldGet(this, _UploaderBottomSheetService_instances, "a", _UploaderBottomSheetService_isBottomSheetOpen_get))
45
+ return;
46
+ this.uploaderService.reset();
47
+ this.bottomSheetService.dismiss();
48
+ }
49
+ notify(event) {
50
+ __classPrivateFieldGet(this, _UploaderBottomSheetService_events, "f").next(event);
51
+ }
52
+ submit(batchId, options) {
53
+ return this.uploaderService.submit(options).pipe(tap((data) => {
54
+ var _a;
55
+ const files = this.filesInfo$.getValue();
56
+ files.find((f) => f.batchId == batchId).documentId = (_a = data.entries[0]) === null || _a === void 0 ? void 0 : _a.uid;
57
+ this.filesInfo$.next(files);
58
+ }));
59
+ }
60
+ }
61
+ _UploaderBottomSheetService_events = new WeakMap(), _UploaderBottomSheetService_instances = new WeakSet(), _UploaderBottomSheetService_isBottomSheetOpen_get = function _UploaderBottomSheetService_isBottomSheetOpen_get() {
62
+ return this.bottomSheetService._openedBottomSheetRef !== null;
63
+ };
64
+ UploaderBottomSheetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UploaderBottomSheetService, deps: [{ token: i1.MatBottomSheet }, { token: i2.UploaderService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
65
+ UploaderBottomSheetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UploaderBottomSheetService, providedIn: 'root' });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UploaderBottomSheetService, decorators: [{
67
+ type: Injectable,
68
+ args: [{
69
+ providedIn: 'root'
70
+ }]
71
+ }], ctorParameters: function () { return [{ type: i1.MatBottomSheet }, { type: i2.UploaderService }, { type: i3.TranslateService }]; } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItYm90dG9tLXNoZWV0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlci91cGxvYWRlci1ib3R0b20tc2hlZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFckMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztBQUNqRCxNQUFNLENBQU4sSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQ2pDLHVDQUFhLENBQUE7SUFDYiwyQ0FBaUIsQ0FBQTtBQUNsQixDQUFDLEVBSFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUdqQztBQVNELE1BQU0sT0FBTywwQkFBMEI7SUFVdEMsWUFDa0Isa0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLGdCQUFrQztRQUZsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWdCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCOztRQVpwRCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQWEsRUFBRSxDQUFDLENBQUM7UUFFakQsNkNBQW1CLElBQUksT0FBTyxFQUFzQixFQUFDO1FBQ3JELFlBQU8sR0FBRyx1QkFBQSxJQUFJLDBDQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFVbkMsQ0FBQztJQUVKLElBQUksQ0FBQyxLQUFrQjtRQUN0QixJQUFJLHVCQUFBLElBQUksZ0dBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3BCO2FBQU07WUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO2dCQUM3RCxVQUFVLEVBQUUsa0JBQWtCO2dCQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSztnQkFDcEUsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixJQUFJLEVBQUUsS0FBSzthQUNYLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUNwQjtJQUNGLENBQUM7SUFFRCxLQUFLO1FBQ0osSUFBSSxDQUFDLHVCQUFBLElBQUksZ0dBQW1CO1lBQUUsT0FBTztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQXlCO1FBQy9CLHVCQUFBLElBQUksMENBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFlLEVBQUUsT0FBeUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFOztZQUNaLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxHQUFHLENBQUM7WUFDMUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7OztJQTNDQSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLENBQUM7QUFDL0QsQ0FBQzt3SEFSVywwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUYxQixNQUFNOzRGQUVOLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXBsb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi91cGxvYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZUluZm8gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IE5kZlVwbG9hZGVyQm90dG9tU2hlZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBPcGVyYXRpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuY29uc3QgQ1VTVE9NX1BBTkVMX0NMQVNTID0gJ3VwbG9hZC1ib3R0b20tc2hlZXQnO1xyXG5leHBvcnQgZW51bSBVcGxvYWRlclNoZWV0RXZlbnRUeXBlIHtcclxuXHRPcGVuID0gJ09wZW4nLFxyXG5cdFN1Ym1pdCA9ICdTdWJtaXQnXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRlclNoZWV0RXZlbnQge1xyXG5cdHR5cGU6IFVwbG9hZGVyU2hlZXRFdmVudFR5cGU7XHJcblx0ZGF0YT86IEZpbGVJbmZvIHwgQXJyYXk8c3RyaW5nPjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkZXJCb3R0b21TaGVldFNlcnZpY2Uge1xyXG5cdGZpbGVzSW5mbyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbGVJbmZvW10+KFtdKTtcclxuXHJcblx0cmVhZG9ubHkgI2V2ZW50cyA9IG5ldyBTdWJqZWN0PFVwbG9hZGVyU2hlZXRFdmVudD4oKTtcclxuXHRldmVudHMkID0gdGhpcy4jZXZlbnRzLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRnZXQgI2lzQm90dG9tU2hlZXRPcGVuKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuYm90dG9tU2hlZXRTZXJ2aWNlLl9vcGVuZWRCb3R0b21TaGVldFJlZiAhPT0gbnVsbDtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBib3R0b21TaGVldFNlcnZpY2U6IE1hdEJvdHRvbVNoZWV0LFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB1cGxvYWRlclNlcnZpY2U6IFVwbG9hZGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG5cdCkge31cclxuXHJcblx0b3BlbihmaWxlczogQXJyYXk8RmlsZT4pOiBPYnNlcnZhYmxlPFVwbG9hZGVyU2hlZXRFdmVudD4ge1xyXG5cdFx0aWYgKHRoaXMuI2lzQm90dG9tU2hlZXRPcGVuKSB7XHJcblx0XHRcdHRoaXMudXBsb2FkZXJTZXJ2aWNlLnVwbG9hZChmaWxlcyk7XHJcblx0XHRcdHJldHVybiB0aGlzLmV2ZW50cyQ7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmJvdHRvbVNoZWV0U2VydmljZS5vcGVuKE5kZlVwbG9hZGVyQm90dG9tU2hlZXRDb21wb25lbnQsIHtcclxuXHRcdFx0XHRwYW5lbENsYXNzOiBDVVNUT01fUEFORUxfQ0xBU1MsXHJcblx0XHRcdFx0ZGlyZWN0aW9uOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgPT0gJ2FyJyA/ICdydGwnIDogJ2x0cicsXHJcblx0XHRcdFx0ZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG5cdFx0XHRcdGhhc0JhY2tkcm9wOiBmYWxzZSxcclxuXHRcdFx0XHRkYXRhOiBmaWxlc1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZXZlbnRzJDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNsb3NlKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLiNpc0JvdHRvbVNoZWV0T3BlbikgcmV0dXJuO1xyXG5cdFx0dGhpcy51cGxvYWRlclNlcnZpY2UucmVzZXQoKTtcclxuXHRcdHRoaXMuYm90dG9tU2hlZXRTZXJ2aWNlLmRpc21pc3MoKTtcclxuXHR9XHJcblxyXG5cdG5vdGlmeShldmVudDogVXBsb2FkZXJTaGVldEV2ZW50KTogdm9pZCB7XHJcblx0XHR0aGlzLiNldmVudHMubmV4dChldmVudCk7XHJcblx0fVxyXG5cclxuXHRzdWJtaXQoYmF0Y2hJZDogc3RyaW5nLCBvcHRpb25zOiBPcGVyYXRpb25PcHRpb25zKSB7XHJcblx0XHRyZXR1cm4gdGhpcy51cGxvYWRlclNlcnZpY2Uuc3VibWl0KG9wdGlvbnMpLnBpcGUoXHJcblx0XHRcdHRhcCgoZGF0YSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGZpbGVzID0gdGhpcy5maWxlc0luZm8kLmdldFZhbHVlKCk7XHJcblx0XHRcdFx0ZmlsZXMuZmluZCgoZikgPT4gZi5iYXRjaElkID09IGJhdGNoSWQpLmRvY3VtZW50SWQgPSBkYXRhLmVudHJpZXNbMF0/LnVpZDtcclxuXHRcdFx0XHR0aGlzLmZpbGVzSW5mbyQubmV4dChmaWxlcyk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxufVxyXG4iXX0=