@seniorsistemas/angular-components 17.3.15 → 17.3.17

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 (32) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +432 -299
  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 +26 -0
  6. package/components/file-upload/file-upload.component.d.ts +15 -17
  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/components/file-upload/models/validate-errors.d.ts +1 -0
  10. package/esm2015/components/file-upload/components/file-item/file-item.component.js +105 -0
  11. package/esm2015/components/file-upload/file-upload.component.js +60 -45
  12. package/esm2015/components/file-upload/file-upload.module.js +16 -6
  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/components/file-upload/models/validate-errors.js +2 -1
  17. package/esm2015/seniorsistemas-angular-components.js +66 -64
  18. package/esm5/components/file-upload/components/file-item/file-item.component.js +107 -0
  19. package/esm5/components/file-upload/file-upload.component.js +60 -45
  20. package/esm5/components/file-upload/file-upload.module.js +16 -6
  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/components/file-upload/models/validate-errors.js +2 -1
  25. package/esm5/seniorsistemas-angular-components.js +66 -64
  26. package/fesm2015/seniorsistemas-angular-components.js +354 -226
  27. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  28. package/fesm5/seniorsistemas-angular-components.js +366 -236
  29. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  30. package/package.json +1 -1
  31. package/seniorsistemas-angular-components.d.ts +65 -63
  32. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -1,13 +1,12 @@
1
- import { __decorate, __values } from "tslib";
2
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
1
+ import { __decorate, __read, __spread, __values } from "tslib";
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) {
@@ -27,9 +26,9 @@ var FileUploadComponent = /** @class */ (function () {
27
26
  this.cancelUpload = new EventEmitter();
28
27
  this.downloadFile = new EventEmitter();
29
28
  this.validateErrors = new EventEmitter();
29
+ this.inputValue = "";
30
30
  this._files = [];
31
31
  this.ngUsubscribe = new Subject();
32
- this.inputValue = "";
33
32
  }
34
33
  FileUploadComponent_1 = FileUploadComponent;
35
34
  Object.defineProperty(FileUploadComponent.prototype, "files", {
@@ -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;
@@ -53,44 +52,45 @@ var FileUploadComponent = /** @class */ (function () {
53
52
  configurable: true
54
53
  });
55
54
  FileUploadComponent.prototype.ngOnInit = function () {
56
- this.supportedExtensions = this.supportedExtensions
57
- .map(function (extension) { return extension.replace(".", "").toLowerCase(); });
55
+ this.supportedExtensions = this.supportedExtensions.map(function (extension) { return extension.replace(".", "").toLowerCase(); });
58
56
  };
59
57
  FileUploadComponent.prototype.ngOnDestroy = function () {
60
58
  this.ngUsubscribe.next();
61
59
  this.ngUsubscribe.complete();
62
60
  };
63
- FileUploadComponent.prototype.ngAfterContentInit = function () {
64
- this.update();
65
- };
66
- FileUploadComponent.prototype.onResize = function () {
67
- this.update();
68
- };
69
61
  FileUploadComponent.prototype.onFileSelect = function (files) {
70
62
  var e_1, _a;
71
63
  var newFiles = [];
72
64
  if (!this.multiple) {
73
65
  this.files = [];
74
66
  }
75
- if (this.isFileLimitExceeded(files)) {
67
+ if (this._isFileLimitExceeded(files)) {
76
68
  this.validateErrors.emit({
77
69
  files: files,
78
70
  validation: ValidateErrors.MAX_FILE_LIMIT,
79
71
  });
80
- this.clearFileInput();
72
+ this._clearFileInput();
73
+ return;
74
+ }
75
+ if (this._isFileCombinedSizeExceeded(files)) {
76
+ this.validateErrors.emit({
77
+ files: files,
78
+ validation: ValidateErrors.MAX_COMBINED_FILE_SIZE,
79
+ });
80
+ this._clearFileInput();
81
81
  return;
82
82
  }
83
83
  try {
84
84
  for (var files_1 = __values(files), files_1_1 = files_1.next(); !files_1_1.done; files_1_1 = files_1.next()) {
85
85
  var file = files_1_1.value;
86
- if (this.isUnsupportedFileExtension(file)) {
86
+ if (this._isUnsupportedFileExtension(file)) {
87
87
  this.validateErrors.emit({
88
88
  files: [file],
89
89
  validation: ValidateErrors.UNSUPPORTED_EXTENSION,
90
90
  });
91
91
  continue;
92
92
  }
93
- if (this.isFileSizeExceeded(file)) {
93
+ if (this._isFileSizeExceeded(file)) {
94
94
  this.validateErrors.emit({
95
95
  files: [file],
96
96
  validation: ValidateErrors.MAX_FILE_SIZE,
@@ -113,7 +113,7 @@ var FileUploadComponent = /** @class */ (function () {
113
113
  files: newFiles,
114
114
  });
115
115
  }
116
- this.clearFileInput();
116
+ this._clearFileInput();
117
117
  };
118
118
  FileUploadComponent.prototype.onRemoveFile = function (file) {
119
119
  var fileIndex = this.files.indexOf(file);
@@ -122,12 +122,13 @@ var FileUploadComponent = /** @class */ (function () {
122
122
  this.removeFile.emit({ file: file });
123
123
  }
124
124
  };
125
- FileUploadComponent.prototype.onCancelUpload = function (index) {
126
- var removedFiles = this.files.splice(index, 1);
127
- if (removedFiles.length) {
125
+ FileUploadComponent.prototype.onCancelUpload = function (file) {
126
+ var index = this.files.indexOf(file);
127
+ if (index != -1) {
128
+ this.files.splice(index, 1);
128
129
  this.cancelUpload.emit(index);
129
130
  }
130
- this.clearFileInput();
131
+ this._clearFileInput();
131
132
  };
132
133
  FileUploadComponent.prototype.onDowloadFile = function (index) {
133
134
  this.downloadFile.emit({
@@ -135,51 +136,65 @@ var FileUploadComponent = /** @class */ (function () {
135
136
  anchor: this.anchor,
136
137
  });
137
138
  };
138
- FileUploadComponent.prototype.update = function () {
139
- var windowWidth = window.innerWidth;
140
- this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;
141
- };
142
- FileUploadComponent.prototype.isImage = function (file) {
139
+ FileUploadComponent.prototype._isImage = function (file) {
143
140
  return /^image\//.test(file.type);
144
141
  };
145
- FileUploadComponent.prototype.isFileLimitExceeded = function (files) {
142
+ FileUploadComponent.prototype._isFileLimitExceeded = function (files) {
146
143
  if (!this.fileLimit) {
147
144
  return false;
148
145
  }
149
146
  return this.files.length + files.length > this.fileLimit;
150
147
  };
151
- FileUploadComponent.prototype.isFileSizeExceeded = function (file) {
148
+ FileUploadComponent.prototype._isFileCombinedSizeExceeded = function (files) {
149
+ if (!this.maxCombinedFileSize) {
150
+ return false;
151
+ }
152
+ var filesList = __spread(files, this.files);
153
+ var combinedSize = filesList.reduce(function (combinedSize, file) { return combinedSize + file.size; }, 0);
154
+ return combinedSize > this.maxCombinedFileSize;
155
+ };
156
+ FileUploadComponent.prototype._isFileSizeExceeded = function (file) {
152
157
  if (!this.maxFileSize) {
153
158
  return false;
154
159
  }
155
160
  return file.size > this.maxFileSize;
156
161
  };
157
- FileUploadComponent.prototype.isUnsupportedFileExtension = function (file) {
162
+ FileUploadComponent.prototype._isUnsupportedFileExtension = function (file) {
158
163
  var _a;
159
164
  if ((_a = this.supportedExtensions) === null || _a === void 0 ? void 0 : _a.length) {
160
- var extension = file.name.split(".").pop().toLowerCase();
165
+ var extension = file.name
166
+ .split(".")
167
+ .pop()
168
+ .toLowerCase();
161
169
  return !this.supportedExtensions.includes(extension);
162
170
  }
163
171
  return false;
164
172
  };
165
- FileUploadComponent.prototype.clearFileInput = function () {
173
+ FileUploadComponent.prototype._clearFileInput = function () {
166
174
  this.inputUpload.nativeElement.value = null;
167
175
  };
168
- FileUploadComponent.prototype.getUploadDate = function (blobFile) {
176
+ FileUploadComponent.prototype._getUploadDate = function (blobFile) {
169
177
  var _this = this;
170
178
  if (!blobFile) {
171
179
  return;
172
180
  }
173
- this.fileUploadService.getMetadataCustomField({ objectId: blobFile[0].objectId })
174
- .then(function (metadata) { return _this.setModifiedDate(metadata); });
181
+ this.fileUploadService
182
+ .getMetadataCustomField({ objectId: blobFile[0].objectId })
183
+ .then(function (metadata) { return _this._setModifiedDate(metadata); });
175
184
  };
176
- FileUploadComponent.prototype.setModifiedDate = function (metadata) {
185
+ FileUploadComponent.prototype._setModifiedDate = function (metadata) {
177
186
  var hour = moment(metadata.modified).format("HH");
178
187
  var minutes = moment(metadata.modified).format("mm");
179
188
  var day = moment(metadata.modified).format("DD");
180
189
  var month = moment(metadata.modified).format("MM");
181
190
  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 });
191
+ this.modifiedDate = this.translate.instant("platform.angular_components.date_modified_custom_blob", {
192
+ hour: hour,
193
+ minutes: minutes,
194
+ day: day,
195
+ month: month,
196
+ fullYear: fullYear,
197
+ });
183
198
  };
184
199
  var FileUploadComponent_1;
185
200
  FileUploadComponent.nextId = 0;
@@ -224,6 +239,9 @@ var FileUploadComponent = /** @class */ (function () {
224
239
  __decorate([
225
240
  Input()
226
241
  ], FileUploadComponent.prototype, "maxFileSize", void 0);
242
+ __decorate([
243
+ Input()
244
+ ], FileUploadComponent.prototype, "maxCombinedFileSize", void 0);
227
245
  __decorate([
228
246
  Input()
229
247
  ], FileUploadComponent.prototype, "fileLimit", void 0);
@@ -269,17 +287,14 @@ var FileUploadComponent = /** @class */ (function () {
269
287
  __decorate([
270
288
  Output()
271
289
  ], FileUploadComponent.prototype, "validateErrors", void 0);
272
- __decorate([
273
- HostListener("window:resize")
274
- ], FileUploadComponent.prototype, "onResize", null);
275
290
  FileUploadComponent = FileUploadComponent_1 = __decorate([
276
291
  Component({
277
292
  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}}"]
293
+ 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",
294
+ 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
295
  })
281
296
  ], FileUploadComponent);
282
297
  return FileUploadComponent;
283
298
  }());
284
299
  export { FileUploadComponent };
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTFGLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQU92QjtJQXdHSSw2QkFBNkIsU0FBdUIsRUFDL0IsaUJBQW9DLEVBQ3BDLFNBQTJCO1FBRm5CLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXZHekMsbUJBQWMsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7UUFDM0Msb0JBQWUsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDN0Msc0JBQWlCLEdBQUcscUJBQXFCLENB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a0VBQ3lCO0lBR2pDO1FBREMsS0FBSyxFQUFFO2lFQUN3QjtJQUdoQztRQURDLEtBQUssRUFBRTsrREFDc0I7SUFHOUI7UUFEQyxLQUFLLEVBQUU7Z0VBQ3VCO0lBRy9CO1FBREMsS0FBSyxFQUFFOzBEQUNzQjtJQUc5QjtRQURDLEtBQUssRUFBRTt5REFDZ0I7SUFHeEI7UUFEQyxLQUFLLEVBQUU7bUVBQ21DO0lBRzNDO1FBREMsS0FBSyxFQUFFOzREQUNzRDtJQUc5RDtRQURDLEtBQUssRUFBRTtvREFXUDtJQUdEO1FBREMsTUFBTSxFQUFFOzhEQUNxRTtJQUc5RTtRQURDLE1BQU0sRUFBRTsyREFDNEQ7SUFHckU7UUFEQyxNQUFNLEVBQUU7NkRBQ3NEO0lBRy9EO1FBREMsTUFBTSxFQUFFOzZEQUNxRjtJQUc5RjtRQURDLE1BQU0sRUFBRTsrREFDNkQ7SUEyQnRFO1FBREMsWUFBWSxDQUFDLGVBQWUsQ0FBQzt1REFHN0I7SUE3SFEsbUJBQW1CO1FBTC9CLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLG85TEFBMkM7O1NBRTlDLENBQUM7T0FDVyxtQkFBbUIsQ0FnUS9CO0lBQUQsMEJBQUM7Q0FBQSxBQWhRRCxJQWdRQztTQWhRWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSBcIm1vbWVudFwiO1xuXG5pbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMaXN0QmxvYk1ldGFkYXRhUmVzcG9uc2UgfSBmcm9tIFwiLi9tb2RlbHMvbGlzdC1ibG9iLW1ldGFkYXRhXCI7XG5pbXBvcnQgeyBGaWxlRHRvIH0gZnJvbSBcIi4vbW9kZWxzL2ZpbGUtZHRvXCI7XG5pbXBvcnQgeyBVcGxvYWRFcnJvciB9IGZyb20gXCIuL21vZGVscy91cGxvYWRFcnJvclwiO1xuaW1wb3J0IHsgVmFsaWRhdGVFcnJvcnMgfSBmcm9tIFwiLi9tb2RlbHMvdmFsaWRhdGUtZXJyb3JzXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkUGVybWlzc2lvbnMsIEFMTF9QRVJNSVNTSU9OUyB9IGZyb20gXCIuL21vZGVscy9maWxlLXVwbG9hZC1wZXJtaXNzaW9uc1wiO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWZpbGUtdXBsb2FkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBwdWJsaWMgQUREX1BFUk1JU1NJT04gPSBGaWxlVXBsb2FkUGVybWlzc2lvbnMuQWRkO1xuICAgIHB1YmxpYyBSRUFEX1BFUk1JU1NJT04gPSBGaWxlVXBsb2FkUGVybWlzc2lvbnMuUmVhZDtcbiAgICBwdWJsaWMgUkVNT1ZFX1BFUk1JU1NJT04gPSBGaWxlVXBsb2FkUGVybWlzc2lvbnMuUmVtb3ZlO1xuXG4gICAgQFZpZXdDaGlsZChcImlucHV0VXBsb2FkXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRVcGxvYWQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKFwiYW5jaG9yXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgYW5jaG9yOiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1maWxlLXVwbG9hZC0ke0ZpbGVVcGxvYWRDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNob29zZUxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZW1vdmVMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN1Y2Nlc3NUb29sdGlwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjY2VwdDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbEZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsZUxpbWl0OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxQcm9ncmVzczogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsU3VjY2Vzczogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsRXJyb3I6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbFJlbW92ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtQ29udHJvbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RmlsZVVwbG9hZERhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBlcm1pc3Npb25zOiBGaWxlVXBsb2FkUGVybWlzc2lvbnNbXSA9IEFMTF9QRVJNSVNTSU9OUztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBmaWxlcyhmaWxlczogRmlsZUR0b1tdKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dGaWxlVXBsb2FkRGF0ZSAmJiBmaWxlc1swXT8ub2JqZWN0SWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0VXBsb2FkRGF0ZShmaWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsZXMgPSBmaWxlcy5tYXAoZmlsZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgZmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdXBsb2FkSGFuZGxlcjogRXZlbnRFbWl0dGVyPHsgZmlsZXM6IEZpbGVEdG9bXSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZW1vdmVGaWxlOiBFdmVudEVtaXR0ZXI8eyBmaWxlOiBGaWxlIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNhbmNlbFVwbG9hZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlOiBFdmVudEVtaXR0ZXI8eyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGVFcnJvcnM6IEV2ZW50RW1pdHRlcjxVcGxvYWRFcnJvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIF9maWxlczogRmlsZUR0b1tdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1VzdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBpc1NtYWxsRGV2aWNlOiBib29sZWFuO1xuICAgIHB1YmxpYyBpbnB1dFZhbHVlID0gXCJcIjtcbiAgICBwdWJsaWMgbW9kaWZpZWREYXRlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMgPSB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnNcbiAgICAgICAgICAgIC5tYXAoZXh0ZW5zaW9uID0+IGV4dGVuc2lvbi5yZXBsYWNlKFwiLlwiLCBcIlwiKS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gICAgcHVibGljIG9uUmVzaXplKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZpbGVTZWxlY3QoZmlsZXM6IEZpbGVEdG9bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdGaWxlczogRmlsZUR0b1tdID0gW107XG5cbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0ZpbGVMaW1pdEV4Y2VlZGVkKGZpbGVzKSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcbiAgICAgICAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBWYWxpZGF0ZUVycm9ycy5NQVhfRklMRV9MSU1JVCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbGVJbnB1dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcnMuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzOiBbZmlsZV0sXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFZhbGlkYXRlRXJyb3JzLlVOU1VQUE9SVEVEX0VYVEVOU0lPTixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNGaWxlU2l6ZUV4Y2VlZGVkKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IFtmaWxlXSxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogVmFsaWRhdGVFcnJvcnMuTUFYX0ZJTEVfU0laRSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV3RmlsZXMucHVzaChmaWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSB0aGlzLmZpbGVzLmNvbmNhdChuZXdGaWxlcyk7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEhhbmRsZXIuZW1pdCh7XG4gICAgICAgICAgICAgICAgZmlsZXM6IG5ld0ZpbGVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFyRmlsZUlucHV0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVtb3ZlRmlsZShmaWxlOiBGaWxlRHRvKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGVJbmRleCA9IHRoaXMuZmlsZXMuaW5kZXhPZihmaWxlKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEZpbGVzID0gdGhpcy5maWxlcy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcblxuICAgICAgICBpZiAocmVtb3ZlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWxlLmVtaXQoeyBmaWxlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2FuY2VsVXBsb2FkKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEZpbGVzID0gdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGlmIChyZW1vdmVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbFVwbG9hZC5lbWl0KGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlSW5wdXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Eb3dsb2FkRmlsZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlLmVtaXQoe1xuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuYW5jaG9yLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpbGVzKCk6IEZpbGVEdG9bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgdGhpcy5pc1NtYWxsRGV2aWNlID0gd2luZG93V2lkdGggPD0gQnJlYWtwb2ludHMuU01fTUFYO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNJbWFnZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAvXmltYWdlXFwvLy50ZXN0KGZpbGUudHlwZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpbGVMaW1pdEV4Y2VlZGVkKGZpbGVzOiBGaWxlRHRvW10pIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVMaW1pdCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzLmxlbmd0aCArIGZpbGVzLmxlbmd0aCA+IHRoaXMuZmlsZUxpbWl0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaWxlU2l6ZUV4Y2VlZGVkKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1heEZpbGVTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKSB7XG4gICAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckZpbGVJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5pbnB1dFVwbG9hZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVwbG9hZERhdGUoYmxvYkZpbGU6IEZpbGVEdG9bXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWJsb2JGaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmdldE1ldGFkYXRhQ3VzdG9tRmllbGQoeyBvYmplY3RJZDogYmxvYkZpbGVbMF0ub2JqZWN0SWQgfSlcbiAgICAgICAgICAgIC50aGVuKG1ldGFkYXRhID0+IHRoaXMuc2V0TW9kaWZpZWREYXRlKG1ldGFkYXRhKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRNb2RpZmllZERhdGUobWV0YWRhdGE6IExpc3RCbG9iTWV0YWRhdGFSZXNwb25zZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBob3VyID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJISFwiKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KFwibW1cIik7XG4gICAgICAgIGNvbnN0IGRheSA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KFwiRERcIik7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJNTVwiKTtcbiAgICAgICAgY29uc3QgZnVsbFllYXIgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdChcIllZWVlcIik7XG5cbiAgICAgICAgdGhpcy5tb2RpZmllZERhdGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmRhdGVfbW9kaWZpZWRfY3VzdG9tX2Jsb2JcIiwgeyBob3VyLCBtaW51dGVzLCBkYXksIG1vbnRoLCBmdWxsWWVhciB9KTtcbiAgICB9XG59XG4iXX0=
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFHbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkI7SUEyR0ksNkJBQ3FCLFNBQXVCLEVBQ3ZCLGlCQUFvQyxFQUNwQyxTQUEyQjtRQUYzQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUEzR3pDLG1CQUFjLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDO1FBQzNDLG9CQUFlLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDO1FBQzdDLHNCQUFpQixHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztRQVNqRCxPQUFFLEdBQUcsbUJBQWlCLHFCQUFtQixDQUFDLE1B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QUc1RDtRQURDLEtBQUssRUFBRTs0REFDbUI7SUFHM0I7UUFEQyxLQUFLLEVBQUU7NERBQ21CO0lBRzNCO1FBREMsS0FBSyxFQUFFOzREQUNtQjtJQUczQjtRQURDLEtBQUssRUFBRTsrREFDc0I7SUFHOUI7UUFEQyxLQUFLLEVBQUU7eURBQ2lCO0lBR3pCO1FBREMsS0FBSyxFQUFFO3VEQUNjO0lBR3RCO1FBREMsS0FBSyxFQUFFO29FQUNrQztJQUcxQztRQURDLEtBQUssRUFBRTtrRUFDeUI7SUFHakM7UUFEQyxLQUFLLEVBQUU7NERBQ21CO0lBRzNCO1FBREMsS0FBSyxFQUFFO29FQUMyQjtJQUduQztRQURDLEtBQUssRUFBRTswREFDaUI7SUFHekI7UUFEQyxLQUFLLEVBQUU7a0VBQ3lCO0lBR2pDO1FBREMsS0FBSyxFQUFFO2lFQUN3QjtJQUdoQztRQURDLEtBQUssRUFBRTsrREFDc0I7SUFHOUI7UUFEQyxLQUFLLEVBQUU7Z0VBQ3VCO0lBRy9CO1FBREMsS0FBSyxFQUFFOzBEQUNzQjtJQUc5QjtRQURDLEtBQUssRUFBRTt5REFDZ0I7SUFHeEI7UUFEQyxLQUFLLEVBQUU7bUVBQ21DO0lBRzNDO1FBREMsS0FBSyxFQUFFOzREQUNzRDtJQUc5RDtRQURDLEtBQUssRUFBRTtvREFXUDtJQUdEO1FBREMsTUFBTSxFQUFFOzhEQUNxRTtJQUc5RTtRQURDLE1BQU0sRUFBRTsyREFDNEQ7SUFHckU7UUFEQyxNQUFNLEVBQUU7NkRBQ3NEO0lBRy9EO1FBREMsTUFBTSxFQUFFOzZEQUNxRjtJQUc5RjtRQURDLE1BQU0sRUFBRTsrREFDNkQ7SUFuRzdELG1CQUFtQjtRQUwvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6Qiwwc0RBQTJDOztTQUU5QyxDQUFDO09BQ1csbUJBQW1CLENBc1IvQjtJQUFELDBCQUFDO0NBQUEsQUF0UkQsSUFzUkM7U0F0UlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSBcIi4vZmlsZS11cGxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHsgRmlsZUR0byB9IGZyb20gXCIuL21vZGVscy9maWxlLWR0b1wiO1xuaW1wb3J0IHsgQUxMX1BFUk1JU1NJT05TLCBGaWxlVXBsb2FkUGVybWlzc2lvbnMgfSBmcm9tIFwiLi9tb2RlbHMvZmlsZS11cGxvYWQtcGVybWlzc2lvbnNcIjtcbmltcG9ydCB7IFVwbG9hZEVycm9yIH0gZnJvbSBcIi4vbW9kZWxzL3VwbG9hZEVycm9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0ZUVycm9ycyB9IGZyb20gXCIuL21vZGVscy92YWxpZGF0ZS1lcnJvcnNcIjtcbmltcG9ydCB7IExpc3RCbG9iTWV0YWRhdGFSZXNwb25zZSB9IGZyb20gXCIuL21vZGVscy9saXN0LWJsb2ItbWV0YWRhdGFcIjtcblxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1maWxlLXVwbG9hZFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gICAgcHVibGljIEFERF9QRVJNSVNTSU9OID0gRmlsZVVwbG9hZFBlcm1pc3Npb25zLkFkZDtcbiAgICBwdWJsaWMgUkVBRF9QRVJNSVNTSU9OID0gRmlsZVVwbG9hZFBlcm1pc3Npb25zLlJlYWQ7XG4gICAgcHVibGljIFJFTU9WRV9QRVJNSVNTSU9OID0gRmlsZVVwbG9hZFBlcm1pc3Npb25zLlJlbW92ZTtcblxuICAgIEBWaWV3Q2hpbGQoXCJpbnB1dFVwbG9hZFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0VXBsb2FkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZChcImFuY2hvclwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFuY2hvcjogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtZmlsZS11cGxvYWQtJHtGaWxlVXBsb2FkQ29tcG9uZW50Lm5leHRJZCsrfWA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjaG9vc2VMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhbmNlbExhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdWNjZXNzVG9vbHRpcDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY2NlcHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN1cHBvcnRlZEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxGaWxlTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4RmlsZVNpemU6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heENvbWJpbmVkRmlsZVNpemU6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbGVMaW1pdDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsUHJvZ3Jlc3M6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbFN1Y2Nlc3M6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbEVycm9yOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxSZW1vdmU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUNvbnRyb2w7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0ZpbGVVcGxvYWREYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogRmlsZVVwbG9hZFBlcm1pc3Npb25zW10gPSBBTExfUEVSTUlTU0lPTlM7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZmlsZXMoZmlsZXM6IEZpbGVEdG9bXSkge1xuICAgICAgICBpZiAodGhpcy5zaG93RmlsZVVwbG9hZERhdGUgJiYgZmlsZXNbMF0/Lm9iamVjdElkKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRVcGxvYWREYXRlKGZpbGVzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9maWxlcyA9IGZpbGVzLm1hcCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzSW1hZ2UoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICBmaWxlLm9iamVjdFVSTCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwod2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB1cGxvYWRIYW5kbGVyOiBFdmVudEVtaXR0ZXI8eyBmaWxlczogRmlsZUR0b1tdIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlbW92ZUZpbGU6IEV2ZW50RW1pdHRlcjx7IGZpbGU6IEZpbGUgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2FuY2VsVXBsb2FkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkb3dubG9hZEZpbGU6IEV2ZW50RW1pdHRlcjx7IGluZGV4OiBudW1iZXI7IGFuY2hvcjogRWxlbWVudFJlZiB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0ZUVycm9yczogRXZlbnRFbWl0dGVyPFVwbG9hZEVycm9yPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpbnB1dFZhbHVlID0gXCJcIjtcbiAgICBwdWJsaWMgbW9kaWZpZWREYXRlOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9maWxlczogRmlsZUR0b1tdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1VzdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zID0gdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zLm1hcCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24ucmVwbGFjZShcIi5cIiwgXCJcIikudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVXN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRmlsZVNlbGVjdChmaWxlczogRmlsZUR0b1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld0ZpbGVzOiBGaWxlRHRvW10gPSBbXTtcblxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0ZpbGVMaW1pdEV4Y2VlZGVkKGZpbGVzKSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcbiAgICAgICAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBWYWxpZGF0ZUVycm9ycy5NQVhfRklMRV9MSU1JVCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fY2xlYXJGaWxlSW5wdXQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0ZpbGVDb21iaW5lZFNpemVFeGNlZWRlZChmaWxlcykpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcnMuZW1pdCh7XG4gICAgICAgICAgICAgICAgZmlsZXMsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogVmFsaWRhdGVFcnJvcnMuTUFYX0NPTUJJTkVEX0ZJTEVfU0laRSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fY2xlYXJGaWxlSW5wdXQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzVW5zdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IFtmaWxlXSxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogVmFsaWRhdGVFcnJvcnMuVU5TVVBQT1JURURfRVhURU5TSU9OLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5faXNGaWxlU2l6ZUV4Y2VlZGVkKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9ycy5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IFtmaWxlXSxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogVmFsaWRhdGVFcnJvcnMuTUFYX0ZJTEVfU0laRSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV3RmlsZXMucHVzaChmaWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSB0aGlzLmZpbGVzLmNvbmNhdChuZXdGaWxlcyk7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEhhbmRsZXIuZW1pdCh7XG4gICAgICAgICAgICAgICAgZmlsZXM6IG5ld0ZpbGVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jbGVhckZpbGVJbnB1dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJlbW92ZUZpbGUoZmlsZTogRmlsZUR0byk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlSW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWRGaWxlcyA9IHRoaXMuZmlsZXMuc3BsaWNlKGZpbGVJbmRleCwgMSk7XG5cbiAgICAgICAgaWYgKHJlbW92ZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsZS5lbWl0KHsgZmlsZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNhbmNlbFVwbG9hZChmaWxlOiBGaWxlRHRvKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWxlcy5pbmRleE9mKGZpbGUpO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSAtMSkge1xuICAgICAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWQuZW1pdChpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jbGVhckZpbGVJbnB1dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRvd2xvYWRGaWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUuZW1pdCh7XG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIGFuY2hvcjogdGhpcy5hbmNob3IsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsZXMoKTogRmlsZUR0b1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzSW1hZ2UoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gL15pbWFnZVxcLy8udGVzdChmaWxlLnR5cGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzRmlsZUxpbWl0RXhjZWVkZWQoZmlsZXM6IEZpbGVEdG9bXSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuZmlsZUxpbWl0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXMubGVuZ3RoICsgZmlsZXMubGVuZ3RoID4gdGhpcy5maWxlTGltaXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaXNGaWxlQ29tYmluZWRTaXplRXhjZWVkZWQoZmlsZXM6IEZpbGVEdG9bXSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubWF4Q29tYmluZWRGaWxlU2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZXNMaXN0ID0gWy4uLmZpbGVzLCAuLi50aGlzLmZpbGVzXTtcblxuICAgICAgICBjb25zdCBjb21iaW5lZFNpemUgPSBmaWxlc0xpc3QucmVkdWNlKChjb21iaW5lZFNpemUsIGZpbGUpID0+IGNvbWJpbmVkU2l6ZSArIGZpbGUuc2l6ZSwgMCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVkU2l6ZSA+IHRoaXMubWF4Q29tYmluZWRGaWxlU2l6ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc0ZpbGVTaXplRXhjZWVkZWQoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc1Vuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lXG4gICAgICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgICAgIC5wb3AoKVxuICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYXJGaWxlSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRVcGxvYWQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VXBsb2FkRGF0ZShibG9iRmlsZTogRmlsZUR0b1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghYmxvYkZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRNZXRhZGF0YUN1c3RvbUZpZWxkKHsgb2JqZWN0SWQ6IGJsb2JGaWxlWzBdLm9iamVjdElkIH0pXG4gICAgICAgICAgICAudGhlbigobWV0YWRhdGEpID0+IHRoaXMuX3NldE1vZGlmaWVkRGF0ZShtZXRhZGF0YSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE1vZGlmaWVkRGF0ZShtZXRhZGF0YTogTGlzdEJsb2JNZXRhZGF0YVJlc3BvbnNlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhvdXIgPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdChcIkhIXCIpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJtbVwiKTtcbiAgICAgICAgY29uc3QgZGF5ID0gbW9tZW50KG1ldGFkYXRhLm1vZGlmaWVkKS5mb3JtYXQoXCJERFwiKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBtb21lbnQobWV0YWRhdGEubW9kaWZpZWQpLmZvcm1hdChcIk1NXCIpO1xuICAgICAgICBjb25zdCBmdWxsWWVhciA9IG1vbWVudChtZXRhZGF0YS5tb2RpZmllZCkuZm9ybWF0KFwiWVlZWVwiKTtcblxuICAgICAgICB0aGlzLm1vZGlmaWVkRGF0ZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZGF0ZV9tb2RpZmllZF9jdXN0b21fYmxvYlwiLCB7XG4gICAgICAgICAgICBob3VyLFxuICAgICAgICAgICAgbWludXRlcyxcbiAgICAgICAgICAgIGRheSxcbiAgICAgICAgICAgIG1vbnRoLFxuICAgICAgICAgICAgZnVsbFllYXIsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,30 +1,40 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { CommonModule } from "@angular/common";
3
+ import { HttpClientModule } from '@angular/common/http';
3
4
  import { NgModule } from "@angular/core";
4
5
  import { TranslateModule } from "@ngx-translate/core";
5
- import { ProgressBarModule } from "primeng/progressbar";
6
- import { TooltipModule } from "primeng/tooltip";
7
6
  import { ButtonModule } from "../button/button.module";
8
- import { FileUploadService } from "./file-upload.service";
7
+ import { LocaleService } from "../locale/locale.service";
8
+ import { ProgressBarModule } from "../progressbar/progressbar.module";
9
+ import { TooltipModule } from "../tooltip/tooltip.module";
10
+ import { FileItemComponent } from "./components/file-item/file-item.component";
9
11
  import { FileUploadComponent } from "./file-upload.component";
12
+ import { FileUploadService } from "./file-upload.service";
10
13
  var FileUploadModule = /** @class */ (function () {
11
14
  function FileUploadModule() {
12
15
  }
13
16
  FileUploadModule = __decorate([
14
17
  NgModule({
15
- declarations: [FileUploadComponent],
16
18
  imports: [
17
19
  CommonModule,
20
+ HttpClientModule,
18
21
  ButtonModule,
19
22
  TooltipModule,
20
23
  ProgressBarModule,
21
24
  TranslateModule,
22
25
  ],
23
- providers: [FileUploadService],
26
+ declarations: [
27
+ FileUploadComponent,
28
+ FileItemComponent,
29
+ ],
30
+ providers: [
31
+ FileUploadService,
32
+ LocaleService,
33
+ ],
24
34
  exports: [FileUploadComponent],
25
35
  })
26
36
  ], FileUploadModule);
27
37
  return FileUploadModule;
28
38
  }());
29
39
  export { FileUploadModule };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQWM5RDtJQUFBO0lBQStCLENBQUM7SUFBbkIsZ0JBQWdCO1FBWjVCLFFBQVEsQ0FBQztZQUNOLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ25DLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFlBQVk7Z0JBQ1osYUFBYTtnQkFDYixpQkFBaUI7Z0JBQ2pCLGVBQWU7YUFDbEI7WUFDRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztTQUNqQyxDQUFDO09BQ1csZ0JBQWdCLENBQUc7SUFBRCx1QkFBQztDQUFBLEFBQWhDLElBQWdDO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcHJvZ3Jlc3NiYXJcIjtcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy90b29sdGlwXCI7XG5cbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCIuLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSBcIi4vZmlsZS11cGxvYWQuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgUHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW0ZpbGVVcGxvYWRTZXJ2aWNlXSxcbiAgICBleHBvcnRzOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRNb2R1bGUge31cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFxQjFEO0lBQUE7SUFBK0IsQ0FBQztJQUFuQixnQkFBZ0I7UUFuQjVCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLGdCQUFnQjtnQkFDaEIsWUFBWTtnQkFDWixhQUFhO2dCQUNiLGlCQUFpQjtnQkFDakIsZUFBZTthQUNsQjtZQUNELFlBQVksRUFBRTtnQkFDVixtQkFBbUI7Z0JBQ25CLGlCQUFpQjthQUNwQjtZQUNELFNBQVMsRUFBRTtnQkFDUCxpQkFBaUI7Z0JBQ2pCLGFBQWE7YUFDaEI7WUFDRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztTQUNqQyxDQUFDO09BQ1csZ0JBQWdCLENBQUc7SUFBRCx1QkFBQztDQUFBLEFBQWhDLElBQWdDO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCIuLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gXCIuLi9sb2NhbGUvbG9jYWxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcIi4uL3Byb2dyZXNzYmFyL3Byb2dyZXNzYmFyLm1vZHVsZVwiO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gXCIuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlXCI7XG5pbXBvcnQgeyBGaWxlSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmlsZS1pdGVtL2ZpbGUtaXRlbS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSBcIi4vZmlsZS11cGxvYWQuc2VydmljZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgRmlsZUl0ZW1Db21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRmlsZVVwbG9hZFNlcnZpY2UsXG4gICAgICAgIExvY2FsZVNlcnZpY2UsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRNb2R1bGUge31cbiJdfQ==
@@ -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==
@@ -1,7 +1,8 @@
1
1
  export var ValidateErrors;
2
2
  (function (ValidateErrors) {
3
3
  ValidateErrors["MAX_FILE_SIZE"] = "MAX_FILE_SIZE";
4
+ ValidateErrors["MAX_COMBINED_FILE_SIZE"] = "MAX_COMBINED_FILE_SIZE";
4
5
  ValidateErrors["MAX_FILE_LIMIT"] = "MAX_FILE_LIMIT";
5
6
  ValidateErrors["UNSUPPORTED_EXTENSION"] = "UNSUPPORTED_EXTENSION";
6
7
  })(ValidateErrors || (ValidateErrors = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtZXJyb3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvbW9kZWxzL3ZhbGlkYXRlLWVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3ZCLGlEQUErQixDQUFBO0lBQy9CLG1EQUFpQyxDQUFBO0lBQ2pDLGlFQUErQyxDQUFBO0FBQ2xELENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFZhbGlkYXRlRXJyb3JzIHtcbiAgIE1BWF9GSUxFX1NJWkUgPSBcIk1BWF9GSUxFX1NJWkVcIixcbiAgIE1BWF9GSUxFX0xJTUlUID0gXCJNQVhfRklMRV9MSU1JVFwiLFxuICAgVU5TVVBQT1JURURfRVhURU5TSU9OID0gXCJVTlNVUFBPUlRFRF9FWFRFTlNJT05cIixcbn1cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtZXJyb3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvbW9kZWxzL3ZhbGlkYXRlLWVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3ZCLGlEQUErQixDQUFBO0lBQy9CLG1FQUFpRCxDQUFBO0lBQ2pELG1EQUFpQyxDQUFBO0lBQ2pDLGlFQUErQyxDQUFBO0FBQ2xELENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFZhbGlkYXRlRXJyb3JzIHtcbiAgIE1BWF9GSUxFX1NJWkUgPSBcIk1BWF9GSUxFX1NJWkVcIixcbiAgIE1BWF9DT01CSU5FRF9GSUxFX1NJWkUgPSBcIk1BWF9DT01CSU5FRF9GSUxFX1NJWkVcIixcbiAgIE1BWF9GSUxFX0xJTUlUID0gXCJNQVhfRklMRV9MSU1JVFwiLFxuICAgVU5TVVBQT1JURURfRVhURU5TSU9OID0gXCJVTlNVUFBPUlRFRF9FWFRFTlNJT05cIixcbn1cbiJdfQ==