@progress/kendo-angular-upload 16.0.0-develop.2 → 16.0.0-develop.20

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.
Files changed (54) hide show
  1. package/dropzone-base.d.ts +1 -1
  2. package/dropzone-external.directive.d.ts +1 -1
  3. package/dropzone-internal.directive.d.ts +1 -1
  4. package/dropzone.component.d.ts +1 -1
  5. package/esm2020/dropzone-base.mjs +3 -3
  6. package/esm2020/dropzone-external.directive.mjs +3 -3
  7. package/esm2020/dropzone-internal.directive.mjs +3 -3
  8. package/esm2020/dropzone.component.mjs +6 -6
  9. package/esm2020/dropzone.service.mjs +3 -3
  10. package/esm2020/file-select.directive.mjs +3 -3
  11. package/esm2020/fileselect.component.mjs +9 -10
  12. package/esm2020/fileselect.module.mjs +4 -4
  13. package/esm2020/localization/custom-messages.component.mjs +3 -3
  14. package/esm2020/localization/localized-messages.directive.mjs +3 -3
  15. package/esm2020/localization/messages.mjs +3 -3
  16. package/esm2020/navigation.service.mjs +3 -3
  17. package/esm2020/package-metadata.mjs +2 -2
  18. package/esm2020/rendering/file-list-item-action-button.component.mjs +6 -6
  19. package/esm2020/rendering/file-list-item-base.mjs +3 -3
  20. package/esm2020/rendering/file-list-item.mjs +3 -3
  21. package/esm2020/rendering/file-list-multiple-items.component.mjs +8 -8
  22. package/esm2020/rendering/file-list-single-item.component.mjs +8 -8
  23. package/esm2020/rendering/file-list.component.mjs +8 -8
  24. package/esm2020/rendering/upload-action-buttons.component.mjs +3 -3
  25. package/esm2020/rendering/upload-status-total.component.mjs +4 -4
  26. package/esm2020/shared.module.mjs +4 -4
  27. package/esm2020/templates/file-info-template.directive.mjs +3 -3
  28. package/esm2020/templates/file-template.directive.mjs +3 -3
  29. package/esm2020/types/file-groups.mjs +0 -1
  30. package/esm2020/upload.component.mjs +12 -13
  31. package/esm2020/upload.module.mjs +4 -4
  32. package/esm2020/upload.service.mjs +3 -3
  33. package/esm2020/uploads.module.mjs +4 -4
  34. package/fesm2015/progress-kendo-angular-upload.mjs +608 -611
  35. package/fesm2020/progress-kendo-angular-upload.mjs +607 -609
  36. package/file-select.directive.d.ts +1 -1
  37. package/fileselect.component.d.ts +1 -1
  38. package/localization/custom-messages.component.d.ts +1 -1
  39. package/localization/localized-messages.directive.d.ts +1 -1
  40. package/localization/messages.d.ts +1 -1
  41. package/package.json +14 -14
  42. package/rendering/file-list-item-action-button.component.d.ts +1 -1
  43. package/rendering/file-list-item-base.d.ts +1 -1
  44. package/rendering/file-list-item.d.ts +1 -1
  45. package/rendering/file-list-multiple-items.component.d.ts +1 -1
  46. package/rendering/file-list-single-item.component.d.ts +1 -1
  47. package/rendering/file-list.component.d.ts +1 -1
  48. package/rendering/upload-action-buttons.component.d.ts +1 -1
  49. package/rendering/upload-status-total.component.d.ts +1 -1
  50. package/schematics/ngAdd/index.js +3 -3
  51. package/templates/file-info-template.directive.d.ts +1 -1
  52. package/templates/file-template.directive.d.ts +1 -1
  53. package/upload.component.d.ts +1 -1
  54. package/progress-kendo-angular-upload.d.ts +0 -9
@@ -5,24 +5,24 @@
5
5
  import * as i1 from '@angular/common/http';
6
6
  import { HttpHeaders, HttpRequest, HttpEventType, HttpResponse } from '@angular/common/http';
7
7
  import * as i0 from '@angular/core';
8
- import { EventEmitter, Injectable, Directive, Input, HostBinding, HostListener, Component, ViewChildren, forwardRef, Inject, ElementRef, ContentChild, ViewChild, Output, isDevMode, NgModule } from '@angular/core';
8
+ import { EventEmitter, Injectable, Directive, Inject, HostListener, Input, HostBinding, Component, ViewChildren, forwardRef, ElementRef, ContentChild, ViewChild, Output, isDevMode, NgModule } from '@angular/core';
9
9
  import { guid, Keys, isControlRequired, isDocumentAvailable, KendoInput, isChanged } from '@progress/kendo-angular-common';
10
- import { fileAudioIcon, fileVideoIcon, fileImageIcon, fileTxtIcon, filePresentationIcon, fileDataIcon, fileProgrammingIcon, filePdfIcon, fileConfigIcon, fileZipIcon, fileDiscImageIcon, arrowRotateCwSmallIcon, playSmIcon, pauseSmIcon, cancelIcon, xIcon, fileIcon, copyIcon, checkIcon, exclamationCircleIcon, uploadIcon } from '@progress/kendo-svg-icons';
10
+ import { fileAudioIcon, fileVideoIcon, fileImageIcon, fileTxtIcon, filePresentationIcon, fileDataIcon, fileProgrammingIcon, filePdfIcon, fileConfigIcon, fileZipIcon, fileDiscImageIcon, arrowRotateCwSmallIcon, playSmIcon, pauseSmIcon, cancelIcon, xIcon, copyIcon, fileIcon, checkIcon, exclamationCircleIcon, uploadIcon } from '@progress/kendo-svg-icons';
11
11
  import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
12
12
  import * as i1$1 from '@progress/kendo-angular-l10n';
13
13
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
14
14
  import { fromEvent, merge } from 'rxjs';
15
15
  import { filter } from 'rxjs/operators';
16
16
  import { validatePackage } from '@progress/kendo-licensing';
17
- import * as i5 from '@progress/kendo-angular-buttons';
18
- import { ButtonsModule } from '@progress/kendo-angular-buttons';
17
+ import * as i3 from '@angular/common';
18
+ import { CommonModule } from '@angular/common';
19
19
  import { trigger, state, style, transition, animate } from '@angular/animations';
20
- import * as i3 from '@progress/kendo-angular-progressbar';
20
+ import * as i4 from '@progress/kendo-angular-progressbar';
21
21
  import { ProgressBarModule } from '@progress/kendo-angular-progressbar';
22
- import * as i4 from '@progress/kendo-angular-icons';
22
+ import * as i5 from '@progress/kendo-angular-icons';
23
23
  import { IconsModule } from '@progress/kendo-angular-icons';
24
- import * as i6 from '@angular/common';
25
- import { CommonModule } from '@angular/common';
24
+ import * as i10 from '@progress/kendo-angular-buttons';
25
+ import { ButtonsModule } from '@progress/kendo-angular-buttons';
26
26
 
27
27
  /**
28
28
  * Lists the possible states of a file.
@@ -639,7 +639,6 @@ const fileGroupMap = {
639
639
  ".dmg", ".iso", ".toast", ".vcd", ".bin", ".cue", ".mdf"
640
640
  ]
641
641
  };
642
- ;
643
642
  /**
644
643
  * @hidden
645
644
  */
@@ -1321,9 +1320,9 @@ class UploadService {
1321
1320
  return false;
1322
1321
  }
1323
1322
  }
1324
- UploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1325
- UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadService });
1326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadService, decorators: [{
1323
+ UploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1324
+ UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadService });
1325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadService, decorators: [{
1327
1326
  type: Injectable
1328
1327
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
1329
1328
 
@@ -1471,9 +1470,9 @@ class NavigationService {
1471
1470
  return this.actionButtonsVisible ? fileCount + 1 : fileCount - 1;
1472
1471
  }
1473
1472
  }
1474
- NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService, deps: [{ token: UploadService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
1475
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService });
1476
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NavigationService, decorators: [{
1473
+ NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService, deps: [{ token: UploadService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
1474
+ NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService });
1475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationService, decorators: [{
1477
1476
  type: Injectable
1478
1477
  }], ctorParameters: function () { return [{ type: UploadService }, { type: i0.NgZone }]; } });
1479
1478
 
@@ -1497,9 +1496,9 @@ class DropZoneService {
1497
1496
  return id in components;
1498
1497
  }
1499
1498
  }
1500
- DropZoneService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1501
- DropZoneService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneService });
1502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneService, decorators: [{
1499
+ DropZoneService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropZoneService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1500
+ DropZoneService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropZoneService });
1501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropZoneService, decorators: [{
1503
1502
  type: Injectable
1504
1503
  }] });
1505
1504
 
@@ -1510,8 +1509,8 @@ const packageMetadata = {
1510
1509
  name: '@progress/kendo-angular-upload',
1511
1510
  productName: 'Kendo UI for Angular',
1512
1511
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
1513
- publishDate: 1714067405,
1514
- version: '16.0.0-develop.2',
1512
+ publishDate: 1715338433,
1513
+ version: '16.0.0-develop.20',
1515
1514
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
1516
1515
  };
1517
1516
 
@@ -1523,9 +1522,9 @@ class FileTemplateDirective {
1523
1522
  this.templateRef = templateRef;
1524
1523
  }
1525
1524
  }
1526
- FileTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1527
- FileTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FileTemplateDirective, selector: "[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]", ngImport: i0 });
1528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileTemplateDirective, decorators: [{
1525
+ FileTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1526
+ FileTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FileTemplateDirective, selector: "[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]", ngImport: i0 });
1527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileTemplateDirective, decorators: [{
1529
1528
  type: Directive,
1530
1529
  args: [{
1531
1530
  selector: '[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]'
@@ -1540,15 +1539,222 @@ class FileInfoTemplateDirective {
1540
1539
  this.templateRef = templateRef;
1541
1540
  }
1542
1541
  }
1543
- FileInfoTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileInfoTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1544
- FileInfoTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FileInfoTemplateDirective, selector: "[kendoUploadFileInfoTemplate], [kendoFileSelectFileInfoTemplate]", ngImport: i0 });
1545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileInfoTemplateDirective, decorators: [{
1542
+ FileInfoTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileInfoTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1543
+ FileInfoTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FileInfoTemplateDirective, selector: "[kendoUploadFileInfoTemplate], [kendoFileSelectFileInfoTemplate]", ngImport: i0 });
1544
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileInfoTemplateDirective, decorators: [{
1546
1545
  type: Directive,
1547
1546
  args: [{
1548
1547
  selector: '[kendoUploadFileInfoTemplate], [kendoFileSelectFileInfoTemplate]'
1549
1548
  }]
1550
1549
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
1551
1550
 
1551
+ /**
1552
+ * @hidden
1553
+ */
1554
+ const INVALIDMAXFILESIZE = "invalidMaxFileSize";
1555
+ /**
1556
+ * @hidden
1557
+ */
1558
+ const INVALIDMINFILESIZE = "invalidMinFileSize";
1559
+ /**
1560
+ * @hidden
1561
+ */
1562
+ const INVALIDFILEEXTENSION = "invalidFileExtension";
1563
+ const validateFileExtension = (file, allowedExtensions) => {
1564
+ if (allowedExtensions.length > 0) {
1565
+ if (allowedExtensions.indexOf(file.extension.toLowerCase()) < 0) {
1566
+ file.validationErrors = file.validationErrors || [];
1567
+ if (file.validationErrors.indexOf(INVALIDFILEEXTENSION) < 0) {
1568
+ file.validationErrors.push(INVALIDFILEEXTENSION);
1569
+ }
1570
+ }
1571
+ }
1572
+ };
1573
+ const validateFileSize = (file, minFileSize, maxFileSize) => {
1574
+ if (minFileSize !== 0 && file.size < minFileSize) {
1575
+ file.validationErrors = file.validationErrors || [];
1576
+ if (file.validationErrors.indexOf(INVALIDMINFILESIZE) < 0) {
1577
+ file.validationErrors.push(INVALIDMINFILESIZE);
1578
+ }
1579
+ }
1580
+ if (maxFileSize !== 0 && file.size > maxFileSize) {
1581
+ file.validationErrors = file.validationErrors || [];
1582
+ if (file.validationErrors.indexOf(INVALIDMAXFILESIZE) < 0) {
1583
+ file.validationErrors.push(INVALIDMAXFILESIZE);
1584
+ }
1585
+ }
1586
+ };
1587
+ const parseAllowedExtensions = (extensions) => {
1588
+ const allowedExtensions = extensions.map((ext) => {
1589
+ const parsedExt = (ext.substring(0, 1) === ".") ? ext : ("." + ext);
1590
+ return parsedExt.toLowerCase();
1591
+ });
1592
+ return allowedExtensions;
1593
+ };
1594
+ /**
1595
+ * @hidden
1596
+ */
1597
+ const validateFiles = (files, restrictionInfo) => {
1598
+ const allowedExtensions = parseAllowedExtensions(restrictionInfo.allowedExtensions);
1599
+ const maxFileSize = restrictionInfo.maxFileSize;
1600
+ const minFileSize = restrictionInfo.minFileSize;
1601
+ let i;
1602
+ for (i = 0; i < files.length; i++) {
1603
+ validateFileExtension(files[i], allowedExtensions);
1604
+ validateFileSize(files[i], minFileSize, maxFileSize);
1605
+ }
1606
+ };
1607
+
1608
+ /**
1609
+ * @hidden
1610
+ */
1611
+ class DropZoneBase {
1612
+ constructor(element, renderer, cssClass) {
1613
+ this.element = element;
1614
+ this.renderer = renderer;
1615
+ this.hideIntervalElement = null;
1616
+ this.hoverClass = cssClass;
1617
+ }
1618
+ /**
1619
+ * @hidden
1620
+ */
1621
+ onElementDragEnterListener() {
1622
+ this.addClass(this.hoverClass);
1623
+ this.lastDragElement = new Date();
1624
+ if (!this.hideIntervalElement) {
1625
+ this.hideIntervalElement = setInterval(() => {
1626
+ if (this.calculateTimeDiff(this.lastDragElement) < 100) {
1627
+ return;
1628
+ }
1629
+ this.removeClass(this.hoverClass);
1630
+ clearInterval(this.hideIntervalElement);
1631
+ this.hideIntervalElement = null;
1632
+ }, 100);
1633
+ }
1634
+ return false;
1635
+ }
1636
+ /**
1637
+ * @hidden
1638
+ */
1639
+ onElementDragOverListener() {
1640
+ this.lastDragElement = new Date();
1641
+ return false;
1642
+ }
1643
+ calculateTimeDiff(prevEvent) {
1644
+ return new Date().getTime() - prevEvent.getTime();
1645
+ }
1646
+ addClass(className) {
1647
+ this.renderer.addClass(this.element.nativeElement, className);
1648
+ }
1649
+ removeClass(className) {
1650
+ this.renderer.removeClass(this.element.nativeElement, className);
1651
+ }
1652
+ }
1653
+ DropZoneBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropZoneBase, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: 'hoverClass' }], target: i0.ɵɵFactoryTarget.Directive });
1654
+ DropZoneBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DropZoneBase, host: { listeners: { "dragenter": "onElementDragEnterListener()", "dragover": "onElementDragOverListener()" } }, ngImport: i0 });
1655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropZoneBase, decorators: [{
1656
+ type: Directive
1657
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
1658
+ type: Inject,
1659
+ args: ['hoverClass']
1660
+ }] }]; }, propDecorators: { onElementDragEnterListener: [{
1661
+ type: HostListener,
1662
+ args: ['dragenter']
1663
+ }], onElementDragOverListener: [{
1664
+ type: HostListener,
1665
+ args: ['dragover']
1666
+ }] } });
1667
+
1668
+ /**
1669
+ * @hidden
1670
+ */
1671
+ class DropZoneInternalDirective extends DropZoneBase {
1672
+ constructor(element, renderer, ngZone, uploadService) {
1673
+ super(element, renderer, 'k-hover');
1674
+ this.ngZone = ngZone;
1675
+ this.uploadService = uploadService;
1676
+ this.initialClassName = true;
1677
+ this.hideIntervalDocument = null;
1678
+ this.activeClass = 'k-dropzone-active';
1679
+ this.ngZone.runOutsideAngular(() => {
1680
+ this.unsubscribeDocumentDragEnter = this.renderer.listen('document', 'dragenter', () => this.onDocumentDragEnter());
1681
+ this.unsubscribeDocumentDragOver = this.renderer.listen('document', 'dragover', () => this.onDocumentDragOver());
1682
+ });
1683
+ }
1684
+ ngOnDestroy() {
1685
+ this.ngZone.runOutsideAngular(() => {
1686
+ if (this.unsubscribeDocumentDragEnter) {
1687
+ this.unsubscribeDocumentDragEnter();
1688
+ }
1689
+ if (this.unsubscribeDocumentDragOver) {
1690
+ this.unsubscribeDocumentDragOver();
1691
+ }
1692
+ });
1693
+ }
1694
+ onDocumentDragEnter() {
1695
+ this.addClass(this.activeClass);
1696
+ this.lastDragDocument = new Date();
1697
+ if (!this.hideIntervalDocument) {
1698
+ this.hideIntervalDocument = setInterval(() => {
1699
+ if (this.calculateTimeDiff(this.lastDragDocument) < 100) {
1700
+ return;
1701
+ }
1702
+ this.removeClass(this.activeClass);
1703
+ clearInterval(this.hideIntervalDocument);
1704
+ this.hideIntervalDocument = null;
1705
+ }, 100);
1706
+ }
1707
+ return false;
1708
+ }
1709
+ /**
1710
+ * @hidden
1711
+ */
1712
+ onDocumentDragOver() {
1713
+ this.lastDragDocument = new Date();
1714
+ return false;
1715
+ }
1716
+ onDropListener(event) {
1717
+ const droppedFiles = event.dataTransfer.files;
1718
+ if (droppedFiles.length > 0 && !this.disabled) {
1719
+ let files = getAllFileInfo(droppedFiles);
1720
+ files = assignGuidToFiles(files, !this.uploadService.async.batch);
1721
+ if (!this.multiple) {
1722
+ files.splice(1, files.length - 1);
1723
+ this.uploadService.clearFiles();
1724
+ }
1725
+ validateFiles(files, this.restrictions);
1726
+ this.uploadService.addFiles(files);
1727
+ }
1728
+ return false;
1729
+ }
1730
+ }
1731
+ DropZoneInternalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropZoneInternalDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Directive });
1732
+ DropZoneInternalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: { disabled: "disabled", multiple: "multiple", restrictions: "restrictions" }, host: { listeners: { "drop": "onDropListener($event)" }, properties: { "class.k-dropzone": "this.initialClassName", "class.k-upload-dropzone": "this.initialClassName" } }, usesInheritance: true, ngImport: i0 });
1733
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropZoneInternalDirective, decorators: [{
1734
+ type: Directive,
1735
+ args: [{
1736
+ selector: `
1737
+ [kendoUploadInternalDropZone],
1738
+ [kendoFileSelectInternalDropZone]
1739
+ `
1740
+ }]
1741
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: UploadService }]; }, propDecorators: { disabled: [{
1742
+ type: Input
1743
+ }], multiple: [{
1744
+ type: Input
1745
+ }], restrictions: [{
1746
+ type: Input
1747
+ }], initialClassName: [{
1748
+ type: HostBinding,
1749
+ args: ['class.k-dropzone']
1750
+ }, {
1751
+ type: HostBinding,
1752
+ args: ['class.k-upload-dropzone']
1753
+ }], onDropListener: [{
1754
+ type: HostListener,
1755
+ args: ['drop', ['$event']]
1756
+ }] } });
1757
+
1552
1758
  /**
1553
1759
  * @hidden
1554
1760
  */
@@ -1601,9 +1807,9 @@ class FileListItemDirective {
1601
1807
  }
1602
1808
  }
1603
1809
  }
1604
- FileListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListItemDirective, deps: [{ token: i0.ElementRef }, { token: NavigationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Directive });
1605
- FileListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: { files: "files", index: "index" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()", "click": "onClick($event)" }, properties: { "class.k-file": "this.fileClass", "attr.data-uid": "this.uidAttribute", "attr.tabIndex": "this.tabIndex", "class.k-file-error": "this.kFileError", "class.k-file-invalid": "this.kFileInvalid", "class.k-file-progress": "this.kFileProgress", "class.k-file-success": "this.kFileSuccess", "class.k-focus": "this.kStateFocused" } }, ngImport: i0 });
1606
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListItemDirective, decorators: [{
1810
+ FileListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListItemDirective, deps: [{ token: i0.ElementRef }, { token: NavigationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Directive });
1811
+ FileListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: { files: "files", index: "index" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()", "click": "onClick($event)" }, properties: { "class.k-file": "this.fileClass", "attr.data-uid": "this.uidAttribute", "attr.tabIndex": "this.tabIndex", "class.k-file-error": "this.kFileError", "class.k-file-invalid": "this.kFileInvalid", "class.k-file-progress": "this.kFileProgress", "class.k-file-success": "this.kFileSuccess", "class.k-focus": "this.kStateFocused" } }, ngImport: i0 });
1812
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListItemDirective, decorators: [{
1607
1813
  type: Directive,
1608
1814
  args: [{
1609
1815
  selector: '[kendoUploadFileListItem]'
@@ -1681,9 +1887,9 @@ class FileListItemBase {
1681
1887
  return this.localization.get(key);
1682
1888
  }
1683
1889
  }
1684
- FileListItemBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListItemBase, deps: [{ token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
1685
- FileListItemBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FileListItemBase, selector: "ng-component", ngImport: i0, template: '', isInline: true });
1686
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListItemBase, decorators: [{
1890
+ FileListItemBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListItemBase, deps: [{ token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
1891
+ FileListItemBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FileListItemBase, selector: "ng-component", ngImport: i0, template: '', isInline: true });
1892
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListItemBase, decorators: [{
1687
1893
  type: Component,
1688
1894
  args: [{ template: '' }]
1689
1895
  }], ctorParameters: function () { return [{ type: UploadService }]; } });
@@ -1797,8 +2003,8 @@ class FileListItemActionButtonComponent {
1797
2003
  return true;
1798
2004
  }
1799
2005
  }
1800
- FileListItemActionButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListItemActionButtonComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
1801
- FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: { file: "file", disabled: "disabled", progress: "progress" }, ngImport: i0, template: `
2006
+ FileListItemActionButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListItemActionButtonComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2007
+ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: { file: "file", disabled: "disabled", progress: "progress" }, ngImport: i0, template: `
1802
2008
  <span class="k-upload-actions">
1803
2009
  <span class="k-upload-pct" *ngIf="isUploading || isPaused">{{progress}}%</span>
1804
2010
 
@@ -1861,8 +2067,8 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
1861
2067
  ></kendo-icon-wrapper>
1862
2068
  </button>
1863
2069
  </span>
1864
- `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListItemActionButtonComponent, decorators: [{
2070
+ `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
2071
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListItemActionButtonComponent, decorators: [{
1866
2072
  type: Component,
1867
2073
  args: [{
1868
2074
  selector: 'kendo-upload-file-list-item-action-button',
@@ -1942,59 +2148,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1942
2148
  /**
1943
2149
  * @hidden
1944
2150
  */
1945
- class FileListSingleItemComponent extends FileListItemBase {
2151
+ class FileListMultipleItemsComponent extends FileListItemBase {
1946
2152
  constructor(localization, uploadService) {
1947
2153
  super(uploadService);
1948
2154
  this.localization = localization;
2155
+ this.copySVGIcon = copyIcon;
1949
2156
  this.subscribeUploadProgress((args) => {
1950
- if (args.files[0].uid === this.file.uid) {
2157
+ if (args.files[0].uid === this.files[0].uid) {
1951
2158
  this.progressComplete = args.percentComplete;
1952
2159
  }
1953
2160
  });
1954
2161
  }
1955
- get fileStatusText() {
1956
- const errors = this.file.validationErrors;
1957
- if (this.file.state === FileState.Uploaded) {
1958
- return `${this.textFor('fileStatusUploaded')}`;
1959
- }
1960
- if (this.file.state === FileState.Failed) {
1961
- return `${this.textFor('fileStatusFailed')}`;
1962
- }
1963
- if (!isPresent(errors)) {
1964
- return this.getTotalFilesSizeMessage([this.file]);
1965
- }
1966
- return this.getFileValidationMessage(this.file);
1967
- }
1968
2162
  get showProgress() {
1969
- const showProgress = this.file.state === FileState.Uploading || this.file.state === FileState.Paused;
2163
+ const showProgress = this.files[0].state === FileState.Uploading || this.files[0].state === FileState.Paused;
1970
2164
  return showProgress ? 'active' : 'inactive';
1971
2165
  }
1972
- get fileGroupClass() {
1973
- return getFileGroupCssClass(this.file.extension ? this.file.extension : '');
2166
+ ngOnInit() {
2167
+ this.filesHaveErrors = super.filesHaveValidationErrors(this.files);
1974
2168
  }
1975
- get fileSVGGroupIcon() {
1976
- const initial = fileIcon;
1977
- if (this.file.extension) {
1978
- for (const group in fileGroupMap) {
1979
- if (fileGroupMap[group].indexOf(this.file.extension) >= 0) {
1980
- return fileSVGGroupMap[group];
1981
- }
1982
- }
2169
+ fileStatusText(file) {
2170
+ const errors = file.validationErrors;
2171
+ if (!isPresent(errors)) {
2172
+ return this.getTotalFilesSizeMessage([file]);
1983
2173
  }
1984
- return initial;
2174
+ return this.getFileValidationMessage(file);
2175
+ }
2176
+ get batchStatusText() {
2177
+ const state = this.files[0].state;
2178
+ const fileCount = this.files.length;
2179
+ if (state === FileState.Uploaded) {
2180
+ return `${fileCount} ${this.textFor('filesBatchStatusUploaded')}`;
2181
+ }
2182
+ if (state === FileState.Failed) {
2183
+ return `${fileCount} ${this.textFor('filesBatchStatusFailed')}`;
2184
+ }
2185
+ return `${fileCount} ${this.textFor('filesBatchStatus')}`;
1985
2186
  }
1986
2187
  get isUploadSuccessful() {
1987
- return this.file.state === FileState.Uploaded;
2188
+ return this.files[0].state === FileState.Uploaded;
1988
2189
  }
1989
2190
  get isUploadFailed() {
1990
- return this.file.state === FileState.Failed;
1991
- }
1992
- get isNotYetUploaded() {
1993
- return !this.isUploadFailed && !this.isUploadSuccessful;
2191
+ return this.files[0].state === FileState.Failed;
1994
2192
  }
1995
2193
  }
1996
- FileListSingleItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListSingleItemComponent, deps: [{ token: i1$1.LocalizationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
1997
- FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: { disabled: "disabled", file: "file", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
2194
+ FileListMultipleItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListMultipleItemsComponent, deps: [{ token: i1$1.LocalizationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
2195
+ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: { disabled: "disabled", files: "files", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
1998
2196
  <kendo-progressbar
1999
2197
  [@progressState]="showProgress"
2000
2198
  [value]="progressComplete"
@@ -2003,35 +2201,43 @@ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2003
2201
  </kendo-progressbar>
2004
2202
  <span class="k-file-icon-wrapper">
2005
2203
  <kendo-icon-wrapper
2204
+ name="copy"
2006
2205
  size="xxlarge"
2007
- [name]="fileGroupClass"
2008
- [svgIcon]="fileSVGGroupIcon"
2206
+ [svgIcon]="copySVGIcon"
2009
2207
  innerCssClass="k-file-icon"
2010
2208
  >
2011
2209
  </kendo-icon-wrapper>
2012
2210
  </span>
2013
- <span class="k-file-info">
2211
+ <span class="k-multiple-files-wrapper">
2014
2212
  <ng-container *ngIf="!fileInfoTemplate">
2015
- <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2016
- <span [attr.aria-live]="'polite'" [ngClass]="{
2017
- 'k-file-validation-message': file.validationErrors,
2018
- 'k-file-size': !file.validationErrors && isNotYetUploaded,
2019
- 'k-file-summary': isUploadSuccessful || isUploadFailed
2020
- }"
2021
- >{{fileStatusText}}</span>
2213
+ <span *ngFor="let file of files" class="k-file-info">
2214
+ <span [title]="file.name" class="k-file-name">
2215
+ {{file.name}}
2216
+ </span>
2217
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2218
+ 'k-file-validation-message': file.validationErrors,
2219
+ 'k-file-size': !file.validationErrors
2220
+ }"
2221
+ >{{fileStatusText(file)}}</span>
2222
+ </span>
2223
+ <span class="k-file-summary"
2224
+ >{{batchStatusText}}</span>
2022
2225
  </ng-container>
2023
- <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2226
+ <ng-container
2227
+ *ngIf="fileInfoTemplate"
2228
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2229
+ [ngTemplateOutletContext]="{
2024
2230
  templateRef: fileInfoTemplate.templateRef,
2025
- state: file.state,
2026
- $implicit: [file]
2231
+ state: files[0].state,
2232
+ $implicit: files
2027
2233
  }"></ng-container>
2028
2234
  </span>
2029
2235
  <kendo-upload-file-list-item-action-button
2030
- [file]='file'
2236
+ [file]='files[0]'
2031
2237
  [disabled]='disabled'
2032
2238
  [progress]='progressComplete'>
2033
2239
  </kendo-upload-file-list-item-action-button>
2034
- `, isInline: true, components: [{ type: i3.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
2240
+ `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { kind: "component", type: i5.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], animations: [
2035
2241
  trigger('progressState', [
2036
2242
  state('active', style({ opacity: 1 })),
2037
2243
  state('inactive', style({ opacity: 0 })),
@@ -2040,7 +2246,7 @@ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2040
2246
  transition('active => inactive', animate('1s 2s ease-out'))
2041
2247
  ])
2042
2248
  ] });
2043
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListSingleItemComponent, decorators: [{
2249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListMultipleItemsComponent, decorators: [{
2044
2250
  type: Component,
2045
2251
  args: [{
2046
2252
  animations: [
@@ -2052,7 +2258,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2052
2258
  transition('active => inactive', animate('1s 2s ease-out'))
2053
2259
  ])
2054
2260
  ],
2055
- selector: 'kendo-upload-file-list-single-item',
2261
+ selector: 'kendo-upload-file-list-multiple-items',
2056
2262
  template: `
2057
2263
  <kendo-progressbar
2058
2264
  [@progressState]="showProgress"
@@ -2062,31 +2268,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2062
2268
  </kendo-progressbar>
2063
2269
  <span class="k-file-icon-wrapper">
2064
2270
  <kendo-icon-wrapper
2271
+ name="copy"
2065
2272
  size="xxlarge"
2066
- [name]="fileGroupClass"
2067
- [svgIcon]="fileSVGGroupIcon"
2273
+ [svgIcon]="copySVGIcon"
2068
2274
  innerCssClass="k-file-icon"
2069
2275
  >
2070
2276
  </kendo-icon-wrapper>
2071
2277
  </span>
2072
- <span class="k-file-info">
2278
+ <span class="k-multiple-files-wrapper">
2073
2279
  <ng-container *ngIf="!fileInfoTemplate">
2074
- <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2075
- <span [attr.aria-live]="'polite'" [ngClass]="{
2076
- 'k-file-validation-message': file.validationErrors,
2077
- 'k-file-size': !file.validationErrors && isNotYetUploaded,
2078
- 'k-file-summary': isUploadSuccessful || isUploadFailed
2079
- }"
2080
- >{{fileStatusText}}</span>
2280
+ <span *ngFor="let file of files" class="k-file-info">
2281
+ <span [title]="file.name" class="k-file-name">
2282
+ {{file.name}}
2283
+ </span>
2284
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2285
+ 'k-file-validation-message': file.validationErrors,
2286
+ 'k-file-size': !file.validationErrors
2287
+ }"
2288
+ >{{fileStatusText(file)}}</span>
2289
+ </span>
2290
+ <span class="k-file-summary"
2291
+ >{{batchStatusText}}</span>
2081
2292
  </ng-container>
2082
- <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2293
+ <ng-container
2294
+ *ngIf="fileInfoTemplate"
2295
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2296
+ [ngTemplateOutletContext]="{
2083
2297
  templateRef: fileInfoTemplate.templateRef,
2084
- state: file.state,
2085
- $implicit: [file]
2298
+ state: files[0].state,
2299
+ $implicit: files
2086
2300
  }"></ng-container>
2087
2301
  </span>
2088
2302
  <kendo-upload-file-list-item-action-button
2089
- [file]='file'
2303
+ [file]='files[0]'
2090
2304
  [disabled]='disabled'
2091
2305
  [progress]='progressComplete'>
2092
2306
  </kendo-upload-file-list-item-action-button>
@@ -2094,7 +2308,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2094
2308
  }]
2095
2309
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: UploadService }]; }, propDecorators: { disabled: [{
2096
2310
  type: Input
2097
- }], file: [{
2311
+ }], files: [{
2098
2312
  type: Input
2099
2313
  }], fileInfoTemplate: [{
2100
2314
  type: Input
@@ -2103,51 +2317,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2103
2317
  /**
2104
2318
  * @hidden
2105
2319
  */
2106
- class FileListMultipleItemsComponent extends FileListItemBase {
2320
+ class FileListSingleItemComponent extends FileListItemBase {
2107
2321
  constructor(localization, uploadService) {
2108
2322
  super(uploadService);
2109
2323
  this.localization = localization;
2110
- this.copySVGIcon = copyIcon;
2111
2324
  this.subscribeUploadProgress((args) => {
2112
- if (args.files[0].uid === this.files[0].uid) {
2325
+ if (args.files[0].uid === this.file.uid) {
2113
2326
  this.progressComplete = args.percentComplete;
2114
2327
  }
2115
2328
  });
2116
2329
  }
2330
+ get fileStatusText() {
2331
+ const errors = this.file.validationErrors;
2332
+ if (this.file.state === FileState.Uploaded) {
2333
+ return `${this.textFor('fileStatusUploaded')}`;
2334
+ }
2335
+ if (this.file.state === FileState.Failed) {
2336
+ return `${this.textFor('fileStatusFailed')}`;
2337
+ }
2338
+ if (!isPresent(errors)) {
2339
+ return this.getTotalFilesSizeMessage([this.file]);
2340
+ }
2341
+ return this.getFileValidationMessage(this.file);
2342
+ }
2117
2343
  get showProgress() {
2118
- const showProgress = this.files[0].state === FileState.Uploading || this.files[0].state === FileState.Paused;
2344
+ const showProgress = this.file.state === FileState.Uploading || this.file.state === FileState.Paused;
2119
2345
  return showProgress ? 'active' : 'inactive';
2120
2346
  }
2121
- ngOnInit() {
2122
- this.filesHaveErrors = super.filesHaveValidationErrors(this.files);
2123
- }
2124
- fileStatusText(file) {
2125
- const errors = file.validationErrors;
2126
- if (!isPresent(errors)) {
2127
- return this.getTotalFilesSizeMessage([file]);
2128
- }
2129
- return this.getFileValidationMessage(file);
2347
+ get fileGroupClass() {
2348
+ return getFileGroupCssClass(this.file.extension ? this.file.extension : '');
2130
2349
  }
2131
- get batchStatusText() {
2132
- const state = this.files[0].state;
2133
- const fileCount = this.files.length;
2134
- if (state === FileState.Uploaded) {
2135
- return `${fileCount} ${this.textFor('filesBatchStatusUploaded')}`;
2136
- }
2137
- if (state === FileState.Failed) {
2138
- return `${fileCount} ${this.textFor('filesBatchStatusFailed')}`;
2350
+ get fileSVGGroupIcon() {
2351
+ const initial = fileIcon;
2352
+ if (this.file.extension) {
2353
+ for (const group in fileGroupMap) {
2354
+ if (fileGroupMap[group].indexOf(this.file.extension) >= 0) {
2355
+ return fileSVGGroupMap[group];
2356
+ }
2357
+ }
2139
2358
  }
2140
- return `${fileCount} ${this.textFor('filesBatchStatus')}`;
2359
+ return initial;
2141
2360
  }
2142
2361
  get isUploadSuccessful() {
2143
- return this.files[0].state === FileState.Uploaded;
2362
+ return this.file.state === FileState.Uploaded;
2144
2363
  }
2145
2364
  get isUploadFailed() {
2146
- return this.files[0].state === FileState.Failed;
2365
+ return this.file.state === FileState.Failed;
2366
+ }
2367
+ get isNotYetUploaded() {
2368
+ return !this.isUploadFailed && !this.isUploadSuccessful;
2147
2369
  }
2148
2370
  }
2149
- FileListMultipleItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListMultipleItemsComponent, deps: [{ token: i1$1.LocalizationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
2150
- FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: { disabled: "disabled", files: "files", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
2371
+ FileListSingleItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListSingleItemComponent, deps: [{ token: i1$1.LocalizationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
2372
+ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: { disabled: "disabled", file: "file", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
2151
2373
  <kendo-progressbar
2152
2374
  [@progressState]="showProgress"
2153
2375
  [value]="progressComplete"
@@ -2156,43 +2378,35 @@ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
2156
2378
  </kendo-progressbar>
2157
2379
  <span class="k-file-icon-wrapper">
2158
2380
  <kendo-icon-wrapper
2159
- name="copy"
2160
2381
  size="xxlarge"
2161
- [svgIcon]="copySVGIcon"
2382
+ [name]="fileGroupClass"
2383
+ [svgIcon]="fileSVGGroupIcon"
2162
2384
  innerCssClass="k-file-icon"
2163
2385
  >
2164
2386
  </kendo-icon-wrapper>
2165
2387
  </span>
2166
- <span class="k-multiple-files-wrapper">
2388
+ <span class="k-file-info">
2167
2389
  <ng-container *ngIf="!fileInfoTemplate">
2168
- <span *ngFor="let file of files" class="k-file-info">
2169
- <span [title]="file.name" class="k-file-name">
2170
- {{file.name}}
2171
- </span>
2172
- <span [attr.aria-live]="'polite'" [ngClass]="{
2173
- 'k-file-validation-message': file.validationErrors,
2174
- 'k-file-size': !file.validationErrors
2175
- }"
2176
- >{{fileStatusText(file)}}</span>
2177
- </span>
2178
- <span class="k-file-summary"
2179
- >{{batchStatusText}}</span>
2390
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2391
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2392
+ 'k-file-validation-message': file.validationErrors,
2393
+ 'k-file-size': !file.validationErrors && isNotYetUploaded,
2394
+ 'k-file-summary': isUploadSuccessful || isUploadFailed
2395
+ }"
2396
+ >{{fileStatusText}}</span>
2180
2397
  </ng-container>
2181
- <ng-container
2182
- *ngIf="fileInfoTemplate"
2183
- [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2184
- [ngTemplateOutletContext]="{
2398
+ <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2185
2399
  templateRef: fileInfoTemplate.templateRef,
2186
- state: files[0].state,
2187
- $implicit: files
2400
+ state: file.state,
2401
+ $implicit: [file]
2188
2402
  }"></ng-container>
2189
2403
  </span>
2190
2404
  <kendo-upload-file-list-item-action-button
2191
- [file]='files[0]'
2405
+ [file]='file'
2192
2406
  [disabled]='disabled'
2193
2407
  [progress]='progressComplete'>
2194
2408
  </kendo-upload-file-list-item-action-button>
2195
- `, isInline: true, components: [{ type: i3.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
2409
+ `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { kind: "component", type: i5.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: ["file", "disabled", "progress"] }], animations: [
2196
2410
  trigger('progressState', [
2197
2411
  state('active', style({ opacity: 1 })),
2198
2412
  state('inactive', style({ opacity: 0 })),
@@ -2201,7 +2415,7 @@ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
2201
2415
  transition('active => inactive', animate('1s 2s ease-out'))
2202
2416
  ])
2203
2417
  ] });
2204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListMultipleItemsComponent, decorators: [{
2418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListSingleItemComponent, decorators: [{
2205
2419
  type: Component,
2206
2420
  args: [{
2207
2421
  animations: [
@@ -2213,7 +2427,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2213
2427
  transition('active => inactive', animate('1s 2s ease-out'))
2214
2428
  ])
2215
2429
  ],
2216
- selector: 'kendo-upload-file-list-multiple-items',
2430
+ selector: 'kendo-upload-file-list-single-item',
2217
2431
  template: `
2218
2432
  <kendo-progressbar
2219
2433
  [@progressState]="showProgress"
@@ -2223,39 +2437,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2223
2437
  </kendo-progressbar>
2224
2438
  <span class="k-file-icon-wrapper">
2225
2439
  <kendo-icon-wrapper
2226
- name="copy"
2227
2440
  size="xxlarge"
2228
- [svgIcon]="copySVGIcon"
2441
+ [name]="fileGroupClass"
2442
+ [svgIcon]="fileSVGGroupIcon"
2229
2443
  innerCssClass="k-file-icon"
2230
2444
  >
2231
2445
  </kendo-icon-wrapper>
2232
2446
  </span>
2233
- <span class="k-multiple-files-wrapper">
2447
+ <span class="k-file-info">
2234
2448
  <ng-container *ngIf="!fileInfoTemplate">
2235
- <span *ngFor="let file of files" class="k-file-info">
2236
- <span [title]="file.name" class="k-file-name">
2237
- {{file.name}}
2238
- </span>
2239
- <span [attr.aria-live]="'polite'" [ngClass]="{
2240
- 'k-file-validation-message': file.validationErrors,
2241
- 'k-file-size': !file.validationErrors
2242
- }"
2243
- >{{fileStatusText(file)}}</span>
2244
- </span>
2245
- <span class="k-file-summary"
2246
- >{{batchStatusText}}</span>
2449
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2450
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2451
+ 'k-file-validation-message': file.validationErrors,
2452
+ 'k-file-size': !file.validationErrors && isNotYetUploaded,
2453
+ 'k-file-summary': isUploadSuccessful || isUploadFailed
2454
+ }"
2455
+ >{{fileStatusText}}</span>
2247
2456
  </ng-container>
2248
- <ng-container
2249
- *ngIf="fileInfoTemplate"
2250
- [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2251
- [ngTemplateOutletContext]="{
2457
+ <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2252
2458
  templateRef: fileInfoTemplate.templateRef,
2253
- state: files[0].state,
2254
- $implicit: files
2459
+ state: file.state,
2460
+ $implicit: [file]
2255
2461
  }"></ng-container>
2256
2462
  </span>
2257
2463
  <kendo-upload-file-list-item-action-button
2258
- [file]='files[0]'
2464
+ [file]='file'
2259
2465
  [disabled]='disabled'
2260
2466
  [progress]='progressComplete'>
2261
2467
  </kendo-upload-file-list-item-action-button>
@@ -2263,7 +2469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2263
2469
  }]
2264
2470
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: UploadService }]; }, propDecorators: { disabled: [{
2265
2471
  type: Input
2266
- }], files: [{
2472
+ }], file: [{
2267
2473
  type: Input
2268
2474
  }], fileInfoTemplate: [{
2269
2475
  type: Input
@@ -2332,8 +2538,8 @@ class FileListComponent {
2332
2538
  this.actionSubscription.unsubscribe();
2333
2539
  }
2334
2540
  }
2335
- FileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListComponent, deps: [{ token: UploadService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2336
- FileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: { disabled: "disabled", fileList: "fileList", fileTemplate: "fileTemplate", fileInfoTemplate: "fileInfoTemplate" }, viewQueries: [{ propertyName: "fileListItems", predicate: FileListItemDirective, descendants: true }], ngImport: i0, template: `
2541
+ FileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListComponent, deps: [{ token: UploadService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2542
+ FileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: { disabled: "disabled", fileList: "fileList", fileTemplate: "fileTemplate", fileInfoTemplate: "fileInfoTemplate" }, viewQueries: [{ propertyName: "fileListItems", predicate: FileListItemDirective, descendants: true }], ngImport: i0, template: `
2337
2543
  <ng-template ngFor
2338
2544
  [ngForOf]="fileList"
2339
2545
  let-files
@@ -2359,8 +2565,8 @@ FileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
2359
2565
  }"></ng-container>
2360
2566
  </li>
2361
2567
  </ng-template>
2362
- `, isInline: true, components: [{ type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: ["disabled", "file", "fileInfoTemplate"] }, { type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: ["disabled", "files", "fileInfoTemplate"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: ["files", "index"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
2363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListComponent, decorators: [{
2568
+ `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: FileListItemDirective, selector: "[kendoUploadFileListItem]", inputs: ["files", "index"] }, { kind: "component", type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: ["disabled", "files", "fileInfoTemplate"] }, { kind: "component", type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: ["disabled", "file", "fileInfoTemplate"] }] });
2569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileListComponent, decorators: [{
2364
2570
  type: Component,
2365
2571
  args: [{
2366
2572
  selector: '[kendo-upload-file-list]',
@@ -2382,320 +2588,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2382
2588
  [disabled]='disabled'
2383
2589
  [files]='files'
2384
2590
  [fileInfoTemplate]="fileInfoTemplate"></kendo-upload-file-list-multiple-items>
2385
- <ng-container
2386
- *ngIf="fileTemplate" [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
2387
- templateRef: fileTemplate.templateRef,
2388
- state: files[0].state,
2389
- $implicit: files
2390
- }"></ng-container>
2391
- </li>
2392
- </ng-template>
2393
- `
2394
- }]
2395
- }], ctorParameters: function () { return [{ type: UploadService }, { type: NavigationService }]; }, propDecorators: { disabled: [{
2396
- type: Input
2397
- }], fileList: [{
2398
- type: Input
2399
- }], fileTemplate: [{
2400
- type: Input
2401
- }], fileInfoTemplate: [{
2402
- type: Input
2403
- }], fileListItems: [{
2404
- type: ViewChildren,
2405
- args: [FileListItemDirective]
2406
- }] } });
2407
-
2408
- /**
2409
- * @hidden
2410
- */
2411
- class Messages extends ComponentMessages {
2412
- }
2413
- Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2414
- Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { cancel: "cancel", clearSelectedFiles: "clearSelectedFiles", dropFilesHere: "dropFilesHere", externalDropFilesHere: "externalDropFilesHere", filesBatchStatus: "filesBatchStatus", filesBatchStatusFailed: "filesBatchStatusFailed", filesBatchStatusUploaded: "filesBatchStatusUploaded", fileStatusFailed: "fileStatusFailed", fileStatusUploaded: "fileStatusUploaded", headerStatusPaused: "headerStatusPaused", headerStatusUploaded: "headerStatusUploaded", headerStatusUploading: "headerStatusUploading", invalidFileExtension: "invalidFileExtension", invalidMaxFileSize: "invalidMaxFileSize", invalidMinFileSize: "invalidMinFileSize", pause: "pause", remove: "remove", resume: "resume", retry: "retry", select: "select", uploadSelectedFiles: "uploadSelectedFiles" }, usesInheritance: true, ngImport: i0 });
2415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
2416
- type: Directive
2417
- }], propDecorators: { cancel: [{
2418
- type: Input
2419
- }], clearSelectedFiles: [{
2420
- type: Input
2421
- }], dropFilesHere: [{
2422
- type: Input
2423
- }], externalDropFilesHere: [{
2424
- type: Input
2425
- }], filesBatchStatus: [{
2426
- type: Input
2427
- }], filesBatchStatusFailed: [{
2428
- type: Input
2429
- }], filesBatchStatusUploaded: [{
2430
- type: Input
2431
- }], fileStatusFailed: [{
2432
- type: Input
2433
- }], fileStatusUploaded: [{
2434
- type: Input
2435
- }], headerStatusPaused: [{
2436
- type: Input
2437
- }], headerStatusUploaded: [{
2438
- type: Input
2439
- }], headerStatusUploading: [{
2440
- type: Input
2441
- }], invalidFileExtension: [{
2442
- type: Input
2443
- }], invalidMaxFileSize: [{
2444
- type: Input
2445
- }], invalidMinFileSize: [{
2446
- type: Input
2447
- }], pause: [{
2448
- type: Input
2449
- }], remove: [{
2450
- type: Input
2451
- }], resume: [{
2452
- type: Input
2453
- }], retry: [{
2454
- type: Input
2455
- }], select: [{
2456
- type: Input
2457
- }], uploadSelectedFiles: [{
2458
- type: Input
2459
- }] } });
2460
-
2461
- /**
2462
- * @hidden
2463
- */
2464
- class LocalizedMessagesDirective extends Messages {
2465
- constructor(service) {
2466
- super();
2467
- this.service = service;
2468
- }
2469
- }
2470
- LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
2471
- LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n ", providers: [
2472
- {
2473
- provide: Messages,
2474
- useExisting: forwardRef(() => LocalizedMessagesDirective)
2475
- }
2476
- ], usesInheritance: true, ngImport: i0 });
2477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
2478
- type: Directive,
2479
- args: [{
2480
- providers: [
2481
- {
2482
- provide: Messages,
2483
- useExisting: forwardRef(() => LocalizedMessagesDirective)
2484
- }
2485
- ],
2486
- selector: `
2487
- [kendoUploadLocalizedMessages],
2488
- [kendoFileSelectLocalizedMessages],
2489
- [kendoUploadDropZoneLocalizedMessages]
2490
- `
2491
- }]
2492
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
2493
-
2494
- /**
2495
- * @hidden
2496
- */
2497
- const INVALIDMAXFILESIZE = "invalidMaxFileSize";
2498
- /**
2499
- * @hidden
2500
- */
2501
- const INVALIDMINFILESIZE = "invalidMinFileSize";
2502
- /**
2503
- * @hidden
2504
- */
2505
- const INVALIDFILEEXTENSION = "invalidFileExtension";
2506
- const validateFileExtension = (file, allowedExtensions) => {
2507
- if (allowedExtensions.length > 0) {
2508
- if (allowedExtensions.indexOf(file.extension.toLowerCase()) < 0) {
2509
- file.validationErrors = file.validationErrors || [];
2510
- if (file.validationErrors.indexOf(INVALIDFILEEXTENSION) < 0) {
2511
- file.validationErrors.push(INVALIDFILEEXTENSION);
2512
- }
2513
- }
2514
- }
2515
- };
2516
- const validateFileSize = (file, minFileSize, maxFileSize) => {
2517
- if (minFileSize !== 0 && file.size < minFileSize) {
2518
- file.validationErrors = file.validationErrors || [];
2519
- if (file.validationErrors.indexOf(INVALIDMINFILESIZE) < 0) {
2520
- file.validationErrors.push(INVALIDMINFILESIZE);
2521
- }
2522
- }
2523
- if (maxFileSize !== 0 && file.size > maxFileSize) {
2524
- file.validationErrors = file.validationErrors || [];
2525
- if (file.validationErrors.indexOf(INVALIDMAXFILESIZE) < 0) {
2526
- file.validationErrors.push(INVALIDMAXFILESIZE);
2527
- }
2528
- }
2529
- };
2530
- const parseAllowedExtensions = (extensions) => {
2531
- const allowedExtensions = extensions.map((ext) => {
2532
- const parsedExt = (ext.substring(0, 1) === ".") ? ext : ("." + ext);
2533
- return parsedExt.toLowerCase();
2534
- });
2535
- return allowedExtensions;
2536
- };
2537
- /**
2538
- * @hidden
2539
- */
2540
- const validateFiles = (files, restrictionInfo) => {
2541
- const allowedExtensions = parseAllowedExtensions(restrictionInfo.allowedExtensions);
2542
- const maxFileSize = restrictionInfo.maxFileSize;
2543
- const minFileSize = restrictionInfo.minFileSize;
2544
- let i;
2545
- for (i = 0; i < files.length; i++) {
2546
- validateFileExtension(files[i], allowedExtensions);
2547
- validateFileSize(files[i], minFileSize, maxFileSize);
2548
- }
2549
- };
2550
-
2551
- /**
2552
- * @hidden
2553
- */
2554
- class DropZoneBase {
2555
- constructor(element, renderer, cssClass) {
2556
- this.element = element;
2557
- this.renderer = renderer;
2558
- this.hideIntervalElement = null;
2559
- this.hoverClass = cssClass;
2560
- }
2561
- /**
2562
- * @hidden
2563
- */
2564
- onElementDragEnterListener() {
2565
- this.addClass(this.hoverClass);
2566
- this.lastDragElement = new Date();
2567
- if (!this.hideIntervalElement) {
2568
- this.hideIntervalElement = setInterval(() => {
2569
- if (this.calculateTimeDiff(this.lastDragElement) < 100) {
2570
- return;
2571
- }
2572
- this.removeClass(this.hoverClass);
2573
- clearInterval(this.hideIntervalElement);
2574
- this.hideIntervalElement = null;
2575
- }, 100);
2576
- }
2577
- return false;
2578
- }
2579
- /**
2580
- * @hidden
2581
- */
2582
- onElementDragOverListener() {
2583
- this.lastDragElement = new Date();
2584
- return false;
2585
- }
2586
- calculateTimeDiff(prevEvent) {
2587
- return new Date().getTime() - prevEvent.getTime();
2588
- }
2589
- addClass(className) {
2590
- this.renderer.addClass(this.element.nativeElement, className);
2591
- }
2592
- removeClass(className) {
2593
- this.renderer.removeClass(this.element.nativeElement, className);
2594
- }
2595
- }
2596
- DropZoneBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneBase, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: 'hoverClass' }], target: i0.ɵɵFactoryTarget.Directive });
2597
- DropZoneBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DropZoneBase, host: { listeners: { "dragenter": "onElementDragEnterListener()", "dragover": "onElementDragOverListener()" } }, ngImport: i0 });
2598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneBase, decorators: [{
2599
- type: Directive
2600
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
2601
- type: Inject,
2602
- args: ['hoverClass']
2603
- }] }]; }, propDecorators: { onElementDragEnterListener: [{
2604
- type: HostListener,
2605
- args: ['dragenter']
2606
- }], onElementDragOverListener: [{
2607
- type: HostListener,
2608
- args: ['dragover']
2609
- }] } });
2610
-
2611
- /**
2612
- * @hidden
2613
- */
2614
- class DropZoneInternalDirective extends DropZoneBase {
2615
- constructor(element, renderer, ngZone, uploadService) {
2616
- super(element, renderer, 'k-hover');
2617
- this.ngZone = ngZone;
2618
- this.uploadService = uploadService;
2619
- this.initialClassName = true;
2620
- this.hideIntervalDocument = null;
2621
- this.activeClass = 'k-dropzone-active';
2622
- this.ngZone.runOutsideAngular(() => {
2623
- this.unsubscribeDocumentDragEnter = this.renderer.listen('document', 'dragenter', () => this.onDocumentDragEnter());
2624
- this.unsubscribeDocumentDragOver = this.renderer.listen('document', 'dragover', () => this.onDocumentDragOver());
2625
- });
2626
- }
2627
- ngOnDestroy() {
2628
- this.ngZone.runOutsideAngular(() => {
2629
- if (this.unsubscribeDocumentDragEnter) {
2630
- this.unsubscribeDocumentDragEnter();
2631
- }
2632
- if (this.unsubscribeDocumentDragOver) {
2633
- this.unsubscribeDocumentDragOver();
2634
- }
2635
- });
2636
- }
2637
- onDocumentDragEnter() {
2638
- this.addClass(this.activeClass);
2639
- this.lastDragDocument = new Date();
2640
- if (!this.hideIntervalDocument) {
2641
- this.hideIntervalDocument = setInterval(() => {
2642
- if (this.calculateTimeDiff(this.lastDragDocument) < 100) {
2643
- return;
2644
- }
2645
- this.removeClass(this.activeClass);
2646
- clearInterval(this.hideIntervalDocument);
2647
- this.hideIntervalDocument = null;
2648
- }, 100);
2649
- }
2650
- return false;
2651
- }
2652
- /**
2653
- * @hidden
2654
- */
2655
- onDocumentDragOver() {
2656
- this.lastDragDocument = new Date();
2657
- return false;
2658
- }
2659
- onDropListener(event) {
2660
- const droppedFiles = event.dataTransfer.files;
2661
- if (droppedFiles.length > 0 && !this.disabled) {
2662
- let files = getAllFileInfo(droppedFiles);
2663
- files = assignGuidToFiles(files, !this.uploadService.async.batch);
2664
- if (!this.multiple) {
2665
- files.splice(1, files.length - 1);
2666
- this.uploadService.clearFiles();
2667
- }
2668
- validateFiles(files, this.restrictions);
2669
- this.uploadService.addFiles(files);
2670
- }
2671
- return false;
2672
- }
2673
- }
2674
- DropZoneInternalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneInternalDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Directive });
2675
- DropZoneInternalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: { disabled: "disabled", multiple: "multiple", restrictions: "restrictions" }, host: { listeners: { "drop": "onDropListener($event)" }, properties: { "class.k-dropzone": "this.initialClassName", "class.k-upload-dropzone": "this.initialClassName" } }, usesInheritance: true, ngImport: i0 });
2676
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneInternalDirective, decorators: [{
2677
- type: Directive,
2678
- args: [{
2679
- selector: `
2680
- [kendoUploadInternalDropZone],
2681
- [kendoFileSelectInternalDropZone]
2591
+ <ng-container
2592
+ *ngIf="fileTemplate" [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
2593
+ templateRef: fileTemplate.templateRef,
2594
+ state: files[0].state,
2595
+ $implicit: files
2596
+ }"></ng-container>
2597
+ </li>
2598
+ </ng-template>
2682
2599
  `
2683
2600
  }]
2684
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: UploadService }]; }, propDecorators: { disabled: [{
2601
+ }], ctorParameters: function () { return [{ type: UploadService }, { type: NavigationService }]; }, propDecorators: { disabled: [{
2685
2602
  type: Input
2686
- }], multiple: [{
2603
+ }], fileList: [{
2687
2604
  type: Input
2688
- }], restrictions: [{
2605
+ }], fileTemplate: [{
2689
2606
  type: Input
2690
- }], initialClassName: [{
2691
- type: HostBinding,
2692
- args: ['class.k-dropzone']
2693
- }, {
2694
- type: HostBinding,
2695
- args: ['class.k-upload-dropzone']
2696
- }], onDropListener: [{
2697
- type: HostListener,
2698
- args: ['drop', ['$event']]
2607
+ }], fileInfoTemplate: [{
2608
+ type: Input
2609
+ }], fileListItems: [{
2610
+ type: ViewChildren,
2611
+ args: [FileListItemDirective]
2699
2612
  }] } });
2700
2613
 
2701
2614
  /**
@@ -2756,9 +2669,9 @@ class FileSelectDirective {
2756
2669
  });
2757
2670
  }
2758
2671
  }
2759
- FileSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectDirective, deps: [{ token: UploadService }, { token: NavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2760
- FileSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: { dir: "dir", disabled: "disabled", multiple: "multiple", restrictions: "restrictions", accept: "accept", required: "required" }, host: { listeners: { "change": "onInputChange($event)" }, properties: { "attr.type": "this.type", "attr.autocomplete": "this.autocomplete", "attr.tabindex": "this.tabIndex", "attr.aria-hidden": "this.ariaHidden", "class.k-hidden": "this.classNames", "attr.name": "this.nameAttribute", "attr.multiple": "this.multipleAttribute", "attr.dir": "this.dirAttribute", "attr.disabled": "this.disabledAttribute", "attr.accept": "this.acceptAttribute", "attr.required": "this.requiredAttribute" } }, ngImport: i0 });
2761
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectDirective, decorators: [{
2672
+ FileSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileSelectDirective, deps: [{ token: UploadService }, { token: NavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2673
+ FileSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: { dir: "dir", disabled: "disabled", multiple: "multiple", restrictions: "restrictions", accept: "accept", required: "required" }, host: { listeners: { "change": "onInputChange($event)" }, properties: { "attr.type": "this.type", "attr.autocomplete": "this.autocomplete", "attr.tabindex": "this.tabIndex", "attr.aria-hidden": "this.ariaHidden", "class.k-hidden": "this.classNames", "attr.name": "this.nameAttribute", "attr.multiple": "this.multipleAttribute", "attr.dir": "this.dirAttribute", "attr.disabled": "this.disabledAttribute", "attr.accept": "this.acceptAttribute", "attr.required": "this.requiredAttribute" } }, ngImport: i0 });
2674
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileSelectDirective, decorators: [{
2762
2675
  type: Directive,
2763
2676
  args: [{
2764
2677
  selector: '[kendoFileSelect]'
@@ -2813,6 +2726,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2813
2726
  args: ["change", ["$event"]]
2814
2727
  }] } });
2815
2728
 
2729
+ /**
2730
+ * @hidden
2731
+ */
2732
+ class Messages extends ComponentMessages {
2733
+ }
2734
+ Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2735
+ Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: Messages, inputs: { cancel: "cancel", clearSelectedFiles: "clearSelectedFiles", dropFilesHere: "dropFilesHere", externalDropFilesHere: "externalDropFilesHere", filesBatchStatus: "filesBatchStatus", filesBatchStatusFailed: "filesBatchStatusFailed", filesBatchStatusUploaded: "filesBatchStatusUploaded", fileStatusFailed: "fileStatusFailed", fileStatusUploaded: "fileStatusUploaded", headerStatusPaused: "headerStatusPaused", headerStatusUploaded: "headerStatusUploaded", headerStatusUploading: "headerStatusUploading", invalidFileExtension: "invalidFileExtension", invalidMaxFileSize: "invalidMaxFileSize", invalidMinFileSize: "invalidMinFileSize", pause: "pause", remove: "remove", resume: "resume", retry: "retry", select: "select", uploadSelectedFiles: "uploadSelectedFiles" }, usesInheritance: true, ngImport: i0 });
2736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, decorators: [{
2737
+ type: Directive
2738
+ }], propDecorators: { cancel: [{
2739
+ type: Input
2740
+ }], clearSelectedFiles: [{
2741
+ type: Input
2742
+ }], dropFilesHere: [{
2743
+ type: Input
2744
+ }], externalDropFilesHere: [{
2745
+ type: Input
2746
+ }], filesBatchStatus: [{
2747
+ type: Input
2748
+ }], filesBatchStatusFailed: [{
2749
+ type: Input
2750
+ }], filesBatchStatusUploaded: [{
2751
+ type: Input
2752
+ }], fileStatusFailed: [{
2753
+ type: Input
2754
+ }], fileStatusUploaded: [{
2755
+ type: Input
2756
+ }], headerStatusPaused: [{
2757
+ type: Input
2758
+ }], headerStatusUploaded: [{
2759
+ type: Input
2760
+ }], headerStatusUploading: [{
2761
+ type: Input
2762
+ }], invalidFileExtension: [{
2763
+ type: Input
2764
+ }], invalidMaxFileSize: [{
2765
+ type: Input
2766
+ }], invalidMinFileSize: [{
2767
+ type: Input
2768
+ }], pause: [{
2769
+ type: Input
2770
+ }], remove: [{
2771
+ type: Input
2772
+ }], resume: [{
2773
+ type: Input
2774
+ }], retry: [{
2775
+ type: Input
2776
+ }], select: [{
2777
+ type: Input
2778
+ }], uploadSelectedFiles: [{
2779
+ type: Input
2780
+ }] } });
2781
+
2782
+ /**
2783
+ * @hidden
2784
+ */
2785
+ class LocalizedMessagesDirective extends Messages {
2786
+ constructor(service) {
2787
+ super();
2788
+ this.service = service;
2789
+ }
2790
+ }
2791
+ LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
2792
+ LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n ", providers: [
2793
+ {
2794
+ provide: Messages,
2795
+ useExisting: forwardRef(() => LocalizedMessagesDirective)
2796
+ }
2797
+ ], usesInheritance: true, ngImport: i0 });
2798
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
2799
+ type: Directive,
2800
+ args: [{
2801
+ providers: [
2802
+ {
2803
+ provide: Messages,
2804
+ useExisting: forwardRef(() => LocalizedMessagesDirective)
2805
+ }
2806
+ ],
2807
+ selector: `
2808
+ [kendoUploadLocalizedMessages],
2809
+ [kendoFileSelectLocalizedMessages],
2810
+ [kendoUploadDropZoneLocalizedMessages]
2811
+ `
2812
+ }]
2813
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
2814
+
2816
2815
  /**
2817
2816
  * @hidden
2818
2817
  */
@@ -3082,7 +3081,6 @@ class FileSelectComponent {
3082
3081
  const inputId = `k-fileselect-input-${id}`;
3083
3082
  return { buttonId, inputId };
3084
3083
  }
3085
- ;
3086
3084
  subscribeBlur() {
3087
3085
  if (!isDocumentAvailable()) {
3088
3086
  return;
@@ -3155,8 +3153,8 @@ class FileSelectComponent {
3155
3153
  this.uploadService.component = 'FileSelect';
3156
3154
  }
3157
3155
  }
3158
- FileSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", 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 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
3159
- FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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: [
3156
+ FileSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", 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 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
3157
+ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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: [
3160
3158
  LocalizationService,
3161
3159
  NavigationService,
3162
3160
  UploadService,
@@ -3231,8 +3229,8 @@ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
3231
3229
  [fileTemplate]="fileTemplate"
3232
3230
  [fileInfoTemplate]="fileInfoTemplate">
3233
3231
  </ul>
3234
- `, isInline: true, components: [{ type: i5.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions", "accept", "required"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectComponent, decorators: [{
3232
+ `, isInline: true, dependencies: [{ kind: "directive", type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { kind: "component", type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }, { kind: "directive", type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions", "accept", "required"] }, { kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i10.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
3233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileSelectComponent, decorators: [{
3236
3234
  type: Component,
3237
3235
  args: [{
3238
3236
  exportAs: 'kendoFileSelect',
@@ -3393,14 +3391,14 @@ class CustomMessagesComponent extends Messages {
3393
3391
  return true;
3394
3392
  }
3395
3393
  }
3396
- CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3397
- CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CustomMessagesComponent, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages", providers: [
3394
+ CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3395
+ CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages", providers: [
3398
3396
  {
3399
3397
  provide: Messages,
3400
3398
  useExisting: forwardRef(() => CustomMessagesComponent)
3401
3399
  }
3402
3400
  ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
3403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
3401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, decorators: [{
3404
3402
  type: Component,
3405
3403
  args: [{
3406
3404
  providers: [
@@ -3414,84 +3412,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3414
3412
  }]
3415
3413
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
3416
3414
 
3417
- /**
3418
- * @hidden
3419
- */
3420
- class UploadStatusTotalComponent {
3421
- constructor(localization) {
3422
- this.localization = localization;
3423
- this.checkmarkIcon = checkIcon;
3424
- this.exceptionSVGIcon = exclamationCircleIcon;
3425
- this.uploadSVGIcon = uploadIcon;
3426
- this.pauseSVGIcon = pauseSmIcon;
3427
- }
3428
- get iconClass() {
3429
- if (!this.isUploading && !this.isFailed) {
3430
- return 'checkmark';
3431
- }
3432
- if (!this.isUploading && this.isFailed) {
3433
- return 'exception';
3434
- }
3435
- if (this.isUploading) {
3436
- return 'upload';
3437
- }
3438
- if (this.isPaused) {
3439
- return 'pause-sm';
3440
- }
3441
- }
3442
- get SVGIconClass() {
3443
- if (!this.isUploading && !this.isFailed) {
3444
- return this.checkmarkIcon;
3445
- }
3446
- if (!this.isUploading && this.isFailed) {
3447
- return this.exceptionSVGIcon;
3448
- }
3449
- if (this.isUploading) {
3450
- return this.uploadSVGIcon;
3451
- }
3452
- if (this.isPaused) {
3453
- return this.pauseSVGIcon;
3454
- }
3455
- }
3456
- ngDoCheck() {
3457
- this.isPaused = this.fileList.hasFileWithState([FileState.Paused]);
3458
- this.isFailed = this.fileList.hasFileWithState([FileState.Failed]);
3459
- this.isUploading = this.fileList.hasFileWithState([FileState.Uploading]);
3460
- if (this.isPaused && !this.isUploading) {
3461
- this.statusText = this.localization.get('headerStatusPaused');
3462
- }
3463
- else {
3464
- this.statusText = this.isUploading ? this.localization.get('headerStatusUploading')
3465
- : this.localization.get('headerStatusUploaded');
3466
- }
3467
- }
3468
- }
3469
- UploadStatusTotalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadStatusTotalComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3470
- UploadStatusTotalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UploadStatusTotalComponent, selector: "kendo-upload-status-total", inputs: { fileList: "fileList" }, ngImport: i0, template: `
3471
- <kendo-icon-wrapper
3472
- [name]="iconClass"
3473
- [svgIcon]="SVGIconClass"
3474
- >
3475
- </kendo-icon-wrapper>
3476
- {{statusText}}
3477
- `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
3478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadStatusTotalComponent, decorators: [{
3479
- type: Component,
3480
- args: [{
3481
- selector: 'kendo-upload-status-total',
3482
- template: `
3483
- <kendo-icon-wrapper
3484
- [name]="iconClass"
3485
- [svgIcon]="SVGIconClass"
3486
- >
3487
- </kendo-icon-wrapper>
3488
- {{statusText}}
3489
- `
3490
- }]
3491
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { fileList: [{
3492
- type: Input
3493
- }] } });
3494
-
3495
3415
  /* eslint-disable no-debugger */
3496
3416
  /**
3497
3417
  * @hidden
@@ -3544,8 +3464,8 @@ class UploadActionButtonsComponent {
3544
3464
  return this.localization.get(key);
3545
3465
  }
3546
3466
  }
3547
- UploadActionButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadActionButtonsComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
3548
- UploadActionButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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: `
3467
+ UploadActionButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadActionButtonsComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
3468
+ UploadActionButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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: `
3549
3469
  <button #clearButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
3550
3470
  (click)="onClearButtonClick($event)">
3551
3471
  {{textFor('clearSelectedFiles')}}
@@ -3556,7 +3476,7 @@ UploadActionButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
3556
3476
  {{textFor('uploadSelectedFiles')}}
3557
3477
  </button>
3558
3478
  `, isInline: true });
3559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadActionButtonsComponent, decorators: [{
3479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadActionButtonsComponent, decorators: [{
3560
3480
  type: Component,
3561
3481
  args: [{
3562
3482
  selector: 'kendo-upload-action-buttons',
@@ -3599,7 +3519,86 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3599
3519
  args: ['class.k-actions-center']
3600
3520
  }] } });
3601
3521
 
3522
+ /**
3523
+ * @hidden
3524
+ */
3525
+ class UploadStatusTotalComponent {
3526
+ constructor(localization) {
3527
+ this.localization = localization;
3528
+ this.checkmarkIcon = checkIcon;
3529
+ this.exceptionSVGIcon = exclamationCircleIcon;
3530
+ this.uploadSVGIcon = uploadIcon;
3531
+ this.pauseSVGIcon = pauseSmIcon;
3532
+ }
3533
+ get iconClass() {
3534
+ if (!this.isUploading && !this.isFailed) {
3535
+ return 'checkmark';
3536
+ }
3537
+ if (!this.isUploading && this.isFailed) {
3538
+ return 'exception';
3539
+ }
3540
+ if (this.isUploading) {
3541
+ return 'upload';
3542
+ }
3543
+ if (this.isPaused) {
3544
+ return 'pause-sm';
3545
+ }
3546
+ }
3547
+ get SVGIconClass() {
3548
+ if (!this.isUploading && !this.isFailed) {
3549
+ return this.checkmarkIcon;
3550
+ }
3551
+ if (!this.isUploading && this.isFailed) {
3552
+ return this.exceptionSVGIcon;
3553
+ }
3554
+ if (this.isUploading) {
3555
+ return this.uploadSVGIcon;
3556
+ }
3557
+ if (this.isPaused) {
3558
+ return this.pauseSVGIcon;
3559
+ }
3560
+ }
3561
+ ngDoCheck() {
3562
+ this.isPaused = this.fileList.hasFileWithState([FileState.Paused]);
3563
+ this.isFailed = this.fileList.hasFileWithState([FileState.Failed]);
3564
+ this.isUploading = this.fileList.hasFileWithState([FileState.Uploading]);
3565
+ if (this.isPaused && !this.isUploading) {
3566
+ this.statusText = this.localization.get('headerStatusPaused');
3567
+ }
3568
+ else {
3569
+ this.statusText = this.isUploading ? this.localization.get('headerStatusUploading')
3570
+ : this.localization.get('headerStatusUploaded');
3571
+ }
3572
+ }
3573
+ }
3574
+ UploadStatusTotalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadStatusTotalComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3575
+ UploadStatusTotalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UploadStatusTotalComponent, selector: "kendo-upload-status-total", inputs: { fileList: "fileList" }, ngImport: i0, template: `
3576
+ <kendo-icon-wrapper
3577
+ [name]="iconClass"
3578
+ [svgIcon]="SVGIconClass"
3579
+ >
3580
+ </kendo-icon-wrapper>
3581
+ {{statusText}}
3582
+ `, isInline: true, dependencies: [{ kind: "component", type: i5.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
3583
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadStatusTotalComponent, decorators: [{
3584
+ type: Component,
3585
+ args: [{
3586
+ selector: 'kendo-upload-status-total',
3587
+ template: `
3588
+ <kendo-icon-wrapper
3589
+ [name]="iconClass"
3590
+ [svgIcon]="SVGIconClass"
3591
+ >
3592
+ </kendo-icon-wrapper>
3593
+ {{statusText}}
3594
+ `
3595
+ }]
3596
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { fileList: [{
3597
+ type: Input
3598
+ }] } });
3599
+
3602
3600
  /* eslint-disable @typescript-eslint/no-unused-vars */
3601
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3603
3602
  /**
3604
3603
  * @hidden
3605
3604
  */
@@ -4051,7 +4050,6 @@ class UploadComponent {
4051
4050
  const inputId = `k-upload-input-${id}`;
4052
4051
  return { buttonId, inputId };
4053
4052
  }
4054
- ;
4055
4053
  /**
4056
4054
  * Focuses the underlying input element.
4057
4055
  */
@@ -4241,8 +4239,8 @@ class UploadComponent {
4241
4239
  }));
4242
4240
  }
4243
4241
  }
4244
- UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", 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 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
4245
- UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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: [
4242
+ UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", 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 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
4243
+ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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: [
4246
4244
  LocalizationService,
4247
4245
  NavigationService,
4248
4246
  UploadService,
@@ -4365,8 +4363,8 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4365
4363
  [disabled]="disabled"
4366
4364
  [actionsLayout]="actionsLayout">
4367
4365
  </kendo-upload-action-buttons>
4368
- `, isInline: true, components: [{ type: i5.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: UploadStatusTotalComponent, selector: "kendo-upload-status-total", inputs: ["fileList"] }, { type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }, { type: UploadActionButtonsComponent, selector: "kendo-upload-action-buttons", inputs: ["disabled", "actionsLayout"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions", "accept", "required"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadComponent, decorators: [{
4366
+ `, isInline: true, dependencies: [{ kind: "directive", type: DropZoneInternalDirective, selector: "\n [kendoUploadInternalDropZone],\n [kendoFileSelectInternalDropZone]\n ", inputs: ["disabled", "multiple", "restrictions"] }, { kind: "component", type: FileListComponent, selector: "[kendo-upload-file-list]", inputs: ["disabled", "fileList", "fileTemplate", "fileInfoTemplate"] }, { kind: "directive", type: FileSelectDirective, selector: "[kendoFileSelect]", inputs: ["dir", "disabled", "multiple", "restrictions", "accept", "required"] }, { kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i10.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: UploadActionButtonsComponent, selector: "kendo-upload-action-buttons", inputs: ["disabled", "actionsLayout"] }, { kind: "component", type: UploadStatusTotalComponent, selector: "kendo-upload-status-total", inputs: ["fileList"] }] });
4367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadComponent, decorators: [{
4370
4368
  type: Component,
4371
4369
  args: [{
4372
4370
  exportAs: 'kendoUpload',
@@ -4653,11 +4651,11 @@ class UploadDropZoneDirective {
4653
4651
  return this.dropZoneService.getComponents(this.zoneId);
4654
4652
  }
4655
4653
  }
4656
- UploadDropZoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadDropZoneDirective, deps: [{ token: DropZoneService }], target: i0.ɵɵFactoryTarget.Directive });
4657
- UploadDropZoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: UploadDropZoneDirective, selector: "[kendoUploadDropZone], [kendoFileSelectDropZone]", inputs: { zoneId: ["kendoUploadDropZone", "zoneId"] }, host: { listeners: { "dragenter": "onElementDragEnter()", "dragover": "onElementDragOver()", "drop": "onDropListener($event)" } }, providers: [
4654
+ UploadDropZoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadDropZoneDirective, deps: [{ token: DropZoneService }], target: i0.ɵɵFactoryTarget.Directive });
4655
+ UploadDropZoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: UploadDropZoneDirective, selector: "[kendoUploadDropZone], [kendoFileSelectDropZone]", inputs: { zoneId: ["kendoUploadDropZone", "zoneId"] }, host: { listeners: { "dragenter": "onElementDragEnter()", "dragover": "onElementDragOver()", "drop": "onDropListener($event)" } }, providers: [
4658
4656
  DropZoneService
4659
4657
  ], ngImport: i0 });
4660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadDropZoneDirective, decorators: [{
4658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadDropZoneDirective, decorators: [{
4661
4659
  type: Directive,
4662
4660
  args: [{
4663
4661
  providers: [
@@ -4731,8 +4729,8 @@ class UploadDropZoneComponent extends DropZoneBase {
4731
4729
  }
4732
4730
  }
4733
4731
  }
4734
- UploadDropZoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadDropZoneComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4735
- UploadDropZoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UploadDropZoneComponent, selector: "kendo-uploaddropzone", inputs: { zoneId: "zoneId", icon: "icon", iconClass: "iconClass", svgIcon: "svgIcon" }, host: { properties: { "class.k-external-dropzone": "this.hostClass", "attr.dir": "this.dirAttribute" } }, providers: [
4732
+ UploadDropZoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadDropZoneComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
4733
+ UploadDropZoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UploadDropZoneComponent, selector: "kendo-uploaddropzone", inputs: { zoneId: "zoneId", icon: "icon", iconClass: "iconClass", svgIcon: "svgIcon" }, host: { properties: { "class.k-external-dropzone": "this.hostClass", "attr.dir": "this.dirAttribute" } }, providers: [
4736
4734
  LocalizationService,
4737
4735
  {
4738
4736
  provide: L10N_PREFIX,
@@ -4756,8 +4754,8 @@ UploadDropZoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
4756
4754
  <ng-content></ng-content>
4757
4755
  </span>
4758
4756
  </div>
4759
- `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }, { type: UploadDropZoneDirective, selector: "[kendoUploadDropZone], [kendoFileSelectDropZone]", inputs: ["kendoUploadDropZone"] }] });
4760
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadDropZoneComponent, decorators: [{
4757
+ `, isInline: true, dependencies: [{ kind: "component", type: i5.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: UploadDropZoneDirective, selector: "[kendoUploadDropZone], [kendoFileSelectDropZone]", inputs: ["kendoUploadDropZone"] }, { kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n " }] });
4758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadDropZoneComponent, decorators: [{
4761
4759
  type: Component,
4762
4760
  args: [{
4763
4761
  exportAs: 'kendoUploadDropZone',
@@ -4833,8 +4831,8 @@ const PUBLIC_DIRECTIVES = [
4833
4831
  */
4834
4832
  class SharedModule {
4835
4833
  }
4836
- SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4837
- SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, declarations: [FileTemplateDirective,
4834
+ SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4835
+ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, declarations: [FileTemplateDirective,
4838
4836
  FileInfoTemplateDirective,
4839
4837
  CustomMessagesComponent,
4840
4838
  UploadDropZoneDirective,
@@ -4858,9 +4856,9 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
4858
4856
  FileSelectDirective,
4859
4857
  LocalizedMessagesDirective, CommonModule,
4860
4858
  ButtonsModule] });
4861
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, imports: [[CommonModule, ButtonsModule, ProgressBarModule, IconsModule], CommonModule,
4859
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, imports: [CommonModule, ButtonsModule, ProgressBarModule, IconsModule, CommonModule,
4862
4860
  ButtonsModule] });
4863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, decorators: [{
4861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, decorators: [{
4864
4862
  type: NgModule,
4865
4863
  args: [{
4866
4864
  declarations: [
@@ -4885,10 +4883,10 @@ const FILESELECT_DECLARATIONS = [
4885
4883
  */
4886
4884
  class FileSelectModule {
4887
4885
  }
4888
- FileSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4889
- FileSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectModule, declarations: [FileSelectComponent], imports: [SharedModule, IconsModule], exports: [FileTemplateDirective, FileInfoTemplateDirective, CustomMessagesComponent, UploadDropZoneDirective, UploadDropZoneComponent, FileSelectComponent] });
4890
- FileSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectModule, imports: [[SharedModule, IconsModule]] });
4891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectModule, decorators: [{
4886
+ FileSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4887
+ FileSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FileSelectModule, declarations: [FileSelectComponent], imports: [SharedModule, IconsModule], exports: [FileTemplateDirective, FileInfoTemplateDirective, CustomMessagesComponent, UploadDropZoneDirective, UploadDropZoneComponent, FileSelectComponent] });
4888
+ FileSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileSelectModule, imports: [SharedModule, IconsModule] });
4889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileSelectModule, decorators: [{
4892
4890
  type: NgModule,
4893
4891
  args: [{
4894
4892
  declarations: [FILESELECT_DECLARATIONS],
@@ -4910,14 +4908,14 @@ const UPLOAD_DECLARATIONS = [
4910
4908
  */
4911
4909
  class UploadModule {
4912
4910
  }
4913
- UploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4914
- UploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadModule, declarations: [UploadComponent,
4911
+ UploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4912
+ UploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UploadModule, declarations: [UploadComponent,
4915
4913
  UploadActionButtonsComponent,
4916
4914
  UploadStatusTotalComponent], imports: [SharedModule, IconsModule], exports: [FileTemplateDirective, FileInfoTemplateDirective, CustomMessagesComponent, UploadDropZoneDirective, UploadDropZoneComponent, UploadComponent,
4917
4915
  UploadActionButtonsComponent,
4918
4916
  UploadStatusTotalComponent] });
4919
- UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadModule, imports: [[SharedModule, IconsModule]] });
4920
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadModule, decorators: [{
4917
+ UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadModule, imports: [SharedModule, IconsModule] });
4918
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadModule, decorators: [{
4921
4919
  type: NgModule,
4922
4920
  args: [{
4923
4921
  declarations: [UPLOAD_DECLARATIONS],
@@ -4956,12 +4954,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4956
4954
  */
4957
4955
  class UploadsModule {
4958
4956
  }
4959
- UploadsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4960
- UploadsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadsModule, exports: [FileSelectModule,
4957
+ UploadsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4958
+ UploadsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UploadsModule, exports: [FileSelectModule,
4961
4959
  UploadModule] });
4962
- UploadsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadsModule, imports: [FileSelectModule,
4960
+ UploadsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadsModule, imports: [FileSelectModule,
4963
4961
  UploadModule] });
4964
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadsModule, decorators: [{
4962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadsModule, decorators: [{
4965
4963
  type: NgModule,
4966
4964
  args: [{
4967
4965
  exports: [