@progress/kendo-angular-upload 11.2.0-develop.5 → 11.2.0-develop.7

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.
@@ -139,6 +139,9 @@ export class FileSelectComponent {
139
139
  get dir() {
140
140
  return this.direction;
141
141
  }
142
+ get hostRole() {
143
+ return 'application';
144
+ }
142
145
  ngOnInit() {
143
146
  const { buttonId, inputId } = this.getIds();
144
147
  this.focusableId = buttonId;
@@ -168,6 +171,8 @@ export class FileSelectComponent {
168
171
  focus() {
169
172
  setTimeout(() => {
170
173
  this.fileSelectButton.nativeElement.focus();
174
+ this.navigation.focused = true;
175
+ this.onFocus.emit();
171
176
  });
172
177
  }
173
178
  ngOnDestroy() {
@@ -357,7 +362,7 @@ export class FileSelectComponent {
357
362
  }
358
363
  }
359
364
  FileSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileSelectComponent, deps: [{ token: i1.UploadService }, { token: i2.LocalizationService }, { token: i3.NavigationService }, { token: i4.DropZoneService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
360
- 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: [
365
+ 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: [
361
366
  LocalizationService,
362
367
  NavigationService,
363
368
  UploadService,
@@ -401,19 +406,19 @@ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
401
406
  kendoButton
402
407
  #fileSelectButton
403
408
  class="k-upload-button"
404
- role="button"
409
+ type="button"
410
+ (click)="fileSelectInput.click()"
405
411
  [id]="focusableId"
406
412
  [attr.aria-label]="textFor('select')"
407
413
  [attr.tabindex]="tabindex"
408
414
  [attr.aria-controls]="inputElementId"
409
- (focus)="onFileSelectButtonFocus($event)"
410
- (blur)="onFileSelectButtonBlur($event)"
411
415
  >
412
416
  {{textFor('select')}}
413
417
  </button>
414
418
  <input
415
419
  #fileSelectInput
416
420
  kendoFileSelect
421
+ class="k-hidden"
417
422
  [id]="inputElementId"
418
423
  [attr.accept]="accept ? accept : null"
419
424
  [attr.aria-hidden]="true"
@@ -484,19 +489,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
484
489
  kendoButton
485
490
  #fileSelectButton
486
491
  class="k-upload-button"
487
- role="button"
492
+ type="button"
493
+ (click)="fileSelectInput.click()"
488
494
  [id]="focusableId"
489
495
  [attr.aria-label]="textFor('select')"
490
496
  [attr.tabindex]="tabindex"
491
497
  [attr.aria-controls]="inputElementId"
492
- (focus)="onFileSelectButtonFocus($event)"
493
- (blur)="onFileSelectButtonBlur($event)"
494
498
  >
495
499
  {{textFor('select')}}
496
500
  </button>
497
501
  <input
498
502
  #fileSelectInput
499
503
  kendoFileSelect
504
+ class="k-hidden"
500
505
  [id]="inputElementId"
501
506
  [attr.accept]="accept ? accept : null"
502
507
  [attr.aria-hidden]="true"
@@ -569,4 +574,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
569
574
  }], dir: [{
570
575
  type: HostBinding,
571
576
  args: ['attr.dir']
577
+ }], hostRole: [{
578
+ type: HostBinding,
579
+ args: ['attr.role']
572
580
  }] } });
@@ -32,17 +32,18 @@ export class NavigationService {
32
32
  process(event) {
33
33
  const handler = this.action(event);
34
34
  if (handler) {
35
- handler(event.shiftKey);
35
+ handler(event);
36
36
  }
37
37
  }
38
38
  computeKeys(direction) {
39
39
  this.keyBindings = {
40
- [Keys.Enter]: () => this.handleEnter(),
40
+ [Keys.Space]: () => this.handleSpace(),
41
+ [Keys.Enter]: (event) => this.handleEnter(event),
41
42
  [Keys.Escape]: () => this.handleEscape(),
42
43
  [Keys.Delete]: () => this.handleDelete(),
43
- [Keys.Tab]: (shifted) => this.handleTab(shifted),
44
- [Keys.ArrowUp]: () => this.handleUp(),
45
- [Keys.ArrowDown]: () => this.handleDown(),
44
+ [Keys.Tab]: (event) => this.handleTab(event.shiftKey),
45
+ [Keys.ArrowUp]: (event) => this.handleUp(event),
46
+ [Keys.ArrowDown]: (event) => this.handleDown(event),
46
47
  [this.invertKeys(direction, Keys.ArrowLeft, Keys.ArrowRight)]: () => this.handleLeft(),
47
48
  [this.invertKeys(direction, Keys.ArrowRight, Keys.ArrowLeft)]: () => this.handleRight()
48
49
  };
@@ -55,7 +56,7 @@ export class NavigationService {
55
56
  this._focusedIndex = -1;
56
57
  this.onSelectButtonFocus.emit();
57
58
  }
58
- handleEnter() {
59
+ handleEnter(event) {
59
60
  if (this.lastIndex >= 0) {
60
61
  this.zone.run(() => {
61
62
  if (this.focusedIndex <= this.lastFileIndex) {
@@ -63,11 +64,17 @@ export class NavigationService {
63
64
  return;
64
65
  }
65
66
  if (this.actionButtonsVisible && this.focusedIndex <= this.lastIndex) {
67
+ event.preventDefault();
66
68
  this.onActionButtonAction.emit(this.focusedIndex < this.lastIndex ? "clear" : "upload");
67
69
  }
68
70
  });
69
71
  }
70
72
  }
73
+ handleSpace() {
74
+ if (this.focusedIndex >= 0 && this.focusedIndex <= this.lastFileIndex) {
75
+ this.zone.run(() => this.onFileAction.emit(Keys.Space));
76
+ }
77
+ }
71
78
  handleDelete() {
72
79
  if (this.focusedIndex >= 0 && this.focusedIndex <= this.lastFileIndex) {
73
80
  this.zone.run(() => {
@@ -97,16 +104,28 @@ export class NavigationService {
97
104
  }
98
105
  }
99
106
  handleTab(shifted) {
100
- if (this.focusedIndex >= 0 && shifted) {
101
- this.focusedIndex = -1;
107
+ if (this.focusedIndex === -1) {
108
+ this.focusedIndex = this.lastFileIndex + 1;
109
+ this.zone.run(() => this.onActionButtonFocus.emit("clear"));
110
+ return;
111
+ }
112
+ if (this.focusedIndex === this.lastFileIndex + 1) {
113
+ this.focusedIndex += 1;
114
+ this.zone.run(() => this.onActionButtonFocus.emit("upload"));
115
+ return;
116
+ }
117
+ if (this.focusedIndex === this.lastIndex && shifted) {
118
+ this.focusedIndex -= 1;
102
119
  return;
103
120
  }
104
- this.zone.run(() => {
105
- this.onTab.emit();
106
- });
121
+ if (this.focusedIndex === this.lastFileIndex + 1 && shifted) {
122
+ this.focusedIndex = -1;
123
+ this.zone.run(() => this.onSelectButtonFocus.emit());
124
+ }
107
125
  }
108
- handleDown() {
126
+ handleDown(event) {
109
127
  if (this.lastIndex >= 0 && this.focusedIndex < this.lastIndex) {
128
+ event.preventDefault();
110
129
  this.zone.run(() => {
111
130
  if (this.focusedIndex < this.lastFileIndex) {
112
131
  this.focusedIndex += 1;
@@ -120,8 +139,9 @@ export class NavigationService {
120
139
  });
121
140
  }
122
141
  }
123
- handleUp() {
142
+ handleUp(event) {
124
143
  if (this.lastIndex >= 0 && this.focusedIndex > -1) {
144
+ event.preventDefault();
125
145
  this.zone.run(() => {
126
146
  this.focusedIndex -= 1;
127
147
  if (this.focusedIndex === -1) {
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-upload',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1675674529,
13
- version: '11.2.0-develop.5',
12
+ publishDate: 1675695082,
13
+ version: '11.2.0-develop.7',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -134,7 +134,7 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
134
134
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
135
135
  [ngClass]="{ 'k-focus': this.retryFocused }"
136
136
  [attr.tabIndex]="-1"
137
-
137
+ [attr.aria-hidden]="true"
138
138
  (focus)="onFocus('retry')"
139
139
  (blur)="onBlur('retry')"
140
140
  (click)="onRetryClick()"
@@ -154,6 +154,7 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
154
154
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
155
155
  [ngClass]="{ 'k-focus': this.pauseResumeFocused }"
156
156
  [attr.tabIndex]="-1"
157
+ [attr.aria-hidden]="true"
157
158
  (focus)="onFocus('pauseResume')"
158
159
  (blur)="onBlur('pauseResume')"
159
160
  (click)="onPauseResumeClick()"
@@ -171,6 +172,7 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
171
172
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
172
173
  type="button"
173
174
  [attr.tabIndex]="-1"
175
+ [attr.aria-hidden]="true"
174
176
  (focus)="onFocus('action')"
175
177
  (blur)="onBlur('action')"
176
178
  [ngClass]="{ 'k-focus': this.actionFocused }"
@@ -200,7 +202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
200
202
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
201
203
  [ngClass]="{ 'k-focus': this.retryFocused }"
202
204
  [attr.tabIndex]="-1"
203
-
205
+ [attr.aria-hidden]="true"
204
206
  (focus)="onFocus('retry')"
205
207
  (blur)="onBlur('retry')"
206
208
  (click)="onRetryClick()"
@@ -220,6 +222,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
220
222
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
221
223
  [ngClass]="{ 'k-focus': this.pauseResumeFocused }"
222
224
  [attr.tabIndex]="-1"
225
+ [attr.aria-hidden]="true"
223
226
  (focus)="onFocus('pauseResume')"
224
227
  (blur)="onBlur('pauseResume')"
225
228
  (click)="onPauseResumeClick()"
@@ -237,6 +240,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
237
240
  class="k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action"
238
241
  type="button"
239
242
  [attr.tabIndex]="-1"
243
+ [attr.aria-hidden]="true"
240
244
  (focus)="onFocus('action')"
241
245
  (blur)="onBlur('action')"
242
246
  [ngClass]="{ 'k-focus': this.actionFocused }"
@@ -86,7 +86,7 @@ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
86
86
  <span [title]="file.name" class="k-file-name">
87
87
  {{file.name}}
88
88
  </span>
89
- <span [ngClass]="{
89
+ <span [attr.aria-live]="'polite'" [ngClass]="{
90
90
  'k-file-validation-message': file.validationErrors,
91
91
  'k-file-size': !file.validationErrors
92
92
  }"
@@ -152,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
152
152
  <span [title]="file.name" class="k-file-name">
153
153
  {{file.name}}
154
154
  </span>
155
- <span [ngClass]="{
155
+ <span [attr.aria-live]="'polite'" [ngClass]="{
156
156
  'k-file-validation-message': file.validationErrors,
157
157
  'k-file-size': !file.validationErrors
158
158
  }"
@@ -92,7 +92,7 @@ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
92
92
  <span class="k-file-info">
93
93
  <ng-container *ngIf="!fileInfoTemplate">
94
94
  <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
95
- <span [ngClass]="{
95
+ <span [attr.aria-live]="'polite'" [ngClass]="{
96
96
  'k-file-validation-message': file.validationErrors,
97
97
  'k-file-size': !file.validationErrors && isNotYetUploaded,
98
98
  'k-file-summary': isUploadSuccessful || isUploadFailed
@@ -150,7 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
150
150
  <span class="k-file-info">
151
151
  <ng-container *ngIf="!fileInfoTemplate">
152
152
  <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
153
- <span [ngClass]="{
153
+ <span [attr.aria-live]="'polite'" [ngClass]="{
154
154
  'k-file-validation-message': file.validationErrors,
155
155
  'k-file-size': !file.validationErrors && isNotYetUploaded,
156
156
  'k-file-summary': isUploadSuccessful || isUploadFailed
@@ -61,6 +61,16 @@ export class FileListComponent {
61
61
  }
62
62
  this.navigation.focusSelectButton();
63
63
  }
64
+ const isUploadChunk = this.uploadService.async.chunk;
65
+ const canTogglePauseResume = key === Keys.Space && files[0].state !== FileState.Uploaded;
66
+ if (canTogglePauseResume && isUploadChunk) {
67
+ if (files[0].state === FileState.Paused) {
68
+ this.uploadService.resumeFile(uid);
69
+ }
70
+ else {
71
+ this.uploadService.pauseFile(uid);
72
+ }
73
+ }
64
74
  }
65
75
  hasDelete(item) {
66
76
  return item.element.nativeElement.getElementsByClassName('k-delete').length > 0;
@@ -2,6 +2,7 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ /* eslint-disable no-debugger */
5
6
  import { Component, Input, HostBinding, ViewChild, ElementRef } from '@angular/core';
6
7
  import { UploadService } from '../upload.service';
7
8
  import { LocalizationService } from '@progress/kendo-angular-l10n';
@@ -83,13 +84,11 @@ export class UploadActionButtonsComponent {
83
84
  }
84
85
  UploadActionButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UploadActionButtonsComponent, deps: [{ token: i1.UploadService }, { token: i2.LocalizationService }, { token: i3.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
85
86
  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: `
86
- <button #clearButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
87
- [attr.tabIndex]="-1"
87
+ <button #clearButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
88
88
  (click)="onClearButtonClick($event)">
89
89
  {{textFor('clearSelectedFiles')}}
90
90
  </button>
91
- <button #uploadButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
92
- [attr.tabIndex]="-1"
91
+ <button #uploadButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
93
92
  (click)="onUploadButtonClick($event)">
94
93
  {{textFor('uploadSelectedFiles')}}
95
94
  </button>
@@ -99,13 +98,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
99
98
  args: [{
100
99
  selector: 'kendo-upload-action-buttons',
101
100
  template: `
102
- <button #clearButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
103
- [attr.tabIndex]="-1"
101
+ <button #clearButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
104
102
  (click)="onClearButtonClick($event)">
105
103
  {{textFor('clearSelectedFiles')}}
106
104
  </button>
107
- <button #uploadButton type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
108
- [attr.tabIndex]="-1"
105
+ <button #uploadButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-upload-selected"
109
106
  (click)="onUploadButtonClick($event)">
110
107
  {{textFor('uploadSelectedFiles')}}
111
108
  </button>
@@ -322,6 +322,9 @@ export class UploadComponent {
322
322
  get restrictions() {
323
323
  return this._restrictions;
324
324
  }
325
+ get hostRole() {
326
+ return 'application';
327
+ }
325
328
  get hostDisabledClass() {
326
329
  return this.disabled;
327
330
  }
@@ -330,21 +333,12 @@ export class UploadComponent {
330
333
  }
331
334
  ngOnInit() {
332
335
  this.verifySettings();
333
- const { buttonId, inputId } = this.getIds();
336
+ const { buttonId } = this.getIds();
334
337
  this.focusableId = buttonId;
335
- this.inputElementId = inputId;
336
338
  this.uploadService.setChunkSettings(this.chunkable);
337
339
  if (this.zoneId) {
338
340
  this.dropZoneService.addComponent(this, this.zoneId);
339
341
  }
340
- const button = this.fileSelectButton.nativeElement;
341
- const input = this.fileSelectInput.nativeElement;
342
- this.subs.add(this.renderer.listen(input, 'mouseenter', () => {
343
- this.renderer.addClass(button, 'k-hover');
344
- }));
345
- this.subs.add(this.renderer.listen(input, 'mouseleave', () => {
346
- this.renderer.removeClass(button, 'k-hover');
347
- }));
348
342
  this.zone.runOutsideAngular(() => {
349
343
  this.subs.add(this.renderer.listen(this.wrapper, 'keydown', event => this.handleKeydown(event)));
350
344
  });
@@ -417,21 +411,6 @@ export class UploadComponent {
417
411
  setDisabledState(isDisabled) {
418
412
  this.disabled = isDisabled;
419
413
  }
420
- /**
421
- * @hidden
422
- */
423
- onFileSelectButtonFocus(_event) {
424
- this.renderer.addClass(this.fileSelectButton.nativeElement, 'k-focus');
425
- if (!this.navigation.focused) {
426
- this.navigation.focusedIndex = -1;
427
- }
428
- }
429
- /**
430
- * @hidden
431
- */
432
- onFileSelectButtonBlur(_event) {
433
- this.renderer.removeClass(this.fileSelectButton.nativeElement, 'k-focus');
434
- }
435
414
  /**
436
415
  * @hidden
437
416
  */
@@ -487,6 +466,8 @@ export class UploadComponent {
487
466
  focus() {
488
467
  setTimeout(() => {
489
468
  this.fileSelectButton.nativeElement.focus();
469
+ this.navigation.focused = true;
470
+ this.onFocus.emit();
490
471
  });
491
472
  }
492
473
  /**
@@ -670,7 +651,7 @@ export class UploadComponent {
670
651
  }
671
652
  }
672
653
  UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UploadComponent, deps: [{ token: i1.UploadService }, { token: i2.LocalizationService }, { token: i3.NavigationService }, { token: i4.DropZoneService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
673
- 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: [
654
+ 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: [
674
655
  LocalizationService,
675
656
  NavigationService,
676
657
  UploadService,
@@ -758,19 +739,17 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
758
739
  #fileSelectButton
759
740
  class="k-upload-button"
760
741
  role="button"
742
+ (click)="fileSelectInput.click()"
761
743
  [id]="focusableId"
762
744
  [attr.aria-label]="textFor('select')"
763
745
  [attr.tabindex]="tabindex"
764
- [attr.aria-controls]="inputElementId"
765
- (focus)="onFileSelectButtonFocus($event)"
766
- (blur)="onFileSelectButtonBlur($event)"
767
746
  >
768
747
  {{textFor('select')}}
769
748
  </button>
770
749
  <input
771
750
  #fileSelectInput
772
751
  kendoFileSelect
773
- [id]="inputElementId"
752
+ class="k-hidden"
774
753
  [attr.accept]="accept ? accept : null"
775
754
  [attr.aria-hidden]="true"
776
755
  [dir]="direction"
@@ -892,19 +871,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
892
871
  #fileSelectButton
893
872
  class="k-upload-button"
894
873
  role="button"
874
+ (click)="fileSelectInput.click()"
895
875
  [id]="focusableId"
896
876
  [attr.aria-label]="textFor('select')"
897
877
  [attr.tabindex]="tabindex"
898
- [attr.aria-controls]="inputElementId"
899
- (focus)="onFileSelectButtonFocus($event)"
900
- (blur)="onFileSelectButtonBlur($event)"
901
878
  >
902
879
  {{textFor('select')}}
903
880
  </button>
904
881
  <input
905
882
  #fileSelectInput
906
883
  kendoFileSelect
907
- [id]="inputElementId"
884
+ class="k-hidden"
908
885
  [attr.accept]="accept ? accept : null"
909
886
  [attr.aria-hidden]="true"
910
887
  [dir]="direction"
@@ -1027,6 +1004,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1027
1004
  }], hostDefaultClasses: [{
1028
1005
  type: HostBinding,
1029
1006
  args: ['class.k-upload']
1007
+ }], hostRole: [{
1008
+ type: HostBinding,
1009
+ args: ['attr.role']
1030
1010
  }], hostDisabledClass: [{
1031
1011
  type: HostBinding,
1032
1012
  args: ['class.k-disabled']