@progress/kendo-angular-upload 7.1.4 → 8.0.0-dev.202201190956

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.
@@ -9,7 +9,7 @@ export var packageMetadata = {
9
9
  name: '@progress/kendo-angular-upload',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1635939353,
12
+ publishDate: 1642586091,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -7,13 +7,15 @@ import { Input, Component } from '@angular/core';
7
7
  import { FileState } from '../types';
8
8
  import { UploadService } from '../upload.service';
9
9
  import { LocalizationService } from '@progress/kendo-angular-l10n';
10
+ import { NavigationService } from './../navigation.service';
10
11
  /**
11
12
  * @hidden
12
13
  */
13
14
  var FileListItemActionButtonComponent = /** @class */ (function () {
14
- function FileListItemActionButtonComponent(uploadService, localization) {
15
+ function FileListItemActionButtonComponent(uploadService, localization, navigation) {
15
16
  this.uploadService = uploadService;
16
17
  this.localization = localization;
18
+ this.navigation = navigation;
17
19
  this.actionFocused = false;
18
20
  this.retryFocused = false;
19
21
  this.pauseResumeFocused = false;
@@ -46,10 +48,11 @@ var FileListItemActionButtonComponent = /** @class */ (function () {
46
48
  }
47
49
  this.uploadService.retryFiles(this.file.uid);
48
50
  };
49
- FileListItemActionButtonComponent.prototype.onRemoveCancelClick = function () {
51
+ FileListItemActionButtonComponent.prototype.onRemoveCancelClick = function (event) {
50
52
  if (this.disabled) {
51
53
  return;
52
54
  }
55
+ event.stopImmediatePropagation();
53
56
  var uid = this.file.uid;
54
57
  if (this.file.state === FileState.Uploading) {
55
58
  this.uploadService.cancelFiles(uid);
@@ -57,6 +60,7 @@ var FileListItemActionButtonComponent = /** @class */ (function () {
57
60
  else {
58
61
  this.uploadService.removeFiles(uid);
59
62
  }
63
+ this.navigation.focusSelectButton();
60
64
  };
61
65
  FileListItemActionButtonComponent.prototype.onPauseResumeClick = function () {
62
66
  if (this.disabled) {
@@ -154,10 +158,11 @@ var FileListItemActionButtonComponent = /** @class */ (function () {
154
158
  FileListItemActionButtonComponent = tslib_1.__decorate([
155
159
  Component({
156
160
  selector: 'kendo-upload-file-list-item-action-button',
157
- template: "\n <strong class=\"k-upload-status\">\n <span class=\"k-upload-pct\" *ngIf=\"isUploading || isPaused\">{{progress}}%</span>\n\n <button type=\"button\" *ngIf=\"isFailed\" class=\"k-button k-button-icon k-flat k-upload-action\"\n [ngClass]=\"{ 'k-state-focused': this.retryFocused }\"\n [attr.tabIndex]=\"-1\"\n (focus)=\"onFocus('retry')\"\n (blur)=\"onBlur('retry')\"\n (click)=\"onRetryClick()\">\n <span class=\"k-icon k-retry k-i-refresh-sm\"\n [attr.aria-label]=\"retryButtonTitle\"\n [attr.title]=\"retryButtonTitle\">\n </span>\n </button>\n\n <button *ngIf=\"isResumable\" type=\"button\" class=\"k-button k-button-icon k-flat k-upload-action\"\n [ngClass]=\"{ 'k-state-focused': this.pauseResumeFocused }\"\n [attr.tabIndex]=\"-1\"\n (focus)=\"onFocus('pauseResume')\"\n (blur)=\"onBlur('pauseResume')\"\n (click)=\"onPauseResumeClick()\">\n <span class=\"k-icon\"\n [ngClass]=\"{\n 'k-i-play-sm': isPaused,\n 'k-i-pause-sm': !isPaused\n }\"\n [attr.aria-label]='pauseResumeButtonTitle'\n [attr.title]='pauseResumeButtonTitle'>\n </span>\n </button>\n\n <button type=\"button\" *ngIf=\"isActionButtonVisible\" class=\"k-button k-button-icon k-flat k-upload-action\"\n [ngClass]=\"{ 'k-state-focused': this.actionFocused }\"\n [attr.tabIndex]=\"-1\"\n (focus)=\"onFocus('action')\"\n (blur)=\"onBlur('action')\"\n (click)=\"onRemoveCancelClick()\">\n <span class=\"k-icon\"\n [ngClass]=\"{\n 'k-i-cancel': isUploading,\n 'k-delete k-i-x': !isUploading\n }\"\n [attr.aria-label]='actionButtonTitle'\n [attr.title]='actionButtonTitle'>\n </span>\n </button>\n </strong>\n "
161
+ template: "\n <strong class=\"k-upload-status\">\n <span class=\"k-upload-pct\" *ngIf=\"isUploading || isPaused\">{{progress}}%</span>\n\n <button type=\"button\" *ngIf=\"isFailed\" class=\"k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action\"\n [ngClass]=\"{ 'k-focus': this.retryFocused }\"\n [attr.tabIndex]=\"-1\"\n (focus)=\"onFocus('retry')\"\n (blur)=\"onBlur('retry')\"\n (click)=\"onRetryClick()\">\n <span class=\"k-icon k-button-icon k-retry k-i-refresh-sm\"\n [attr.aria-label]=\"retryButtonTitle\"\n [attr.title]=\"retryButtonTitle\">\n </span>\n </button>\n\n <button *ngIf=\"isResumable\" type=\"button\" class=\"k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action\"\n [ngClass]=\"{ 'k-focus': this.pauseResumeFocused }\"\n [attr.tabIndex]=\"-1\"\n (focus)=\"onFocus('pauseResume')\"\n (blur)=\"onBlur('pauseResume')\"\n (click)=\"onPauseResumeClick()\">\n <span class=\"k-icon k-button-icon\"\n [ngClass]=\"{\n 'k-i-play-sm': isPaused,\n 'k-i-pause-sm': !isPaused\n }\"\n [attr.aria-label]='pauseResumeButtonTitle'\n [attr.title]='pauseResumeButtonTitle'>\n </span>\n </button>\n\n <button type=\"button\" *ngIf=\"isActionButtonVisible\" class=\"k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action\"\n [ngClass]=\"{ 'k-focus': this.actionFocused }\"\n [attr.tabIndex]=\"-1\"\n (focus)=\"onFocus('action')\"\n (blur)=\"onBlur('action')\"\n (click)=\"onRemoveCancelClick($event)\">\n <span class=\"k-icon k-button-icon\"\n [ngClass]=\"{\n 'k-i-cancel': isUploading,\n 'k-delete k-i-x': !isUploading\n }\"\n [attr.aria-label]='actionButtonTitle'\n [attr.title]='actionButtonTitle'>\n </span>\n </button>\n </strong>\n "
158
162
  }),
159
163
  tslib_1.__metadata("design:paramtypes", [UploadService,
160
- LocalizationService])
164
+ LocalizationService,
165
+ NavigationService])
161
166
  ], FileListItemActionButtonComponent);
162
167
  return FileListItemActionButtonComponent;
163
168
  }());
@@ -56,7 +56,6 @@ var UploadActionButtonsComponent = /** @class */ (function () {
56
56
  else {
57
57
  _this.performUpload();
58
58
  }
59
- _this.navigation.focusSelectButton();
60
59
  });
61
60
  };
62
61
  UploadActionButtonsComponent.prototype.onFocus = function () {
@@ -73,14 +72,24 @@ var UploadActionButtonsComponent = /** @class */ (function () {
73
72
  this.actionSubscription.unsubscribe();
74
73
  this.focusSubscription.unsubscribe();
75
74
  };
76
- UploadActionButtonsComponent.prototype.performUpload = function (_event) {
75
+ UploadActionButtonsComponent.prototype.onUploadButtonClick = function (event) {
76
+ event.stopImmediatePropagation();
77
+ this.performUpload();
78
+ };
79
+ UploadActionButtonsComponent.prototype.performUpload = function () {
77
80
  if (!this.disabled) {
78
81
  this.uploadService.uploadFiles();
82
+ this.navigation.focusSelectButton();
79
83
  }
80
84
  };
81
- UploadActionButtonsComponent.prototype.clearFiles = function (_event) {
85
+ UploadActionButtonsComponent.prototype.onClearButtonClick = function (event) {
86
+ event.stopImmediatePropagation();
87
+ this.clearFiles();
88
+ };
89
+ UploadActionButtonsComponent.prototype.clearFiles = function () {
82
90
  if (!this.disabled) {
83
91
  this.uploadService.clearFiles();
92
+ this.navigation.focusSelectButton();
84
93
  }
85
94
  };
86
95
  UploadActionButtonsComponent.prototype.textFor = function (key) {
@@ -129,7 +138,7 @@ var UploadActionButtonsComponent = /** @class */ (function () {
129
138
  UploadActionButtonsComponent = tslib_1.__decorate([
130
139
  Component({
131
140
  selector: 'kendo-upload-action-buttons',
132
- template: "\n <button #clearButton type=\"button\" class=\"k-button k-clear-selected\"\n [attr.tabIndex]=\"-1\"\n (click)=\"clearFiles($event)\">\n {{textFor('clearSelectedFiles')}}\n </button>\n <button #uploadButton type=\"button\" class=\"k-button k-primary k-upload-selected\"\n [attr.tabIndex]=\"-1\"\n (click)=\"performUpload($event)\">\n {{textFor('uploadSelectedFiles')}}\n </button>\n "
141
+ template: "\n <button #clearButton type=\"button\" class=\"k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected\"\n [attr.tabIndex]=\"-1\"\n (click)=\"onClearButtonClick($event)\">\n {{textFor('clearSelectedFiles')}}\n </button>\n <button #uploadButton type=\"button\" class=\"k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected\"\n [attr.tabIndex]=\"-1\"\n (click)=\"onUploadButtonClick($event)\">\n {{textFor('uploadSelectedFiles')}}\n </button>\n "
133
142
  }),
134
143
  tslib_1.__metadata("design:paramtypes", [UploadService,
135
144
  LocalizationService,
@@ -493,7 +493,7 @@ var UploadComponent = /** @class */ (function () {
493
493
  * @hidden
494
494
  */
495
495
  UploadComponent.prototype.onFileSelectButtonFocus = function (_event) {
496
- this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-state-focused');
496
+ this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-focus');
497
497
  if (!this.navigation.focused) {
498
498
  this.navigation.focusedIndex = -1;
499
499
  }
@@ -502,7 +502,7 @@ var UploadComponent = /** @class */ (function () {
502
502
  * @hidden
503
503
  */
504
504
  UploadComponent.prototype.onFileSelectButtonBlur = function (_event) {
505
- this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-state-focused');
505
+ this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-focus');
506
506
  };
507
507
  Object.defineProperty(UploadComponent.prototype, "showActionButtons", {
508
508
  /**
@@ -917,7 +917,7 @@ var UploadComponent = /** @class */ (function () {
917
917
  tslib_1.__metadata("design:type", Boolean)
918
918
  ], UploadComponent.prototype, "hostDefaultClasses", void 0);
919
919
  tslib_1.__decorate([
920
- HostBinding('class.k-state-disabled'),
920
+ HostBinding('class.k-disabled'),
921
921
  tslib_1.__metadata("design:type", Boolean),
922
922
  tslib_1.__metadata("design:paramtypes", [])
923
923
  ], UploadComponent.prototype, "hostDisabledClass", null);
@@ -951,7 +951,7 @@ var UploadComponent = /** @class */ (function () {
951
951
  }
952
952
  ],
953
953
  selector: 'kendo-upload',
954
- template: "\n <ng-container kendoUploadLocalizedMessages\n i18n-cancel=\"kendo.upload.cancel|The text for the Cancel button\"\n cancel=\"Cancel\"\n\n i18n-clearSelectedFiles=\"kendo.upload.clearSelectedFiles|The text for the Clear button\"\n clearSelectedFiles=\"Clear\"\n\n i18n-dropFilesHere=\"kendo.upload.dropFilesHere|The drop zone hint\"\n dropFilesHere=\"Drop files here to upload\"\n\n i18n-filesBatchStatus=\"kendo.upload.filesBatchStatus|The status message for a batch of files\"\n filesBatchStatus=\"files\"\n\n i18n-filesBatchStatusFailed=\"kendo.upload.filesBatchStatusFailed|The status message for a batch of files after failed upload\"\n filesBatchStatusFailed=\"files failed to upload.\"\n\n i18n-filesBatchStatusUploaded=\"kendo.upload.filesBatchStatusUploaded|The status message for a batch of files after successful upload\"\n filesBatchStatusUploaded=\"files successfully uploaded.\"\n\n i18n-fileStatusFailed=\"kendo.upload.fileStatusFailed|The file status message after failed upload\"\n fileStatusFailed=\"File failed to upload.\"\n\n i18n-fileStatusUploaded=\"kendo.upload.fileStatusUploaded|The file status message after successful upload\"\n fileStatusUploaded=\"File successfully uploaded.\"\n\n i18n-headerStatusPaused=\"kendo.upload.headerStatusPaused|The header status message when the file upload is paused\"\n headerStatusPaused=\"Paused\"\n\n i18n-headerStatusUploaded=\"kendo.upload.headerStatusUploaded|The header status message after file upload completion\"\n headerStatusUploaded=\"Done\"\n\n i18n-headerStatusUploading=\"kendo.upload.headerStatusUploading|The header status message during file upload\"\n headerStatusUploading=\"Uploading...\"\n\n i18n-invalidFileExtension=\"kendo.upload.invalidFileExtension|The text for the invalid allowed extensions restriction message\"\n invalidFileExtension=\"File type not allowed.\"\n\n i18n-invalidMaxFileSize=\"kendo.upload.invalidMaxFileSize|The text for the invalid max file size restriction message\"\n invalidMaxFileSize=\"File size too large.\"\n\n i18n-invalidMinFileSize=\"kendo.upload.invalidMinFileSize|The text for the invalid min file size restriction message\"\n invalidMinFileSize=\"File size too small.\"\n\n i18n-pause=\"kendo.upload.pause|The text for the Pause button\"\n pause=\"Pause\"\n\n i18n-remove=\"kendo.upload.remove|The text for the Remove button\"\n remove=\"Remove\"\n\n i18n-resume=\"kendo.upload.resume|The text for the Resume button\"\n resume=\"Resume\"\n\n i18n-retry=\"kendo.upload.retry|The text for the Retry button\"\n retry=\"Retry\"\n\n i18n-select=\"kendo.upload.select|The text for the Select button\"\n select=\"Select files...\"\n\n i18n-uploadSelectedFiles=\"kendo.upload.uploadSelectedFiles|The text for the Upload files button\"\n uploadSelectedFiles=\"Upload\"\n >\n </ng-container>\n <div kendoUploadInternalDropZone\n [restrictions]=\"restrictions\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\">\n <div role=\"button\" #fileSelectButton\n [id]=\"focusableId\"\n [attr.aria-label]=\"textFor('select')\"\n [attr.tabindex]=\"selectButtonTabIndex\"\n (focus)=\"onFileSelectButtonFocus($event)\"\n (blur)=\"onFileSelectButtonBlur($event)\"\n class=\"k-button k-upload-button\">\n <input #fileSelect kendoFileSelect\n [attr.accept]=\"accept ? accept : null\"\n [attr.aria-hidden]=\"true\"\n [dir]=\"direction\"\n [restrictions]=\"restrictions\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\" />\n <span>{{textFor('select')}}</span>\n </div>\n <kendo-upload-status-total *ngIf=\"showTotalStatus\"\n class=\"k-upload-status k-upload-status-total\"\n [fileList]=\"fileList\">\n </kendo-upload-status-total>\n <div class=\"k-dropzone-hint\">{{textFor('dropFilesHere')}}</div>\n </div>\n <ul kendo-upload-file-list *ngIf=\"showFileList && fileList.count > 0\"\n class=\"k-upload-files k-reset\"\n [disabled]=\"disabled\"\n [fileList]=\"fileList.files\"\n [fileTemplate]=\"fileTemplate\"\n [fileInfoTemplate]=\"fileInfoTemplate\">\n </ul>\n <kendo-upload-action-buttons\n *ngIf=\"showActionButtons\"\n [disabled]=\"disabled\"\n [actionsLayout]=\"actionsLayout\">\n </kendo-upload-action-buttons>\n "
954
+ template: "\n <ng-container kendoUploadLocalizedMessages\n i18n-cancel=\"kendo.upload.cancel|The text for the Cancel button\"\n cancel=\"Cancel\"\n\n i18n-clearSelectedFiles=\"kendo.upload.clearSelectedFiles|The text for the Clear button\"\n clearSelectedFiles=\"Clear\"\n\n i18n-dropFilesHere=\"kendo.upload.dropFilesHere|The drop zone hint\"\n dropFilesHere=\"Drop files here to upload\"\n\n i18n-filesBatchStatus=\"kendo.upload.filesBatchStatus|The status message for a batch of files\"\n filesBatchStatus=\"files\"\n\n i18n-filesBatchStatusFailed=\"kendo.upload.filesBatchStatusFailed|The status message for a batch of files after failed upload\"\n filesBatchStatusFailed=\"files failed to upload.\"\n\n i18n-filesBatchStatusUploaded=\"kendo.upload.filesBatchStatusUploaded|The status message for a batch of files after successful upload\"\n filesBatchStatusUploaded=\"files successfully uploaded.\"\n\n i18n-fileStatusFailed=\"kendo.upload.fileStatusFailed|The file status message after failed upload\"\n fileStatusFailed=\"File failed to upload.\"\n\n i18n-fileStatusUploaded=\"kendo.upload.fileStatusUploaded|The file status message after successful upload\"\n fileStatusUploaded=\"File successfully uploaded.\"\n\n i18n-headerStatusPaused=\"kendo.upload.headerStatusPaused|The header status message when the file upload is paused\"\n headerStatusPaused=\"Paused\"\n\n i18n-headerStatusUploaded=\"kendo.upload.headerStatusUploaded|The header status message after file upload completion\"\n headerStatusUploaded=\"Done\"\n\n i18n-headerStatusUploading=\"kendo.upload.headerStatusUploading|The header status message during file upload\"\n headerStatusUploading=\"Uploading...\"\n\n i18n-invalidFileExtension=\"kendo.upload.invalidFileExtension|The text for the invalid allowed extensions restriction message\"\n invalidFileExtension=\"File type not allowed.\"\n\n i18n-invalidMaxFileSize=\"kendo.upload.invalidMaxFileSize|The text for the invalid max file size restriction message\"\n invalidMaxFileSize=\"File size too large.\"\n\n i18n-invalidMinFileSize=\"kendo.upload.invalidMinFileSize|The text for the invalid min file size restriction message\"\n invalidMinFileSize=\"File size too small.\"\n\n i18n-pause=\"kendo.upload.pause|The text for the Pause button\"\n pause=\"Pause\"\n\n i18n-remove=\"kendo.upload.remove|The text for the Remove button\"\n remove=\"Remove\"\n\n i18n-resume=\"kendo.upload.resume|The text for the Resume button\"\n resume=\"Resume\"\n\n i18n-retry=\"kendo.upload.retry|The text for the Retry button\"\n retry=\"Retry\"\n\n i18n-select=\"kendo.upload.select|The text for the Select button\"\n select=\"Select files...\"\n\n i18n-uploadSelectedFiles=\"kendo.upload.uploadSelectedFiles|The text for the Upload files button\"\n uploadSelectedFiles=\"Upload\"\n >\n </ng-container>\n <div kendoUploadInternalDropZone\n [restrictions]=\"restrictions\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\">\n <div role=\"button\" #fileSelectButton\n [id]=\"focusableId\"\n [attr.aria-label]=\"textFor('select')\"\n [attr.tabindex]=\"selectButtonTabIndex\"\n (focus)=\"onFileSelectButtonFocus($event)\"\n (blur)=\"onFileSelectButtonBlur($event)\"\n class=\"k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-upload-button\">\n <input #fileSelect kendoFileSelect\n [attr.accept]=\"accept ? accept : null\"\n [attr.aria-hidden]=\"true\"\n [dir]=\"direction\"\n [restrictions]=\"restrictions\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\" />\n <span>{{textFor('select')}}</span>\n </div>\n <kendo-upload-status-total *ngIf=\"showTotalStatus\"\n class=\"k-upload-status k-upload-status-total\"\n [fileList]=\"fileList\">\n </kendo-upload-status-total>\n <div class=\"k-dropzone-hint\">{{textFor('dropFilesHere')}}</div>\n </div>\n <ul kendo-upload-file-list *ngIf=\"showFileList && fileList.count > 0\"\n class=\"k-upload-files k-reset\"\n [disabled]=\"disabled\"\n [fileList]=\"fileList.files\"\n [fileTemplate]=\"fileTemplate\"\n [fileInfoTemplate]=\"fileInfoTemplate\">\n </ul>\n <kendo-upload-action-buttons\n *ngIf=\"showActionButtons\"\n [disabled]=\"disabled\"\n [actionsLayout]=\"actionsLayout\">\n </kendo-upload-action-buttons>\n "
955
955
  }),
956
956
  tslib_1.__metadata("design:paramtypes", [UploadService,
957
957
  LocalizationService,
@@ -259,7 +259,7 @@ let FileSelectComponent = FileSelectComponent_1 = class FileSelectComponent {
259
259
  * @hidden
260
260
  */
261
261
  onFileSelectButtonFocus(_event) {
262
- this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-state-focused');
262
+ this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-focus');
263
263
  if (!this.navigation.focused) {
264
264
  this.navigation.focusedIndex = -1;
265
265
  }
@@ -268,7 +268,7 @@ let FileSelectComponent = FileSelectComponent_1 = class FileSelectComponent {
268
268
  * @hidden
269
269
  */
270
270
  onFileSelectButtonBlur(_event) {
271
- this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-state-focused');
271
+ this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-focus');
272
272
  }
273
273
  subscribeBlur() {
274
274
  if (!isDocumentAvailable()) {
@@ -408,7 +408,7 @@ tslib_1.__decorate([
408
408
  tslib_1.__metadata("design:type", Boolean)
409
409
  ], FileSelectComponent.prototype, "hostDefaultClasses", void 0);
410
410
  tslib_1.__decorate([
411
- HostBinding('class.k-state-disabled'),
411
+ HostBinding('class.k-disabled'),
412
412
  tslib_1.__metadata("design:type", Boolean),
413
413
  tslib_1.__metadata("design:paramtypes", [])
414
414
  ], FileSelectComponent.prototype, "hostDisabledClass", null);
@@ -473,7 +473,7 @@ FileSelectComponent = FileSelectComponent_1 = tslib_1.__decorate([
473
473
  [attr.tabindex]="selectButtonTabIndex"
474
474
  (focus)="onFileSelectButtonFocus($event)"
475
475
  (blur)="onFileSelectButtonBlur($event)"
476
- class="k-button k-upload-button">
476
+ class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-upload-button">
477
477
  <input #fileSelect kendoFileSelect
478
478
  [attr.accept]="accept ? accept : null"
479
479
  [dir]="direction"