@progress/kendo-angular-upload 21.1.1-develop.2 → 21.2.0-develop.1

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.
@@ -12,7 +12,7 @@ import { FileInfoTemplateDirective } from '../templates/file-info-template.direc
12
12
  import { animate, state, style, transition, trigger } from '@angular/animations';
13
13
  import { copyIcon } from '@progress/kendo-svg-icons';
14
14
  import { FileListItemActionButtonComponent } from './file-list-item-action-button.component';
15
- import { NgIf, NgFor, NgClass, NgTemplateOutlet } from '@angular/common';
15
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
16
16
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
17
17
  import { ProgressBarComponent } from '@progress/kendo-angular-progressbar';
18
18
  import * as i0 from "@angular/core";
@@ -69,52 +69,55 @@ export class FileListMultipleItemsComponent extends FileListItemBase {
69
69
  return this.files[0].state === FileState.Failed;
70
70
  }
71
71
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileListMultipleItemsComponent, deps: [{ token: i1.LocalizationService }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
72
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileListMultipleItemsComponent, isStandalone: true, selector: "kendo-upload-file-list-multiple-items", inputs: { disabled: "disabled", files: "files", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
72
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FileListMultipleItemsComponent, isStandalone: true, selector: "kendo-upload-file-list-multiple-items", inputs: { disabled: "disabled", files: "files", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
73
73
  <kendo-progressbar
74
- [@progressState]="showProgress"
75
- [value]="progressComplete"
76
- [label]="{ visible: false }"
77
- >
74
+ [@progressState]="showProgress"
75
+ [value]="progressComplete"
76
+ [label]="{ visible: false }"
77
+ >
78
78
  </kendo-progressbar>
79
79
  <span class="k-file-icon-wrapper">
80
- <kendo-icon-wrapper
81
- name="copy"
82
- size="xxlarge"
83
- [svgIcon]="copySVGIcon"
84
- innerCssClass="k-file-icon"
80
+ <kendo-icon-wrapper
81
+ name="copy"
82
+ size="xxlarge"
83
+ [svgIcon]="copySVGIcon"
84
+ innerCssClass="k-file-icon"
85
85
  >
86
- </kendo-icon-wrapper>
86
+ </kendo-icon-wrapper>
87
87
  </span>
88
88
  <span class="k-multiple-files-wrapper">
89
- <ng-container *ngIf="!fileInfoTemplate">
90
- <span *ngFor="let file of files" class="k-file-info">
91
- <span [title]="file.name" class="k-file-name">
92
- {{file.name}}
93
- </span>
89
+ @if (!fileInfoTemplate) {
90
+ @for (file of files; track file) {
91
+ <span class="k-file-info">
92
+ <span [title]="file.name" class="k-file-name">
93
+ {{file.name}}
94
+ </span>
94
95
  <span [attr.aria-live]="'polite'" [ngClass]="{
95
96
  'k-file-validation-message': file.validationErrors,
96
97
  'k-file-size': !file.validationErrors
97
98
  }"
98
- >{{fileStatusText(file)}}</span>
99
- </span>
100
- <span class="k-file-summary"
101
- >{{batchStatusText}}</span>
102
- </ng-container>
99
+ >{{fileStatusText(file)}}</span>
100
+ </span>
101
+ }
102
+ <span class="k-file-summary"
103
+ >{{batchStatusText}}</span>
104
+ }
105
+ @if (fileInfoTemplate) {
103
106
  <ng-container
104
- *ngIf="fileInfoTemplate"
105
- [ngTemplateOutlet]="fileInfoTemplate.templateRef"
107
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
106
108
  [ngTemplateOutletContext]="{
107
109
  templateRef: fileInfoTemplate.templateRef,
108
110
  state: files[0].state,
109
111
  $implicit: files
110
112
  }"></ng-container>
113
+ }
111
114
  </span>
112
115
  <kendo-upload-file-list-item-action-button
113
- [file]='files[0]'
114
- [disabled]='disabled'
115
- [progress]='progressComplete'>
116
+ [file]='files[0]'
117
+ [disabled]='disabled'
118
+ [progress]='progressComplete'>
116
119
  </kendo-upload-file-list-item-action-button>
117
- `, isInline: true, dependencies: [{ kind: "component", type: ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], animations: [
120
+ `, isInline: true, dependencies: [{ kind: "component", type: ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], animations: [
118
121
  trigger('progressState', [
119
122
  state('active', style({ opacity: 1 })),
120
123
  state('inactive', style({ opacity: 0 })),
@@ -139,52 +142,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
139
142
  selector: 'kendo-upload-file-list-multiple-items',
140
143
  template: `
141
144
  <kendo-progressbar
142
- [@progressState]="showProgress"
143
- [value]="progressComplete"
144
- [label]="{ visible: false }"
145
- >
145
+ [@progressState]="showProgress"
146
+ [value]="progressComplete"
147
+ [label]="{ visible: false }"
148
+ >
146
149
  </kendo-progressbar>
147
150
  <span class="k-file-icon-wrapper">
148
- <kendo-icon-wrapper
149
- name="copy"
150
- size="xxlarge"
151
- [svgIcon]="copySVGIcon"
152
- innerCssClass="k-file-icon"
151
+ <kendo-icon-wrapper
152
+ name="copy"
153
+ size="xxlarge"
154
+ [svgIcon]="copySVGIcon"
155
+ innerCssClass="k-file-icon"
153
156
  >
154
- </kendo-icon-wrapper>
157
+ </kendo-icon-wrapper>
155
158
  </span>
156
159
  <span class="k-multiple-files-wrapper">
157
- <ng-container *ngIf="!fileInfoTemplate">
158
- <span *ngFor="let file of files" class="k-file-info">
159
- <span [title]="file.name" class="k-file-name">
160
- {{file.name}}
161
- </span>
160
+ @if (!fileInfoTemplate) {
161
+ @for (file of files; track file) {
162
+ <span class="k-file-info">
163
+ <span [title]="file.name" class="k-file-name">
164
+ {{file.name}}
165
+ </span>
162
166
  <span [attr.aria-live]="'polite'" [ngClass]="{
163
167
  'k-file-validation-message': file.validationErrors,
164
168
  'k-file-size': !file.validationErrors
165
169
  }"
166
- >{{fileStatusText(file)}}</span>
167
- </span>
168
- <span class="k-file-summary"
169
- >{{batchStatusText}}</span>
170
- </ng-container>
170
+ >{{fileStatusText(file)}}</span>
171
+ </span>
172
+ }
173
+ <span class="k-file-summary"
174
+ >{{batchStatusText}}</span>
175
+ }
176
+ @if (fileInfoTemplate) {
171
177
  <ng-container
172
- *ngIf="fileInfoTemplate"
173
- [ngTemplateOutlet]="fileInfoTemplate.templateRef"
178
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
174
179
  [ngTemplateOutletContext]="{
175
180
  templateRef: fileInfoTemplate.templateRef,
176
181
  state: files[0].state,
177
182
  $implicit: files
178
183
  }"></ng-container>
184
+ }
179
185
  </span>
180
186
  <kendo-upload-file-list-item-action-button
181
- [file]='files[0]'
182
- [disabled]='disabled'
183
- [progress]='progressComplete'>
187
+ [file]='files[0]'
188
+ [disabled]='disabled'
189
+ [progress]='progressComplete'>
184
190
  </kendo-upload-file-list-item-action-button>
185
- `,
191
+ `,
186
192
  standalone: true,
187
- imports: [ProgressBarComponent, IconWrapperComponent, NgIf, NgFor, NgClass, NgTemplateOutlet, FileListItemActionButtonComponent]
193
+ imports: [ProgressBarComponent, IconWrapperComponent, NgClass, NgTemplateOutlet, FileListItemActionButtonComponent]
188
194
  }]
189
195
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.UploadService }], propDecorators: { disabled: [{
190
196
  type: Input
@@ -11,7 +11,7 @@ import { fileGroupClass, isPresent, fileSVGGroupIcon } from '../common/util';
11
11
  import { FileInfoTemplateDirective } from '../templates/file-info-template.directive';
12
12
  import { animate, state, style, transition, trigger } from '@angular/animations';
13
13
  import { FileListItemActionButtonComponent } from './file-list-item-action-button.component';
14
- import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';
14
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
15
15
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
16
16
  import { ProgressBarComponent } from '@progress/kendo-angular-progressbar';
17
17
  import * as i0 from "@angular/core";
@@ -67,44 +67,46 @@ export class FileListSingleItemComponent extends FileListItemBase {
67
67
  return !this.isUploadFailed && !this.isUploadSuccessful;
68
68
  }
69
69
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileListSingleItemComponent, deps: [{ token: i1.LocalizationService }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
70
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileListSingleItemComponent, isStandalone: true, selector: "kendo-upload-file-list-single-item", inputs: { disabled: "disabled", file: "file", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
70
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FileListSingleItemComponent, isStandalone: true, selector: "kendo-upload-file-list-single-item", inputs: { disabled: "disabled", file: "file", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
71
71
  <kendo-progressbar
72
- [@progressState]="showProgress"
73
- [value]="progressComplete"
74
- [label]="{ visible: false }"
75
- >
72
+ [@progressState]="showProgress"
73
+ [value]="progressComplete"
74
+ [label]="{ visible: false }"
75
+ >
76
76
  </kendo-progressbar>
77
77
  <span class="k-file-icon-wrapper">
78
- <kendo-icon-wrapper
79
- size="xxlarge"
80
- [name]="fileGroupClass"
81
- [svgIcon]="fileSVGGroupIcon"
82
- innerCssClass="k-file-icon"
78
+ <kendo-icon-wrapper
79
+ size="xxlarge"
80
+ [name]="fileGroupClass"
81
+ [svgIcon]="fileSVGGroupIcon"
82
+ innerCssClass="k-file-icon"
83
83
  >
84
- </kendo-icon-wrapper>
84
+ </kendo-icon-wrapper>
85
85
  </span>
86
86
  <span class="k-file-info">
87
- <ng-container *ngIf="!fileInfoTemplate">
88
- <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
87
+ @if (!fileInfoTemplate) {
88
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
89
89
  <span [attr.aria-live]="'polite'" [ngClass]="{
90
90
  'k-file-validation-message': file.validationErrors,
91
91
  'k-file-size': !file.validationErrors && isNotYetUploaded,
92
92
  'k-file-summary': isUploadSuccessful || isUploadFailed
93
93
  }"
94
- >{{fileStatusText}}</span>
95
- </ng-container>
96
- <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
94
+ >{{fileStatusText}}</span>
95
+ }
96
+ @if (fileInfoTemplate) {
97
+ <ng-container [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
97
98
  templateRef: fileInfoTemplate.templateRef,
98
99
  state: file.state,
99
100
  $implicit: [file]
100
101
  }"></ng-container>
102
+ }
101
103
  </span>
102
104
  <kendo-upload-file-list-item-action-button
103
- [file]='file'
104
- [disabled]='disabled'
105
- [progress]='progressComplete'>
105
+ [file]='file'
106
+ [disabled]='disabled'
107
+ [progress]='progressComplete'>
106
108
  </kendo-upload-file-list-item-action-button>
107
- `, isInline: true, dependencies: [{ kind: "component", type: ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], animations: [
109
+ `, isInline: true, dependencies: [{ kind: "component", type: ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], animations: [
108
110
  trigger('progressState', [
109
111
  state('active', style({ opacity: 1 })),
110
112
  state('inactive', style({ opacity: 0 })),
@@ -129,44 +131,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
129
131
  selector: 'kendo-upload-file-list-single-item',
130
132
  template: `
131
133
  <kendo-progressbar
132
- [@progressState]="showProgress"
133
- [value]="progressComplete"
134
- [label]="{ visible: false }"
135
- >
134
+ [@progressState]="showProgress"
135
+ [value]="progressComplete"
136
+ [label]="{ visible: false }"
137
+ >
136
138
  </kendo-progressbar>
137
139
  <span class="k-file-icon-wrapper">
138
- <kendo-icon-wrapper
139
- size="xxlarge"
140
- [name]="fileGroupClass"
141
- [svgIcon]="fileSVGGroupIcon"
142
- innerCssClass="k-file-icon"
140
+ <kendo-icon-wrapper
141
+ size="xxlarge"
142
+ [name]="fileGroupClass"
143
+ [svgIcon]="fileSVGGroupIcon"
144
+ innerCssClass="k-file-icon"
143
145
  >
144
- </kendo-icon-wrapper>
146
+ </kendo-icon-wrapper>
145
147
  </span>
146
148
  <span class="k-file-info">
147
- <ng-container *ngIf="!fileInfoTemplate">
148
- <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
149
+ @if (!fileInfoTemplate) {
150
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
149
151
  <span [attr.aria-live]="'polite'" [ngClass]="{
150
152
  'k-file-validation-message': file.validationErrors,
151
153
  'k-file-size': !file.validationErrors && isNotYetUploaded,
152
154
  'k-file-summary': isUploadSuccessful || isUploadFailed
153
155
  }"
154
- >{{fileStatusText}}</span>
155
- </ng-container>
156
- <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
156
+ >{{fileStatusText}}</span>
157
+ }
158
+ @if (fileInfoTemplate) {
159
+ <ng-container [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
157
160
  templateRef: fileInfoTemplate.templateRef,
158
161
  state: file.state,
159
162
  $implicit: [file]
160
163
  }"></ng-container>
164
+ }
161
165
  </span>
162
166
  <kendo-upload-file-list-item-action-button
163
- [file]='file'
164
- [disabled]='disabled'
165
- [progress]='progressComplete'>
167
+ [file]='file'
168
+ [disabled]='disabled'
169
+ [progress]='progressComplete'>
166
170
  </kendo-upload-file-list-item-action-button>
167
- `,
171
+ `,
168
172
  standalone: true,
169
- imports: [ProgressBarComponent, IconWrapperComponent, NgIf, NgClass, NgTemplateOutlet, FileListItemActionButtonComponent]
173
+ imports: [ProgressBarComponent, IconWrapperComponent, NgClass, NgTemplateOutlet, FileListItemActionButtonComponent]
170
174
  }]
171
175
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.UploadService }], propDecorators: { disabled: [{
172
176
  type: Input
@@ -13,7 +13,7 @@ import { UploadService } from '../upload.service';
13
13
  import { FileInfoTemplateDirective } from '../templates/file-info-template.directive';
14
14
  import { FileListMultipleItemsComponent } from './file-list-multiple-items.component';
15
15
  import { FileListSingleItemComponent } from './file-list-single-item.component';
16
- import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
16
+ import { NgTemplateOutlet } from '@angular/common';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "../upload.service";
19
19
  import * as i2 from "../navigation.service";
@@ -100,67 +100,69 @@ export class FileListComponent {
100
100
  this.actionSubscription.unsubscribe();
101
101
  }
102
102
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileListComponent, deps: [{ token: i1.UploadService }, { token: i2.NavigationService }], target: i0.ɵɵFactoryTarget.Component });
103
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileListComponent, isStandalone: true, selector: "[kendo-upload-file-list]", inputs: { disabled: "disabled", fileList: "fileList", fileTemplate: "fileTemplate", fileInfoTemplate: "fileInfoTemplate" }, host: { properties: { "attr.role": "this.fileListRole" } }, viewQueries: [{ propertyName: "fileListItems", predicate: FileListItemDirective, descendants: true }], ngImport: i0, template: `
104
- <ng-template ngFor
105
- [ngForOf]="fileList"
106
- let-files
107
- let-index="index">
108
- <li kendoUploadFileListItem [files]='files' [index]='index' role="listitem">
109
- <kendo-upload-file-list-single-item
110
- class='k-file-single'
111
- *ngIf='files.length === 1 && !fileTemplate'
112
- [disabled]='disabled'
113
- [file]='files[0]'
114
- [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-single-item>
115
- <kendo-upload-file-list-multiple-items
116
- class='k-file-multiple'
117
- *ngIf='files.length > 1 && !fileTemplate'
118
- [disabled]='disabled'
119
- [files]='files'
120
- [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-multiple-items>
121
- <ng-container
122
- *ngIf="fileTemplate" [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
103
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FileListComponent, isStandalone: true, selector: "[kendo-upload-file-list]", inputs: { disabled: "disabled", fileList: "fileList", fileTemplate: "fileTemplate", fileInfoTemplate: "fileInfoTemplate" }, host: { properties: { "attr.role": "this.fileListRole" } }, viewQueries: [{ propertyName: "fileListItems", predicate: FileListItemDirective, descendants: true }], ngImport: i0, template: `
104
+ @for (files of fileList; track files; let index = $index) {
105
+ <li kendoUploadFileListItem [files]='files' [index]='index' role="listitem">
106
+ @if (files.length === 1 && !fileTemplate) {
107
+ <kendo-upload-file-list-single-item
108
+ class='k-file-single'
109
+ [disabled]='disabled'
110
+ [file]='files[0]'
111
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-single-item>
112
+ }
113
+ @if (files.length > 1 && !fileTemplate) {
114
+ <kendo-upload-file-list-multiple-items
115
+ class='k-file-multiple'
116
+ [disabled]='disabled'
117
+ [files]='files'
118
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-multiple-items>
119
+ }
120
+ @if (fileTemplate) {
121
+ <ng-container
122
+ [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
123
123
  templateRef: fileTemplate.templateRef,
124
124
  state: files[0].state,
125
125
  $implicit: files
126
126
  }"></ng-container>
127
- </li>
128
- </ng-template>
129
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: ["files", "index"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: ["disabled", "file", "fileInfoTemplate"] }, { kind: "component", type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: ["disabled", "files", "fileInfoTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
127
+ }
128
+ </li>
129
+ }
130
+ `, isInline: true, dependencies: [{ kind: "directive", type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: ["files", "index"] }, { kind: "component", type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: ["disabled", "file", "fileInfoTemplate"] }, { kind: "component", type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: ["disabled", "files", "fileInfoTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
130
131
  }
131
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileListComponent, decorators: [{
132
133
  type: Component,
133
134
  args: [{
134
135
  selector: '[kendo-upload-file-list]',
135
136
  template: `
136
- <ng-template ngFor
137
- [ngForOf]="fileList"
138
- let-files
139
- let-index="index">
140
- <li kendoUploadFileListItem [files]='files' [index]='index' role="listitem">
141
- <kendo-upload-file-list-single-item
142
- class='k-file-single'
143
- *ngIf='files.length === 1 && !fileTemplate'
144
- [disabled]='disabled'
145
- [file]='files[0]'
146
- [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-single-item>
147
- <kendo-upload-file-list-multiple-items
148
- class='k-file-multiple'
149
- *ngIf='files.length > 1 && !fileTemplate'
150
- [disabled]='disabled'
151
- [files]='files'
152
- [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-multiple-items>
153
- <ng-container
154
- *ngIf="fileTemplate" [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
137
+ @for (files of fileList; track files; let index = $index) {
138
+ <li kendoUploadFileListItem [files]='files' [index]='index' role="listitem">
139
+ @if (files.length === 1 && !fileTemplate) {
140
+ <kendo-upload-file-list-single-item
141
+ class='k-file-single'
142
+ [disabled]='disabled'
143
+ [file]='files[0]'
144
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-single-item>
145
+ }
146
+ @if (files.length > 1 && !fileTemplate) {
147
+ <kendo-upload-file-list-multiple-items
148
+ class='k-file-multiple'
149
+ [disabled]='disabled'
150
+ [files]='files'
151
+ [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-multiple-items>
152
+ }
153
+ @if (fileTemplate) {
154
+ <ng-container
155
+ [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
155
156
  templateRef: fileTemplate.templateRef,
156
157
  state: files[0].state,
157
158
  $implicit: files
158
159
  }"></ng-container>
159
- </li>
160
- </ng-template>
161
- `,
160
+ }
161
+ </li>
162
+ }
163
+ `,
162
164
  standalone: true,
163
- imports: [NgFor, FileListItemDirective, NgIf, FileListSingleItemComponent, FileListMultipleItemsComponent, NgTemplateOutlet]
165
+ imports: [FileListItemDirective, FileListSingleItemComponent, FileListMultipleItemsComponent, NgTemplateOutlet]
164
166
  }]
165
167
  }], ctorParameters: () => [{ type: i1.UploadService }, { type: i2.NavigationService }], propDecorators: { disabled: [{
166
168
  type: Input