@progress/kendo-angular-upload 11.1.1-develop.1 → 11.2.0-develop.10

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.
@@ -1352,17 +1352,18 @@ class NavigationService {
1352
1352
  process(event) {
1353
1353
  const handler = this.action(event);
1354
1354
  if (handler) {
1355
- handler(event.shiftKey);
1355
+ handler(event);
1356
1356
  }
1357
1357
  }
1358
1358
  computeKeys(direction) {
1359
1359
  this.keyBindings = {
1360
- [Keys.Enter]: () => this.handleEnter(),
1360
+ [Keys.Space]: () => this.handleSpace(),
1361
+ [Keys.Enter]: (event) => this.handleEnter(event),
1361
1362
  [Keys.Escape]: () => this.handleEscape(),
1362
1363
  [Keys.Delete]: () => this.handleDelete(),
1363
- [Keys.Tab]: (shifted) => this.handleTab(shifted),
1364
- [Keys.ArrowUp]: () => this.handleUp(),
1365
- [Keys.ArrowDown]: () => this.handleDown(),
1364
+ [Keys.Tab]: (event) => this.handleTab(event.shiftKey),
1365
+ [Keys.ArrowUp]: (event) => this.handleUp(event),
1366
+ [Keys.ArrowDown]: (event) => this.handleDown(event),
1366
1367
  [this.invertKeys(direction, Keys.ArrowLeft, Keys.ArrowRight)]: () => this.handleLeft(),
1367
1368
  [this.invertKeys(direction, Keys.ArrowRight, Keys.ArrowLeft)]: () => this.handleRight()
1368
1369
  };
@@ -1375,7 +1376,7 @@ class NavigationService {
1375
1376
  this._focusedIndex = -1;
1376
1377
  this.onSelectButtonFocus.emit();
1377
1378
  }
1378
- handleEnter() {
1379
+ handleEnter(event) {
1379
1380
  if (this.lastIndex >= 0) {
1380
1381
  this.zone.run(() => {
1381
1382
  if (this.focusedIndex <= this.lastFileIndex) {
@@ -1383,11 +1384,17 @@ class NavigationService {
1383
1384
  return;
1384
1385
  }
1385
1386
  if (this.actionButtonsVisible && this.focusedIndex <= this.lastIndex) {
1387
+ event.preventDefault();
1386
1388
  this.onActionButtonAction.emit(this.focusedIndex < this.lastIndex ? "clear" : "upload");
1387
1389
  }
1388
1390
  });
1389
1391
  }
1390
1392
  }
1393
+ handleSpace() {
1394
+ if (this.focusedIndex >= 0 && this.focusedIndex <= this.lastFileIndex) {
1395
+ this.zone.run(() => this.onFileAction.emit(Keys.Space));
1396
+ }
1397
+ }
1391
1398
  handleDelete() {
1392
1399
  if (this.focusedIndex >= 0 && this.focusedIndex <= this.lastFileIndex) {
1393
1400
  this.zone.run(() => {
@@ -1417,16 +1424,28 @@ class NavigationService {
1417
1424
  }
1418
1425
  }
1419
1426
  handleTab(shifted) {
1420
- if (this.focusedIndex >= 0 && shifted) {
1421
- this.focusedIndex = -1;
1427
+ if (this.focusedIndex === -1) {
1428
+ this.focusedIndex = this.lastFileIndex + 1;
1429
+ this.zone.run(() => this.onActionButtonFocus.emit("clear"));
1422
1430
  return;
1423
1431
  }
1424
- this.zone.run(() => {
1425
- this.onTab.emit();
1426
- });
1432
+ if (this.focusedIndex === this.lastFileIndex + 1) {
1433
+ this.focusedIndex += 1;
1434
+ this.zone.run(() => this.onActionButtonFocus.emit("upload"));
1435
+ return;
1436
+ }
1437
+ if (this.focusedIndex === this.lastIndex && shifted) {
1438
+ this.focusedIndex -= 1;
1439
+ return;
1440
+ }
1441
+ if (this.focusedIndex === this.lastFileIndex + 1 && shifted) {
1442
+ this.focusedIndex = -1;
1443
+ this.zone.run(() => this.onSelectButtonFocus.emit());
1444
+ }
1427
1445
  }
1428
- handleDown() {
1446
+ handleDown(event) {
1429
1447
  if (this.lastIndex >= 0 && this.focusedIndex < this.lastIndex) {
1448
+ event.preventDefault();
1430
1449
  this.zone.run(() => {
1431
1450
  if (this.focusedIndex < this.lastFileIndex) {
1432
1451
  this.focusedIndex += 1;
@@ -1440,8 +1459,9 @@ class NavigationService {
1440
1459
  });
1441
1460
  }
1442
1461
  }
1443
- handleUp() {
1462
+ handleUp(event) {
1444
1463
  if (this.lastIndex >= 0 && this.focusedIndex > -1) {
1464
+ event.preventDefault();
1445
1465
  this.zone.run(() => {
1446
1466
  this.focusedIndex -= 1;
1447
1467
  if (this.focusedIndex === -1) {
@@ -1493,8 +1513,8 @@ const packageMetadata = {
1493
1513
  name: '@progress/kendo-angular-upload',
1494
1514
  productName: 'Kendo UI for Angular',
1495
1515
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
1496
- publishDate: 1675328754,
1497
- version: '11.1.1-develop.1',
1516
+ publishDate: 1675853668,
1517
+ version: '11.2.0-develop.10',
1498
1518
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
1499
1519
  };
1500
1520
 
@@ -1817,7 +1837,7 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
1817
1837
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
1818
1838
  [ngClass]="{ 'k-focus': this.retryFocused }"
1819
1839
  [attr.tabIndex]="-1"
1820
-
1840
+ [attr.aria-hidden]="true"
1821
1841
  (focus)="onFocus('retry')"
1822
1842
  (blur)="onBlur('retry')"
1823
1843
  (click)="onRetryClick()"
@@ -1837,6 +1857,7 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
1837
1857
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
1838
1858
  [ngClass]="{ 'k-focus': this.pauseResumeFocused }"
1839
1859
  [attr.tabIndex]="-1"
1860
+ [attr.aria-hidden]="true"
1840
1861
  (focus)="onFocus('pauseResume')"
1841
1862
  (blur)="onBlur('pauseResume')"
1842
1863
  (click)="onPauseResumeClick()"
@@ -1854,6 +1875,7 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
1854
1875
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
1855
1876
  type="button"
1856
1877
  [attr.tabIndex]="-1"
1878
+ [attr.aria-hidden]="true"
1857
1879
  (focus)="onFocus('action')"
1858
1880
  (blur)="onBlur('action')"
1859
1881
  [ngClass]="{ 'k-focus': this.actionFocused }"
@@ -1883,7 +1905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1883
1905
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
1884
1906
  [ngClass]="{ 'k-focus': this.retryFocused }"
1885
1907
  [attr.tabIndex]="-1"
1886
-
1908
+ [attr.aria-hidden]="true"
1887
1909
  (focus)="onFocus('retry')"
1888
1910
  (blur)="onBlur('retry')"
1889
1911
  (click)="onRetryClick()"
@@ -1903,6 +1925,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1903
1925
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
1904
1926
  [ngClass]="{ 'k-focus': this.pauseResumeFocused }"
1905
1927
  [attr.tabIndex]="-1"
1928
+ [attr.aria-hidden]="true"
1906
1929
  (focus)="onFocus('pauseResume')"
1907
1930
  (blur)="onBlur('pauseResume')"
1908
1931
  (click)="onPauseResumeClick()"
@@ -1920,6 +1943,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1920
1943
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
1921
1944
  type="button"
1922
1945
  [attr.tabIndex]="-1"
1946
+ [attr.aria-hidden]="true"
1923
1947
  (focus)="onFocus('action')"
1924
1948
  (blur)="onBlur('action')"
1925
1949
  [ngClass]="{ 'k-focus': this.actionFocused }"
@@ -2017,7 +2041,7 @@ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2017
2041
  <span class="k-file-info">
2018
2042
  <ng-container *ngIf="!fileInfoTemplate">
2019
2043
  <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2020
- <span [ngClass]="{
2044
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2021
2045
  'k-file-validation-message': file.validationErrors,
2022
2046
  'k-file-size': !file.validationErrors && isNotYetUploaded,
2023
2047
  'k-file-summary': isUploadSuccessful || isUploadFailed
@@ -2075,7 +2099,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2075
2099
  <span class="k-file-info">
2076
2100
  <ng-container *ngIf="!fileInfoTemplate">
2077
2101
  <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2078
- <span [ngClass]="{
2102
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2079
2103
  'k-file-validation-message': file.validationErrors,
2080
2104
  'k-file-size': !file.validationErrors && isNotYetUploaded,
2081
2105
  'k-file-summary': isUploadSuccessful || isUploadFailed
@@ -2171,7 +2195,7 @@ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
2171
2195
  <span [title]="file.name" class="k-file-name">
2172
2196
  {{file.name}}
2173
2197
  </span>
2174
- <span [ngClass]="{
2198
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2175
2199
  'k-file-validation-message': file.validationErrors,
2176
2200
  'k-file-size': !file.validationErrors
2177
2201
  }"
@@ -2237,7 +2261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2237
2261
  <span [title]="file.name" class="k-file-name">
2238
2262
  {{file.name}}
2239
2263
  </span>
2240
- <span [ngClass]="{
2264
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2241
2265
  'k-file-validation-message': file.validationErrors,
2242
2266
  'k-file-size': !file.validationErrors
2243
2267
  }"
@@ -2314,6 +2338,16 @@ class FileListComponent {
2314
2338
  }
2315
2339
  this.navigation.focusSelectButton();
2316
2340
  }
2341
+ const isUploadChunk = this.uploadService.async.chunk;
2342
+ const canTogglePauseResume = key === Keys.Space && files[0].state !== FileState.Uploaded;
2343
+ if (canTogglePauseResume && isUploadChunk) {
2344
+ if (files[0].state === FileState.Paused) {
2345
+ this.uploadService.resumeFile(uid);
2346
+ }
2347
+ else {
2348
+ this.uploadService.pauseFile(uid);
2349
+ }
2350
+ }
2317
2351
  }
2318
2352
  hasDelete(item) {
2319
2353
  return item.element.nativeElement.getElementsByClassName('k-delete').length > 0;
@@ -2893,6 +2927,9 @@ class FileSelectComponent {
2893
2927
  get dir() {
2894
2928
  return this.direction;
2895
2929
  }
2930
+ get hostRole() {
2931
+ return 'application';
2932
+ }
2896
2933
  ngOnInit() {
2897
2934
  const { buttonId, inputId } = this.getIds();
2898
2935
  this.focusableId = buttonId;
@@ -2922,6 +2959,8 @@ class FileSelectComponent {
2922
2959
  focus() {
2923
2960
  setTimeout(() => {
2924
2961
  this.fileSelectButton.nativeElement.focus();
2962
+ this.navigation.focused = true;
2963
+ this.onFocus.emit();
2925
2964
  });
2926
2965
  }
2927
2966
  ngOnDestroy() {
@@ -3111,7 +3150,7 @@ class FileSelectComponent {
3111
3150
  }
3112
3151
  }
3113
3152
  FileSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileSelectComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }, { token: DropZoneService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3114
- FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FileSelectComponent, selector: "kendo-fileselect", inputs: { accept: "accept", disabled: "disabled", multiple: "multiple", name: "name", showFileList: "showFileList", tabindex: "tabindex", restrictions: "restrictions", zoneId: "zoneId", focusableId: "focusableId" }, outputs: { onBlur: "blur", onFocus: "focus", select: "select", remove: "remove", valueChange: "valueChange" }, host: { properties: { "class.k-upload": "this.hostDefaultClasses", "class.k-disabled": "this.hostDisabledClass", "attr.dir": "this.dir" } }, providers: [
3153
+ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FileSelectComponent, selector: "kendo-fileselect", inputs: { accept: "accept", disabled: "disabled", multiple: "multiple", name: "name", showFileList: "showFileList", tabindex: "tabindex", restrictions: "restrictions", zoneId: "zoneId", focusableId: "focusableId" }, outputs: { onBlur: "blur", onFocus: "focus", select: "select", remove: "remove", valueChange: "valueChange" }, host: { properties: { "class.k-upload": "this.hostDefaultClasses", "class.k-disabled": "this.hostDisabledClass", "attr.dir": "this.dir", "attr.role": "this.hostRole" } }, providers: [
3115
3154
  LocalizationService,
3116
3155
  NavigationService,
3117
3156
  UploadService,
@@ -3155,19 +3194,19 @@ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
3155
3194
  kendoButton
3156
3195
  #fileSelectButton
3157
3196
  class="k-upload-button"
3158
- role="button"
3197
+ type="button"
3198
+ (click)="fileSelectInput.click()"
3159
3199
  [id]="focusableId"
3160
3200
  [attr.aria-label]="textFor('select')"
3161
3201
  [attr.tabindex]="tabindex"
3162
3202
  [attr.aria-controls]="inputElementId"
3163
- (focus)="onFileSelectButtonFocus($event)"
3164
- (blur)="onFileSelectButtonBlur($event)"
3165
3203
  >
3166
3204
  {{textFor('select')}}
3167
3205
  </button>
3168
3206
  <input
3169
3207
  #fileSelectInput
3170
3208
  kendoFileSelect
3209
+ class="k-hidden"
3171
3210
  [id]="inputElementId"
3172
3211
  [attr.accept]="accept ? accept : null"
3173
3212
  [attr.aria-hidden]="true"
@@ -3238,19 +3277,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3238
3277
  kendoButton
3239
3278
  #fileSelectButton
3240
3279
  class="k-upload-button"
3241
- role="button"
3280
+ type="button"
3281
+ (click)="fileSelectInput.click()"
3242
3282
  [id]="focusableId"
3243
3283
  [attr.aria-label]="textFor('select')"
3244
3284
  [attr.tabindex]="tabindex"
3245
3285
  [attr.aria-controls]="inputElementId"
3246
- (focus)="onFileSelectButtonFocus($event)"
3247
- (blur)="onFileSelectButtonBlur($event)"
3248
3286
  >
3249
3287
  {{textFor('select')}}
3250
3288
  </button>
3251
3289
  <input
3252
3290
  #fileSelectInput
3253
3291
  kendoFileSelect
3292
+ class="k-hidden"
3254
3293
  [id]="inputElementId"
3255
3294
  [attr.accept]="accept ? accept : null"
3256
3295
  [attr.aria-hidden]="true"
@@ -3323,6 +3362,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3323
3362
  }], dir: [{
3324
3363
  type: HostBinding,
3325
3364
  args: ['attr.dir']
3365
+ }], hostRole: [{
3366
+ type: HostBinding,
3367
+ args: ['attr.role']
3326
3368
  }] } });
3327
3369
 
3328
3370
  /**
@@ -3446,6 +3488,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3446
3488
  type: Input
3447
3489
  }] } });
3448
3490
 
3491
+ /* eslint-disable no-debugger */
3449
3492
  /**
3450
3493
  * @hidden
3451
3494
  */
@@ -3519,13 +3562,11 @@ class UploadActionButtonsComponent {
3519
3562
  }
3520
3563
  UploadActionButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UploadActionButtonsComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
3521
3564
  UploadActionButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: UploadActionButtonsComponent, selector: "kendo-upload-action-buttons", inputs: { disabled: "disabled", actionsLayout: "actionsLayout" }, host: { properties: { "class.k-actions": "this.hostDefaultClass", "class.k-actions-end": "this.actionButtonsEndClassName", "class.k-actions-stretched": "this.actionButtonsStretchedClassName", "class.k-actions-start": "this.actionButtonsStartClassName", "class.k-actions-center": "this.actionButtonsCenterClassName" } }, viewQueries: [{ propertyName: "clearButton", first: true, predicate: ["clearButton"], descendants: true, static: true }, { propertyName: "uploadButton", first: true, predicate: ["uploadButton"], descendants: true, static: true }], ngImport: i0, template: `
3522
- <button #clearButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
3523
- [attr.tabIndex]="-1"
3565
+ <button #clearButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
3524
3566
  (click)="onClearButtonClick($event)">
3525
3567
  {{textFor('clearSelectedFiles')}}
3526
3568
  </button>
3527
- <button #uploadButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
3528
- [attr.tabIndex]="-1"
3569
+ <button #uploadButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
3529
3570
  (click)="onUploadButtonClick($event)">
3530
3571
  {{textFor('uploadSelectedFiles')}}
3531
3572
  </button>
@@ -3535,13 +3576,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
3535
3576
  args: [{
3536
3577
  selector: 'kendo-upload-action-buttons',
3537
3578
  template: `
3538
- <button #clearButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
3539
- [attr.tabIndex]="-1"
3579
+ <button #clearButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
3540
3580
  (click)="onClearButtonClick($event)">
3541
3581
  {{textFor('clearSelectedFiles')}}
3542
3582
  </button>
3543
- <button #uploadButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
3544
- [attr.tabIndex]="-1"
3583
+ <button #uploadButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
3545
3584
  (click)="onUploadButtonClick($event)">
3546
3585
  {{textFor('uploadSelectedFiles')}}
3547
3586
  </button>
@@ -3863,6 +3902,9 @@ class UploadComponent {
3863
3902
  get restrictions() {
3864
3903
  return this._restrictions;
3865
3904
  }
3905
+ get hostRole() {
3906
+ return 'application';
3907
+ }
3866
3908
  get hostDisabledClass() {
3867
3909
  return this.disabled;
3868
3910
  }
@@ -3871,21 +3913,12 @@ class UploadComponent {
3871
3913
  }
3872
3914
  ngOnInit() {
3873
3915
  this.verifySettings();
3874
- const { buttonId, inputId } = this.getIds();
3916
+ const { buttonId } = this.getIds();
3875
3917
  this.focusableId = buttonId;
3876
- this.inputElementId = inputId;
3877
3918
  this.uploadService.setChunkSettings(this.chunkable);
3878
3919
  if (this.zoneId) {
3879
3920
  this.dropZoneService.addComponent(this, this.zoneId);
3880
3921
  }
3881
- const button = this.fileSelectButton.nativeElement;
3882
- const input = this.fileSelectInput.nativeElement;
3883
- this.subs.add(this.renderer.listen(input, 'mouseenter', () => {
3884
- this.renderer.addClass(button, 'k-hover');
3885
- }));
3886
- this.subs.add(this.renderer.listen(input, 'mouseleave', () => {
3887
- this.renderer.removeClass(button, 'k-hover');
3888
- }));
3889
3922
  this.zone.runOutsideAngular(() => {
3890
3923
  this.subs.add(this.renderer.listen(this.wrapper, 'keydown', event => this.handleKeydown(event)));
3891
3924
  });
@@ -3958,21 +3991,6 @@ class UploadComponent {
3958
3991
  setDisabledState(isDisabled) {
3959
3992
  this.disabled = isDisabled;
3960
3993
  }
3961
- /**
3962
- * @hidden
3963
- */
3964
- onFileSelectButtonFocus(_event) {
3965
- this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-focus');
3966
- if (!this.navigation.focused) {
3967
- this.navigation.focusedIndex = -1;
3968
- }
3969
- }
3970
- /**
3971
- * @hidden
3972
- */
3973
- onFileSelectButtonBlur(_event) {
3974
- this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-focus');
3975
- }
3976
3994
  /**
3977
3995
  * @hidden
3978
3996
  */
@@ -4028,6 +4046,8 @@ class UploadComponent {
4028
4046
  focus() {
4029
4047
  setTimeout(() => {
4030
4048
  this.fileSelectButton.nativeElement.focus();
4049
+ this.navigation.focused = true;
4050
+ this.onFocus.emit();
4031
4051
  });
4032
4052
  }
4033
4053
  /**
@@ -4211,7 +4231,7 @@ class UploadComponent {
4211
4231
  }
4212
4232
  }
4213
4233
  UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UploadComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }, { token: DropZoneService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
4214
- UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: UploadComponent, selector: "kendo-upload", inputs: { autoUpload: "autoUpload", batch: "batch", withCredentials: "withCredentials", saveField: "saveField", saveHeaders: "saveHeaders", saveMethod: "saveMethod", saveUrl: "saveUrl", responseType: "responseType", removeField: "removeField", removeHeaders: "removeHeaders", removeMethod: "removeMethod", removeUrl: "removeUrl", chunkable: "chunkable", concurrent: "concurrent", multiple: "multiple", disabled: "disabled", showFileList: "showFileList", tabindex: "tabindex", zoneId: "zoneId", tabIndex: "tabIndex", accept: "accept", restrictions: "restrictions", focusableId: "focusableId", actionsLayout: "actionsLayout" }, outputs: { onBlur: "blur", cancel: "cancel", clear: "clear", complete: "complete", error: "error", onFocus: "focus", pause: "pause", remove: "remove", resume: "resume", select: "select", success: "success", upload: "upload", uploadProgress: "uploadProgress", valueChange: "valueChange" }, host: { properties: { "class.k-upload": "this.hostDefaultClasses", "class.k-disabled": "this.hostDisabledClass", "attr.dir": "this.dir" } }, providers: [
4234
+ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: UploadComponent, selector: "kendo-upload", inputs: { autoUpload: "autoUpload", batch: "batch", withCredentials: "withCredentials", saveField: "saveField", saveHeaders: "saveHeaders", saveMethod: "saveMethod", saveUrl: "saveUrl", responseType: "responseType", removeField: "removeField", removeHeaders: "removeHeaders", removeMethod: "removeMethod", removeUrl: "removeUrl", chunkable: "chunkable", concurrent: "concurrent", multiple: "multiple", disabled: "disabled", showFileList: "showFileList", tabindex: "tabindex", zoneId: "zoneId", tabIndex: "tabIndex", accept: "accept", restrictions: "restrictions", focusableId: "focusableId", actionsLayout: "actionsLayout" }, outputs: { onBlur: "blur", cancel: "cancel", clear: "clear", complete: "complete", error: "error", onFocus: "focus", pause: "pause", remove: "remove", resume: "resume", select: "select", success: "success", upload: "upload", uploadProgress: "uploadProgress", valueChange: "valueChange" }, host: { properties: { "class.k-upload": "this.hostDefaultClasses", "attr.role": "this.hostRole", "class.k-disabled": "this.hostDisabledClass", "attr.dir": "this.dir" } }, providers: [
4215
4235
  LocalizationService,
4216
4236
  NavigationService,
4217
4237
  UploadService,
@@ -4299,19 +4319,17 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4299
4319
  #fileSelectButton
4300
4320
  class="k-upload-button"
4301
4321
  role="button"
4322
+ (click)="fileSelectInput.click()"
4302
4323
  [id]="focusableId"
4303
4324
  [attr.aria-label]="textFor('select')"
4304
4325
  [attr.tabindex]="tabindex"
4305
- [attr.aria-controls]="inputElementId"
4306
- (focus)="onFileSelectButtonFocus($event)"
4307
- (blur)="onFileSelectButtonBlur($event)"
4308
4326
  >
4309
4327
  {{textFor('select')}}
4310
4328
  </button>
4311
4329
  <input
4312
4330
  #fileSelectInput
4313
4331
  kendoFileSelect
4314
- [id]="inputElementId"
4332
+ class="k-hidden"
4315
4333
  [attr.accept]="accept ? accept : null"
4316
4334
  [attr.aria-hidden]="true"
4317
4335
  [dir]="direction"
@@ -4433,19 +4451,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4433
4451
  #fileSelectButton
4434
4452
  class="k-upload-button"
4435
4453
  role="button"
4454
+ (click)="fileSelectInput.click()"
4436
4455
  [id]="focusableId"
4437
4456
  [attr.aria-label]="textFor('select')"
4438
4457
  [attr.tabindex]="tabindex"
4439
- [attr.aria-controls]="inputElementId"
4440
- (focus)="onFileSelectButtonFocus($event)"
4441
- (blur)="onFileSelectButtonBlur($event)"
4442
4458
  >
4443
4459
  {{textFor('select')}}
4444
4460
  </button>
4445
4461
  <input
4446
4462
  #fileSelectInput
4447
4463
  kendoFileSelect
4448
- [id]="inputElementId"
4464
+ class="k-hidden"
4449
4465
  [attr.accept]="accept ? accept : null"
4450
4466
  [attr.aria-hidden]="true"
4451
4467
  [dir]="direction"
@@ -4568,6 +4584,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
4568
4584
  }], hostDefaultClasses: [{
4569
4585
  type: HostBinding,
4570
4586
  args: ['class.k-upload']
4587
+ }], hostRole: [{
4588
+ type: HostBinding,
4589
+ args: ['attr.role']
4571
4590
  }], hostDisabledClass: [{
4572
4591
  type: HostBinding,
4573
4592
  args: ['class.k-disabled']