@seniorsistemas/angular-components 14.16.33 → 15.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +436 -133
  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/file-upload.component.d.ts +17 -33
  6. package/components/file-upload/index.d.ts +3 -2
  7. package/components/file-upload/models/file-dto.d.ts +11 -0
  8. package/components/file-upload/models/index.d.ts +2 -0
  9. package/components/file-upload/models/validate-errors.d.ts +4 -0
  10. package/components/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +5 -0
  11. package/components/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +2 -0
  12. package/components/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +6 -0
  13. package/components/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +2 -0
  14. package/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +6 -0
  15. package/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +10 -0
  16. package/components/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +2 -0
  17. package/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +7 -0
  18. package/components/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +20 -0
  19. package/components/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +2 -0
  20. package/components/timeline/index.d.ts +3 -2
  21. package/components/timeline/models/index.d.ts +3 -0
  22. package/components/timeline/models/timeline-item-severity.d.ts +5 -0
  23. package/components/timeline/models/timeline-item-size.d.ts +4 -0
  24. package/components/timeline/models/timeline-item.d.ts +25 -0
  25. package/components/timeline/timeline.component.d.ts +17 -17
  26. package/esm2015/components/file-upload/file-upload.component.js +49 -63
  27. package/esm2015/components/file-upload/file-upload.module.js +7 -2
  28. package/esm2015/components/file-upload/index.js +4 -3
  29. package/esm2015/components/file-upload/models/file-dto.js +1 -0
  30. package/esm2015/components/file-upload/models/index.js +2 -0
  31. package/esm2015/components/file-upload/models/validate-errors.js +6 -0
  32. package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +22 -0
  33. package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +21 -0
  34. package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +22 -0
  35. package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +19 -0
  36. package/esm2015/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +26 -0
  37. package/esm2015/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +35 -0
  38. package/esm2015/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +13 -0
  39. package/esm2015/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +25 -0
  40. package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.component.js +50 -0
  41. package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.module.js +29 -0
  42. package/esm2015/components/timeline/index.js +4 -3
  43. package/esm2015/components/timeline/models/index.js +4 -0
  44. package/esm2015/components/timeline/models/timeline-item-severity.js +7 -0
  45. package/esm2015/components/timeline/models/timeline-item-size.js +6 -0
  46. package/esm2015/components/timeline/models/timeline-item.js +36 -0
  47. package/esm2015/components/timeline/timeline.component.js +44 -61
  48. package/esm2015/components/timeline/timeline.module.js +17 -6
  49. package/esm2015/seniorsistemas-angular-components.js +17 -7
  50. package/esm5/components/file-upload/file-upload.component.js +65 -67
  51. package/esm5/components/file-upload/file-upload.module.js +7 -2
  52. package/esm5/components/file-upload/index.js +4 -3
  53. package/esm5/components/file-upload/models/file-dto.js +1 -0
  54. package/esm5/components/file-upload/models/index.js +2 -0
  55. package/esm5/components/file-upload/models/validate-errors.js +6 -0
  56. package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +23 -0
  57. package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +24 -0
  58. package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +25 -0
  59. package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +22 -0
  60. package/esm5/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +27 -0
  61. package/esm5/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +36 -0
  62. package/esm5/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +16 -0
  63. package/esm5/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +28 -0
  64. package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.component.js +55 -0
  65. package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.module.js +32 -0
  66. package/esm5/components/timeline/index.js +4 -3
  67. package/esm5/components/timeline/models/index.js +4 -0
  68. package/esm5/components/timeline/models/timeline-item-severity.js +7 -0
  69. package/esm5/components/timeline/models/timeline-item-size.js +6 -0
  70. package/esm5/components/timeline/models/timeline-item.js +38 -0
  71. package/esm5/components/timeline/timeline.component.js +45 -63
  72. package/esm5/components/timeline/timeline.module.js +17 -6
  73. package/esm5/seniorsistemas-angular-components.js +17 -7
  74. package/fesm2015/seniorsistemas-angular-components.js +377 -123
  75. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  76. package/fesm5/seniorsistemas-angular-components.js +420 -128
  77. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  78. package/package.json +1 -1
  79. package/seniorsistemas-angular-components.d.ts +16 -6
  80. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -1,25 +1,14 @@
1
- import { HttpErrorResponse } from "@angular/common/http";
2
- import { AfterContentInit, ElementRef, EventEmitter, OnDestroy, OnInit } from "@angular/core";
1
+ import { AfterContentInit, ElementRef, EventEmitter, OnDestroy } from "@angular/core";
3
2
  import { FormControl } from "@angular/forms";
4
- import { DomSanitizer, SafeUrl } from "@angular/platform-browser";
5
- export interface FileDto extends File {
6
- objectId?: string;
7
- version?: string;
8
- objectURL?: string | SafeUrl;
9
- isUploading?: boolean;
10
- savedFile?: boolean;
11
- progress?: number;
12
- error?: HttpErrorResponse;
13
- }
14
- export declare enum ValidateErrors {
15
- MAX_FILE_SIZE = "MAX_FILE_SIZE",
16
- MAX_FILE_LIMIT = "MAX_FILE_LIMIT"
17
- }
18
- export declare class FileUploadComponent implements OnInit, OnDestroy, AfterContentInit {
19
- private sanitizer;
3
+ import { DomSanitizer } from "@angular/platform-browser";
4
+ import { FileDto } from "./models/file-dto";
5
+ import { ValidateErrors } from "./models/validate-errors";
6
+ export declare class FileUploadComponent implements OnDestroy, AfterContentInit {
7
+ private readonly sanitizer;
20
8
  static nextId: number;
21
- private inputUpload;
22
- private anchor;
9
+ inputValue: string;
10
+ private readonly inputUpload;
11
+ private readonly anchor;
23
12
  id: string;
24
13
  chooseLabel: string;
25
14
  removeLabel: string;
@@ -48,26 +37,21 @@ export declare class FileUploadComponent implements OnInit, OnDestroy, AfterCont
48
37
  anchor: ElementRef;
49
38
  }>;
50
39
  validateErros: EventEmitter<ValidateErrors>;
51
- uploadedFileCount: number;
52
40
  isSmallDevice: boolean;
53
41
  private _files;
54
- private ngUsubscribe;
42
+ private readonly ngUsubscribe;
55
43
  constructor(sanitizer: DomSanitizer);
56
- ngOnInit(): void;
57
44
  ngOnDestroy(): void;
58
45
  ngAfterContentInit(): void;
59
46
  onResize(): void;
60
- update(): void;
61
47
  onFileSelect(files: FileDto[]): void;
62
- onRemoveFile(event: Event, file: FileDto): void;
63
- onCancelUpload(event: Event, index: number): void;
64
- onDowloadFile(event: Event, index: number): void;
65
- private hasFiles;
48
+ onRemoveFile(file: FileDto): void;
49
+ onCancelUpload(index: number): void;
50
+ onDowloadFile(index: number): void;
66
51
  set files(files: FileDto[]);
67
52
  get files(): FileDto[];
68
- getFileSize(size: number): string;
69
- isImage(file: File): boolean;
70
- defaltCatchError(err: HttpErrorResponse, index: number): void;
71
- isFileLimitExceeded(): boolean;
72
- isFileSizeExceeded(file: File): boolean;
53
+ private update;
54
+ private isImage;
55
+ private isFileLimitExceeded;
56
+ private isFileSizeExceeded;
73
57
  }
@@ -1,2 +1,3 @@
1
- export * from "./file-upload.component";
2
- export * from "./file-upload.module";
1
+ export { FileUploadComponent } from "./file-upload.component";
2
+ export { FileUploadModule } from "./file-upload.module";
3
+ export { FileDto, ValidateErrors } from "./models/index";
@@ -0,0 +1,11 @@
1
+ import { HttpErrorResponse } from "@angular/common/http";
2
+ import { SafeUrl } from "@angular/platform-browser";
3
+ export interface FileDto extends File {
4
+ objectId?: string;
5
+ version?: string;
6
+ objectURL?: string | SafeUrl;
7
+ isUploading?: boolean;
8
+ savedFile?: boolean;
9
+ progress?: number;
10
+ error?: HttpErrorResponse;
11
+ }
@@ -0,0 +1,2 @@
1
+ export { FileDto } from "./file-dto";
2
+ export { ValidateErrors } from "./validate-errors";
@@ -0,0 +1,4 @@
1
+ export declare enum ValidateErrors {
2
+ MAX_FILE_SIZE = "MAX_FILE_SIZE",
3
+ MAX_FILE_LIMIT = "MAX_FILE_LIMIT"
4
+ }
@@ -0,0 +1,5 @@
1
+ import { TimelineItem } from "../../models/timeline-item";
2
+ export declare class HorizontalTimelineComponent {
3
+ items: TimelineItem[];
4
+ activeIndex: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ export declare class HorizontalTimelineModule {
2
+ }
@@ -0,0 +1,6 @@
1
+ import { TimelineItem } from "../../models";
2
+ export declare class TimelineIconItemComponent {
3
+ item: TimelineItem;
4
+ isActive: boolean;
5
+ isComplete: boolean;
6
+ }
@@ -0,0 +1,2 @@
1
+ export declare class TimelineItemModule {
2
+ }
@@ -0,0 +1,6 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ export declare class CollapseOptionComponent {
3
+ isCollapsed: boolean;
4
+ change: EventEmitter<boolean>;
5
+ onClick(): void;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import { TimelineItem } from "../../../../models/timeline-item";
3
+ export declare class CollapsedItemsComponent {
4
+ items: TimelineItem[];
5
+ isCollapsed: boolean;
6
+ isCompleted: boolean;
7
+ counterLabel: string;
8
+ isCollapsedChange: EventEmitter<boolean>;
9
+ onChange(event: boolean): void;
10
+ }
@@ -0,0 +1,2 @@
1
+ export declare class RangeLineComponent {
2
+ }
@@ -0,0 +1,7 @@
1
+ import { TimelineItem } from "../../../../models/timeline-item";
2
+ export declare class VerticalItemsComponent {
3
+ items: TimelineItem[];
4
+ isLast: boolean;
5
+ isActive: boolean;
6
+ isCompleted: boolean;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { TimelineItem } from "../../models/timeline-item";
2
+ export declare class VerticalTimelineComponent {
3
+ static nextId: number;
4
+ private _activeIndex;
5
+ isG1Collapsed: boolean;
6
+ isG2Collapsed: boolean;
7
+ firstItem: TimelineItem[];
8
+ g1Items: TimelineItem[];
9
+ activeItem: TimelineItem[];
10
+ g2Items: TimelineItem[];
11
+ lastItem: TimelineItem[];
12
+ set activeIndex(index: number);
13
+ get activeIndex(): number;
14
+ items: TimelineItem[];
15
+ counterLabel: string;
16
+ collapsable: boolean;
17
+ onChangeG1(event: boolean): void;
18
+ onChangeG2(event: boolean): void;
19
+ groupItems(): void;
20
+ }
@@ -0,0 +1,2 @@
1
+ export declare class VerticalTimelineModule {
2
+ }
@@ -1,2 +1,3 @@
1
- export * from "./timeline.module";
2
- export * from "./timeline.component";
1
+ export { TimelineModule } from "./timeline.module";
2
+ export { TimelineComponent } from "./timeline.component";
3
+ export { TimelineItem, TimelineItemSeverity, TimelineItemSize } from "./models/index";
@@ -0,0 +1,3 @@
1
+ export { TimelineItem } from "./timeline-item";
2
+ export { TimelineItemSeverity } from "./timeline-item-severity";
3
+ export { TimelineItemSize } from "./timeline-item-size";
@@ -0,0 +1,5 @@
1
+ export declare enum TimelineItemSeverity {
2
+ Normal = "normal",
3
+ Warning = "warning",
4
+ Error = "error"
5
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum TimelineItemSize {
2
+ Normal = "normal",
3
+ Small = "small"
4
+ }
@@ -0,0 +1,25 @@
1
+ import { TimelineItemSeverity } from "./timeline-item-severity";
2
+ import { TimelineItemSize } from "./timeline-item-size";
3
+ export declare class TimelineItem {
4
+ id: string;
5
+ title: string;
6
+ description: string;
7
+ icon?: string;
8
+ label?: string;
9
+ tooltip?: string;
10
+ size: TimelineItemSize;
11
+ severity: TimelineItemSeverity;
12
+ constructor(params: {
13
+ id: string;
14
+ title: string;
15
+ description: string;
16
+ icon?: string;
17
+ label?: string;
18
+ size?: TimelineItemSize;
19
+ severity?: TimelineItemSeverity;
20
+ tooltip?: string;
21
+ });
22
+ checkItemIconContent(): void;
23
+ testSize(value: string): boolean;
24
+ testSeverity(value: string): boolean;
25
+ }
@@ -1,19 +1,19 @@
1
- export interface TimelineStep {
2
- id: any;
3
- label: string;
4
- helpLabel?: string;
5
- ariaLabel?: string;
6
- ariaControls?: string;
7
- hidden?: boolean;
8
- stepIcon?: string;
9
- tooltip?: string;
10
- }
11
- export declare class TimelineComponent {
12
- static nextId: number;
13
- id: string;
14
- steps: TimelineStep[];
1
+ import { OnInit } from "@angular/core";
2
+ import { TimelineItem } from "./models/timeline-item";
3
+ declare const HORIZONTAL = "horizontal";
4
+ declare const VERTICAL = "vertical";
5
+ export declare class TimelineComponent implements OnInit {
6
+ private _innerWidth;
7
+ private _items;
8
+ get items(): TimelineItem[];
9
+ set items(items: TimelineItem[]);
15
10
  activeIndex: number;
16
- barAnimation(index: number, activeIndex: number): boolean;
17
- afterBarAnimation(index: number, activeIndex: number): boolean;
18
- get visibledStep(): TimelineStep[];
11
+ direction: typeof HORIZONTAL | typeof VERTICAL;
12
+ collapsable: boolean;
13
+ counterLabel: string;
14
+ ngOnInit(): void;
15
+ onResize(_: any): void;
16
+ changeToVertical(): boolean;
17
+ checkDuplicateIds(): void;
19
18
  }
19
+ export {};
@@ -1,17 +1,14 @@
1
1
  var FileUploadComponent_1;
2
2
  import { __decorate } from "tslib";
3
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
4
- import { DomSanitizer, SafeUrl } from "@angular/platform-browser";
3
+ import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from "@angular/core";
4
+ import { DomSanitizer } from "@angular/platform-browser";
5
5
  import { Subject } from "rxjs";
6
+ import { ValidateErrors } from "./models/validate-errors";
6
7
  import { Breakpoints } from "../utils";
7
- export var ValidateErrors;
8
- (function (ValidateErrors) {
9
- ValidateErrors["MAX_FILE_SIZE"] = "MAX_FILE_SIZE";
10
- ValidateErrors["MAX_FILE_LIMIT"] = "MAX_FILE_LIMIT";
11
- })(ValidateErrors || (ValidateErrors = {}));
12
8
  let FileUploadComponent = FileUploadComponent_1 = class FileUploadComponent {
13
9
  constructor(sanitizer) {
14
10
  this.sanitizer = sanitizer;
11
+ this.inputValue = "";
15
12
  this.id = `s-file-upload-${FileUploadComponent_1.nextId++}`;
16
13
  this.chooseLabel = "Anexar arquivos";
17
14
  this.removeLabel = "Remover";
@@ -24,11 +21,9 @@ let FileUploadComponent = FileUploadComponent_1 = class FileUploadComponent {
24
21
  this.cancelUpload = new EventEmitter();
25
22
  this.downloadFile = new EventEmitter();
26
23
  this.validateErros = new EventEmitter();
27
- this.uploadedFileCount = 0;
28
24
  this._files = [];
29
25
  this.ngUsubscribe = new Subject();
30
26
  }
31
- ngOnInit() { }
32
27
  ngOnDestroy() {
33
28
  this.ngUsubscribe.next();
34
29
  this.ngUsubscribe.complete();
@@ -39,87 +34,78 @@ let FileUploadComponent = FileUploadComponent_1 = class FileUploadComponent {
39
34
  onResize() {
40
35
  this.update();
41
36
  }
42
- update() {
43
- const windowWidth = window.innerWidth;
44
- this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;
45
- }
46
37
  onFileSelect(files) {
47
- const previousFiles = [...this.files];
38
+ const newFiles = [];
48
39
  if (!this.multiple) {
49
40
  this.files = [];
50
41
  }
51
- if (this.fileLimit) {
52
- this.uploadedFileCount += files.length;
53
- if (this.isFileLimitExceeded()) {
54
- this.uploadedFileCount -= this.files.length;
55
- this.validateErros.emit(ValidateErrors.MAX_FILE_LIMIT);
56
- return;
57
- }
42
+ if (this.isFileLimitExceeded(files)) {
43
+ this.validateErros.emit(ValidateErrors.MAX_FILE_LIMIT);
44
+ return;
58
45
  }
59
- for (let i = 0; i < files.length; i++) {
60
- const file = files[i];
46
+ for (const file of files) {
61
47
  if (this.isFileSizeExceeded(file)) {
62
48
  this.validateErros.emit(ValidateErrors.MAX_FILE_SIZE);
63
- this.files = previousFiles;
64
49
  return;
65
50
  }
66
- else {
67
- this.files.push(file);
68
- }
51
+ newFiles.push(file);
69
52
  }
70
- if (this.hasFiles()) {
71
- this.uploadHandler.emit({ files: this.files });
53
+ if (newFiles.length) {
54
+ this.files = this.files.concat(newFiles);
55
+ this.uploadHandler.emit({
56
+ files: newFiles,
57
+ });
72
58
  this.inputUpload.nativeElement.value = "";
73
59
  }
74
60
  }
75
- onRemoveFile(event, file) {
76
- this.files.splice(this.files.indexOf(file), 1);
77
- this.uploadedFileCount -= 1;
78
- this.removeFile.emit({ file });
79
- event.preventDefault();
80
- }
81
- onCancelUpload(event, index) {
82
- this.uploadedFileCount -= 1;
83
- this.files.splice(index, 1);
84
- this.cancelUpload.emit(index);
85
- event.preventDefault();
61
+ onRemoveFile(file) {
62
+ const fileIndex = this.files.indexOf(file);
63
+ const removedFiles = this.files.splice(fileIndex, 1);
64
+ if (removedFiles.length) {
65
+ this.removeFile.emit({ file });
66
+ }
86
67
  }
87
- onDowloadFile(event, index) {
88
- this.downloadFile.emit({ index, anchor: this.anchor });
89
- event.preventDefault();
68
+ onCancelUpload(index) {
69
+ const removedFiles = this.files.splice(index, 1);
70
+ if (removedFiles.length) {
71
+ this.cancelUpload.emit(index);
72
+ }
90
73
  }
91
- hasFiles() {
92
- return this.files && this.files.length > 0;
74
+ onDowloadFile(index) {
75
+ this.downloadFile.emit({
76
+ index,
77
+ anchor: this.anchor,
78
+ });
93
79
  }
94
80
  set files(files) {
95
- this._files = [];
96
- for (let i = 0; i < files.length; i++) {
97
- const file = files[i];
81
+ this._files = files.map(file => {
98
82
  if (this.isImage(file)) {
99
- file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));
83
+ file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));
100
84
  }
101
- this._files.push(files[i]);
102
- }
85
+ return file;
86
+ });
103
87
  }
104
88
  get files() {
105
89
  return this._files;
106
90
  }
107
- getFileSize(size) {
108
- return (size / 1024).toFixed(2);
91
+ update() {
92
+ const windowWidth = window.innerWidth;
93
+ this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;
109
94
  }
110
95
  isImage(file) {
111
96
  return /^image\//.test(file.type);
112
97
  }
113
- defaltCatchError(err, index) {
114
- this.files[index].error = err;
115
- this.files[index].isUploading = false;
116
- throw new Error("error in upload file. Details: " + err.message);
117
- }
118
- isFileLimitExceeded() {
119
- return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;
98
+ isFileLimitExceeded(files) {
99
+ if (!this.fileLimit) {
100
+ return false;
101
+ }
102
+ return this.files.length + files.length > this.fileLimit;
120
103
  }
121
104
  isFileSizeExceeded(file) {
122
- return this.maxFileSize && file.size > this.maxFileSize;
105
+ if (!this.maxFileSize) {
106
+ return false;
107
+ }
108
+ return file.size > this.maxFileSize;
123
109
  }
124
110
  };
125
111
  FileUploadComponent.nextId = 0;
@@ -204,9 +190,9 @@ __decorate([
204
190
  FileUploadComponent = FileUploadComponent_1 = __decorate([
205
191
  Component({
206
192
  selector: "s-file-upload",
207
- template: "<div class=\"s-fileupload\" [id]=\"id\">\n <div class=\"s-fileupload-choose\">\n <input type=\"file\" name=\"file\" [accept]=\"accept\" [multiple]=\"multiple\"\n (change)=\"onFileSelect($event.dataTransfer ? $event.dataTransfer.files : $event.target.files)\" #inputUpload>\n <s-button [id]=\"id + 'upload-button'\" [label]=\"chooseLabel\" (onClick)=\"inputUpload.click()\" priority=\"primary\"\n [disabled]=\"disabled || !!formGroup?.disabled\" [auxiliary]=\"false\"></s-button>\n </div>\n\n <section [id]=\"id + 'fileupload-list'\" class=\"s-fileupload-list\" *ngIf=\"files.length\" role=\"grid\">\n <ng-container *ngFor=\"let file of files; let i = index\">\n <div class=\"s-fileupload-list-file\" role=\"row\">\n <div [id]=\"id + '-file-' + i + '-name'\" class=\"s-fileupload-list-file-name\" role=\"gridcell\">\n <ng-container\n *ngTemplateOutlet=\"file.savedFile || file.progress === 100 ? descriptionUrl : description; context: { $implicit: file, index: i }\">\n </ng-container>\n </div>\n <div class=\"s-fileupload-list-file-status\" role=\"gridcell\">\n <p-progressBar *ngIf=\"file.isUploading && !isSmallDevice\"\n [style]=\"{ 'width': '250px', 'background-color': '#d8d8d8', 'border-radius': '0px', 'height': '14px'}\"\n [value]=\"file.progress\" [showValue]=\"false\" role=\"alert\" [attr.aria-label]=\"ariaLabelProgress\">\n </p-progressBar>\n <span [id]=\"id + '-file-' + i + '-spin'\" class=\"fas fa-circle-notch fa-spin\"\n *ngIf=\"file.isUploading && isSmallDevice\" [attr.aria-label]=\"ariaLabelProgress\"></span>\n <span [id]=\"id + '-file-' + i + '-check'\" class=\"fas fa-check\" role=\"alert\"\n *ngIf=\"!file.isUploading && !file.error && file.progress === 100\"\n [attr.aria-label]=\"ariaLabelSuccess || successTooltip\" [pTooltip]=\"successTooltip\"\n tooltipPosition=\"top\" showDelay=\"500\" [appendTo]=\"'body'\"></span>\n <span [id]=\"id + '-file-' + i + '-error'\" class=\"fas fa-times\" role=\"alert\"\n *ngIf=\"file.error?.message\" [pTooltip]=\"file.error?.message\" tooltipPosition=\"top\"\n showDelay=\"500\" [appendTo]=\"'body'\"></span>\n </div>\n <div class=\"s-fileupload-list-file-actions\" role=\"gridcell\">\n <a [id]=\"id + '-file-' + i + '-cancel'\" class=\"s-fileupload-list-file-actions-action\"\n (click)=\"onCancelUpload($event, i)\" *ngIf=\"file.isUploading\">{{cancelLabel}}</a>\n <a role=\"button\" tabindex=\"0\" [id]=\"id + '-file-' + i + '-remove'\"\n class=\"s-fileupload-list-file-actions-action\" (click)=\"onRemoveFile($event, file)\"\n *ngIf=\"!file.isUploading && !(disabled || !!formGroup?.disabled)\" [attr.aria-label]=\"ariaLabelRemove || removeLabel\">{{removeLabel}}</a>\n </div>\n </div>\n </ng-container>\n </section>\n</div>\n\n<ng-template #descriptionUrl let-file let-i = index>\n <a [id]=\"id + '-file-' + i + '-name-link'\" tabindex=\"0\" (click)=\"onDowloadFile($event, i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\">{{file.name}}</a>\n <a style=\"display: none;\" [href]=\"file.objectURL\" target=\"_blank\" download #anchor></a>\n</ng-template>\n\n<ng-template #description let-file>\n <span tabindex=\"0\" [attr.aria-label]=\"ariaLabelFileName || file.name\">\n {{file.name}}\n </span>\n</ng-template>\n",
193
+ 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 [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel\"\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=\"file.savedFile || file.progress === 100\n ? descriptionUrl\n : description; context: {\n $implicit: file,\n index: i\n }\">\n </ng-container>\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\">\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\">\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\"\n [pTooltip]=\"successTooltip\"\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}}\n </a>\n <a\n *ngIf=\"!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\">\n {{removeLabel}}\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",
208
194
  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{-ms-flex-item-align:center;-ms-grid-row-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>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}}"]
209
195
  })
210
196
  ], FileUploadComponent);
211
197
  export { FileUploadComponent };
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUVILFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBWXZDLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsaURBQStCLENBQUE7SUFDL0IsbURBQWlDLENBQUE7QUFDckMsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBT0QsSUFBYSxtQkFBbUIsMkJBQWhDLE1BQWEsbUJBQW1CO0lBd0Q1QixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBaERwQyxPQUFFLEdBQUcsaUJBQWlCLHFCQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFFckQsZ0JBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUVoQyxnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUV4QixnQkFBVyxHQUFHLFVBQVUsQ0FBQztRQUV6QixtQkFBYyxHQUFHLDZCQUE2QixDQUFDO1FBWS9DLHNCQUFpQixHQUFHLG9CQUFvQixDQUFDO1FBVXpDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsa0JBQWEsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RSxlQUFVLEdBQWlDLElBQUksWUFBWSxF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QUNaO0FBRTNCO0lBREMsS0FBSyxFQUFFOytDQUNvRDtBQUU1RDtJQURDLEtBQUssRUFBRTt3REFDK0I7QUFFdkM7SUFEQyxLQUFLLEVBQUU7d0RBQ3VCO0FBRS9CO0lBREMsS0FBSyxFQUFFO3dEQUN3QjtBQUVoQztJQURDLEtBQUssRUFBRTsyREFDOEM7QUFFdEQ7SUFEQyxLQUFLLEVBQUU7cURBQ2lCO0FBRXpCO0lBREMsS0FBSyxFQUFFO21EQUNjO0FBRXRCO0lBREMsS0FBSyxFQUFFOzhEQUN5QjtBQUVqQztJQURDLEtBQUssRUFBRTt3REFDbUI7QUFFM0I7SUFEQyxLQUFLLEVBQUU7c0RBQ2lCO0FBRXpCO0lBREMsS0FBSyxFQUFFOzhEQUN3QztBQUVoRDtJQURDLEtBQUssRUFBRTs2REFDd0I7QUFFaEM7SUFEQyxLQUFLLEVBQUU7MkRBQ3NCO0FBRTlCO0lBREMsS0FBSyxFQUFFOzREQUN1QjtBQUUvQjtJQURDLEtBQUssRUFBRTtzREFDc0I7QUFFOUI7SUFEQyxLQUFLLEVBQUU7cURBQ2dCO0FBR3hCO0lBREMsTUFBTSxFQUFFOzBEQUNxRTtBQUU5RTtJQURDLE1BQU0sRUFBRTt1REFDNEQ7QUFFckU7SUFEQyxNQUFNLEVBQUU7eURBQ3NEO0FBRS9EO0lBREMsTUFBTSxFQUFFO3lEQUNxRjtBQUU5RjtJQURDLE1BQU0sRUFBRTswREFDK0Q7QUFxQnhFO0lBREMsWUFBWSxDQUFDLGVBQWUsQ0FBQzttREFHN0I7QUErREQ7SUFEQyxLQUFLLEVBQUU7Z0RBWVA7QUFsSlEsbUJBQW1CO0lBTC9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLDB3SEFBMkM7O0tBRTlDLENBQUM7R0FDVyxtQkFBbUIsQ0E2Sy9CO1NBN0tZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlRHRvIGV4dGVuZHMgRmlsZSB7XG4gICAgb2JqZWN0SWQ/OiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBvYmplY3RVUkw/OiBzdHJpbmcgfCBTYWZlVXJsO1xuICAgIGlzVXBsb2FkaW5nPzogYm9vbGVhbjtcbiAgICBzYXZlZEZpbGU/OiBib29sZWFuO1xuICAgIHByb2dyZXNzPzogbnVtYmVyO1xuICAgIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2U7XG59XG5cbmV4cG9ydCBlbnVtIFZhbGlkYXRlRXJyb3JzIHtcbiAgICBNQVhfRklMRV9TSVpFID0gXCJNQVhfRklMRV9TSVpFXCIsXG4gICAgTUFYX0ZJTEVfTElNSVQgPSBcIk1BWF9GSUxFX0xJTUlUXCIsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtZmlsZS11cGxvYWRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBWaWV3Q2hpbGQoXCJpbnB1dFVwbG9hZFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIGlucHV0VXBsb2FkOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoXCJhbmNob3JcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSBhbmNob3I6IEVsZW1lbnRSZWY7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1maWxlLXVwbG9hZC0ke0ZpbGVVcGxvYWRDb21wb25lbnQubmV4dElkKyt9YDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjaG9vc2VMYWJlbCA9IFwiQW5leGFyIGFycXVpdm9zXCI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlTGFiZWwgPSBcIlJlbW92ZXJcIjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5jZWxMYWJlbCA9IFwiQ2FuY2VsYXJcIjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdWNjZXNzVG9vbHRpcCA9IFwiQXJxdWl2byBhbmV4YWRvIGNvbSBzdWNlc3NvXCI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWNjZXB0OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsRmlsZU5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbGVMaW1pdDogbnVtYmVyO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbFByb2dyZXNzID0gXCJDYXJyZWdhbmRvIGFycXVpdm9cIjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxTdWNjZXNzOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsRXJyb3I6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxSZW1vdmU6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Db250cm9sO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdXBsb2FkSGFuZGxlcjogRXZlbnRFbWl0dGVyPHsgZmlsZXM6IEZpbGVEdG9bXSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlRmlsZTogRXZlbnRFbWl0dGVyPHsgZmlsZTogRmlsZSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2FuY2VsVXBsb2FkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlOiBFdmVudEVtaXR0ZXI8eyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRlRXJyb3M6IEV2ZW50RW1pdHRlcjxWYWxpZGF0ZUVycm9ycz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgdXBsb2FkZWRGaWxlQ291bnQgPSAwO1xuICAgIHB1YmxpYyBpc1NtYWxsRGV2aWNlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2ZpbGVzOiBGaWxlRHRvW10gPSBbXTtcbiAgICBwcml2YXRlIG5nVXN1YnNjcmliZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge31cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVXN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgICBwdWJsaWMgb25SZXNpemUoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgdGhpcy5pc1NtYWxsRGV2aWNlID0gd2luZG93V2lkdGggPD0gQnJlYWtwb2ludHMuU01fTUFYO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZpbGVTZWxlY3QoZmlsZXM6IEZpbGVEdG9bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcmV2aW91c0ZpbGVzID0gWyAuLi50aGlzLmZpbGVzIF07XG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZUxpbWl0KSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZUNvdW50ICs9IGZpbGVzLmxlbmd0aDtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmlsZUxpbWl0RXhjZWVkZWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlQ291bnQgLT0gdGhpcy5maWxlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUVycm9zLmVtaXQoVmFsaWRhdGVFcnJvcnMuTUFYX0ZJTEVfTElNSVQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmlsZVNpemVFeGNlZWRlZChmaWxlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcy5lbWl0KFZhbGlkYXRlRXJyb3JzLk1BWF9GSUxFX1NJWkUpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBwcmV2aW91c0ZpbGVzO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKGZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzRmlsZXMoKSkge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRIYW5kbGVyLmVtaXQoeyBmaWxlczogdGhpcy5maWxlcyB9KTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRVcGxvYWQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZW1vdmVGaWxlKGV2ZW50OiBFdmVudCwgZmlsZTogRmlsZUR0byk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVzLnNwbGljZSh0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSksIDEpO1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZUNvdW50IC09IDE7XG4gICAgICAgIHRoaXMucmVtb3ZlRmlsZS5lbWl0KHsgZmlsZSB9KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DYW5jZWxVcGxvYWQoZXZlbnQ6IEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlQ291bnQgLT0gMTtcbiAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLmNhbmNlbFVwbG9hZC5lbWl0KGluZGV4KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Eb3dsb2FkRmlsZShldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUuZW1pdCh7IGluZGV4LCBhbmNob3I6IHRoaXMuYW5jaG9yIH0pO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzRmlsZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzICYmIHRoaXMuZmlsZXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZmlsZXMoZmlsZXM6IEZpbGVEdG9bXSkge1xuICAgICAgICB0aGlzLl9maWxlcyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNJbWFnZShmaWxlKSkge1xuICAgICAgICAgICAgICAgIGZpbGUub2JqZWN0VVJMID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlc1tpXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fZmlsZXMucHVzaChmaWxlc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpbGVzKCk6IEZpbGVEdG9bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmlsZVNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAoc2l6ZSAvIDEwMjQpLnRvRml4ZWQoMik7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW1hZ2UoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gL15pbWFnZVxcLy8udGVzdChmaWxlLnR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWZhbHRDYXRjaEVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5maWxlc1tpbmRleF0uZXJyb3IgPSBlcnI7XG4gICAgICAgIHRoaXMuZmlsZXNbaW5kZXhdLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImVycm9yIGluIHVwbG9hZCBmaWxlLiBEZXRhaWxzOiBcIiArIGVyci5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNGaWxlTGltaXRFeGNlZWRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZUxpbWl0ICYmIHRoaXMuZmlsZUxpbWl0IDwgdGhpcy5maWxlcy5sZW5ndGggKyB0aGlzLnVwbG9hZGVkRmlsZUNvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0ZpbGVTaXplRXhjZWVkZWQoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhGaWxlU2l6ZSAmJiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplO1xuICAgIH1cbn1cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFvQixTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU92QyxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBbUI7SUEwRTVCLFlBQTZCLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUF2RTdDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFTaEIsT0FBRSxHQUFHLGlCQUFpQixxQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBR3JELGdCQUFXLEdBQUcsaUJBQWlCLENBQUM7UUFHaEMsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFHeEIsZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFHekIsbUJBQWMsR0FBRyw2QkFBNkIsQ0FBQztRQWtCL0Msc0JBQWlCLEdBQUcsb0JBQW9CLENBQUM7UUFlekMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixrQkFBYSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZFLGVBQVUsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU5RCxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhE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QUFFLENBQUM7bURBQ0g7QUFHcEM7SUFEQyxLQUFLLEVBQUU7K0NBQ29EO0FBRzVEO0lBREMsS0FBSyxFQUFFO3dEQUMrQjtBQUd2QztJQURDLEtBQUssRUFBRTt3REFDdUI7QUFHL0I7SUFEQyxLQUFLLEVBQUU7d0RBQ3dCO0FBR2hDO0lBREMsS0FBSyxFQUFFOzJEQUM4QztBQUd0RDtJQURDLEtBQUssRUFBRTtxREFDaUI7QUFHekI7SUFEQyxLQUFLLEVBQUU7bURBQ2M7QUFHdEI7SUFEQyxLQUFLLEVBQUU7OERBQ3lCO0FBR2pDO0lBREMsS0FBSyxFQUFFO3dEQUNtQjtBQUczQjtJQURDLEtBQUssRUFBRTtzREFDaUI7QUFHekI7SUFEQyxLQUFLLEVBQUU7OERBQ3dDO0FBR2hEO0lBREMsS0FBSyxFQUFFOzZEQUN3QjtBQUdoQztJQURDLEtBQUssRUFBRTsyREFDc0I7QUFHOUI7SUFEQyxLQUFLLEVBQUU7NERBQ3VCO0FBRy9CO0lBREMsS0FBSyxFQUFFO3NEQUNzQjtBQUc5QjtJQURDLEtBQUssRUFBRTtxREFDZ0I7QUFHeEI7SUFEQyxNQUFNLEVBQUU7MERBQ3FFO0FBRTlFO0lBREMsTUFBTSxFQUFFO3VEQUM0RDtBQUVyRTtJQURDLE1BQU0sRUFBRTt5REFDc0Q7QUFFL0Q7SUFEQyxNQUFNLEVBQUU7eURBQ3FGO0FBRTlGO0lBREMsTUFBTSxFQUFFOzBEQUMrRDtBQWtCeEU7SUFEQyxZQUFZLENBQUMsZUFBZSxDQUFDO21EQUc3QjtBQXdERDtJQURDLEtBQUssRUFBRTtnREFRUDtBQXZKUSxtQkFBbUI7SUFML0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFDekIsK3VLQUEyQzs7S0FFOUMsQ0FBQztHQUNXLG1CQUFtQixDQW1ML0I7U0FuTFksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBGaWxlRHRvIH0gZnJvbSBcIi4vbW9kZWxzL2ZpbGUtZHRvXCI7XG5pbXBvcnQgeyBWYWxpZGF0ZUVycm9ycyB9IGZyb20gXCIuL21vZGVscy92YWxpZGF0ZS1lcnJvcnNcIjtcbmltcG9ydCB7IEJyZWFrcG9pbnRzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtZmlsZS11cGxvYWRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBwdWJsaWMgaW5wdXRWYWx1ZSA9IFwiXCI7XG5cbiAgICBAVmlld0NoaWxkKFwiaW5wdXRVcGxvYWRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFVwbG9hZDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoXCJhbmNob3JcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbmNob3I6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzLWZpbGUtdXBsb2FkLSR7RmlsZVVwbG9hZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2hvb3NlTGFiZWwgPSBcIkFuZXhhciBhcnF1aXZvc1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVtb3ZlTGFiZWwgPSBcIlJlbW92ZXJcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhbmNlbExhYmVsID0gXCJDYW5jZWxhclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3VjY2Vzc1Rvb2x0aXAgPSBcIkFycXVpdm8gYW5leGFkbyBjb20gc3VjZXNzb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY2NlcHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbEZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsZUxpbWl0OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxQcm9ncmVzcyA9IFwiQ2FycmVnYW5kbyBhcnF1aXZvXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxTdWNjZXNzOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWxFcnJvcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXJpYUxhYmVsUmVtb3ZlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Db250cm9sO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB1cGxvYWRIYW5kbGVyOiBFdmVudEVtaXR0ZXI8eyBmaWxlczogRmlsZUR0b1tdIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZW1vdmVGaWxlOiBFdmVudEVtaXR0ZXI8eyBmaWxlOiBGaWxlIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjYW5jZWxVcGxvYWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkb3dubG9hZEZpbGU6IEV2ZW50RW1pdHRlcjx7IGluZGV4OiBudW1iZXI7IGFuY2hvcjogRWxlbWVudFJlZiB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGVFcnJvczogRXZlbnRFbWl0dGVyPFZhbGlkYXRlRXJyb3JzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpc1NtYWxsRGV2aWNlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2ZpbGVzOiBGaWxlRHRvW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVXN1YnNjcmliZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVXN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgICBwdWJsaWMgb25SZXNpemUoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRmlsZVNlbGVjdChmaWxlczogRmlsZUR0b1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld0ZpbGVzOiBGaWxlRHRvW10gPSBbXTtcblxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRmlsZUxpbWl0RXhjZWVkZWQoZmlsZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRXJyb3MuZW1pdChWYWxpZGF0ZUVycm9ycy5NQVhfRklMRV9MSU1JVCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmlsZVNpemVFeGNlZWRlZChmaWxlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVFcnJvcy5lbWl0KFZhbGlkYXRlRXJyb3JzLk1BWF9GSUxFX1NJWkUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld0ZpbGVzLnB1c2goZmlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3RmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5jb25jYXQobmV3RmlsZXMpO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRIYW5kbGVyLmVtaXQoe1xuICAgICAgICAgICAgICAgIGZpbGVzOiBuZXdGaWxlcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5pbnB1dFVwbG9hZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblJlbW92ZUZpbGUoZmlsZTogRmlsZUR0byk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlSW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWRGaWxlcyA9IHRoaXMuZmlsZXMuc3BsaWNlKGZpbGVJbmRleCwgMSk7XG5cbiAgICAgICAgaWYgKHJlbW92ZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsZS5lbWl0KHsgZmlsZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNhbmNlbFVwbG9hZChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWRGaWxlcyA9IHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBpZiAocmVtb3ZlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWQuZW1pdChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Eb3dsb2FkRmlsZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlLmVtaXQoe1xuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBhbmNob3I6IHRoaXMuYW5jaG9yLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZmlsZXMoZmlsZXM6IEZpbGVEdG9bXSkge1xuICAgICAgICB0aGlzLl9maWxlcyA9IGZpbGVzLm1hcChmaWxlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzSW1hZ2UoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICBmaWxlLm9iamVjdFVSTCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwod2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsZXMoKTogRmlsZUR0b1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlKCkge1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICB0aGlzLmlzU21hbGxEZXZpY2UgPSB3aW5kb3dXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ltYWdlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIC9eaW1hZ2VcXC8vLnRlc3QoZmlsZS50eXBlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsZUxpbWl0RXhjZWVkZWQoZmlsZXM6IEZpbGVEdG9bXSkge1xuICAgICAgICBpZiAoIXRoaXMuZmlsZUxpbWl0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXMubGVuZ3RoICsgZmlsZXMubGVuZ3RoID4gdGhpcy5maWxlTGltaXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpbGVTaXplRXhjZWVkZWQoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZTtcbiAgICB9XG59XG4iXX0=
@@ -10,9 +10,14 @@ let FileUploadModule = class FileUploadModule {
10
10
  FileUploadModule = __decorate([
11
11
  NgModule({
12
12
  declarations: [FileUploadComponent],
13
- imports: [CommonModule, ButtonModule, TooltipModule, ProgressBarModule],
13
+ imports: [
14
+ CommonModule,
15
+ ButtonModule,
16
+ TooltipModule,
17
+ ProgressBarModule,
18
+ ],
14
19
  exports: [FileUploadComponent],
15
20
  })
16
21
  ], FileUploadModule);
17
22
  export { FileUploadModule };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTzlELElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0NBQUcsQ0FBQTtBQUFuQixnQkFBZ0I7SUFMNUIsUUFBUSxDQUFDO1FBQ04sWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7UUFDbkMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUM7UUFDdkUsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7S0FDakMsQ0FBQztHQUNXLGdCQUFnQixDQUFHO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcHJvZ3Jlc3NiYXJcIjtcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy90b29sdGlwXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tIFwiLi8uLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0ZpbGVVcGxvYWRDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgUHJvZ3Jlc3NCYXJNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtGaWxlVXBsb2FkQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZE1vZHVsZSB7fVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBWTlELElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0NBQUcsQ0FBQTtBQUFuQixnQkFBZ0I7SUFWNUIsUUFBUSxDQUFDO1FBQ04sWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7UUFDbkMsT0FBTyxFQUFFO1lBQ0wsWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhO1lBQ2IsaUJBQWlCO1NBQ3BCO1FBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7S0FDakMsQ0FBQztHQUNXLGdCQUFnQixDQUFHO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9wcm9ncmVzc2JhclwiO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gXCJwcmltZW5nL3Rvb2x0aXBcIjtcblxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSBcIi4vLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGVcIjtcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tIFwiLi9maWxlLXVwbG9hZC5jb21wb25lbnRcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtGaWxlVXBsb2FkQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBUb29sdGlwTW9kdWxlLFxuICAgICAgICBQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtGaWxlVXBsb2FkQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZE1vZHVsZSB7fVxuIl19
@@ -1,3 +1,4 @@
1
- export * from "./file-upload.component";
2
- export * from "./file-upload.module";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9maWxlLXVwbG9hZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9maWxlLXVwbG9hZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbGUtdXBsb2FkLm1vZHVsZVwiO1xuIl19
1
+ export { FileUploadComponent } from "./file-upload.component";
2
+ export { FileUploadModule } from "./file-upload.module";
3
+ export { ValidateErrors } from "./models/index";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9maWxlLXVwbG9hZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSBcIi4vZmlsZS11cGxvYWQuY29tcG9uZW50XCI7XG5leHBvcnQgeyBGaWxlVXBsb2FkTW9kdWxlIH0gZnJvbSBcIi4vZmlsZS11cGxvYWQubW9kdWxlXCI7XG5leHBvcnQgeyBGaWxlRHRvLCBWYWxpZGF0ZUVycm9ycyB9IGZyb20gXCIuL21vZGVscy9pbmRleFwiO1xuIl19
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kdG8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9maWxlLXVwbG9hZC9tb2RlbHMvZmlsZS1kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBTYWZlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlRHRvIGV4dGVuZHMgRmlsZSB7XG4gICBvYmplY3RJZD86IHN0cmluZztcbiAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICBvYmplY3RVUkw/OiBzdHJpbmcgfCBTYWZlVXJsO1xuICAgaXNVcGxvYWRpbmc/OiBib29sZWFuO1xuICAgc2F2ZWRGaWxlPzogYm9vbGVhbjtcbiAgIHByb2dyZXNzPzogbnVtYmVyO1xuICAgZXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZTtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export { ValidateErrors } from "./validate-errors";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9maWxlLXVwbG9hZC9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRmlsZUR0byB9IGZyb20gXCIuL2ZpbGUtZHRvXCI7XG5leHBvcnQgeyBWYWxpZGF0ZUVycm9ycyB9IGZyb20gXCIuL3ZhbGlkYXRlLWVycm9yc1wiO1xuIl19
@@ -0,0 +1,6 @@
1
+ export var ValidateErrors;
2
+ (function (ValidateErrors) {
3
+ ValidateErrors["MAX_FILE_SIZE"] = "MAX_FILE_SIZE";
4
+ ValidateErrors["MAX_FILE_LIMIT"] = "MAX_FILE_LIMIT";
5
+ })(ValidateErrors || (ValidateErrors = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtZXJyb3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvbW9kZWxzL3ZhbGlkYXRlLWVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3ZCLGlEQUErQixDQUFBO0lBQy9CLG1EQUFpQyxDQUFBO0FBQ3BDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFZhbGlkYXRlRXJyb3JzIHtcbiAgIE1BWF9GSUxFX1NJWkUgPSBcIk1BWF9GSUxFX1NJWkVcIixcbiAgIE1BWF9GSUxFX0xJTUlUID0gXCJNQVhfRklMRV9MSU1JVFwiLFxufVxuIl19