@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.
- package/esm2020/fileselect.component.mjs +15 -7
- package/esm2020/navigation.service.mjs +33 -13
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/rendering/file-list-item-action-button.component.mjs +6 -2
- package/esm2020/rendering/file-list-multiple-items.component.mjs +2 -2
- package/esm2020/rendering/file-list-single-item.component.mjs +2 -2
- package/esm2020/rendering/file-list.component.mjs +10 -0
- package/esm2020/rendering/upload-action-buttons.component.mjs +5 -8
- package/esm2020/upload.component.mjs +14 -34
- package/fesm2015/progress-kendo-angular-upload.mjs +89 -70
- package/fesm2020/progress-kendo-angular-upload.mjs +89 -70
- package/fileselect.component.d.ts +1 -0
- package/navigation.service.d.ts +4 -3
- package/package.json +7 -7
- package/schematics/ngAdd/index.js +3 -3
- package/upload.component.d.ts +1 -9
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
35
|
+
handler(event);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
computeKeys(direction) {
|
|
39
39
|
this.keyBindings = {
|
|
40
|
-
[Keys.
|
|
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]: (
|
|
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
|
|
101
|
-
this.focusedIndex =
|
|
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.
|
|
105
|
-
this.
|
|
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:
|
|
13
|
-
version: '11.2.0-develop.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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']
|