@seniorsistemas/angular-components 17.3.14 → 17.3.16

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 (31) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +430 -335
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/file-upload/components/file-item/file-item.component.d.ts +20 -0
  6. package/components/file-upload/file-upload.component.d.ts +11 -15
  7. package/components/file-upload/models/index.d.ts +1 -0
  8. package/components/file-upload/models/storage-units.d.ts +5 -0
  9. package/esm2015/components/country-phone-picker/resources/countries.js +22 -22
  10. package/esm2015/components/file-upload/components/file-item/file-item.component.js +88 -0
  11. package/esm2015/components/file-upload/file-upload.component.js +42 -43
  12. package/esm2015/components/file-upload/file-upload.module.js +9 -5
  13. package/esm2015/components/file-upload/file-upload.service.js +3 -1
  14. package/esm2015/components/file-upload/models/index.js +2 -1
  15. package/esm2015/components/file-upload/models/storage-units.js +6 -0
  16. package/esm2015/seniorsistemas-angular-components.js +65 -64
  17. package/esm5/components/country-phone-picker/resources/countries.js +22 -22
  18. package/esm5/components/file-upload/components/file-item/file-item.component.js +89 -0
  19. package/esm5/components/file-upload/file-upload.component.js +41 -42
  20. package/esm5/components/file-upload/file-upload.module.js +9 -5
  21. package/esm5/components/file-upload/file-upload.service.js +3 -1
  22. package/esm5/components/file-upload/models/index.js +2 -1
  23. package/esm5/components/file-upload/models/storage-units.js +6 -0
  24. package/esm5/seniorsistemas-angular-components.js +65 -64
  25. package/fesm2015/seniorsistemas-angular-components.js +351 -259
  26. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  27. package/fesm5/seniorsistemas-angular-components.js +363 -270
  28. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  29. package/package.json +1 -1
  30. package/seniorsistemas-angular-components.d.ts +64 -63
  31. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -0,0 +1,89 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input, EventEmitter, Output, HostListener } from "@angular/core";
3
+ import { StorageUnits } from "../../models";
4
+ import { Breakpoints } from "../../../utils";
5
+ var FileItemComponent = /** @class */ (function () {
6
+ function FileItemComponent() {
7
+ this.canReadFiles = true;
8
+ this.canRemoveFiles = true;
9
+ this.cancelUpload = new EventEmitter();
10
+ this.removeFile = new EventEmitter();
11
+ }
12
+ FileItemComponent.prototype.ngAfterContentInit = function () {
13
+ this._update();
14
+ };
15
+ FileItemComponent.prototype.onResize = function () {
16
+ this._update();
17
+ };
18
+ FileItemComponent.prototype._update = function () {
19
+ var windowWidth = window.innerWidth;
20
+ this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;
21
+ };
22
+ FileItemComponent.prototype.simplifySize = function (size) {
23
+ var unit;
24
+ var convertedSize;
25
+ if (size < StorageUnits.KB) {
26
+ convertedSize = size;
27
+ unit = "bytes";
28
+ }
29
+ else if (size < StorageUnits.MB) {
30
+ convertedSize = size / StorageUnits.KB;
31
+ unit = "KB";
32
+ }
33
+ else if (size < StorageUnits.GB) {
34
+ convertedSize = size / StorageUnits.MB;
35
+ unit = "MB";
36
+ }
37
+ else {
38
+ convertedSize = size / StorageUnits.GB;
39
+ unit = "GB";
40
+ }
41
+ return convertedSize + " " + unit;
42
+ };
43
+ __decorate([
44
+ Input()
45
+ ], FileItemComponent.prototype, "id", void 0);
46
+ __decorate([
47
+ Input()
48
+ ], FileItemComponent.prototype, "file", void 0);
49
+ __decorate([
50
+ Input()
51
+ ], FileItemComponent.prototype, "canReadFiles", void 0);
52
+ __decorate([
53
+ Input()
54
+ ], FileItemComponent.prototype, "canRemoveFiles", void 0);
55
+ __decorate([
56
+ Input()
57
+ ], FileItemComponent.prototype, "cancelLabel", void 0);
58
+ __decorate([
59
+ Input()
60
+ ], FileItemComponent.prototype, "removeLabel", void 0);
61
+ __decorate([
62
+ Input()
63
+ ], FileItemComponent.prototype, "ariaLabelProgress", void 0);
64
+ __decorate([
65
+ Input()
66
+ ], FileItemComponent.prototype, "successTooltip", void 0);
67
+ __decorate([
68
+ Input()
69
+ ], FileItemComponent.prototype, "ariaLabelSuccess", void 0);
70
+ __decorate([
71
+ Output()
72
+ ], FileItemComponent.prototype, "cancelUpload", void 0);
73
+ __decorate([
74
+ Output()
75
+ ], FileItemComponent.prototype, "removeFile", void 0);
76
+ __decorate([
77
+ HostListener("window:resize")
78
+ ], FileItemComponent.prototype, "onResize", null);
79
+ FileItemComponent = __decorate([
80
+ Component({
81
+ selector: "s-file-item",
82
+ template: "<div [id]=\"id\" class=\"file-item-container\">\n <div class=\"file-info\">\n <ng-container *ngIf=\"canReadFiles; then fileNameUrl; else fileName\"></ng-container>\n <ng-template #fileNameUrl>\n <a\n class=\"file-name file-name--link\"\n tabindex=\"0\"\n [href]=\"file.objectURL\"\n download>\n {{ file.name }}\n </a>\n </ng-template>\n <ng-template #fileName>\n <span\n *ngIf=\"!canReadFiles\"\n class=\"file-name\">\n {{ file.name }}\n </span>\n </ng-template>\n <span class=\"file-size\">\n {{ simplifySize(file.size) }}\n </span>\n <div\n *ngIf=\"file.isUploading && !isSmallDevice\"\n class=\"progressbar\"\n [attr.aria-label]=\"ariaLabelProgress || 'platform.angular_components.loading_file' | translate\">\n <s-progressbar\n [value]=\"file.progress\"\n activeColor=\"blue\"\n [showValue]=\"true\">\n </s-progressbar>\n </div>\n <span\n *ngIf=\"file.isUploading && isSmallDevice\" \n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"ariaLabelProgress || 'platform.angular_components.loading_file' | translate\">\n </span>\n\n <span\n *ngIf=\"!file.isUploading && !file.error\"\n class=\"status-icon status-icon--success fas fa-check\"\n [attr.aria-label]=\"ariaLabelSuccess || successTooltip || 'platform.angular_components.file_attached_successfully' | translate\"\n [sTooltip]=\"successTooltip || 'platform.angular_components.file_attached_successfully' | translate\">\n </span>\n <span\n *ngIf=\"!file.isUploading && file.error\"\n class=\"status-icon status-icon--fail fas fa-times\"\n [attr.aria-label]=\"file.error?.message\"\n [sTooltip]=\"file.error?.message\">\n </span>\n </div>\n <button\n *ngIf=\"file.isUploading\"\n class=\"file-option file-option--cancel\"\n (click)=\"cancelUpload.emit(file)\">\n {{ cancelLabel || \"platform.angular_components.cancel\" | translate }}\n </button>\n <button\n *ngIf=\"canRemoveFiles && !file.isUploading\"\n class=\"file-option file-option--remove\"\n (click)=\"removeFile.emit(file)\">\n {{ removeLabel || \"platform.angular_components.remove\" | translate }}\n </button>\n</div>\n",
83
+ styles: [".file-item-container{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:16px;padding:16px}.file-item-container .file-info{color:#212533;display:-ms-flexbox;display:flex;font-family:\"Open Sans\",sans-serif;font-size:14px;gap:16px;width:100%;-ms-flex-align:center;align-items:center}.file-item-container .file-info .file-name{-ms-flex-positive:1;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item-container .file-info .file-name--link{color:#428bca;text-decoration:none}.file-item-container .file-info .file-size{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item-container .progressbar{width:20%}.file-item-container .status-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;font-size:12px}.file-item-container .status-icon--success{color:#0c9348}.file-item-container .status-icon--fail{color:#c13018}.file-item-container .file-option{background-color:transparent;border:none;color:#428bca;cursor:pointer;font-family:\"Open Sans\",sans-serif;font-size:14px;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media screen and (max-width:600px){.file-item-container{-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:column;flex-direction:column}}"]
84
+ })
85
+ ], FileItemComponent);
86
+ return FileItemComponent;
87
+ }());
88
+ export { FileItemComponent };
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtdXBsb2FkL2NvbXBvbmVudHMvZmlsZS1pdGVtL2ZpbGUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQW9CLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU83QztJQUFBO1FBUVcsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFHcEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFrQnRCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUczQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQXNDcEQsQ0FBQztJQXBDVSw4Q0FBa0IsR0FBekI7UUFDSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUdNLG9DQUFRLEdBQWY7UUFDSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUlPLG1DQUFPLEdBQWY7UUFDSSxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDM0QsQ0FBQztJQUVNLHdDQUFZLEdBQW5CLFVBQW9CLElBQVk7UUFDNUIsSUFBSSxJQUFZLENBQUM7UUFDakIsSUFBSSxhQUFxQixDQUFDO1FBRTFCLElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDeEIsYUFBYSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLEdBQUcsT0FBTyxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUMvQixhQUFhLEdBQUcsSUFBSSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNmO2FBQU0sSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUMvQixhQUFhLEdBQUcsSUFBSSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxhQUFhLEdBQUcsSUFBSSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBVSxhQUFhLFNBQUksSUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFuRUQ7UUFEQyxLQUFLLEVBQUU7aURBQ1U7SUFHbEI7UUFEQyxLQUFLLEVBQUU7bURBQ2E7SUFHckI7UUFEQyxLQUFLLEVBQUU7MkRBQ21CO0lBRzNCO1FBREMsS0FBSyxFQUFFOzZEQUNxQjtJQUc3QjtRQURDLEtBQUssRUFBRTswREFDbUI7SUFHM0I7UUFEQyxLQUFLLEVBQUU7MERBQ21CO0lBRzNCO1FBREMsS0FBSyxFQUFFO2dFQUN5QjtJQUdqQztRQURDLEtBQUssRUFBRTs2REFDc0I7SUFHOUI7UUFEQyxLQUFLLEVBQUU7K0RBQ3dCO0lBR2hDO1FBREMsTUFBTSxFQUFFOzJEQUN5QztJQUdsRDtRQURDLE1BQU0sRUFBRTt5REFDdUM7SUFPaEQ7UUFEQyxZQUFZLENBQUMsZUFBZSxDQUFDO3FEQUc3QjtJQXpDUSxpQkFBaUI7UUFMN0IsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGFBQWE7WUFDdkIsOGtGQUF5Qzs7U0FFNUMsQ0FBQztPQUNXLGlCQUFpQixDQXNFN0I7SUFBRCx3QkFBQztDQUFBLEFBdEVELElBc0VDO1NBdEVZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBBZnRlckNvbnRlbnRJbml0LCBIb3N0TGlzdGVuZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdG9yYWdlVW5pdHMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCJcbmltcG9ydCB7IEZpbGVEdG8gfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gXCIuLi8uLi8uLi91dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWZpbGUtaXRlbVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS1pdGVtLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2ZpbGUtaXRlbS5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsZTogRmlsZUR0bztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhblJlYWRGaWxlcyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5SZW1vdmVGaWxlcyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5jZWxMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbFByb2dyZXNzOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdWNjZXNzVG9vbHRpcDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsU3VjY2Vzczogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNhbmNlbFVwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUR0bz4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZW1vdmVGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRHRvPigpO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgICBwdWJsaWMgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NtYWxsRGV2aWNlOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBfdXBkYXRlKCkge1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICB0aGlzLmlzU21hbGxEZXZpY2UgPSB3aW5kb3dXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVg7XG4gICAgfVxuXG4gICAgcHVibGljIHNpbXBsaWZ5U2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBsZXQgdW5pdDogc3RyaW5nO1xuICAgICAgICBsZXQgY29udmVydGVkU2l6ZTogbnVtYmVyO1xuXG4gICAgICAgIGlmIChzaXplIDwgU3RvcmFnZVVuaXRzLktCKSB7XG4gICAgICAgICAgICBjb252ZXJ0ZWRTaXplID0gc2l6ZTtcbiAgICAgICAgICAgIHVuaXQgPSBcImJ5dGVzXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoc2l6ZSA8IFN0b3JhZ2VVbml0cy5NQikge1xuICAgICAgICAgICAgY29udmVydGVkU2l6ZSA9IHNpemUgLyBTdG9yYWdlVW5pdHMuS0I7XG4gICAgICAgICAgICB1bml0ID0gXCJLQlwiO1xuICAgICAgICB9IGVsc2UgaWYgKHNpemUgPCBTdG9yYWdlVW5pdHMuR0IpIHtcbiAgICAgICAgICAgIGNvbnZlcnRlZFNpemUgPSBzaXplIC8gU3RvcmFnZVVuaXRzLk1CO1xuICAgICAgICAgICAgdW5pdCA9IFwiTUJcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnZlcnRlZFNpemUgPSBzaXplIC8gU3RvcmFnZVVuaXRzLkdCO1xuICAgICAgICAgICAgdW5pdCA9IFwiR0JcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtjb252ZXJ0ZWRTaXplfSAke3VuaXR9YDtcbiAgICB9XG59XG4iXX0=
@@ -1,13 +1,12 @@
1
1
  import { __decorate, __values } from "tslib";
2
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
2
+ import { Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";
3
3
  import { DomSanitizer } from "@angular/platform-browser";
4
4
  import { TranslateService } from "@ngx-translate/core";
5
5
  import { Subject } from "rxjs";
6
6
  import * as moment_ from "moment";
7
- import { Breakpoints } from "../utils";
8
7
  import { FileUploadService } from "./file-upload.service";
8
+ import { ALL_PERMISSIONS, FileUploadPermissions } from "./models/file-upload-permissions";
9
9
  import { ValidateErrors } from "./models/validate-errors";
10
- import { FileUploadPermissions, ALL_PERMISSIONS } from "./models/file-upload-permissions";
11
10
  var moment = moment_;
12
11
  var FileUploadComponent = /** @class */ (function () {
13
12
  function FileUploadComponent(sanitizer, fileUploadService, translate) {
@@ -40,10 +39,10 @@ var FileUploadComponent = /** @class */ (function () {
40
39
  var _this = this;
41
40
  var _a;
42
41
  if (this.showFileUploadDate && ((_a = files[0]) === null || _a === void 0 ? void 0 : _a.objectId)) {
43
- this.getUploadDate(files);
42
+ this._getUploadDate(files);
44
43
  }
45
44
  this._files = files.map(function (file) {
46
- if (_this.isImage(file)) {
45
+ if (_this._isImage(file)) {
47
46
  file.objectURL = _this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));
48
47
  }
49
48
  return file;
@@ -54,43 +53,39 @@ var FileUploadComponent = /** @class */ (function () {
54
53
  });
55
54
  FileUploadComponent.prototype.ngOnInit = function () {
56
55
  this.supportedExtensions = this.supportedExtensions
57
- .map(function (extension) { return extension.replace(".", "").toLowerCase(); });
56
+ .map(function (extension) { return extension
57
+ .replace(".", "")
58
+ .toLowerCase(); });
58
59
  };
59
60
  FileUploadComponent.prototype.ngOnDestroy = function () {
60
61
  this.ngUsubscribe.next();
61
62
  this.ngUsubscribe.complete();
62
63
  };
63
- FileUploadComponent.prototype.ngAfterContentInit = function () {
64
- this.update();
65
- };
66
- FileUploadComponent.prototype.onResize = function () {
67
- this.update();
68
- };
69
64
  FileUploadComponent.prototype.onFileSelect = function (files) {
70
65
  var e_1, _a;
71
66
  var newFiles = [];
72
67
  if (!this.multiple) {
73
68
  this.files = [];
74
69
  }
75
- if (this.isFileLimitExceeded(files)) {
70
+ if (this._isFileLimitExceeded(files)) {
76
71
  this.validateErrors.emit({
77
72
  files: files,
78
73
  validation: ValidateErrors.MAX_FILE_LIMIT,
79
74
  });
80
- this.clearFileInput();
75
+ this._clearFileInput();
81
76
  return;
82
77
  }
83
78
  try {
84
79
  for (var files_1 = __values(files), files_1_1 = files_1.next(); !files_1_1.done; files_1_1 = files_1.next()) {
85
80
  var file = files_1_1.value;
86
- if (this.isUnsupportedFileExtension(file)) {
81
+ if (this._isUnsupportedFileExtension(file)) {
87
82
  this.validateErrors.emit({
88
83
  files: [file],
89
84
  validation: ValidateErrors.UNSUPPORTED_EXTENSION,
90
85
  });
91
86
  continue;
92
87
  }
93
- if (this.isFileSizeExceeded(file)) {
88
+ if (this._isFileSizeExceeded(file)) {
94
89
  this.validateErrors.emit({
95
90
  files: [file],
96
91
  validation: ValidateErrors.MAX_FILE_SIZE,
@@ -113,7 +108,7 @@ var FileUploadComponent = /** @class */ (function () {
113
108
  files: newFiles,
114
109
  });
115
110
  }
116
- this.clearFileInput();
111
+ this._clearFileInput();
117
112
  };
118
113
  FileUploadComponent.prototype.onRemoveFile = function (file) {
119
114
  var fileIndex = this.files.indexOf(file);
@@ -122,12 +117,13 @@ var FileUploadComponent = /** @class */ (function () {
122
117
  this.removeFile.emit({ file: file });
123
118
  }
124
119
  };
125
- FileUploadComponent.prototype.onCancelUpload = function (index) {
126
- var removedFiles = this.files.splice(index, 1);
127
- if (removedFiles.length) {
120
+ FileUploadComponent.prototype.onCancelUpload = function (file) {
121
+ var index = this.files.indexOf(file);
122
+ if (index != -1) {
123
+ this.files.splice(index, 1);
128
124
  this.cancelUpload.emit(index);
129
125
  }
130
- this.clearFileInput();
126
+ this._clearFileInput();
131
127
  };
132
128
  FileUploadComponent.prototype.onDowloadFile = function (index) {
133
129
  this.downloadFile.emit({
@@ -135,51 +131,57 @@ var FileUploadComponent = /** @class */ (function () {
135
131
  anchor: this.anchor,
136
132
  });
137
133
  };
138
- FileUploadComponent.prototype.update = function () {
139
- var windowWidth = window.innerWidth;
140
- this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;
141
- };
142
- FileUploadComponent.prototype.isImage = function (file) {
134
+ FileUploadComponent.prototype._isImage = function (file) {
143
135
  return /^image\//.test(file.type);
144
136
  };
145
- FileUploadComponent.prototype.isFileLimitExceeded = function (files) {
137
+ FileUploadComponent.prototype._isFileLimitExceeded = function (files) {
146
138
  if (!this.fileLimit) {
147
139
  return false;
148
140
  }
149
141
  return this.files.length + files.length > this.fileLimit;
150
142
  };
151
- FileUploadComponent.prototype.isFileSizeExceeded = function (file) {
143
+ FileUploadComponent.prototype._isFileSizeExceeded = function (file) {
152
144
  if (!this.maxFileSize) {
153
145
  return false;
154
146
  }
155
147
  return file.size > this.maxFileSize;
156
148
  };
157
- FileUploadComponent.prototype.isUnsupportedFileExtension = function (file) {
149
+ FileUploadComponent.prototype._isUnsupportedFileExtension = function (file) {
158
150
  var _a;
159
151
  if ((_a = this.supportedExtensions) === null || _a === void 0 ? void 0 : _a.length) {
160
- var extension = file.name.split(".").pop().toLowerCase();
152
+ var extension = file.name
153
+ .split(".")
154
+ .pop()
155
+ .toLowerCase();
161
156
  return !this.supportedExtensions.includes(extension);
162
157
  }
163
158
  return false;
164
159
  };
165
- FileUploadComponent.prototype.clearFileInput = function () {
160
+ FileUploadComponent.prototype._clearFileInput = function () {
166
161
  this.inputUpload.nativeElement.value = null;
167
162
  };
168
- FileUploadComponent.prototype.getUploadDate = function (blobFile) {
163
+ FileUploadComponent.prototype._getUploadDate = function (blobFile) {
169
164
  var _this = this;
170
165
  if (!blobFile) {
171
166
  return;
172
167
  }
173
- this.fileUploadService.getMetadataCustomField({ objectId: blobFile[0].objectId })
174
- .then(function (metadata) { return _this.setModifiedDate(metadata); });
168
+ this.fileUploadService
169
+ .getMetadataCustomField({ objectId: blobFile[0].objectId })
170
+ .then(function (metadata) { return _this._setModifiedDate(metadata); });
175
171
  };
176
- FileUploadComponent.prototype.setModifiedDate = function (metadata) {
172
+ FileUploadComponent.prototype._setModifiedDate = function (metadata) {
177
173
  var hour = moment(metadata.modified).format("HH");
178
174
  var minutes = moment(metadata.modified).format("mm");
179
175
  var day = moment(metadata.modified).format("DD");
180
176
  var month = moment(metadata.modified).format("MM");
181
177
  var fullYear = moment(metadata.modified).format("YYYY");
182
- this.modifiedDate = this.translate.instant("platform.angular_components.date_modified_custom_blob", { hour: hour, minutes: minutes, day: day, month: month, fullYear: fullYear });
178
+ this.modifiedDate = this.translate.instant("platform.angular_components.date_modified_custom_blob", {
179
+ hour: hour,
180
+ minutes: minutes,
181
+ day: day,
182
+ month: month,
183
+ fullYear: fullYear,
184
+ });
183
185
  };
184
186
  var FileUploadComponent_1;
185
187
  FileUploadComponent.nextId = 0;
@@ -269,17 +271,14 @@ var FileUploadComponent = /** @class */ (function () {
269
271
  __decorate([
270
272
  Output()
271
273
  ], FileUploadComponent.prototype, "validateErrors", void 0);
272
- __decorate([
273
- HostListener("window:resize")
274
- ], FileUploadComponent.prototype, "onResize", null);
275
274
  FileUploadComponent = FileUploadComponent_1 = __decorate([
276
275
  Component({
277
276
  selector: "s-file-upload",
278
- template: "<div\n [id]=\"id\"\n class=\"s-fileupload\">\n <div class=\"s-fileupload-choose\">\n <input\n #inputUpload\n [id]=\"id+'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onFileSelect($event.dataTransfer\n ? $event.dataTransfer.files\n : $event.target.files)\"> \n <s-button\n *ngIf=\"permissions.includes(ADD_PERMISSION)\"\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (onClick)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formGroup?.disabled\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n\n <section\n *ngIf=\"files.length\" \n [id]=\"id + 'fileupload-list'\"\n class=\"s-fileupload-list\"\n role=\"grid\">\n <ng-container *ngFor=\"let file of files; let i = index\">\n <div\n class=\"s-fileupload-list-file\"\n role=\"row\">\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"s-fileupload-list-file-name\"\n role=\"gridcell\">\n <ng-container *ngTemplateOutlet=\"permissions.includes(READ_PERMISSION) && file.savedFile || file.progress === 100\n ? descriptionUrl\n : description; context: {\n $implicit: file,\n index: i\n }\">\n </ng-container>\n <span *ngIf=\"modifiedDate\" class=\"s-fileupload-list-file-name-date\">{{ modifiedDate }}</span>\n </div>\n <div\n class=\"s-fileupload-list-file-status\"\n role=\"gridcell\">\n <p-progressBar\n *ngIf=\"file.isUploading && !isSmallDevice\"\n [style]=\"{ 'width': '250px', 'background-color': '#d8d8d8', 'border-radius': '0px', 'height': '14px'}\"\n [value]=\"file.progress\"\n [showValue]=\"false\"\n role=\"alert\"\n [attr.aria-label]=\"ariaLabelProgress || 'platform.angular_components.loading_file' | translate\">\n </p-progressBar>\n <span\n *ngIf=\"file.isUploading && isSmallDevice\" \n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"ariaLabelProgress || 'platform.angular_components.loading_file' | translate\">\n </span>\n <span\n *ngIf=\"!file.isUploading && !file.error && file.progress === 100\"\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"ariaLabelSuccess || successTooltip || 'platform.angular_components.file_attached_successfully' | translate\"\n [pTooltip]=\"successTooltip || 'platform.angular_components.file_attached_successfully' | translate\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\">\n </span>\n <span\n *ngIf=\"file.error?.message\" \n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [pTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\">\n </span>\n </div>\n <div\n class=\"s-fileupload-list-file-actions\"\n role=\"gridcell\">\n <a\n *ngIf=\"file.isUploading\"\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"s-fileupload-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\">\n {{ cancelLabel || 'platform.angular_components.cancel' | translate }}\n </a>\n <a\n *ngIf=\"permissions.includes(REMOVE_PERMISSION) && !file.isUploading && !(disabled || !!formGroup?.disabled)\"\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"s-fileupload-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"ariaLabelRemove || removeLabel || 'platform.angular_components.remove' | translate\">\n {{ removeLabel || 'platform.angular_components.remove' | translate }}\n </a>\n </div>\n </div>\n </ng-container>\n </section>\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i = index>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\">{{file.name}}\n </a>\n <a\n style=\"display: none;\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor>\n </a>\n</ng-template>\n\n<ng-template\n #description\n let-file>\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\">\n {{file.name}}\n </span>\n</ng-template>\n",
279
- styles: [".s-fileupload .s-fileupload-choose{position:relative;margin:15px 0;width:-webkit-max-content;width:max-content}.s-fileupload input[type=file]{display:none}.s-fileupload-list{border:1px solid #ccc}.s-fileupload-list-file:not(:first-child){border-top:1px solid #ccc}.s-fileupload-list .s-fileupload-list-file{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;padding:15px}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:center;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name .s-fileupload-list-file-name-date{font-size:.75rem;color:#999}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name>a{cursor:pointer;text-decoration:none}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-status{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.s-fileupload-list .s-fileupload-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.s-fileupload-list .s-fileupload-list-file .fas.fa-check{color:#0c9348;font-size:12px}.s-fileupload-list .s-fileupload-list-file .fas.fa-times{color:#c13018;font-size:12px}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions{margin-top:15px;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;width:100%}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action{text-decoration:none;color:#428bca}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action :focus,.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action :visited,.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action:hover{text-decoration:none}@media (min-width:768px){.s-fileupload-list .s-fileupload-list-file{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name{width:auto;-ms-flex-positive:2;flex-grow:2}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-status{margin:0 15px}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions{margin:0;width:auto}}"]
277
+ template: "<div [id]=\"id\" class=\"fileupload\">\n <div class=\"fileupload-choose\">\n <input\n #inputUpload\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onFileSelect($event.dataTransfer ? $event.dataTransfer.files : $event.target.files)\"\n />\n <s-button\n *ngIf=\"permissions.includes(ADD_PERMISSION)\"\n [label]=\"chooseLabel || 'platform.angular_components.attach_files' | translate\"\n (onClick)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formGroup?.disabled\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n <ul\n *ngIf=\"files.length\"\n class=\"file-list\"\n role=\"grid\">\n <li *ngFor=\"let file of files; let i = index\" class=\"file-list-item\">\n <s-file-item\n [id]=\"'file-' + i\"\n [file]=\"file\"\n [canReadFiles]=\"permissions.includes(READ_PERMISSION) && file.savedFile || file.progress === 100\"\n [canRemoveFiles]=\"permissions.includes(REMOVE_PERMISSION) && !(disabled || !!formGroup?.disabled)\"\n [cancelLabel]=\"cancelLabel\"\n [removeLabel]=\"removeLabel\"\n [ariaLabelProgress]=\"ariaLabelProgress\"\n [successTooltip]=\"successTooltip\"\n [ariaLabelSuccess]=\"ariaLabelSuccess\"\n (cancelUpload)=\"onCancelUpload($event)\"\n (removeFile)=\"onRemoveFile($event)\"\n >\n </s-file-item>\n </li>\n </ul>\n</div>\n",
278
+ styles: [".fileupload .fileupload-choose{position:relative;margin:15px 0;width:-webkit-max-content;width:max-content}.fileupload input[type=file]{display:none}.fileupload .file-list{border:1px solid #c1c1cc;border-radius:4px;padding:0}.fileupload .file-list .file-list-item{list-style-type:none}.fileupload .file-list .file-list-item:not(:first-child){border-top:1px solid #ccc}"]
280
279
  })
281
280
  ], FileUploadComponent);
282
281
  return FileUploadComponent;
283
282
  }());
284
283
  export { FileUploadComponent };
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTFGLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQU92QjtJQXdHSSw2QkFBNkIsU0FBdUIsRUFDL0IsaUJBQW9DLEVBQ3BDLFNBQTJCO1FBRm5CLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXZHekMsbUJBQWMsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7UUFDM0Msb0JBQWUsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDN0Msc0JBQWlCLEdBQUcscUJBQXFCLENB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a0VBQ3lCO0lBR2pDO1FBREMsS0FBSyxFQUFFO2lFQUN3QjtJQUdoQztRQURDLEtBQUssRUFBRTsrREFDc0I7SUFHOUI7UUFEQyxLQUFLLEVBQUU7Z0VBQ3VCO0lBRy9CO1FBREMsS0FBSyxFQUFFOzBEQUNzQjtJQUc5QjtRQURDLEtBQUssRUFBRTt5REFDZ0I7SUFHeEI7UUFEQyxLQUFLLEVBQUU7bUVBQ21DO0lBRzNDO1FBREMsS0FBSyxFQUFFOzREQUNzRDtJQUc5RDtRQURDLEtBQUssRUFBRTtvREFXUDtJQUdEO1FBREMsTUFBTSxFQUFFOzhEQUNxRTtJQUc5RTtRQURDLE1BQU0sRUFBRTsyREFDNEQ7SUFHckU7UUFEQyxNQUFNLEVBQUU7NkRBQ3NEO0lBRy9EO1FBREMsTUFBTSxFQUFFOzZEQUNxRjtJQUc5RjtRQURDLE1BQU0sRUFBRTsrREFDNkQ7SUEyQnRFO1FBREMsWUFBWSxDQUFDLGVBQWUsQ0FBQzt1REFHN0I7SUE3SFEsbUJBQW1CO1FBTC9CLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLG85TEFBMkM7O1NBRTlDLENBQUM7T0FDVyxtQkFBbUIsQ0FnUS9CO0lBQUQsMEJBQUM7Q0FBQSxBQWhRRCxJQWdRQztTQWhRWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSBcIm1vbWVudFwiO1xuXG5pbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMaXN0QmxvYk1ldGFkYXRhUmVzcG9uc2UgfSBmcm9tIFwiLi9tb2RlbHMvbGlzdC1ibG9iLW1ldGFkYXRhXCI7XG5pbXBvcnQgeyBGaWxlRHRvIH0gZnJvbSBcIi4vbW9kZWxzL2ZpbGUtZHRvXCI7XG5pbXBvcnQgeyBVcGxvYWRFcnJvciB9IGZyb20gXCIuL21vZGVscy91cGxvYWRFcnJvclwiO1xuaW1wb3J0IHsgVmFsaWRhdGVFcnJvcnMgfSBmcm9tIFwiLi9tb2RlbHMvdmFsaWRhdGUtZXJyb3JzXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkUGVybWlzc2lvbnMsIEFMTF9QRVJNSVNTSU9OUyB9IGZyb20gXCIuL21vZGVscy9maWxlLXVwbG9hZC1wZXJtaXNzaW9uc1wiO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWZpbGUtdXBsb2FkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBwdWJsaWMgQUREX1BFUk1JU1NJT04gPSBGaWxlVXBsb2FkUGVybWlzc2lvbnMuQWRkO1xuICAgIHB1YmxpYyBSRUFEX1BFUk1JU1NJT04gPSBGaWxlVXBsb2FkUGVybWlzc2lvbnMuUmVhZDtcbiAgICBwdWJsaWMgUkVNT1ZFX1BFUk1JU1NJT04gPSBGaWxlVXBsb2FkUGVybWlzc2lvbnMuUmVtb3ZlO1xuXG4gICAgQFZpZXdDaGlsZChcImlucHV0VXBsb2FkXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRVcGxvYWQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKFwiYW5jaG9yXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYW5jaG9yOiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1maWxlLXVwbG9hZC0ke0ZpbGVVcGxvYWRDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNob29zZUxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZW1vdmVMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN1Y2Nlc3NUb29sdGlwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjY2VwdDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbEZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsZUxpbWl0OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxQcm9ncmVzczogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsU3VjY2Vzczogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsRXJyb3I6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbFJlbW92ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtQ29udHJvbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RmlsZVVwbG9hZERhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBlcm1pc3Npb25zOiBGaWxlVXBsb2FkUGVybWlzc2lvbnNbXSA9IEFMTF9QRVJNSVNTSU9OUztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBmaWxlcyhmaWxlczogRmlsZUR0b1tdKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dGaWxlVXBsb2FkRGF0ZSAmJiBmaWxlc1swXT8ub2JqZWN0SWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0VXBsb2FkRGF0ZShmaWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsZXMgPSBmaWxlcy5tYXAoZmlsZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgZmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdXBsb2FkSGFuZGxlcjogRXZlbnRFbWl0dGVyPHsgZmlsZXM6IEZpbGVEdG9bXSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZW1vdmVGaWxlOiBFdmVudEVtaXR0ZXI8eyBmaWxlOiBGaWxlIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNhbmNlbFVwbG9hZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlOiBFdmVudEVtaXR0ZXI8eyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGVFcnJvcnM6IEV2ZW50RW1pdHRlcjxVcGxvYWRFcnJvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIF9maWxlczogRmlsZUR0b1tdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1VzdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBpc1NtYWxsRGV2aWNlOiBib29sZWFuO1xuICAgIHB1YmxpYyBpbnB1dFZhbHVlID0gXCJcIjtcbiAgICBwdWJsaWMgbW9kaWZpZWREYXRlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMgPSB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgIC5tYXAoZXh0ZW5zaW9uID0+IGV4dGVuc2lvbi5yZXBsYWNlKFwiLlwiLCBcIlwiKS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gICAgcHVibGljIG9uUmVzaXplKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZpbGVTZWxlY3QoZmlsZXM6IEZpbGVEdG9bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdGaWxlczogRmlsZUR0b1tdID0gW107XG5cbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0ZpbGVMaW1pdEV4Y2VlZGVkKGZpbGVzKSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcbiAgICAgICAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBWYWxpZGF0ZUVycm9ycy5NQVhfRklMRV9MSU1JVCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbGVJbnB1dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcnMuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiBbZmlsZV0sXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFZhbGlkYXRlRXJyb3JzLlVOU1VQUE9SVEVEX0VYVEVOU0lPTixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNGaWxlU2l6ZUV4Y2VlZGVkKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IFtmaWxlXSxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogVmFsaWRhdGVFcnJvcnMuTUFYX0ZJTEVfU0laRSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV3RmlsZXMucHVzaChmaWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSB0aGlzLmZpbGVzLmNvbmNhdChuZXdGaWxlcyk7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEhhbmRsZXIuZW1pdCh7XG4gICAgICAgICAgICAgICAgZmlsZXM6IG5ld0ZpbGVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFyRmlsZUlucHV0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVtb3ZlRmlsZShmaWxlOiBGaWxlRHRvKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGVJbmRleCA9IHRoaXMuZmlsZXMuaW5kZXhPZihmaWxlKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEZpbGVzID0gdGhpcy5maWxlcy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcblxuICAgICAgICBpZiAocmVtb3ZlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlLmVtaXQoeyBmaWxlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2FuY2VsVXBsb2FkKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEZpbGVzID0gdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGlmIChyZW1vdmVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbFVwbG9hZC5lbWl0KGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlSW5wdXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Eb3dsb2FkRmlsZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlLmVtaXQoe1xuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuYW5jaG9yLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpbGVzKCk6IEZpbGVEdG9bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgdGhpcy5pc1NtYWxsRGV2aWNlID0gd2luZG93V2lkdGggPD0gQnJlYWtwb2ludHMuU01fTUFYO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNJbWFnZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAvXmltYWdlXFwvLy50ZXN0KGZpbGUudHlwZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpbGVMaW1pdEV4Y2VlZGVkKGZpbGVzOiBGaWxlRHRvW10pIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVMaW1pdCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzLmxlbmd0aCArIGZpbGVzLmxlbmd0aCA+IHRoaXMuZmlsZUxpbWl0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaWxlU2l6ZUV4Y2VlZGVkKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1heEZpbGVTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKSB7XG4gICAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckZpbGVJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5pbnB1dFVwbG9hZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVwbG9hZERhdGUoYmxvYkZpbGU6IEZpbGVEdG9bXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWJsb2JGaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmdldE1ldGFkYXRhQ3VzdG9tRmllbGQoeyBvYmplY3RJZDogYmxvYkZpbGVbMF0ub2JqZWN0SWQgfSlcbiAgICAgICAgICAgIC50aGVuKG1ldGFkYXRhID0+IHRoaXMuc2V0TW9kaWZpZWREYXRlKG1ldGFkYXRhKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRNb2RpZmllZERhdGUobWV0YWRhdGE6IExpc3RCbG9iTWV0YWRhdGFSZXNwb25zZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBob3VyID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJISFwiKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KFwibW1cIik7XG4gICAgICAgIGNvbnN0IGRheSA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KFwiRERcIik7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJNTVwiKTtcbiAgICAgICAgY29uc3QgZnVsbFllYXIgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdChcIllZWVlcIik7XG5cbiAgICAgICAgdGhpcy5tb2RpZmllZERhdGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmRhdGVfbW9kaWZpZWRfY3VzdG9tX2Jsb2JcIiwgeyBob3VyLCBtaW51dGVzLCBkYXksIG1vbnRoLCBmdWxsWWVhciB9KTtcbiAgICB9XG59XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUdsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzFELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQU92QjtJQXdHSSw2QkFDcUIsU0FBdUIsRUFDdkIsaUJBQW9DLEVBQ3BDLFNBQTJCO1FBRjNCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXhHekMsbUJBQWMsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7UUFDM0Msb0JBQWUsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDN0Msc0JBQWlCLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBU2pELE9BQUUsR0FBRyxtQkFBaUIscUJBQW1CLENBQUMsTUFB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V1A7SUFHRDtRQURDLE1BQU0sRUFBRTs4REFDcUU7SUFHOUU7UUFEQyxNQUFNLEVBQUU7MkRBQzREO0lBR3JFO1FBREMsTUFBTSxFQUFFOzZEQUNzRDtJQUcvRDtRQURDLE1BQU0sRUFBRTs2REFDcUY7SUFHOUY7UUFEQyxNQUFNLEVBQUU7K0RBQzZEO0lBaEc3RCxtQkFBbUI7UUFML0IsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGVBQWU7WUFDekIsMHNEQUEyQzs7U0FFOUMsQ0FBQztPQUNXLG1CQUFtQixDQWlRL0I7SUFBRCwwQkFBQztDQUFBLEFBalFELElBaVFDO1NBalFZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tIFwibW9tZW50XCI7XG5cbmltcG9ydCB7IEJyZWFrcG9pbnRzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gXCIuL2ZpbGUtdXBsb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7IEZpbGVEdG8gfSBmcm9tIFwiLi9tb2RlbHMvZmlsZS1kdG9cIjtcbmltcG9ydCB7IEFMTF9QRVJNSVNTSU9OUywgRmlsZVVwbG9hZFBlcm1pc3Npb25zIH0gZnJvbSBcIi4vbW9kZWxzL2ZpbGUtdXBsb2FkLXBlcm1pc3Npb25zXCI7XG5pbXBvcnQgeyBVcGxvYWRFcnJvciB9IGZyb20gXCIuL21vZGVscy91cGxvYWRFcnJvclwiO1xuaW1wb3J0IHsgVmFsaWRhdGVFcnJvcnMgfSBmcm9tIFwiLi9tb2RlbHMvdmFsaWRhdGUtZXJyb3JzXCI7XG5pbXBvcnQgeyBMaXN0QmxvYk1ldGFkYXRhUmVzcG9uc2UgfSBmcm9tIFwiLi9tb2RlbHMvbGlzdC1ibG9iLW1ldGFkYXRhXCI7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtZmlsZS11cGxvYWRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIHB1YmxpYyBBRERfUEVSTUlTU0lPTiA9IEZpbGVVcGxvYWRQZXJtaXNzaW9ucy5BZGQ7XG4gICAgcHVibGljIFJFQURfUEVSTUlTU0lPTiA9IEZpbGVVcGxvYWRQZXJtaXNzaW9ucy5SZWFkO1xuICAgIHB1YmxpYyBSRU1PVkVfUEVSTUlTU0lPTiA9IEZpbGVVcGxvYWRQZXJtaXNzaW9ucy5SZW1vdmU7XG5cbiAgICBAVmlld0NoaWxkKFwiaW5wdXRVcGxvYWRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFVwbG9hZDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoXCJhbmNob3JcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmNob3I6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzLWZpbGUtdXBsb2FkLSR7RmlsZVVwbG9hZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2hvb3NlTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlbW92ZUxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5jZWxMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3VjY2Vzc1Rvb2x0aXA6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWNjZXB0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdXBwb3J0ZWRFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsRmlsZU5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWxlTGltaXQ6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbFByb2dyZXNzOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxTdWNjZXNzOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxFcnJvcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsUmVtb3ZlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Db250cm9sO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dGaWxlVXBsb2FkRGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IEZpbGVVcGxvYWRQZXJtaXNzaW9uc1tdID0gQUxMX1BFUk1JU1NJT05TO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGZpbGVzKGZpbGVzOiBGaWxlRHRvW10pIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd0ZpbGVVcGxvYWREYXRlICYmIGZpbGVzWzBdPy5vYmplY3RJZCkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0VXBsb2FkRGF0ZShmaWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsZXMgPSBmaWxlcy5tYXAoKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0ltYWdlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgZmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdXBsb2FkSGFuZGxlcjogRXZlbnRFbWl0dGVyPHsgZmlsZXM6IEZpbGVEdG9bXSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZW1vdmVGaWxlOiBFdmVudEVtaXR0ZXI8eyBmaWxlOiBGaWxlIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNhbmNlbFVwbG9hZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlOiBFdmVudEVtaXR0ZXI8eyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGVFcnJvcnM6IEV2ZW50RW1pdHRlcjxVcGxvYWRFcnJvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIF9maWxlczogRmlsZUR0b1tdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1VzdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIFxuICAgIHB1YmxpYyBpbnB1dFZhbHVlID0gXCJcIjtcbiAgICBwdWJsaWMgbW9kaWZpZWREYXRlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmaWxlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMgPSB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgIC5tYXAoKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uXG4gICAgICAgICAgICAucmVwbGFjZShcIi5cIiwgXCJcIilcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdVc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25GaWxlU2VsZWN0KGZpbGVzOiBGaWxlRHRvW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3RmlsZXM6IEZpbGVEdG9bXSA9IFtdO1xuXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzRmlsZUxpbWl0RXhjZWVkZWQoZmlsZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRXJyb3JzLmVtaXQoe1xuICAgICAgICAgICAgICAgIGZpbGVzLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFZhbGlkYXRlRXJyb3JzLk1BWF9GSUxFX0xJTUlULFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckZpbGVJbnB1dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNVbnN1cHBvcnRlZEZpbGVFeHRlbnNpb24oZmlsZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlRXJyb3JzLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBmaWxlczogW2ZpbGVdLFxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBWYWxpZGF0ZUVycm9ycy5VTlNVUFBPUlRFRF9FWFRFTlNJT04sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0ZpbGVTaXplRXhjZWVkZWQoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlRXJyb3JzLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBmaWxlczogW2ZpbGVdLFxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBWYWxpZGF0ZUVycm9ycy5NQVhfRklMRV9TSVpFLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuZXdGaWxlcy5wdXNoKGZpbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5ld0ZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5maWxlcyA9IHRoaXMuZmlsZXMuY29uY2F0KG5ld0ZpbGVzKTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkSGFuZGxlci5lbWl0KHtcbiAgICAgICAgICAgICAgICBmaWxlczogbmV3RmlsZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsZWFyRmlsZUlucHV0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVtb3ZlRmlsZShmaWxlOiBGaWxlRHRvKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGVJbmRleCA9IHRoaXMuZmlsZXMuaW5kZXhPZihmaWxlKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEZpbGVzID0gdGhpcy5maWxlcy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcblxuICAgICAgICBpZiAocmVtb3ZlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlLmVtaXQoeyBmaWxlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2FuY2VsVXBsb2FkKGZpbGU6IEZpbGVEdG8pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbFVwbG9hZC5lbWl0KGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsZWFyRmlsZUlucHV0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRG93bG9hZEZpbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmRvd25sb2FkRmlsZS5lbWl0KHtcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgYW5jaG9yOiB0aGlzLmFuY2hvcixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWxlcygpOiBGaWxlRHRvW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaXNJbWFnZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAvXmltYWdlXFwvLy50ZXN0KGZpbGUudHlwZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaXNGaWxlTGltaXRFeGNlZWRlZChmaWxlczogRmlsZUR0b1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5maWxlTGltaXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5sZW5ndGggKyBmaWxlcy5sZW5ndGggPiB0aGlzLmZpbGVMaW1pdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc0ZpbGVTaXplRXhjZWVkZWQoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lXG4gICAgICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgICAgIC5wb3AoKVxuICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYXJGaWxlSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRVcGxvYWQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VXBsb2FkRGF0ZShibG9iRmlsZTogRmlsZUR0b1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghYmxvYkZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRNZXRhZGF0YUN1c3RvbUZpZWxkKHsgb2JqZWN0SWQ6IGJsb2JGaWxlWzBdLm9iamVjdElkIH0pXG4gICAgICAgICAgICAudGhlbigobWV0YWRhdGEpID0+IHRoaXMuX3NldE1vZGlmaWVkRGF0ZShtZXRhZGF0YSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE1vZGlmaWVkRGF0ZShtZXRhZGF0YTogTGlzdEJsb2JNZXRhZGF0YVJlc3BvbnNlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhvdXIgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdChcIkhIXCIpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJtbVwiKTtcbiAgICAgICAgY29uc3QgZGF5ID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJERFwiKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdChcIk1NXCIpO1xuICAgICAgICBjb25zdCBmdWxsWWVhciA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KFwiWVlZWVwiKTtcblxuICAgICAgICB0aGlzLm1vZGlmaWVkRGF0ZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9tb2RpZmllZF9jdXN0b21fYmxvYlwiLCB7XG4gICAgICAgICAgICBob3VyLFxuICAgICAgICAgICAgbWludXRlcyxcbiAgICAgICAgICAgIGRheSxcbiAgICAgICAgICAgIG1vbnRoLFxuICAgICAgICAgICAgZnVsbFllYXIsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,17 +2,17 @@ import { __decorate } from "tslib";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { NgModule } from "@angular/core";
4
4
  import { TranslateModule } from "@ngx-translate/core";
5
- import { ProgressBarModule } from "primeng/progressbar";
6
- import { TooltipModule } from "primeng/tooltip";
7
5
  import { ButtonModule } from "../button/button.module";
8
- import { FileUploadService } from "./file-upload.service";
6
+ import { ProgressBarModule } from "../progressbar/progressbar.module";
7
+ import { TooltipModule } from "../tooltip/tooltip.module";
8
+ import { FileItemComponent } from "./components/file-item/file-item.component";
9
9
  import { FileUploadComponent } from "./file-upload.component";
10
+ import { FileUploadService } from "./file-upload.service";
10
11
  var FileUploadModule = /** @class */ (function () {
11
12
  function FileUploadModule() {
12
13
  }
13
14
  FileUploadModule = __decorate([
14
15
  NgModule({
15
- declarations: [FileUploadComponent],
16
16
  imports: [
17
17
  CommonModule,
18
18
  ButtonModule,
@@ -20,6 +20,10 @@ var FileUploadModule = /** @class */ (function () {
20
20
  ProgressBarModule,
21
21
  TranslateModule,
22
22
  ],
23
+ declarations: [
24
+ FileUploadComponent,
25
+ FileItemComponent,
26
+ ],
23
27
  providers: [FileUploadService],
24
28
  exports: [FileUploadComponent],
25
29
  })
@@ -27,4 +31,4 @@ var FileUploadModule = /** @class */ (function () {
27
31
  return FileUploadModule;
28
32
  }());
29
33
  export { FileUploadModule };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQWM5RDtJQUFBO0lBQStCLENBQUM7SUFBbkIsZ0JBQWdCO1FBWjVCLFFBQVEsQ0FBQztZQUNOLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ25DLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFlBQVk7Z0JBQ1osYUFBYTtnQkFDYixpQkFBaUI7Z0JBQ2pCLGVBQWU7YUFDbEI7WUFDRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztTQUNqQyxDQUFDO09BQ1csZ0JBQWdCLENBQUc7SUFBRCx1QkFBQztDQUFBLEFBQWhDLElBQWdDO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcHJvZ3Jlc3NiYXJcIjtcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy90b29sdGlwXCI7XG5cbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCIuLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSBcIi4vZmlsZS11cGxvYWQuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgUHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW0ZpbGVVcGxvYWRTZXJ2aWNlXSxcbiAgICBleHBvcnRzOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRNb2R1bGUge31cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWlCMUQ7SUFBQTtJQUErQixDQUFDO0lBQW5CLGdCQUFnQjtRQWY1QixRQUFRLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixZQUFZO2dCQUNaLGFBQWE7Z0JBQ2IsaUJBQWlCO2dCQUNqQixlQUFlO2FBQ2xCO1lBQ0QsWUFBWSxFQUFFO2dCQUNWLG1CQUFtQjtnQkFDbkIsaUJBQWlCO2FBQ3BCO1lBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDOUIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7U0FDakMsQ0FBQztPQUNXLGdCQUFnQixDQUFHO0lBQUQsdUJBQUM7Q0FBQSxBQUFoQyxJQUFnQztTQUFuQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCIuLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tIFwiLi4vcHJvZ3Jlc3NiYXIvcHJvZ3Jlc3NiYXIubW9kdWxlXCI7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSBcIi4uL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGVcIjtcbmltcG9ydCB7IEZpbGVJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWxlLWl0ZW0vZmlsZS1pdGVtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC5zZXJ2aWNlXCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgUHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgICAgICBGaWxlSXRlbUNvbXBvbmVudCxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW0ZpbGVVcGxvYWRTZXJ2aWNlXSxcbiAgICBleHBvcnRzOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRNb2R1bGUge31cbiJdfQ==
@@ -1,6 +1,8 @@
1
1
  import { __awaiter, __decorate, __generator } from "tslib";
2
2
  import { Injectable } from "@angular/core";
3
+ import * as moment_ from "moment";
3
4
  import { CustomHttpClient } from "../code-editor/infra/utils";
5
+ var moment = moment_;
4
6
  var FileUploadService = /** @class */ (function () {
5
7
  function FileUploadService() {
6
8
  this.BASE_URL_FIELD_CUSTOMIZATION = "platform/field_customization";
@@ -19,4 +21,4 @@ var FileUploadService = /** @class */ (function () {
19
21
  return FileUploadService;
20
22
  }());
21
23
  export { FileUploadService };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFPOUQ7SUFBQTtRQUNZLGlDQUE0QixHQUFHLDhCQUE4QixDQUFDO1FBQzlELFVBQUssR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBUzFDLENBQUM7SUFQZ0Isa0RBQXNCLEdBQW5DLFVBQXVDLE9BQWdDOzs7Z0JBQ25FLHNCQUFPLGdCQUFnQixDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLDRCQUE0Qiw2QkFBMEIsRUFDOUQsT0FBTyxFQUNQLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQ2hDLEVBQUM7OztLQUNMO0lBVlEsaUJBQWlCO1FBRDdCLFVBQVUsRUFBRTtPQUNBLGlCQUFpQixDQVc3QjtJQUFELHdCQUFDO0NBQUEsQUFYRCxJQVdDO1NBWFksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDdXN0b21IdHRwQ2xpZW50IH0gZnJvbSBcIi4uL2NvZGUtZWRpdG9yL2luZnJhL3V0aWxzXCI7XG5pbXBvcnQge1xuICAgIExpc3RCbG9iTWV0YWRhdGFSZXF1ZXN0LFxuICAgIExpc3RCbG9iTWV0YWRhdGFSZXNwb25zZVxufSBmcm9tIFwiLi9tb2RlbHMvbGlzdC1ibG9iLW1ldGFkYXRhXCJcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIEJBU0VfVVJMX0ZJRUxEX0NVU1RPTUlaQVRJT04gPSBcInBsYXRmb3JtL2ZpZWxkX2N1c3RvbWl6YXRpb25cIjtcbiAgICBwcml2YXRlIFRPS0VOID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgcHVibGljIGFzeW5jIGdldE1ldGFkYXRhQ3VzdG9tRmllbGQ8VD4ocmVxdWVzdDogTGlzdEJsb2JNZXRhZGF0YVJlcXVlc3QpOiBQcm9taXNlPExpc3RCbG9iTWV0YWRhdGFSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gQ3VzdG9tSHR0cENsaWVudC5QT1NUKFxuICAgICAgICAgICAgYCR7dGhpcy5CQVNFX1VSTF9GSUVMRF9DVVNUT01JWkFUSU9OfS9xdWVyaWVzL2dldEZpbGVNZXRhZGF0YWAsXG4gICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgeyBzaWduYWw6IHRoaXMuVE9LRU4uc2lnbmFsIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFNOUQsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBR3ZCO0lBQUE7UUFDWSxpQ0FBNEIsR0FBRyw4QkFBOEIsQ0FBQztRQUM5RCxVQUFLLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQVMxQyxDQUFDO0lBUGdCLGtEQUFzQixHQUFuQyxVQUF1QyxPQUFnQzs7O2dCQUNuRSxzQkFBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyw0QkFBNEIsNkJBQTBCLEVBQzlELE9BQU8sRUFDUCxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUNoQyxFQUFDOzs7S0FDTDtJQVZRLGlCQUFpQjtRQUQ3QixVQUFVLEVBQUU7T0FDQSxpQkFBaUIsQ0FXN0I7SUFBRCx3QkFBQztDQUFBLEFBWEQsSUFXQztTQVhZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgQ3VzdG9tSHR0cENsaWVudCB9IGZyb20gXCIuLi9jb2RlLWVkaXRvci9pbmZyYS91dGlsc1wiO1xuaW1wb3J0IHtcbiAgICBMaXN0QmxvYk1ldGFkYXRhUmVxdWVzdCxcbiAgICBMaXN0QmxvYk1ldGFkYXRhUmVzcG9uc2Vcbn0gZnJvbSBcIi4vbW9kZWxzL2xpc3QtYmxvYi1tZXRhZGF0YVwiO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZFNlcnZpY2Uge1xuICAgIHByaXZhdGUgQkFTRV9VUkxfRklFTERfQ1VTVE9NSVpBVElPTiA9IFwicGxhdGZvcm0vZmllbGRfY3VzdG9taXphdGlvblwiO1xuICAgIHByaXZhdGUgVE9LRU4gPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWV0YWRhdGFDdXN0b21GaWVsZDxUPihyZXF1ZXN0OiBMaXN0QmxvYk1ldGFkYXRhUmVxdWVzdCk6IFByb21pc2U8TGlzdEJsb2JNZXRhZGF0YVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBDdXN0b21IdHRwQ2xpZW50LlBPU1QoXG4gICAgICAgICAgICBgJHt0aGlzLkJBU0VfVVJMX0ZJRUxEX0NVU1RPTUlaQVRJT059L3F1ZXJpZXMvZ2V0RmlsZU1ldGFkYXRhYCxcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICB7IHNpZ25hbDogdGhpcy5UT0tFTi5zaWduYWwgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export { ValidateErrors } from "./validate-errors";
2
2
  export { FileUploadPermissions } from "./file-upload-permissions";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9maWxlLXVwbG9hZC9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRmlsZUR0byB9IGZyb20gXCIuL2ZpbGUtZHRvXCI7XG5leHBvcnQgeyBWYWxpZGF0ZUVycm9ycyB9IGZyb20gXCIuL3ZhbGlkYXRlLWVycm9yc1wiO1xuZXhwb3J0IHsgVXBsb2FkRXJyb3IgfSBmcm9tIFwiLi91cGxvYWRFcnJvclwiO1xuZXhwb3J0IHsgRmlsZVVwbG9hZFBlcm1pc3Npb25zIH0gZnJvbSBcIi4vZmlsZS11cGxvYWQtcGVybWlzc2lvbnNcIjtcbiJdfQ==
3
+ export { StorageUnits } from "./storage-units";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9maWxlLXVwbG9hZC9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZpbGVEdG8gfSBmcm9tIFwiLi9maWxlLWR0b1wiO1xuZXhwb3J0IHsgVmFsaWRhdGVFcnJvcnMgfSBmcm9tIFwiLi92YWxpZGF0ZS1lcnJvcnNcIjtcbmV4cG9ydCB7IFVwbG9hZEVycm9yIH0gZnJvbSBcIi4vdXBsb2FkRXJyb3JcIjtcbmV4cG9ydCB7IEZpbGVVcGxvYWRQZXJtaXNzaW9ucyB9IGZyb20gXCIuL2ZpbGUtdXBsb2FkLXBlcm1pc3Npb25zXCI7XG5leHBvcnQgeyBTdG9yYWdlVW5pdHMgfSBmcm9tIFwiLi9zdG9yYWdlLXVuaXRzXCI7XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export var StorageUnits = {
2
+ KB: 1024,
3
+ MB: Math.pow(1024, 2),
4
+ GB: Math.pow(1024, 3),
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS11bml0cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtdXBsb2FkL21vZGVscy9zdG9yYWdlLXVuaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFlBQVksR0FBRztJQUN4QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckIsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFN0b3JhZ2VVbml0cyA9IHtcbiAgICBLQjogMTAyNCxcbiAgICBNQjogTWF0aC5wb3coMTAyNCwgMiksXG4gICAgR0I6IE1hdGgucG93KDEwMjQsIDMpLFxufTtcbiJdfQ==