@progress/kendo-angular-upload 11.1.0-develop.3 → 11.1.0-develop.5

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.
@@ -14,7 +14,7 @@ import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/k
14
14
  import { fromEvent, merge } from 'rxjs';
15
15
  import { filter } from 'rxjs/operators';
16
16
  import { validatePackage } from '@progress/kendo-licensing';
17
- import * as i7 from '@progress/kendo-angular-buttons';
17
+ import * as i5 from '@progress/kendo-angular-buttons';
18
18
  import { ButtonsModule } from '@progress/kendo-angular-buttons';
19
19
  import { trigger, state, style, transition, animate } from '@angular/animations';
20
20
  import * as i3 from '@progress/kendo-angular-progressbar';
@@ -1493,8 +1493,8 @@ const packageMetadata = {
1493
1493
  name: '@progress/kendo-angular-upload',
1494
1494
  productName: 'Kendo UI for Angular',
1495
1495
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
1496
- publishDate: 1674232552,
1497
- version: '11.1.0-develop.3',
1496
+ publishDate: 1674553960,
1497
+ version: '11.1.0-develop.5',
1498
1498
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
1499
1499
  };
1500
1500
 
@@ -1944,35 +1944,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1944
1944
  type: Input
1945
1945
  }] } });
1946
1946
 
1947
- /**
1948
- * @hidden
1949
- */
1950
- class TemplateContextDirective {
1951
- constructor(viewContainerRef) {
1952
- this.viewContainerRef = viewContainerRef;
1953
- }
1954
- set templateContext(context) {
1955
- if (this.insertedViewRef) {
1956
- this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.insertedViewRef));
1957
- this.insertedViewRef = undefined;
1958
- }
1959
- if (context.templateRef) {
1960
- this.insertedViewRef = this.viewContainerRef.createEmbeddedView(context.templateRef, context);
1961
- }
1962
- }
1963
- }
1964
- TemplateContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TemplateContextDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
1965
- TemplateContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: TemplateContextDirective, selector: "[templateContext]", inputs: { templateContext: "templateContext" }, ngImport: i0 });
1966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TemplateContextDirective, decorators: [{
1967
- type: Directive,
1968
- args: [{
1969
- // eslint-disable-next-line @angular-eslint/directive-selector
1970
- selector: '[templateContext]'
1971
- }]
1972
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { templateContext: [{
1973
- type: Input
1974
- }] } });
1975
-
1976
1947
  /**
1977
1948
  * @hidden
1978
1949
  */
@@ -2045,28 +2016,26 @@ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2045
2016
  </span>
2046
2017
  <span class="k-file-info">
2047
2018
  <ng-container *ngIf="!fileInfoTemplate">
2048
- <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2049
- <span [ngClass]="{
2050
- 'k-file-validation-message': file.validationErrors,
2051
- 'k-file-size': !file.validationErrors && isNotYetUploaded,
2052
- 'k-file-summary': isUploadSuccessful || isUploadFailed
2053
- }"
2054
- >{{fileStatusText}}</span>
2019
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2020
+ <span [ngClass]="{
2021
+ 'k-file-validation-message': file.validationErrors,
2022
+ 'k-file-size': !file.validationErrors && isNotYetUploaded,
2023
+ 'k-file-summary': isUploadSuccessful || isUploadFailed
2024
+ }"
2025
+ >{{fileStatusText}}</span>
2055
2026
  </ng-container>
2056
- <ng-template *ngIf="fileInfoTemplate"
2057
- [templateContext]="{
2058
- templateRef: fileInfoTemplate.templateRef,
2059
- state: file.state,
2060
- $implicit: [file]
2061
- }">
2062
- </ng-template>
2027
+ <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2028
+ templateRef: fileInfoTemplate.templateRef,
2029
+ state: file.state,
2030
+ $implicit: [file]
2031
+ }"></ng-container>
2063
2032
  </span>
2064
2033
  <kendo-upload-file-list-item-action-button
2065
2034
  [file]='file'
2066
2035
  [disabled]='disabled'
2067
2036
  [progress]='progressComplete'>
2068
2037
  </kendo-upload-file-list-item-action-button>
2069
- `, isInline: true, components: [{ type: i3.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }], animations: [
2038
+ `, isInline: true, components: [{ type: i3.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
2070
2039
  trigger('progressState', [
2071
2040
  state('active', style({ opacity: 1 })),
2072
2041
  state('inactive', style({ opacity: 0 })),
@@ -2105,21 +2074,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2105
2074
  </span>
2106
2075
  <span class="k-file-info">
2107
2076
  <ng-container *ngIf="!fileInfoTemplate">
2108
- <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2109
- <span [ngClass]="{
2110
- 'k-file-validation-message': file.validationErrors,
2111
- 'k-file-size': !file.validationErrors && isNotYetUploaded,
2112
- 'k-file-summary': isUploadSuccessful || isUploadFailed
2113
- }"
2114
- >{{fileStatusText}}</span>
2077
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2078
+ <span [ngClass]="{
2079
+ 'k-file-validation-message': file.validationErrors,
2080
+ 'k-file-size': !file.validationErrors && isNotYetUploaded,
2081
+ 'k-file-summary': isUploadSuccessful || isUploadFailed
2082
+ }"
2083
+ >{{fileStatusText}}</span>
2115
2084
  </ng-container>
2116
- <ng-template *ngIf="fileInfoTemplate"
2117
- [templateContext]="{
2118
- templateRef: fileInfoTemplate.templateRef,
2119
- state: file.state,
2120
- $implicit: [file]
2121
- }">
2122
- </ng-template>
2085
+ <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2086
+ templateRef: fileInfoTemplate.templateRef,
2087
+ state: file.state,
2088
+ $implicit: [file]
2089
+ }"></ng-container>
2123
2090
  </span>
2124
2091
  <kendo-upload-file-list-item-action-button
2125
2092
  [file]='file'
@@ -2200,33 +2167,34 @@ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
2200
2167
  </span>
2201
2168
  <span class="k-multiple-files-wrapper">
2202
2169
  <ng-container *ngIf="!fileInfoTemplate">
2203
- <span *ngFor="let file of files" class="k-file-info">
2204
- <span [title]="file.name" class="k-file-name">
2205
- {{file.name}}
2170
+ <span *ngFor="let file of files" class="k-file-info">
2171
+ <span [title]="file.name" class="k-file-name">
2172
+ {{file.name}}
2173
+ </span>
2174
+ <span [ngClass]="{
2175
+ 'k-file-validation-message': file.validationErrors,
2176
+ 'k-file-size': !file.validationErrors
2177
+ }"
2178
+ >{{fileStatusText(file)}}</span>
2206
2179
  </span>
2207
- <span [ngClass]="{
2208
- 'k-file-validation-message': file.validationErrors,
2209
- 'k-file-size': !file.validationErrors
2210
- }"
2211
- >{{fileStatusText(file)}}</span>
2212
- </span>
2213
- <span class="k-file-summary"
2214
- >{{batchStatusText}}</span>
2180
+ <span class="k-file-summary"
2181
+ >{{batchStatusText}}</span>
2215
2182
  </ng-container>
2216
- <ng-template *ngIf="fileInfoTemplate"
2217
- [templateContext]="{
2218
- templateRef: fileInfoTemplate.templateRef,
2219
- state: files[0].state,
2220
- $implicit: files
2221
- }">
2222
- </ng-template>
2183
+ <ng-container
2184
+ *ngIf="fileInfoTemplate"
2185
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2186
+ [ngTemplateOutletContext]="{
2187
+ templateRef: fileInfoTemplate.templateRef,
2188
+ state: files[0].state,
2189
+ $implicit: files
2190
+ }"></ng-container>
2223
2191
  </span>
2224
2192
  <kendo-upload-file-list-item-action-button
2225
2193
  [file]='files[0]'
2226
2194
  [disabled]='disabled'
2227
2195
  [progress]='progressComplete'>
2228
2196
  </kendo-upload-file-list-item-action-button>
2229
- `, isInline: true, components: [{ type: i3.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }], animations: [
2197
+ `, isInline: true, components: [{ type: i3.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
2230
2198
  trigger('progressState', [
2231
2199
  state('active', style({ opacity: 1 })),
2232
2200
  state('inactive', style({ opacity: 0 })),
@@ -2265,26 +2233,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2265
2233
  </span>
2266
2234
  <span class="k-multiple-files-wrapper">
2267
2235
  <ng-container *ngIf="!fileInfoTemplate">
2268
- <span *ngFor="let file of files" class="k-file-info">
2269
- <span [title]="file.name" class="k-file-name">
2270
- {{file.name}}
2236
+ <span *ngFor="let file of files" class="k-file-info">
2237
+ <span [title]="file.name" class="k-file-name">
2238
+ {{file.name}}
2239
+ </span>
2240
+ <span [ngClass]="{
2241
+ 'k-file-validation-message': file.validationErrors,
2242
+ 'k-file-size': !file.validationErrors
2243
+ }"
2244
+ >{{fileStatusText(file)}}</span>
2271
2245
  </span>
2272
- <span [ngClass]="{
2273
- 'k-file-validation-message': file.validationErrors,
2274
- 'k-file-size': !file.validationErrors
2275
- }"
2276
- >{{fileStatusText(file)}}</span>
2277
- </span>
2278
- <span class="k-file-summary"
2279
- >{{batchStatusText}}</span>
2246
+ <span class="k-file-summary"
2247
+ >{{batchStatusText}}</span>
2280
2248
  </ng-container>
2281
- <ng-template *ngIf="fileInfoTemplate"
2282
- [templateContext]="{
2283
- templateRef: fileInfoTemplate.templateRef,
2284
- state: files[0].state,
2285
- $implicit: files
2286
- }">
2287
- </ng-template>
2249
+ <ng-container
2250
+ *ngIf="fileInfoTemplate"
2251
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2252
+ [ngTemplateOutletContext]="{
2253
+ templateRef: fileInfoTemplate.templateRef,
2254
+ state: files[0].state,
2255
+ $implicit: files
2256
+ }"></ng-container>
2288
2257
  </span>
2289
2258
  <kendo-upload-file-list-item-action-button
2290
2259
  [file]='files[0]'
@@ -2356,66 +2325,62 @@ class FileListComponent {
2356
2325
  }
2357
2326
  FileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileListComponent, deps: [{ token: UploadService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2358
2327
  FileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: { disabled: "disabled", fileList: "fileList", fileTemplate: "fileTemplate", fileInfoTemplate: "fileInfoTemplate" }, viewQueries: [{ propertyName: "fileListItems", predicate: FileListItemDirective, descendants: true }], ngImport: i0, template: `
2359
- <ng-template ngFor
2360
- [ngForOf]="fileList"
2361
- let-files
2362
- let-index="index">
2363
- <li kendoUploadFileListItem [files]='files' [index]='index'>
2364
- <kendo-upload-file-list-single-item
2365
- class='k-file-single'
2366
- *ngIf='files.length === 1 && !fileTemplate'
2367
- [disabled]='disabled'
2368
- [file]='files[0]'
2369
- [fileInfoTemplate]="fileInfoTemplate">
2370
- </kendo-upload-file-list-single-item>
2371
- <kendo-upload-file-list-multiple-items
2372
- class='k-file-multiple'
2373
- *ngIf='files.length > 1 && !fileTemplate'
2374
- [disabled]='disabled'
2375
- [files]='files'
2376
- [fileInfoTemplate]="fileInfoTemplate">
2377
- </kendo-upload-file-list-multiple-items>
2378
- <ng-template *ngIf="fileTemplate"
2379
- [templateContext]="{
2380
- templateRef: fileTemplate.templateRef,
2381
- state: files[0].state,
2382
- $implicit: files
2383
- }"></ng-template>
2384
- </li>
2385
- </ng-template>
2386
- `, isInline: true, components: [{ type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: ["disabled", "file", "fileInfoTemplate"] }, { type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: ["disabled", "files", "fileInfoTemplate"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: ["files", "index"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
2328
+ <ng-template ngFor
2329
+ [ngForOf]="fileList"
2330
+ let-files
2331
+ let-index="index">
2332
+ <li kendoUploadFileListItem [files]='files' [index]='index'>
2333
+ <kendo-upload-file-list-single-item
2334
+ class='k-file-single'
2335
+ *ngIf='files.length === 1 && !fileTemplate'
2336
+ [disabled]='disabled'
2337
+ [file]='files[0]'
2338
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-single-item>
2339
+ <kendo-upload-file-list-multiple-items
2340
+ class='k-file-multiple'
2341
+ *ngIf='files.length > 1 && !fileTemplate'
2342
+ [disabled]='disabled'
2343
+ [files]='files'
2344
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-multiple-items>
2345
+ <ng-container
2346
+ *ngIf="fileTemplate" [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
2347
+ templateRef: fileTemplate.templateRef,
2348
+ state: files[0].state,
2349
+ $implicit: files
2350
+ }"></ng-container>
2351
+ </li>
2352
+ </ng-template>
2353
+ `, isInline: true, components: [{ type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: ["disabled", "file", "fileInfoTemplate"] }, { type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: ["disabled", "files", "fileInfoTemplate"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: ["files", "index"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
2387
2354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileListComponent, decorators: [{
2388
2355
  type: Component,
2389
2356
  args: [{
2390
2357
  selector: '[kendo-upload-file-list]',
2391
2358
  template: `
2392
- <ng-template ngFor
2393
- [ngForOf]="fileList"
2394
- let-files
2395
- let-index="index">
2396
- <li kendoUploadFileListItem [files]='files' [index]='index'>
2397
- <kendo-upload-file-list-single-item
2398
- class='k-file-single'
2399
- *ngIf='files.length === 1 && !fileTemplate'
2400
- [disabled]='disabled'
2401
- [file]='files[0]'
2402
- [fileInfoTemplate]="fileInfoTemplate">
2403
- </kendo-upload-file-list-single-item>
2404
- <kendo-upload-file-list-multiple-items
2405
- class='k-file-multiple'
2406
- *ngIf='files.length > 1 && !fileTemplate'
2407
- [disabled]='disabled'
2408
- [files]='files'
2409
- [fileInfoTemplate]="fileInfoTemplate">
2410
- </kendo-upload-file-list-multiple-items>
2411
- <ng-template *ngIf="fileTemplate"
2412
- [templateContext]="{
2413
- templateRef: fileTemplate.templateRef,
2414
- state: files[0].state,
2415
- $implicit: files
2416
- }"></ng-template>
2417
- </li>
2418
- </ng-template>
2359
+ <ng-template ngFor
2360
+ [ngForOf]="fileList"
2361
+ let-files
2362
+ let-index="index">
2363
+ <li kendoUploadFileListItem [files]='files' [index]='index'>
2364
+ <kendo-upload-file-list-single-item
2365
+ class='k-file-single'
2366
+ *ngIf='files.length === 1 && !fileTemplate'
2367
+ [disabled]='disabled'
2368
+ [file]='files[0]'
2369
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-single-item>
2370
+ <kendo-upload-file-list-multiple-items
2371
+ class='k-file-multiple'
2372
+ *ngIf='files.length > 1 && !fileTemplate'
2373
+ [disabled]='disabled'
2374
+ [files]='files'
2375
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-multiple-items>
2376
+ <ng-container
2377
+ *ngIf="fileTemplate" [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
2378
+ templateRef: fileTemplate.templateRef,
2379
+ state: files[0].state,
2380
+ $implicit: files
2381
+ }"></ng-container>
2382
+ </li>
2383
+ </ng-template>
2419
2384
  `
2420
2385
  }]
2421
2386
  }], ctorParameters: function () { return [{ type: UploadService }, { type: NavigationService }]; }, propDecorators: { disabled: [{
@@ -2929,7 +2894,9 @@ class FileSelectComponent {
2929
2894
  return this.direction;
2930
2895
  }
2931
2896
  ngOnInit() {
2932
- this.renderer.removeAttribute(this.wrapper, "tabindex");
2897
+ const { buttonId, inputId } = this.getIds();
2898
+ this.focusableId = buttonId;
2899
+ this.inputElementId = inputId;
2933
2900
  if (this.zoneId) {
2934
2901
  this.dropZoneService.addComponent(this, this.zoneId);
2935
2902
  }
@@ -2943,14 +2910,6 @@ class FileSelectComponent {
2943
2910
  this.subs.add(this.renderer.listen(this.wrapper, 'keydown', event => this.handleKeydown(event)));
2944
2911
  });
2945
2912
  }
2946
- ngAfterViewInit() {
2947
- const { buttonId, inputId } = this.getIds();
2948
- const button = this.fileSelectButton.nativeElement;
2949
- const input = this.fileSelectInput.nativeElement;
2950
- this.renderer.setAttribute(button, 'id', buttonId);
2951
- this.renderer.setAttribute(button, 'aria-controls', inputId);
2952
- this.renderer.setAttribute(input, 'id', inputId);
2953
- }
2954
2913
  /**
2955
2914
  * @hidden
2956
2915
  */
@@ -3199,7 +3158,8 @@ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
3199
3158
  role="button"
3200
3159
  [id]="focusableId"
3201
3160
  [attr.aria-label]="textFor('select')"
3202
- [attr.tabindex]="selectButtonTabIndex"
3161
+ [attr.tabindex]="tabindex"
3162
+ [attr.aria-controls]="inputElementId"
3203
3163
  (focus)="onFileSelectButtonFocus($event)"
3204
3164
  (blur)="onFileSelectButtonBlur($event)"
3205
3165
  >
@@ -3208,6 +3168,7 @@ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
3208
3168
  <input
3209
3169
  #fileSelectInput
3210
3170
  kendoFileSelect
3171
+ [id]="inputElementId"
3211
3172
  [attr.accept]="accept ? accept : null"
3212
3173
  [attr.aria-hidden]="true"
3213
3174
  [dir]="direction"
@@ -3226,7 +3187,7 @@ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
3226
3187
  [fileTemplate]="fileTemplate"
3227
3188
  [fileInfoTemplate]="fileInfoTemplate">
3228
3189
  </ul>
3229
- `, isInline: true, components: [{ type: i7.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3190
+ `, isInline: true, components: [{ type: i5.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3230
3191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileSelectComponent, decorators: [{
3231
3192
  type: Component,
3232
3193
  args: [{
@@ -3280,7 +3241,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3280
3241
  role="button"
3281
3242
  [id]="focusableId"
3282
3243
  [attr.aria-label]="textFor('select')"
3283
- [attr.tabindex]="selectButtonTabIndex"
3244
+ [attr.tabindex]="tabindex"
3245
+ [attr.aria-controls]="inputElementId"
3284
3246
  (focus)="onFileSelectButtonFocus($event)"
3285
3247
  (blur)="onFileSelectButtonBlur($event)"
3286
3248
  >
@@ -3289,6 +3251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3289
3251
  <input
3290
3252
  #fileSelectInput
3291
3253
  kendoFileSelect
3254
+ [id]="inputElementId"
3292
3255
  [attr.accept]="accept ? accept : null"
3293
3256
  [attr.aria-hidden]="true"
3294
3257
  [dir]="direction"
@@ -3329,10 +3292,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3329
3292
  type: Input
3330
3293
  }], fileTemplate: [{
3331
3294
  type: ContentChild,
3332
- args: [FileTemplateDirective, { static: false }]
3295
+ args: [FileTemplateDirective]
3333
3296
  }], fileInfoTemplate: [{
3334
3297
  type: ContentChild,
3335
- args: [FileInfoTemplateDirective, { static: false }]
3298
+ args: [FileInfoTemplateDirective]
3336
3299
  }], fileSelectInput: [{
3337
3300
  type: ViewChild,
3338
3301
  args: ['fileSelectInput', { static: true }]
@@ -3908,7 +3871,9 @@ class UploadComponent {
3908
3871
  }
3909
3872
  ngOnInit() {
3910
3873
  this.verifySettings();
3911
- this.renderer.removeAttribute(this.wrapper, "tabindex");
3874
+ const { buttonId, inputId } = this.getIds();
3875
+ this.focusableId = buttonId;
3876
+ this.inputElementId = inputId;
3912
3877
  this.uploadService.setChunkSettings(this.chunkable);
3913
3878
  if (this.zoneId) {
3914
3879
  this.dropZoneService.addComponent(this, this.zoneId);
@@ -3925,14 +3890,6 @@ class UploadComponent {
3925
3890
  this.subs.add(this.renderer.listen(this.wrapper, 'keydown', event => this.handleKeydown(event)));
3926
3891
  });
3927
3892
  }
3928
- ngAfterViewInit() {
3929
- const { buttonId, inputId } = this.getIds();
3930
- const button = this.fileSelectButton.nativeElement;
3931
- const input = this.fileSelectInput.nativeElement;
3932
- this.renderer.setAttribute(button, 'id', buttonId);
3933
- this.renderer.setAttribute(button, 'aria-controls', inputId);
3934
- this.renderer.setAttribute(input, 'id', inputId);
3935
- }
3936
3893
  ngOnChanges(changes) {
3937
3894
  if (isChanged("chunkable", changes)) {
3938
3895
  const newChunkable = changes.chunkable.currentValue;
@@ -4001,12 +3958,6 @@ class UploadComponent {
4001
3958
  setDisabledState(isDisabled) {
4002
3959
  this.disabled = isDisabled;
4003
3960
  }
4004
- /**
4005
- * @hidden
4006
- */
4007
- get selectButtonTabIndex() {
4008
- return this.disabled ? undefined : this.tabIndex;
4009
- }
4010
3961
  /**
4011
3962
  * @hidden
4012
3963
  */
@@ -4276,71 +4227,71 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4276
4227
  }
4277
4228
  ], queries: [{ propertyName: "fileTemplate", first: true, predicate: FileTemplateDirective, descendants: true }, { propertyName: "fileInfoTemplate", first: true, predicate: FileInfoTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "fileSelectInput", first: true, predicate: ["fileSelectInput"], descendants: true, static: true }, { propertyName: "fileSelectButton", first: true, predicate: ["fileSelectButton"], descendants: true, read: ElementRef, static: true }], exportAs: ["kendoUpload"], usesOnChanges: true, ngImport: i0, template: `
4278
4229
  <ng-container kendoUploadLocalizedMessages
4279
- i18n-cancel="kendo.upload.cancel|The text for the Cancel button"
4280
- cancel="Cancel"
4230
+ i18n-cancel="kendo.upload.cancel|The text for the Cancel button"
4231
+ cancel="Cancel"
4281
4232
 
4282
- i18n-clearSelectedFiles="kendo.upload.clearSelectedFiles|The text for the Clear button"
4283
- clearSelectedFiles="Clear"
4233
+ i18n-clearSelectedFiles="kendo.upload.clearSelectedFiles|The text for the Clear button"
4234
+ clearSelectedFiles="Clear"
4284
4235
 
4285
- i18n-dropFilesHere="kendo.upload.dropFilesHere|The drop zone hint"
4286
- dropFilesHere="Drop files here to upload"
4236
+ i18n-dropFilesHere="kendo.upload.dropFilesHere|The drop zone hint"
4237
+ dropFilesHere="Drop files here to upload"
4287
4238
 
4288
- i18n-filesBatchStatus="kendo.upload.filesBatchStatus|The status message for a batch of files"
4289
- filesBatchStatus="files"
4239
+ i18n-filesBatchStatus="kendo.upload.filesBatchStatus|The status message for a batch of files"
4240
+ filesBatchStatus="files"
4290
4241
 
4291
- i18n-filesBatchStatusFailed="kendo.upload.filesBatchStatusFailed|The status message for a batch of files after failed upload"
4292
- filesBatchStatusFailed="files failed to upload."
4242
+ i18n-filesBatchStatusFailed="kendo.upload.filesBatchStatusFailed|The status message for a batch of files after failed upload"
4243
+ filesBatchStatusFailed="files failed to upload."
4293
4244
 
4294
- i18n-filesBatchStatusUploaded="kendo.upload.filesBatchStatusUploaded|The status message for a batch of files after successful upload"
4295
- filesBatchStatusUploaded="files successfully uploaded."
4245
+ i18n-filesBatchStatusUploaded="kendo.upload.filesBatchStatusUploaded|The status message for a batch of files after successful upload"
4246
+ filesBatchStatusUploaded="files successfully uploaded."
4296
4247
 
4297
- i18n-fileStatusFailed="kendo.upload.fileStatusFailed|The file status message after failed upload"
4298
- fileStatusFailed="File failed to upload."
4248
+ i18n-fileStatusFailed="kendo.upload.fileStatusFailed|The file status message after failed upload"
4249
+ fileStatusFailed="File failed to upload."
4299
4250
 
4300
- i18n-fileStatusUploaded="kendo.upload.fileStatusUploaded|The file status message after successful upload"
4301
- fileStatusUploaded="File successfully uploaded."
4251
+ i18n-fileStatusUploaded="kendo.upload.fileStatusUploaded|The file status message after successful upload"
4252
+ fileStatusUploaded="File successfully uploaded."
4302
4253
 
4303
- i18n-headerStatusPaused="kendo.upload.headerStatusPaused|The header status message when the file upload is paused"
4304
- headerStatusPaused="Paused"
4254
+ i18n-headerStatusPaused="kendo.upload.headerStatusPaused|The header status message when the file upload is paused"
4255
+ headerStatusPaused="Paused"
4305
4256
 
4306
- i18n-headerStatusUploaded="kendo.upload.headerStatusUploaded|The header status message after file upload completion"
4307
- headerStatusUploaded="Done"
4257
+ i18n-headerStatusUploaded="kendo.upload.headerStatusUploaded|The header status message after file upload completion"
4258
+ headerStatusUploaded="Done"
4308
4259
 
4309
- i18n-headerStatusUploading="kendo.upload.headerStatusUploading|The header status message during file upload"
4310
- headerStatusUploading="Uploading..."
4260
+ i18n-headerStatusUploading="kendo.upload.headerStatusUploading|The header status message during file upload"
4261
+ headerStatusUploading="Uploading..."
4311
4262
 
4312
- i18n-invalidFileExtension="kendo.upload.invalidFileExtension|The text for the invalid allowed extensions restriction message"
4313
- invalidFileExtension="File type not allowed."
4263
+ i18n-invalidFileExtension="kendo.upload.invalidFileExtension|The text for the invalid allowed extensions restriction message"
4264
+ invalidFileExtension="File type not allowed."
4314
4265
 
4315
- i18n-invalidMaxFileSize="kendo.upload.invalidMaxFileSize|The text for the invalid max file size restriction message"
4316
- invalidMaxFileSize="File size too large."
4266
+ i18n-invalidMaxFileSize="kendo.upload.invalidMaxFileSize|The text for the invalid max file size restriction message"
4267
+ invalidMaxFileSize="File size too large."
4317
4268
 
4318
- i18n-invalidMinFileSize="kendo.upload.invalidMinFileSize|The text for the invalid min file size restriction message"
4319
- invalidMinFileSize="File size too small."
4269
+ i18n-invalidMinFileSize="kendo.upload.invalidMinFileSize|The text for the invalid min file size restriction message"
4270
+ invalidMinFileSize="File size too small."
4320
4271
 
4321
- i18n-pause="kendo.upload.pause|The text for the Pause button"
4322
- pause="Pause"
4272
+ i18n-pause="kendo.upload.pause|The text for the Pause button"
4273
+ pause="Pause"
4323
4274
 
4324
- i18n-remove="kendo.upload.remove|The text for the Remove button"
4325
- remove="Remove"
4275
+ i18n-remove="kendo.upload.remove|The text for the Remove button"
4276
+ remove="Remove"
4326
4277
 
4327
- i18n-resume="kendo.upload.resume|The text for the Resume button"
4328
- resume="Resume"
4278
+ i18n-resume="kendo.upload.resume|The text for the Resume button"
4279
+ resume="Resume"
4329
4280
 
4330
- i18n-retry="kendo.upload.retry|The text for the Retry button"
4331
- retry="Retry"
4281
+ i18n-retry="kendo.upload.retry|The text for the Retry button"
4282
+ retry="Retry"
4332
4283
 
4333
- i18n-select="kendo.upload.select|The text for the Select button"
4334
- select="Select files..."
4284
+ i18n-select="kendo.upload.select|The text for the Select button"
4285
+ select="Select files..."
4335
4286
 
4336
- i18n-uploadSelectedFiles="kendo.upload.uploadSelectedFiles|The text for the Upload files button"
4337
- uploadSelectedFiles="Upload"
4287
+ i18n-uploadSelectedFiles="kendo.upload.uploadSelectedFiles|The text for the Upload files button"
4288
+ uploadSelectedFiles="Upload"
4338
4289
  >
4339
4290
  </ng-container>
4340
4291
  <div kendoUploadInternalDropZone
4341
- [restrictions]="restrictions"
4342
- [multiple]="multiple"
4343
- [disabled]="disabled"
4292
+ [restrictions]="restrictions"
4293
+ [multiple]="multiple"
4294
+ [disabled]="disabled"
4344
4295
  >
4345
4296
  <div class="k-upload-button-wrap">
4346
4297
  <button
@@ -4350,7 +4301,8 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4350
4301
  role="button"
4351
4302
  [id]="focusableId"
4352
4303
  [attr.aria-label]="textFor('select')"
4353
- [attr.tabindex]="selectButtonTabIndex"
4304
+ [attr.tabindex]="tabindex"
4305
+ [attr.aria-controls]="inputElementId"
4354
4306
  (focus)="onFileSelectButtonFocus($event)"
4355
4307
  (blur)="onFileSelectButtonBlur($event)"
4356
4308
  >
@@ -4359,6 +4311,7 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4359
4311
  <input
4360
4312
  #fileSelectInput
4361
4313
  kendoFileSelect
4314
+ [id]="inputElementId"
4362
4315
  [attr.accept]="accept ? accept : null"
4363
4316
  [attr.aria-hidden]="true"
4364
4317
  [dir]="direction"
@@ -4368,8 +4321,8 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4368
4321
  />
4369
4322
  </div>
4370
4323
  <kendo-upload-status-total *ngIf="showTotalStatus"
4371
- class="k-upload-status"
4372
- [fileList]="fileList">
4324
+ class="k-upload-status"
4325
+ [fileList]="fileList">
4373
4326
  </kendo-upload-status-total>
4374
4327
  <div class="k-dropzone-hint">{{textFor('dropFilesHere')}}</div>
4375
4328
  </div>
@@ -4381,11 +4334,11 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4381
4334
  [fileInfoTemplate]="fileInfoTemplate">
4382
4335
  </ul>
4383
4336
  <kendo-upload-action-buttons
4384
- *ngIf="showActionButtons"
4385
- [disabled]="disabled"
4386
- [actionsLayout]="actionsLayout">
4337
+ *ngIf="showActionButtons"
4338
+ [disabled]="disabled"
4339
+ [actionsLayout]="actionsLayout">
4387
4340
  </kendo-upload-action-buttons>
4388
- `, isInline: true, components: [{ type: i7.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: UploadStatusTotalComponent, selector: "kendo-upload-status-total", inputs: ["fileList"] }, { type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }, { type: UploadActionButtonsComponent, selector: "kendo-upload-action-buttons", inputs: ["disabled", "actionsLayout"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4341
+ `, isInline: true, components: [{ type: i5.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: UploadStatusTotalComponent, selector: "kendo-upload-status-total", inputs: ["fileList"] }, { type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }, { type: UploadActionButtonsComponent, selector: "kendo-upload-action-buttons", inputs: ["disabled", "actionsLayout"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4389
4342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UploadComponent, decorators: [{
4390
4343
  type: Component,
4391
4344
  args: [{
@@ -4408,71 +4361,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4408
4361
  selector: 'kendo-upload',
4409
4362
  template: `
4410
4363
  <ng-container kendoUploadLocalizedMessages
4411
- i18n-cancel="kendo.upload.cancel|The text for the Cancel button"
4412
- cancel="Cancel"
4364
+ i18n-cancel="kendo.upload.cancel|The text for the Cancel button"
4365
+ cancel="Cancel"
4413
4366
 
4414
- i18n-clearSelectedFiles="kendo.upload.clearSelectedFiles|The text for the Clear button"
4415
- clearSelectedFiles="Clear"
4367
+ i18n-clearSelectedFiles="kendo.upload.clearSelectedFiles|The text for the Clear button"
4368
+ clearSelectedFiles="Clear"
4416
4369
 
4417
- i18n-dropFilesHere="kendo.upload.dropFilesHere|The drop zone hint"
4418
- dropFilesHere="Drop files here to upload"
4370
+ i18n-dropFilesHere="kendo.upload.dropFilesHere|The drop zone hint"
4371
+ dropFilesHere="Drop files here to upload"
4419
4372
 
4420
- i18n-filesBatchStatus="kendo.upload.filesBatchStatus|The status message for a batch of files"
4421
- filesBatchStatus="files"
4373
+ i18n-filesBatchStatus="kendo.upload.filesBatchStatus|The status message for a batch of files"
4374
+ filesBatchStatus="files"
4422
4375
 
4423
- i18n-filesBatchStatusFailed="kendo.upload.filesBatchStatusFailed|The status message for a batch of files after failed upload"
4424
- filesBatchStatusFailed="files failed to upload."
4376
+ i18n-filesBatchStatusFailed="kendo.upload.filesBatchStatusFailed|The status message for a batch of files after failed upload"
4377
+ filesBatchStatusFailed="files failed to upload."
4425
4378
 
4426
- i18n-filesBatchStatusUploaded="kendo.upload.filesBatchStatusUploaded|The status message for a batch of files after successful upload"
4427
- filesBatchStatusUploaded="files successfully uploaded."
4379
+ i18n-filesBatchStatusUploaded="kendo.upload.filesBatchStatusUploaded|The status message for a batch of files after successful upload"
4380
+ filesBatchStatusUploaded="files successfully uploaded."
4428
4381
 
4429
- i18n-fileStatusFailed="kendo.upload.fileStatusFailed|The file status message after failed upload"
4430
- fileStatusFailed="File failed to upload."
4382
+ i18n-fileStatusFailed="kendo.upload.fileStatusFailed|The file status message after failed upload"
4383
+ fileStatusFailed="File failed to upload."
4431
4384
 
4432
- i18n-fileStatusUploaded="kendo.upload.fileStatusUploaded|The file status message after successful upload"
4433
- fileStatusUploaded="File successfully uploaded."
4385
+ i18n-fileStatusUploaded="kendo.upload.fileStatusUploaded|The file status message after successful upload"
4386
+ fileStatusUploaded="File successfully uploaded."
4434
4387
 
4435
- i18n-headerStatusPaused="kendo.upload.headerStatusPaused|The header status message when the file upload is paused"
4436
- headerStatusPaused="Paused"
4388
+ i18n-headerStatusPaused="kendo.upload.headerStatusPaused|The header status message when the file upload is paused"
4389
+ headerStatusPaused="Paused"
4437
4390
 
4438
- i18n-headerStatusUploaded="kendo.upload.headerStatusUploaded|The header status message after file upload completion"
4439
- headerStatusUploaded="Done"
4391
+ i18n-headerStatusUploaded="kendo.upload.headerStatusUploaded|The header status message after file upload completion"
4392
+ headerStatusUploaded="Done"
4440
4393
 
4441
- i18n-headerStatusUploading="kendo.upload.headerStatusUploading|The header status message during file upload"
4442
- headerStatusUploading="Uploading..."
4394
+ i18n-headerStatusUploading="kendo.upload.headerStatusUploading|The header status message during file upload"
4395
+ headerStatusUploading="Uploading..."
4443
4396
 
4444
- i18n-invalidFileExtension="kendo.upload.invalidFileExtension|The text for the invalid allowed extensions restriction message"
4445
- invalidFileExtension="File type not allowed."
4397
+ i18n-invalidFileExtension="kendo.upload.invalidFileExtension|The text for the invalid allowed extensions restriction message"
4398
+ invalidFileExtension="File type not allowed."
4446
4399
 
4447
- i18n-invalidMaxFileSize="kendo.upload.invalidMaxFileSize|The text for the invalid max file size restriction message"
4448
- invalidMaxFileSize="File size too large."
4400
+ i18n-invalidMaxFileSize="kendo.upload.invalidMaxFileSize|The text for the invalid max file size restriction message"
4401
+ invalidMaxFileSize="File size too large."
4449
4402
 
4450
- i18n-invalidMinFileSize="kendo.upload.invalidMinFileSize|The text for the invalid min file size restriction message"
4451
- invalidMinFileSize="File size too small."
4403
+ i18n-invalidMinFileSize="kendo.upload.invalidMinFileSize|The text for the invalid min file size restriction message"
4404
+ invalidMinFileSize="File size too small."
4452
4405
 
4453
- i18n-pause="kendo.upload.pause|The text for the Pause button"
4454
- pause="Pause"
4406
+ i18n-pause="kendo.upload.pause|The text for the Pause button"
4407
+ pause="Pause"
4455
4408
 
4456
- i18n-remove="kendo.upload.remove|The text for the Remove button"
4457
- remove="Remove"
4409
+ i18n-remove="kendo.upload.remove|The text for the Remove button"
4410
+ remove="Remove"
4458
4411
 
4459
- i18n-resume="kendo.upload.resume|The text for the Resume button"
4460
- resume="Resume"
4412
+ i18n-resume="kendo.upload.resume|The text for the Resume button"
4413
+ resume="Resume"
4461
4414
 
4462
- i18n-retry="kendo.upload.retry|The text for the Retry button"
4463
- retry="Retry"
4415
+ i18n-retry="kendo.upload.retry|The text for the Retry button"
4416
+ retry="Retry"
4464
4417
 
4465
- i18n-select="kendo.upload.select|The text for the Select button"
4466
- select="Select files..."
4418
+ i18n-select="kendo.upload.select|The text for the Select button"
4419
+ select="Select files..."
4467
4420
 
4468
- i18n-uploadSelectedFiles="kendo.upload.uploadSelectedFiles|The text for the Upload files button"
4469
- uploadSelectedFiles="Upload"
4421
+ i18n-uploadSelectedFiles="kendo.upload.uploadSelectedFiles|The text for the Upload files button"
4422
+ uploadSelectedFiles="Upload"
4470
4423
  >
4471
4424
  </ng-container>
4472
4425
  <div kendoUploadInternalDropZone
4473
- [restrictions]="restrictions"
4474
- [multiple]="multiple"
4475
- [disabled]="disabled"
4426
+ [restrictions]="restrictions"
4427
+ [multiple]="multiple"
4428
+ [disabled]="disabled"
4476
4429
  >
4477
4430
  <div class="k-upload-button-wrap">
4478
4431
  <button
@@ -4482,7 +4435,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4482
4435
  role="button"
4483
4436
  [id]="focusableId"
4484
4437
  [attr.aria-label]="textFor('select')"
4485
- [attr.tabindex]="selectButtonTabIndex"
4438
+ [attr.tabindex]="tabindex"
4439
+ [attr.aria-controls]="inputElementId"
4486
4440
  (focus)="onFileSelectButtonFocus($event)"
4487
4441
  (blur)="onFileSelectButtonBlur($event)"
4488
4442
  >
@@ -4491,6 +4445,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4491
4445
  <input
4492
4446
  #fileSelectInput
4493
4447
  kendoFileSelect
4448
+ [id]="inputElementId"
4494
4449
  [attr.accept]="accept ? accept : null"
4495
4450
  [attr.aria-hidden]="true"
4496
4451
  [dir]="direction"
@@ -4500,8 +4455,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4500
4455
  />
4501
4456
  </div>
4502
4457
  <kendo-upload-status-total *ngIf="showTotalStatus"
4503
- class="k-upload-status"
4504
- [fileList]="fileList">
4458
+ class="k-upload-status"
4459
+ [fileList]="fileList">
4505
4460
  </kendo-upload-status-total>
4506
4461
  <div class="k-dropzone-hint">{{textFor('dropFilesHere')}}</div>
4507
4462
  </div>
@@ -4513,11 +4468,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4513
4468
  [fileInfoTemplate]="fileInfoTemplate">
4514
4469
  </ul>
4515
4470
  <kendo-upload-action-buttons
4516
- *ngIf="showActionButtons"
4517
- [disabled]="disabled"
4518
- [actionsLayout]="actionsLayout">
4471
+ *ngIf="showActionButtons"
4472
+ [disabled]="disabled"
4473
+ [actionsLayout]="actionsLayout">
4519
4474
  </kendo-upload-action-buttons>
4520
- `
4475
+ `
4521
4476
  }]
4522
4477
  }], ctorParameters: function () { return [{ type: UploadService }, { type: i1$1.LocalizationService }, { type: NavigationService }, { type: DropZoneService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { autoUpload: [{
4523
4478
  type: Input
@@ -4570,10 +4525,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4570
4525
  type: Input
4571
4526
  }], fileTemplate: [{
4572
4527
  type: ContentChild,
4573
- args: [FileTemplateDirective, { static: false }]
4528
+ args: [FileTemplateDirective]
4574
4529
  }], fileInfoTemplate: [{
4575
4530
  type: ContentChild,
4576
- args: [FileInfoTemplateDirective, { static: false }]
4531
+ args: [FileInfoTemplateDirective]
4577
4532
  }], fileSelectInput: [{
4578
4533
  type: ViewChild,
4579
4534
  args: ['fileSelectInput', { static: true }]
@@ -4831,8 +4786,7 @@ const SHARED_DECLARATIONS = [
4831
4786
  FileListMultipleItemsComponent,
4832
4787
  FileListSingleItemComponent,
4833
4788
  FileSelectDirective,
4834
- LocalizedMessagesDirective,
4835
- TemplateContextDirective
4789
+ LocalizedMessagesDirective
4836
4790
  ];
4837
4791
  /**
4838
4792
  * @hidden
@@ -4861,8 +4815,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
4861
4815
  FileListMultipleItemsComponent,
4862
4816
  FileListSingleItemComponent,
4863
4817
  FileSelectDirective,
4864
- LocalizedMessagesDirective,
4865
- TemplateContextDirective], imports: [CommonModule, ButtonsModule, ProgressBarModule, IconsModule], exports: [FileTemplateDirective,
4818
+ LocalizedMessagesDirective], imports: [CommonModule, ButtonsModule, ProgressBarModule, IconsModule], exports: [FileTemplateDirective,
4866
4819
  FileInfoTemplateDirective,
4867
4820
  CustomMessagesComponent,
4868
4821
  UploadDropZoneDirective,
@@ -4873,8 +4826,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
4873
4826
  FileListMultipleItemsComponent,
4874
4827
  FileListSingleItemComponent,
4875
4828
  FileSelectDirective,
4876
- LocalizedMessagesDirective,
4877
- TemplateContextDirective, CommonModule,
4829
+ LocalizedMessagesDirective, CommonModule,
4878
4830
  ButtonsModule] });
4879
4831
  SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SharedModule, imports: [[CommonModule, ButtonsModule, ProgressBarModule, IconsModule], CommonModule,
4880
4832
  ButtonsModule] });
@@ -4993,5 +4945,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4993
4945
  * Generated bundle index. Do not edit.
4994
4946
  */
4995
4947
 
4996
- export { CancelEvent, ClearEvent, CustomMessagesComponent, ErrorEvent, FileInfoTemplateDirective, FileListComponent, FileListItemActionButtonComponent, FileListItemBase, FileListMultipleItemsComponent, FileListSingleItemComponent, FileMap, FileSelectComponent, FileSelectDirective, FileSelectModule, FileState, FileTemplateDirective, NavigationService, PauseEvent, RemoveEvent, ResumeEvent, SelectEvent, SuccessEvent, TemplateContextDirective, UploadActionButtonsComponent, UploadComponent, UploadDropZoneComponent, UploadDropZoneDirective, UploadEvent, UploadModule, UploadProgressEvent, UploadService, UploadStatusTotalComponent, UploadsModule, validateFiles };
4948
+ export { CancelEvent, ClearEvent, CustomMessagesComponent, ErrorEvent, FileInfoTemplateDirective, FileListComponent, FileListItemActionButtonComponent, FileListItemBase, FileListMultipleItemsComponent, FileListSingleItemComponent, FileMap, FileSelectComponent, FileSelectDirective, FileSelectModule, FileState, FileTemplateDirective, NavigationService, PauseEvent, RemoveEvent, ResumeEvent, SelectEvent, SuccessEvent, UploadActionButtonsComponent, UploadComponent, UploadDropZoneComponent, UploadDropZoneDirective, UploadEvent, UploadModule, UploadProgressEvent, UploadService, UploadStatusTotalComponent, UploadsModule, validateFiles };
4997
4949