@indigina/ui-kit 1.1.0 → 1.1.2

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.
@@ -6,6 +6,7 @@ import * as i1 from "@angular/common";
6
6
  import * as i2 from "@progress/kendo-angular-upload";
7
7
  import * as i3 from "../kit-svg-icon/kit-svg-icon.component";
8
8
  import * as i4 from "@angular/forms";
9
+ import * as i5 from "../kit-button/kit-button.component";
9
10
  var KitFileUploadValidationError;
10
11
  (function (KitFileUploadValidationError) {
11
12
  KitFileUploadValidationError["INVALID_FILE_EXTENSION"] = "invalidFileExtension";
@@ -16,15 +17,27 @@ export class KitFileUploadComponent {
16
17
  /**
17
18
  * Defines the URL of the endpoint for the upload request
18
19
  */
19
- this.saveUrl = null;
20
+ this.saveUrl = '';
20
21
  /**
21
22
  * Defines the initial list of files
22
23
  */
23
24
  this.files = [];
25
+ /**
26
+ * Defines whether the component will have an action button
27
+ */
28
+ this.hasActionButton = false;
24
29
  /**
25
30
  * An action which is emitted when download file button clicked
26
31
  */
27
32
  this.fileDownloaded = new EventEmitter();
33
+ /**
34
+ * An action which is emitted when files are selected
35
+ */
36
+ this.filesSelected = new EventEmitter();
37
+ /**
38
+ * An action which is emitted when action button clicked
39
+ */
40
+ this.actionButtonClicked = new EventEmitter();
28
41
  this.KitSvgIcon = KitSvgIcon;
29
42
  this.KitButtonKind = KitButtonKind;
30
43
  this.kitFileUploadValidationErrorMap = {
@@ -35,6 +48,12 @@ export class KitFileUploadComponent {
35
48
  onFileDownload(file) {
36
49
  this.fileDownloaded.emit(file);
37
50
  }
51
+ onFilesSelect(files) {
52
+ this.filesSelected.emit(files);
53
+ }
54
+ onActionButtonClick() {
55
+ this.actionButtonClicked.emit();
56
+ }
38
57
  getValidationError(error) {
39
58
  const valueGetter = this.kitFileUploadValidationErrorMap[error];
40
59
  return valueGetter && valueGetter();
@@ -44,10 +63,10 @@ export class KitFileUploadComponent {
44
63
  }
45
64
  }
46
65
  KitFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
- KitFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: KitFileUploadComponent, selector: "kit-file-upload", inputs: { saveUrl: "saveUrl", files: "files", selectFilesLabel: "selectFilesLabel", dropzoneLabel: "dropzoneLabel", restrictions: "restrictions", restrictionsErrorMessages: "restrictionsErrorMessages" }, outputs: { fileDownloaded: "fileDownloaded" }, ngImport: i0, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [(ngModel)]=\"files\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.FileTemplateDirective, selector: "[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]" }, { kind: "component", type: i2.CustomMessagesComponent, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages" }, { kind: "component", type: i2.UploadComponent, selector: "kendo-upload", inputs: ["autoUpload", "batch", "withCredentials", "saveField", "saveHeaders", "saveMethod", "saveUrl", "responseType", "removeField", "removeHeaders", "removeMethod", "removeUrl", "chunkable", "concurrent", "multiple", "disabled", "showFileList", "tabindex", "zoneId", "tabIndex", "accept", "restrictions", "focusableId", "actionsLayout"], outputs: ["blur", "cancel", "clear", "complete", "error", "focus", "pause", "remove", "resume", "select", "success", "upload", "uploadProgress", "valueChange"], exportAs: ["kendoUpload"] }, { kind: "component", type: i3.KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
66
+ KitFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: KitFileUploadComponent, selector: "kit-file-upload", inputs: { saveUrl: "saveUrl", files: "files", selectFilesLabel: "selectFilesLabel", dropzoneLabel: "dropzoneLabel", restrictions: "restrictions", restrictionsErrorMessages: "restrictionsErrorMessages", hasActionButton: "hasActionButton", actionButtonLabel: "actionButtonLabel" }, outputs: { fileDownloaded: "fileDownloaded", filesSelected: "filesSelected", actionButtonClicked: "actionButtonClicked" }, ngImport: i0, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [autoUpload]=\"false\"\n [(ngModel)]=\"files\"\n (select)=\"onFilesSelect($event.files)\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n\n <div *ngIf=\"hasActionButton\" class=\"kit-file-upload-action\">\n <kit-button [label]=\"actionButtonLabel\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n [kind]=\"KitButtonKind.SMALL\"\n (clicked)=\"onActionButtonClick()\"\n ></kit-button>\n </div>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}.kit-file-upload .k-upload .k-actions{display:none}.kit-file-upload-action{display:flex;justify-content:flex-end;margin-top:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.FileTemplateDirective, selector: "[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]" }, { kind: "component", type: i2.CustomMessagesComponent, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages" }, { kind: "component", type: i2.UploadComponent, selector: "kendo-upload", inputs: ["autoUpload", "batch", "withCredentials", "saveField", "saveHeaders", "saveMethod", "saveUrl", "responseType", "removeField", "removeHeaders", "removeMethod", "removeUrl", "chunkable", "concurrent", "multiple", "disabled", "showFileList", "tabindex", "zoneId", "tabIndex", "accept", "restrictions", "focusableId", "actionsLayout"], outputs: ["blur", "cancel", "clear", "complete", "error", "focus", "pause", "remove", "resume", "select", "success", "upload", "uploadProgress", "valueChange"], exportAs: ["kendoUpload"] }, { kind: "component", type: i3.KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "kind", "iconPosition", "buttonClass"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadComponent, decorators: [{
49
68
  type: Component,
50
- args: [{ selector: 'kit-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [(ngModel)]=\"files\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}\n"] }]
69
+ args: [{ selector: 'kit-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [autoUpload]=\"false\"\n [(ngModel)]=\"files\"\n (select)=\"onFilesSelect($event.files)\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n\n <div *ngIf=\"hasActionButton\" class=\"kit-file-upload-action\">\n <kit-button [label]=\"actionButtonLabel\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n [kind]=\"KitButtonKind.SMALL\"\n (clicked)=\"onActionButtonClick()\"\n ></kit-button>\n </div>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}.kit-file-upload .k-upload .k-actions{display:none}.kit-file-upload-action{display:flex;justify-content:flex-end;margin-top:8px}\n"] }]
51
70
  }], propDecorators: { saveUrl: [{
52
71
  type: Input
53
72
  }], files: [{
@@ -60,7 +79,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
60
79
  type: Input
61
80
  }], restrictionsErrorMessages: [{
62
81
  type: Input
82
+ }], hasActionButton: [{
83
+ type: Input
84
+ }], actionButtonLabel: [{
85
+ type: Input
63
86
  }], fileDownloaded: [{
64
87
  type: Output
88
+ }], filesSelected: [{
89
+ type: Output
90
+ }], actionButtonClicked: [{
91
+ type: Output
65
92
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMva2l0LWZpbGUtdXBsb2FkL2tpdC1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1maWxlLXVwbG9hZC9raXQtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7QUFHaEUsSUFBSyw0QkFHSjtBQUhELFdBQUssNEJBQTRCO0lBQy9CLCtFQUErQyxDQUFBO0lBQy9DLDRFQUE0QyxDQUFBO0FBQzlDLENBQUMsRUFISSw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBR2hDO0FBU0QsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVFFOztXQUVHO1FBQ00sWUFBTyxHQUFrQixJQUFJLENBQUM7UUFFdkM7O1dBRUc7UUFDTSxVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQXNCekM7O1dBRUc7UUFDTyxtQkFBYyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUV6RixlQUFVLEdBQXNCLFVBQVUsQ0FBQztRQUMzQyxrQkFBYSxHQUF5QixhQUFhLENBQUM7UUFDcEQsb0NBQStCLEdBQWlDO1lBQ3ZFLENBQUMsNEJBQTRCLENBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsaUJBQWlCLElBQUksRUFBRTtZQUNwSCxDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLFdBQVcsSUFBSSxFQUFFO1NBQzlHLENBQUM7S0FjSDtJQVpDLGNBQWMsQ0FBQyxJQUF1QjtRQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixNQUFNLFdBQVcsR0FBaUIsSUFBSSxDQUFDLCtCQUErQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLE9BQU8sV0FBVyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBMEI7UUFDdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzttSEF0RFUsc0JBQXNCO3VHQUF0QixzQkFBc0Isa1RDakJuQyw2dENBZ0NBOzJGRGZhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFNNUIsT0FBTztzQkFBZixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFLSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2l0QnV0dG9uS2luZCB9IGZyb20gJy4uL2tpdC1idXR0b24va2l0LWJ1dHRvbi5jb25zdCc7XG5pbXBvcnQgeyBLaXRTdmdJY29uIH0gZnJvbSAnLi4va2l0LXN2Zy1pY29uL2tpdC1zdmctaWNvbi5jb25zdCc7XG5pbXBvcnQgeyBLaXRGaWxlVXBsb2FkRmlsZSwgS2l0RmlsZVVwbG9hZEZpbGVSZXN0cmljdGlvbnMsIEtpdEZpbGVVcGxvYWRGaWxlUmVzdHJpY3Rpb25zTWVzc2FnZXMgfSBmcm9tICcuL2tpdC1maWxlLXVwbG9hZC5tb2RlbCc7XG5cbmVudW0gS2l0RmlsZVVwbG9hZFZhbGlkYXRpb25FcnJvciB7XG4gIElOVkFMSURfRklMRV9FWFRFTlNJT04gPSAnaW52YWxpZEZpbGVFeHRlbnNpb24nLFxuICBJTlZBTElEX01BWF9GSUxFX1NJWkUgPSAnaW52YWxpZE1heEZpbGVTaXplJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2l0LWZpbGUtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2tpdC1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2tpdC1maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgS2l0RmlsZVVwbG9hZENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBVUkwgb2YgdGhlIGVuZHBvaW50IGZvciB0aGUgdXBsb2FkIHJlcXVlc3RcbiAgICovXG4gIEBJbnB1dCgpIHNhdmVVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBpbml0aWFsIGxpc3Qgb2YgZmlsZXNcbiAgICovXG4gIEBJbnB1dCgpIGZpbGVzOiBLaXRGaWxlVXBsb2FkRmlsZVtdID0gW107XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBsYWJlbCBmb3IgXCJTZWxlY3QgZmlsZXNcIiBidXR0b25cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdEZpbGVzTGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBsYWJlbCBmb3IgZHJvcHpvbmVcbiAgICovXG4gIEBJbnB1dCgpIGRyb3B6b25lTGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHJlc3RyaWN0aW9ucyBmb3Igc2VsZWN0ZWQgZmlsZXNcbiAgICovXG4gIEBJbnB1dCgpIHJlc3RyaWN0aW9ucz86IEtpdEZpbGVVcGxvYWRGaWxlUmVzdHJpY3Rpb25zO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgbGlzdCBvZiBlcnJvciBtZXNzYWdlcyBmb3Igc2VsZWN0ZWQgZmlsZXNcbiAgICovXG4gIEBJbnB1dCgpIHJlc3RyaWN0aW9uc0Vycm9yTWVzc2FnZXM/OiBLaXRGaWxlVXBsb2FkRmlsZVJlc3RyaWN0aW9uc01lc3NhZ2VzO1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCB3aGVuIGRvd25sb2FkIGZpbGUgYnV0dG9uIGNsaWNrZWRcbiAgICovXG4gIEBPdXRwdXQoKSBmaWxlRG93bmxvYWRlZDogRXZlbnRFbWl0dGVyPEtpdEZpbGVVcGxvYWRGaWxlPiA9IG5ldyBFdmVudEVtaXR0ZXI8S2l0RmlsZVVwbG9hZEZpbGU+KCk7XG5cbiAgcmVhZG9ubHkgS2l0U3ZnSWNvbjogdHlwZW9mIEtpdFN2Z0ljb24gPSBLaXRTdmdJY29uO1xuICByZWFkb25seSBLaXRCdXR0b25LaW5kOiB0eXBlb2YgS2l0QnV0dG9uS2luZCA9IEtpdEJ1dHRvbktpbmQ7XG4gIHJlYWRvbmx5IGtpdEZpbGVVcGxvYWRWYWxpZGF0aW9uRXJyb3JNYXA6IFJlY29yZDxzdHJpbmcsICgpID0+IHN0cmluZz4gPSB7XG4gICAgW0tpdEZpbGVVcGxvYWRWYWxpZGF0aW9uRXJyb3IuSU5WQUxJRF9GSUxFX0VYVEVOU0lPTl06ICgpID0+IHRoaXMucmVzdHJpY3Rpb25zRXJyb3JNZXNzYWdlcz8uYWxsb3dlZEV4dGVuc2lvbnMgfHwgJycsXG4gICAgW0tpdEZpbGVVcGxvYWRWYWxpZGF0aW9uRXJyb3IuSU5WQUxJRF9NQVhfRklMRV9TSVpFXTogKCkgPT4gdGhpcy5yZXN0cmljdGlvbnNFcnJvck1lc3NhZ2VzPy5tYXhGaWxlU2l6ZSB8fCAnJyxcbiAgfTtcblxuICBvbkZpbGVEb3dubG9hZChmaWxlOiBLaXRGaWxlVXBsb2FkRmlsZSk6IHZvaWQge1xuICAgIHRoaXMuZmlsZURvd25sb2FkZWQuZW1pdChmaWxlKTtcbiAgfVxuXG4gIGdldFZhbGlkYXRpb25FcnJvcihlcnJvcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZUdldHRlcjogKCkgPT4gc3RyaW5nID0gdGhpcy5raXRGaWxlVXBsb2FkVmFsaWRhdGlvbkVycm9yTWFwW2Vycm9yXTtcbiAgICByZXR1cm4gdmFsdWVHZXR0ZXIgJiYgdmFsdWVHZXR0ZXIoKTtcbiAgfVxuXG4gIGdldFR5cGVkRmlsZXMoZmlsZXM6IEtpdEZpbGVVcGxvYWRGaWxlW10pOiBLaXRGaWxlVXBsb2FkRmlsZVtdIHtcbiAgICByZXR1cm4gZmlsZXM7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJraXQtZmlsZS11cGxvYWRcIj5cbiAgPGtlbmRvLXVwbG9hZCBbc2F2ZVVybF09XCJzYXZlVXJsXCJcbiAgICAgICAgICAgICAgICBbd2l0aENyZWRlbnRpYWxzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbcmVzdHJpY3Rpb25zXT1cInJlc3RyaWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWxlc1wiPlxuICAgIDxrZW5kby11cGxvYWQtbWVzc2FnZXMgW3NlbGVjdF09XCJzZWxlY3RGaWxlc0xhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcm9wRmlsZXNIZXJlXT1cImRyb3B6b25lTGFiZWxcIlxuICAgID48L2tlbmRvLXVwbG9hZC1tZXNzYWdlcz5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1VwbG9hZEZpbGVUZW1wbGF0ZSBsZXQtZmlsZXM+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0VHlwZWRGaWxlcyhmaWxlcyk7IGxldCBmaWxlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaW5mb1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbmFtZVwiPlxuICAgICAgICAgICAgICB7eyBmaWxlLm5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiBmaWxlLnZhbGlkYXRpb25FcnJvcnNcIiBjbGFzcz1cImZpbGUtdmFsaWRhdGlvbi1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgIHt7IGdldFZhbGlkYXRpb25FcnJvcihlcnJvcikgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZmlsZS52YWxpZGF0aW9uRXJyb3JzXCIgY2xhc3M9XCJkb3dubG9hZC1idXR0b25cIj5cbiAgICAgICAgICAgIDxraXQtc3ZnLWljb24gY2xhc3M9XCJkb3dubG9hZC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIktpdFN2Z0ljb24uRE9XTkxPQURcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWxlRG93bmxvYWQoZmlsZSlcIlxuICAgICAgICAgICAgPjwva2l0LXN2Zy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwva2VuZG8tdXBsb2FkPlxuPC9kaXY+XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMva2l0LWZpbGUtdXBsb2FkL2tpdC1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1maWxlLXVwbG9hZC9raXQtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0FBR2hFLElBQUssNEJBR0o7QUFIRCxXQUFLLDRCQUE0QjtJQUMvQiwrRUFBK0MsQ0FBQTtJQUMvQyw0RUFBNEMsQ0FBQTtBQUM5QyxDQUFDLEVBSEksNEJBQTRCLEtBQTVCLDRCQUE0QixRQUdoQztBQVNELE1BQU0sT0FBTyxzQkFBc0I7SUFQbkM7UUFRRTs7V0FFRztRQUNNLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFOUI7O1dBRUc7UUFDTSxVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQXNCekM7O1dBRUc7UUFDTSxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQU8xQzs7V0FFRztRQUNPLG1CQUFjLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBRWxHOztXQUVHO1FBQ08sa0JBQWEsR0FBc0MsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFckc7O1dBRUc7UUFDTyx3QkFBbUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVwRSxlQUFVLEdBQXNCLFVBQVUsQ0FBQztRQUMzQyxrQkFBYSxHQUF5QixhQUFhLENBQUM7UUFDcEQsb0NBQStCLEdBQWlDO1lBQ3ZFLENBQUMsNEJBQTRCLENBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsaUJBQWlCLElBQUksRUFBRTtZQUNwSCxDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLFdBQVcsSUFBSSxFQUFFO1NBQzlHLENBQUM7S0FzQkg7SUFwQkMsY0FBYyxDQUFDLElBQXVCO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBMEI7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsTUFBTSxXQUFXLEdBQWlCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxPQUFPLFdBQVcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQTBCO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7bUhBbEZVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDBjQ2pCbkMsdW1EQTBDQTsyRkR6QmEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU01QixPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtJLGNBQWM7c0JBQXZCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLaXRCdXR0b25LaW5kIH0gZnJvbSAnLi4va2l0LWJ1dHRvbi9raXQtYnV0dG9uLmNvbnN0JztcbmltcG9ydCB7IEtpdFN2Z0ljb24gfSBmcm9tICcuLi9raXQtc3ZnLWljb24va2l0LXN2Zy1pY29uLmNvbnN0JztcbmltcG9ydCB7IEtpdEZpbGVVcGxvYWRGaWxlLCBLaXRGaWxlVXBsb2FkRmlsZVJlc3RyaWN0aW9ucywgS2l0RmlsZVVwbG9hZEZpbGVSZXN0cmljdGlvbnNNZXNzYWdlcyB9IGZyb20gJy4va2l0LWZpbGUtdXBsb2FkLm1vZGVsJztcblxuZW51bSBLaXRGaWxlVXBsb2FkVmFsaWRhdGlvbkVycm9yIHtcbiAgSU5WQUxJRF9GSUxFX0VYVEVOU0lPTiA9ICdpbnZhbGlkRmlsZUV4dGVuc2lvbicsXG4gIElOVkFMSURfTUFYX0ZJTEVfU0laRSA9ICdpbnZhbGlkTWF4RmlsZVNpemUnLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXQtZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4va2l0LWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4va2l0LWZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBLaXRGaWxlVXBsb2FkQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIFVSTCBvZiB0aGUgZW5kcG9pbnQgZm9yIHRoZSB1cGxvYWQgcmVxdWVzdFxuICAgKi9cbiAgQElucHV0KCkgc2F2ZVVybDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGluaXRpYWwgbGlzdCBvZiBmaWxlc1xuICAgKi9cbiAgQElucHV0KCkgZmlsZXM6IEtpdEZpbGVVcGxvYWRGaWxlW10gPSBbXTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIGxhYmVsIGZvciBcIlNlbGVjdCBmaWxlc1wiIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0RmlsZXNMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBhIGxhYmVsIGZvciBkcm9wem9uZVxuICAgKi9cbiAgQElucHV0KCkgZHJvcHpvbmVMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgcmVzdHJpY3Rpb25zIGZvciBzZWxlY3RlZCBmaWxlc1xuICAgKi9cbiAgQElucHV0KCkgcmVzdHJpY3Rpb25zPzogS2l0RmlsZVVwbG9hZEZpbGVSZXN0cmljdGlvbnM7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBsaXN0IG9mIGVycm9yIG1lc3NhZ2VzIGZvciBzZWxlY3RlZCBmaWxlc1xuICAgKi9cbiAgQElucHV0KCkgcmVzdHJpY3Rpb25zRXJyb3JNZXNzYWdlcz86IEtpdEZpbGVVcGxvYWRGaWxlUmVzdHJpY3Rpb25zTWVzc2FnZXM7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgd2hldGhlciB0aGUgY29tcG9uZW50IHdpbGwgaGF2ZSBhbiBhY3Rpb24gYnV0dG9uXG4gICAqL1xuICBASW5wdXQoKSBoYXNBY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhbiBhY3Rpb24gYnV0dG9uIGxhYmVsXG4gICAqL1xuICBASW5wdXQoKSBhY3Rpb25CdXR0b25MYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYWN0aW9uIHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiBkb3dubG9hZCBmaWxlIGJ1dHRvbiBjbGlja2VkXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsZURvd25sb2FkZWQ6IEV2ZW50RW1pdHRlcjxLaXRGaWxlVXBsb2FkRmlsZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEtpdEZpbGVVcGxvYWRGaWxlPigpO1xuXG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gd2hpY2ggaXMgZW1pdHRlZCB3aGVuIGZpbGVzIGFyZSBzZWxlY3RlZFxuICAgKi9cbiAgQE91dHB1dCgpIGZpbGVzU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxLaXRGaWxlVXBsb2FkRmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8S2l0RmlsZVVwbG9hZEZpbGVbXT4oKTtcblxuICAvKipcbiAgICogQW4gYWN0aW9uIHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiBhY3Rpb24gYnV0dG9uIGNsaWNrZWRcbiAgICovXG4gIEBPdXRwdXQoKSBhY3Rpb25CdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgS2l0U3ZnSWNvbjogdHlwZW9mIEtpdFN2Z0ljb24gPSBLaXRTdmdJY29uO1xuICByZWFkb25seSBLaXRCdXR0b25LaW5kOiB0eXBlb2YgS2l0QnV0dG9uS2luZCA9IEtpdEJ1dHRvbktpbmQ7XG4gIHJlYWRvbmx5IGtpdEZpbGVVcGxvYWRWYWxpZGF0aW9uRXJyb3JNYXA6IFJlY29yZDxzdHJpbmcsICgpID0+IHN0cmluZz4gPSB7XG4gICAgW0tpdEZpbGVVcGxvYWRWYWxpZGF0aW9uRXJyb3IuSU5WQUxJRF9GSUxFX0VYVEVOU0lPTl06ICgpID0+IHRoaXMucmVzdHJpY3Rpb25zRXJyb3JNZXNzYWdlcz8uYWxsb3dlZEV4dGVuc2lvbnMgfHwgJycsXG4gICAgW0tpdEZpbGVVcGxvYWRWYWxpZGF0aW9uRXJyb3IuSU5WQUxJRF9NQVhfRklMRV9TSVpFXTogKCkgPT4gdGhpcy5yZXN0cmljdGlvbnNFcnJvck1lc3NhZ2VzPy5tYXhGaWxlU2l6ZSB8fCAnJyxcbiAgfTtcblxuICBvbkZpbGVEb3dubG9hZChmaWxlOiBLaXRGaWxlVXBsb2FkRmlsZSk6IHZvaWQge1xuICAgIHRoaXMuZmlsZURvd25sb2FkZWQuZW1pdChmaWxlKTtcbiAgfVxuXG4gIG9uRmlsZXNTZWxlY3QoZmlsZXM6IEtpdEZpbGVVcGxvYWRGaWxlW10pOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzU2VsZWN0ZWQuZW1pdChmaWxlcyk7XG4gIH1cblxuICBvbkFjdGlvbkJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBnZXRWYWxpZGF0aW9uRXJyb3IoZXJyb3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWVHZXR0ZXI6ICgpID0+IHN0cmluZyA9IHRoaXMua2l0RmlsZVVwbG9hZFZhbGlkYXRpb25FcnJvck1hcFtlcnJvcl07XG4gICAgcmV0dXJuIHZhbHVlR2V0dGVyICYmIHZhbHVlR2V0dGVyKCk7XG4gIH1cblxuICBnZXRUeXBlZEZpbGVzKGZpbGVzOiBLaXRGaWxlVXBsb2FkRmlsZVtdKTogS2l0RmlsZVVwbG9hZEZpbGVbXSB7XG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwia2l0LWZpbGUtdXBsb2FkXCI+XG4gIDxrZW5kby11cGxvYWQgW3NhdmVVcmxdPVwic2F2ZVVybFwiXG4gICAgICAgICAgICAgICAgW3dpdGhDcmVkZW50aWFsc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3Jlc3RyaWN0aW9uc109XCJyZXN0cmljdGlvbnNcIlxuICAgICAgICAgICAgICAgIFthdXRvVXBsb2FkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbGVzXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0KT1cIm9uRmlsZXNTZWxlY3QoJGV2ZW50LmZpbGVzKVwiPlxuICAgIDxrZW5kby11cGxvYWQtbWVzc2FnZXMgW3NlbGVjdF09XCJzZWxlY3RGaWxlc0xhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcm9wRmlsZXNIZXJlXT1cImRyb3B6b25lTGFiZWxcIlxuICAgID48L2tlbmRvLXVwbG9hZC1tZXNzYWdlcz5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1VwbG9hZEZpbGVUZW1wbGF0ZSBsZXQtZmlsZXM+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0VHlwZWRGaWxlcyhmaWxlcyk7IGxldCBmaWxlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaW5mb1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbmFtZVwiPlxuICAgICAgICAgICAgICB7eyBmaWxlLm5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiBmaWxlLnZhbGlkYXRpb25FcnJvcnNcIiBjbGFzcz1cImZpbGUtdmFsaWRhdGlvbi1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgIHt7IGdldFZhbGlkYXRpb25FcnJvcihlcnJvcikgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZmlsZS52YWxpZGF0aW9uRXJyb3JzXCIgY2xhc3M9XCJkb3dubG9hZC1idXR0b25cIj5cbiAgICAgICAgICAgIDxraXQtc3ZnLWljb24gY2xhc3M9XCJkb3dubG9hZC1idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIktpdFN2Z0ljb24uRE9XTkxPQURcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWxlRG93bmxvYWQoZmlsZSlcIlxuICAgICAgICAgICAgPjwva2l0LXN2Zy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwva2VuZG8tdXBsb2FkPlxuXG4gIDxkaXYgKm5nSWY9XCJoYXNBY3Rpb25CdXR0b25cIiBjbGFzcz1cImtpdC1maWxlLXVwbG9hZC1hY3Rpb25cIj5cbiAgICA8a2l0LWJ1dHRvbiBbbGFiZWxdPVwiYWN0aW9uQnV0dG9uTGFiZWxcIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cIktpdFN2Z0ljb24uRE9XTkxPQURcIlxuICAgICAgICAgICAgICAgIFtraW5kXT1cIktpdEJ1dHRvbktpbmQuU01BTExcIlxuICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQWN0aW9uQnV0dG9uQ2xpY2soKVwiXG4gICAgPjwva2l0LWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -5,6 +5,7 @@ import { UploadModule } from '@progress/kendo-angular-upload';
5
5
  import { KitSvgIconModule } from '../kit-svg-icon/kit-svg-icon.module';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import { HttpClientModule } from '@angular/common/http';
8
+ import { KitButtonModule } from '../kit-button/kit-button.module';
8
9
  import * as i0 from "@angular/core";
9
10
  export class KitFileUploadModule {
10
11
  }
@@ -13,12 +14,14 @@ KitFileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
13
14
  UploadModule,
14
15
  KitSvgIconModule,
15
16
  FormsModule,
16
- HttpClientModule], exports: [KitFileUploadComponent] });
17
+ HttpClientModule,
18
+ KitButtonModule], exports: [KitFileUploadComponent] });
17
19
  KitFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadModule, imports: [CommonModule,
18
20
  UploadModule,
19
21
  KitSvgIconModule,
20
22
  FormsModule,
21
- HttpClientModule] });
23
+ HttpClientModule,
24
+ KitButtonModule] });
22
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadModule, decorators: [{
23
26
  type: NgModule,
24
27
  args: [{
@@ -31,10 +34,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
31
34
  KitSvgIconModule,
32
35
  FormsModule,
33
36
  HttpClientModule,
37
+ KitButtonModule,
34
38
  ],
35
39
  exports: [
36
40
  KitFileUploadComponent,
37
41
  ],
38
42
  }]
39
43
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LWZpbGUtdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMva2l0LWZpbGUtdXBsb2FkL2tpdC1maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFpQnhELE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFiNUIsc0JBQXNCLGFBR3RCLFlBQVk7UUFDWixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLFdBQVc7UUFDWCxnQkFBZ0IsYUFHaEIsc0JBQXNCO2lIQUdiLG1CQUFtQixZQVY1QixZQUFZO1FBQ1osWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsZ0JBQWdCOzJGQU1QLG1CQUFtQjtrQkFmL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBLaXRGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9raXQtZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFVwbG9hZE1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXVwbG9hZCc7XG5pbXBvcnQgeyBLaXRTdmdJY29uTW9kdWxlIH0gZnJvbSAnLi4va2l0LXN2Zy1pY29uL2tpdC1zdmctaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBLaXRGaWxlVXBsb2FkQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVwbG9hZE1vZHVsZSxcbiAgICBLaXRTdmdJY29uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBLaXRGaWxlVXBsb2FkQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBLaXRGaWxlVXBsb2FkTW9kdWxlIHtcbn1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LWZpbGUtdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMva2l0LWZpbGUtdXBsb2FkL2tpdC1maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBa0JsRSxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBZDVCLHNCQUFzQixhQUd0QixZQUFZO1FBQ1osWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLGVBQWUsYUFHZixzQkFBc0I7aUhBR2IsbUJBQW1CLFlBWDVCLFlBQVk7UUFDWixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsZUFBZTsyRkFNTixtQkFBbUI7a0JBaEIvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEtpdEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2tpdC1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItdXBsb2FkJztcbmltcG9ydCB7IEtpdFN2Z0ljb25Nb2R1bGUgfSBmcm9tICcuLi9raXQtc3ZnLWljb24va2l0LXN2Zy1pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBLaXRCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9raXQtYnV0dG9uL2tpdC1idXR0b24ubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgS2l0RmlsZVVwbG9hZENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVcGxvYWRNb2R1bGUsXG4gICAgS2l0U3ZnSWNvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEtpdEJ1dHRvbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEtpdEZpbGVVcGxvYWRDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEtpdEZpbGVVcGxvYWRNb2R1bGUge1xufVxuIl19
@@ -3305,15 +3305,27 @@ class KitFileUploadComponent {
3305
3305
  /**
3306
3306
  * Defines the URL of the endpoint for the upload request
3307
3307
  */
3308
- this.saveUrl = null;
3308
+ this.saveUrl = '';
3309
3309
  /**
3310
3310
  * Defines the initial list of files
3311
3311
  */
3312
3312
  this.files = [];
3313
+ /**
3314
+ * Defines whether the component will have an action button
3315
+ */
3316
+ this.hasActionButton = false;
3313
3317
  /**
3314
3318
  * An action which is emitted when download file button clicked
3315
3319
  */
3316
3320
  this.fileDownloaded = new EventEmitter();
3321
+ /**
3322
+ * An action which is emitted when files are selected
3323
+ */
3324
+ this.filesSelected = new EventEmitter();
3325
+ /**
3326
+ * An action which is emitted when action button clicked
3327
+ */
3328
+ this.actionButtonClicked = new EventEmitter();
3317
3329
  this.KitSvgIcon = KitSvgIcon;
3318
3330
  this.KitButtonKind = KitButtonKind;
3319
3331
  this.kitFileUploadValidationErrorMap = {
@@ -3324,6 +3336,12 @@ class KitFileUploadComponent {
3324
3336
  onFileDownload(file) {
3325
3337
  this.fileDownloaded.emit(file);
3326
3338
  }
3339
+ onFilesSelect(files) {
3340
+ this.filesSelected.emit(files);
3341
+ }
3342
+ onActionButtonClick() {
3343
+ this.actionButtonClicked.emit();
3344
+ }
3327
3345
  getValidationError(error) {
3328
3346
  const valueGetter = this.kitFileUploadValidationErrorMap[error];
3329
3347
  return valueGetter && valueGetter();
@@ -3333,10 +3351,10 @@ class KitFileUploadComponent {
3333
3351
  }
3334
3352
  }
3335
3353
  KitFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3336
- KitFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: KitFileUploadComponent, selector: "kit-file-upload", inputs: { saveUrl: "saveUrl", files: "files", selectFilesLabel: "selectFilesLabel", dropzoneLabel: "dropzoneLabel", restrictions: "restrictions", restrictionsErrorMessages: "restrictionsErrorMessages" }, outputs: { fileDownloaded: "fileDownloaded" }, ngImport: i0, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [(ngModel)]=\"files\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$3.FileTemplateDirective, selector: "[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]" }, { kind: "component", type: i2$3.CustomMessagesComponent, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages" }, { kind: "component", type: i2$3.UploadComponent, selector: "kendo-upload", inputs: ["autoUpload", "batch", "withCredentials", "saveField", "saveHeaders", "saveMethod", "saveUrl", "responseType", "removeField", "removeHeaders", "removeMethod", "removeUrl", "chunkable", "concurrent", "multiple", "disabled", "showFileList", "tabindex", "zoneId", "tabIndex", "accept", "restrictions", "focusableId", "actionsLayout"], outputs: ["blur", "cancel", "clear", "complete", "error", "focus", "pause", "remove", "resume", "select", "success", "upload", "uploadProgress", "valueChange"], exportAs: ["kendoUpload"] }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3354
+ KitFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: KitFileUploadComponent, selector: "kit-file-upload", inputs: { saveUrl: "saveUrl", files: "files", selectFilesLabel: "selectFilesLabel", dropzoneLabel: "dropzoneLabel", restrictions: "restrictions", restrictionsErrorMessages: "restrictionsErrorMessages", hasActionButton: "hasActionButton", actionButtonLabel: "actionButtonLabel" }, outputs: { fileDownloaded: "fileDownloaded", filesSelected: "filesSelected", actionButtonClicked: "actionButtonClicked" }, ngImport: i0, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [autoUpload]=\"false\"\n [(ngModel)]=\"files\"\n (select)=\"onFilesSelect($event.files)\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n\n <div *ngIf=\"hasActionButton\" class=\"kit-file-upload-action\">\n <kit-button [label]=\"actionButtonLabel\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n [kind]=\"KitButtonKind.SMALL\"\n (clicked)=\"onActionButtonClick()\"\n ></kit-button>\n </div>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}.kit-file-upload .k-upload .k-actions{display:none}.kit-file-upload-action{display:flex;justify-content:flex-end;margin-top:8px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$3.FileTemplateDirective, selector: "[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]" }, { kind: "component", type: i2$3.CustomMessagesComponent, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages" }, { kind: "component", type: i2$3.UploadComponent, selector: "kendo-upload", inputs: ["autoUpload", "batch", "withCredentials", "saveField", "saveHeaders", "saveMethod", "saveUrl", "responseType", "removeField", "removeHeaders", "removeMethod", "removeUrl", "chunkable", "concurrent", "multiple", "disabled", "showFileList", "tabindex", "zoneId", "tabIndex", "accept", "restrictions", "focusableId", "actionsLayout"], outputs: ["blur", "cancel", "clear", "complete", "error", "focus", "pause", "remove", "resume", "select", "success", "upload", "uploadProgress", "valueChange"], exportAs: ["kendoUpload"] }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "kind", "iconPosition", "buttonClass"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3337
3355
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadComponent, decorators: [{
3338
3356
  type: Component,
3339
- args: [{ selector: 'kit-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [(ngModel)]=\"files\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}\n"] }]
3357
+ args: [{ selector: 'kit-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"kit-file-upload\">\n <kendo-upload [saveUrl]=\"saveUrl\"\n [withCredentials]=\"false\"\n [restrictions]=\"restrictions\"\n [autoUpload]=\"false\"\n [(ngModel)]=\"files\"\n (select)=\"onFilesSelect($event.files)\">\n <kendo-upload-messages [select]=\"selectFilesLabel\"\n [dropFilesHere]=\"dropzoneLabel\"\n ></kendo-upload-messages>\n\n <ng-template kendoUploadFileTemplate let-files>\n <ng-container *ngIf=\"getTypedFiles(files); let files\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"file-info\">\n <div class=\"file-name\">\n {{ file.name }}\n </div>\n\n <div *ngFor=\"let error of file.validationErrors\" class=\"file-validation-message\">\n {{ getValidationError(error) }}\n </div>\n </div>\n <button *ngIf=\"!file.validationErrors\" class=\"download-button\">\n <kit-svg-icon class=\"download-button-icon\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n (click)=\"onFileDownload(file)\"\n ></kit-svg-icon>\n </button>\n </ng-container>\n </ng-container>\n </ng-template>\n </kendo-upload>\n\n <div *ngIf=\"hasActionButton\" class=\"kit-file-upload-action\">\n <kit-button [label]=\"actionButtonLabel\"\n [icon]=\"KitSvgIcon.DOWNLOAD\"\n [kind]=\"KitButtonKind.SMALL\"\n (clicked)=\"onActionButtonClick()\"\n ></kit-button>\n </div>\n</div>\n", styles: [".kit-file-upload .k-upload{display:flex;flex-direction:column;gap:8px;border:none}.kit-file-upload .k-upload .k-upload-button{position:relative;padding:0;display:flex;align-items:center;min-width:initial;gap:6px;color:var(--ui-kit-color-main);font-weight:500;font-size:14px;border:none;background:none}.kit-file-upload .k-upload .k-upload-button:focus{box-shadow:none}.kit-file-upload .k-upload .k-upload-button:hover .k-button-text{text-decoration:underline}.kit-file-upload .k-upload .k-upload-button:after{content:\"\\e11e\";display:inline-block;position:static;opacity:1;line-height:1;font-size:16px;font-family:WebComponentsIcons,sans-serif}.kit-file-upload .k-upload .k-dropzone{padding:12px 10px;border:2px dashed transparent;background:none}.kit-file-upload .k-upload .k-dropzone.k-hover{border-color:var(--ui-kit-color-main);background:none}.kit-file-upload .k-upload .k-upload-status{display:none}.kit-file-upload .k-upload .k-upload-status+.k-dropzone-hint{display:block}.kit-file-upload .k-upload .k-upload-files{display:flex;flex-direction:column;gap:8px;max-height:initial;border:none}.kit-file-upload .k-upload .k-upload-files .k-file{align-items:center;padding:10px;border:none;background:var(--ui-kit-color-grey-8)}.kit-file-upload .k-upload .k-upload-files .k-file.k-focus{box-shadow:none}.kit-file-upload .k-upload .file-info{flex:1}.kit-file-upload .k-upload .file-name{color:var(--ui-kit-color-cobalt);font-size:14px}.kit-file-upload .k-upload .file-validation-message{color:var(--ui-kit-color-red);font-size:12px}.kit-file-upload .k-upload .download-button{padding:0;border:none;background:none;cursor:pointer}.kit-file-upload .k-upload .download-button:hover .download-button-icon{stroke:var(--ui-kit-color-main)}.kit-file-upload .k-upload .download-button-icon{display:block;width:24px;height:24px;stroke:var(--ui-kit-color-grey-7);fill:none}.kit-file-upload .k-upload .k-actions{display:none}.kit-file-upload-action{display:flex;justify-content:flex-end;margin-top:8px}\n"] }]
3340
3358
  }], propDecorators: { saveUrl: [{
3341
3359
  type: Input
3342
3360
  }], files: [{
@@ -3349,8 +3367,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3349
3367
  type: Input
3350
3368
  }], restrictionsErrorMessages: [{
3351
3369
  type: Input
3370
+ }], hasActionButton: [{
3371
+ type: Input
3372
+ }], actionButtonLabel: [{
3373
+ type: Input
3352
3374
  }], fileDownloaded: [{
3353
3375
  type: Output
3376
+ }], filesSelected: [{
3377
+ type: Output
3378
+ }], actionButtonClicked: [{
3379
+ type: Output
3354
3380
  }] } });
3355
3381
 
3356
3382
  class KitFileUploadModule {
@@ -3360,12 +3386,14 @@ KitFileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
3360
3386
  UploadModule,
3361
3387
  KitSvgIconModule,
3362
3388
  FormsModule,
3363
- HttpClientModule], exports: [KitFileUploadComponent] });
3389
+ HttpClientModule,
3390
+ KitButtonModule], exports: [KitFileUploadComponent] });
3364
3391
  KitFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadModule, imports: [CommonModule,
3365
3392
  UploadModule,
3366
3393
  KitSvgIconModule,
3367
3394
  FormsModule,
3368
- HttpClientModule] });
3395
+ HttpClientModule,
3396
+ KitButtonModule] });
3369
3397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: KitFileUploadModule, decorators: [{
3370
3398
  type: NgModule,
3371
3399
  args: [{
@@ -3378,6 +3406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3378
3406
  KitSvgIconModule,
3379
3407
  FormsModule,
3380
3408
  HttpClientModule,
3409
+ KitButtonModule,
3381
3410
  ],
3382
3411
  exports: [
3383
3412
  KitFileUploadComponent,