@progress/kendo-angular-upload 16.0.0-develop.1 → 16.0.0-develop.4

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.0.4", ngImport: i0, type: UploadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1324
+ UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadService });
1325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", 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.0.4", 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.0.4", ngImport: i0, type: NavigationService });
1475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", 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.0.4", ngImport: i0, type: DropZoneService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1500
+ DropZoneService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropZoneService });
1501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", 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: 1714060778,
1514
- version: '16.0.0-develop.1',
1512
+ publishDate: 1714109373,
1513
+ version: '16.0.0-develop.4',
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.0.4", ngImport: i0, type: FileTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1526
+ FileTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FileTemplateDirective, selector: "[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]", ngImport: i0 });
1527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileTemplateDirective, decorators: [{
1529
1528
  type: Directive,
1530
1529
  args: [{
1531
1530
  selector: '[kendoUploadFileTemplate], [kendoFileSelectFileTemplate]'
@@ -1540,15 +1539,224 @@ 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.0.4", ngImport: i0, type: FileInfoTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1543
+ FileInfoTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: FileInfoTemplateDirective, selector: "[kendoUploadFileInfoTemplate], [kendoFileSelectFileInfoTemplate]", ngImport: i0 });
1544
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", 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.0.4", 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.0.4", type: DropZoneBase, host: { listeners: { "dragenter": "onElementDragEnterListener()", "dragover": "onElementDragOverListener()" } }, ngImport: i0 });
1655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropZoneBase, decorators: [{
1656
+ type: Directive
1657
+ }], ctorParameters: function () {
1658
+ return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
1659
+ type: Inject,
1660
+ args: ['hoverClass']
1661
+ }] }];
1662
+ }, propDecorators: { onElementDragEnterListener: [{
1663
+ type: HostListener,
1664
+ args: ['dragenter']
1665
+ }], onElementDragOverListener: [{
1666
+ type: HostListener,
1667
+ args: ['dragover']
1668
+ }] } });
1669
+
1670
+ /**
1671
+ * @hidden
1672
+ */
1673
+ class DropZoneInternalDirective extends DropZoneBase {
1674
+ constructor(element, renderer, ngZone, uploadService) {
1675
+ super(element, renderer, 'k-hover');
1676
+ this.ngZone = ngZone;
1677
+ this.uploadService = uploadService;
1678
+ this.initialClassName = true;
1679
+ this.hideIntervalDocument = null;
1680
+ this.activeClass = 'k-dropzone-active';
1681
+ this.ngZone.runOutsideAngular(() => {
1682
+ this.unsubscribeDocumentDragEnter = this.renderer.listen('document', 'dragenter', () => this.onDocumentDragEnter());
1683
+ this.unsubscribeDocumentDragOver = this.renderer.listen('document', 'dragover', () => this.onDocumentDragOver());
1684
+ });
1685
+ }
1686
+ ngOnDestroy() {
1687
+ this.ngZone.runOutsideAngular(() => {
1688
+ if (this.unsubscribeDocumentDragEnter) {
1689
+ this.unsubscribeDocumentDragEnter();
1690
+ }
1691
+ if (this.unsubscribeDocumentDragOver) {
1692
+ this.unsubscribeDocumentDragOver();
1693
+ }
1694
+ });
1695
+ }
1696
+ onDocumentDragEnter() {
1697
+ this.addClass(this.activeClass);
1698
+ this.lastDragDocument = new Date();
1699
+ if (!this.hideIntervalDocument) {
1700
+ this.hideIntervalDocument = setInterval(() => {
1701
+ if (this.calculateTimeDiff(this.lastDragDocument) < 100) {
1702
+ return;
1703
+ }
1704
+ this.removeClass(this.activeClass);
1705
+ clearInterval(this.hideIntervalDocument);
1706
+ this.hideIntervalDocument = null;
1707
+ }, 100);
1708
+ }
1709
+ return false;
1710
+ }
1711
+ /**
1712
+ * @hidden
1713
+ */
1714
+ onDocumentDragOver() {
1715
+ this.lastDragDocument = new Date();
1716
+ return false;
1717
+ }
1718
+ onDropListener(event) {
1719
+ const droppedFiles = event.dataTransfer.files;
1720
+ if (droppedFiles.length > 0 && !this.disabled) {
1721
+ let files = getAllFileInfo(droppedFiles);
1722
+ files = assignGuidToFiles(files, !this.uploadService.async.batch);
1723
+ if (!this.multiple) {
1724
+ files.splice(1, files.length - 1);
1725
+ this.uploadService.clearFiles();
1726
+ }
1727
+ validateFiles(files, this.restrictions);
1728
+ this.uploadService.addFiles(files);
1729
+ }
1730
+ return false;
1731
+ }
1732
+ }
1733
+ DropZoneInternalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropZoneInternalDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Directive });
1734
+ DropZoneInternalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", 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 });
1735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropZoneInternalDirective, decorators: [{
1736
+ type: Directive,
1737
+ args: [{
1738
+ selector: `
1739
+ [kendoUploadInternalDropZone],
1740
+ [kendoFileSelectInternalDropZone]
1741
+ `
1742
+ }]
1743
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: UploadService }]; }, propDecorators: { disabled: [{
1744
+ type: Input
1745
+ }], multiple: [{
1746
+ type: Input
1747
+ }], restrictions: [{
1748
+ type: Input
1749
+ }], initialClassName: [{
1750
+ type: HostBinding,
1751
+ args: ['class.k-dropzone']
1752
+ }, {
1753
+ type: HostBinding,
1754
+ args: ['class.k-upload-dropzone']
1755
+ }], onDropListener: [{
1756
+ type: HostListener,
1757
+ args: ['drop', ['$event']]
1758
+ }] } });
1759
+
1552
1760
  /**
1553
1761
  * @hidden
1554
1762
  */
@@ -1601,9 +1809,9 @@ class FileListItemDirective {
1601
1809
  }
1602
1810
  }
1603
1811
  }
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: [{
1812
+ FileListItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListItemDirective, deps: [{ token: i0.ElementRef }, { token: NavigationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Directive });
1813
+ FileListItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", 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 });
1814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListItemDirective, decorators: [{
1607
1815
  type: Directive,
1608
1816
  args: [{
1609
1817
  selector: '[kendoUploadFileListItem]'
@@ -1681,9 +1889,9 @@ class FileListItemBase {
1681
1889
  return this.localization.get(key);
1682
1890
  }
1683
1891
  }
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: [{
1892
+ FileListItemBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListItemBase, deps: [{ token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
1893
+ FileListItemBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FileListItemBase, selector: "ng-component", ngImport: i0, template: '', isInline: true });
1894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListItemBase, decorators: [{
1687
1895
  type: Component,
1688
1896
  args: [{ template: '' }]
1689
1897
  }], ctorParameters: function () { return [{ type: UploadService }]; } });
@@ -1797,8 +2005,8 @@ class FileListItemActionButtonComponent {
1797
2005
  return true;
1798
2006
  }
1799
2007
  }
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: `
2008
+ FileListItemActionButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListItemActionButtonComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2009
+ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FileListItemActionButtonComponent, selector: "kendo-upload-file-list-item-action-button", inputs: { file: "file", disabled: "disabled", progress: "progress" }, ngImport: i0, template: `
1802
2010
  <span class="k-upload-actions">
1803
2011
  <span class="k-upload-pct" *ngIf="isUploading || isPaused">{{progress}}%</span>
1804
2012
 
@@ -1861,8 +2069,8 @@ FileListItemActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
1861
2069
  ></kendo-icon-wrapper>
1862
2070
  </button>
1863
2071
  </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: [{
2072
+ `, 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"] }] });
2073
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListItemActionButtonComponent, decorators: [{
1866
2074
  type: Component,
1867
2075
  args: [{
1868
2076
  selector: 'kendo-upload-file-list-item-action-button',
@@ -1942,59 +2150,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1942
2150
  /**
1943
2151
  * @hidden
1944
2152
  */
1945
- class FileListSingleItemComponent extends FileListItemBase {
2153
+ class FileListMultipleItemsComponent extends FileListItemBase {
1946
2154
  constructor(localization, uploadService) {
1947
2155
  super(uploadService);
1948
2156
  this.localization = localization;
2157
+ this.copySVGIcon = copyIcon;
1949
2158
  this.subscribeUploadProgress((args) => {
1950
- if (args.files[0].uid === this.file.uid) {
2159
+ if (args.files[0].uid === this.files[0].uid) {
1951
2160
  this.progressComplete = args.percentComplete;
1952
2161
  }
1953
2162
  });
1954
2163
  }
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
2164
  get showProgress() {
1969
- const showProgress = this.file.state === FileState.Uploading || this.file.state === FileState.Paused;
2165
+ const showProgress = this.files[0].state === FileState.Uploading || this.files[0].state === FileState.Paused;
1970
2166
  return showProgress ? 'active' : 'inactive';
1971
2167
  }
1972
- get fileGroupClass() {
1973
- return getFileGroupCssClass(this.file.extension ? this.file.extension : '');
2168
+ ngOnInit() {
2169
+ this.filesHaveErrors = super.filesHaveValidationErrors(this.files);
1974
2170
  }
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
- }
2171
+ fileStatusText(file) {
2172
+ const errors = file.validationErrors;
2173
+ if (!isPresent(errors)) {
2174
+ return this.getTotalFilesSizeMessage([file]);
1983
2175
  }
1984
- return initial;
2176
+ return this.getFileValidationMessage(file);
2177
+ }
2178
+ get batchStatusText() {
2179
+ const state = this.files[0].state;
2180
+ const fileCount = this.files.length;
2181
+ if (state === FileState.Uploaded) {
2182
+ return `${fileCount} ${this.textFor('filesBatchStatusUploaded')}`;
2183
+ }
2184
+ if (state === FileState.Failed) {
2185
+ return `${fileCount} ${this.textFor('filesBatchStatusFailed')}`;
2186
+ }
2187
+ return `${fileCount} ${this.textFor('filesBatchStatus')}`;
1985
2188
  }
1986
2189
  get isUploadSuccessful() {
1987
- return this.file.state === FileState.Uploaded;
2190
+ return this.files[0].state === FileState.Uploaded;
1988
2191
  }
1989
2192
  get isUploadFailed() {
1990
- return this.file.state === FileState.Failed;
1991
- }
1992
- get isNotYetUploaded() {
1993
- return !this.isUploadFailed && !this.isUploadSuccessful;
2193
+ return this.files[0].state === FileState.Failed;
1994
2194
  }
1995
2195
  }
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: `
2196
+ FileListMultipleItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListMultipleItemsComponent, deps: [{ token: i1$1.LocalizationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
2197
+ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FileListMultipleItemsComponent, selector: "kendo-upload-file-list-multiple-items", inputs: { disabled: "disabled", files: "files", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
1998
2198
  <kendo-progressbar
1999
2199
  [@progressState]="showProgress"
2000
2200
  [value]="progressComplete"
@@ -2003,35 +2203,43 @@ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2003
2203
  </kendo-progressbar>
2004
2204
  <span class="k-file-icon-wrapper">
2005
2205
  <kendo-icon-wrapper
2206
+ name="copy"
2006
2207
  size="xxlarge"
2007
- [name]="fileGroupClass"
2008
- [svgIcon]="fileSVGGroupIcon"
2208
+ [svgIcon]="copySVGIcon"
2009
2209
  innerCssClass="k-file-icon"
2010
2210
  >
2011
2211
  </kendo-icon-wrapper>
2012
2212
  </span>
2013
- <span class="k-file-info">
2213
+ <span class="k-multiple-files-wrapper">
2014
2214
  <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>
2215
+ <span *ngFor="let file of files" class="k-file-info">
2216
+ <span [title]="file.name" class="k-file-name">
2217
+ {{file.name}}
2218
+ </span>
2219
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2220
+ 'k-file-validation-message': file.validationErrors,
2221
+ 'k-file-size': !file.validationErrors
2222
+ }"
2223
+ >{{fileStatusText(file)}}</span>
2224
+ </span>
2225
+ <span class="k-file-summary"
2226
+ >{{batchStatusText}}</span>
2022
2227
  </ng-container>
2023
- <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2228
+ <ng-container
2229
+ *ngIf="fileInfoTemplate"
2230
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2231
+ [ngTemplateOutletContext]="{
2024
2232
  templateRef: fileInfoTemplate.templateRef,
2025
- state: file.state,
2026
- $implicit: [file]
2233
+ state: files[0].state,
2234
+ $implicit: files
2027
2235
  }"></ng-container>
2028
2236
  </span>
2029
2237
  <kendo-upload-file-list-item-action-button
2030
- [file]='file'
2238
+ [file]='files[0]'
2031
2239
  [disabled]='disabled'
2032
2240
  [progress]='progressComplete'>
2033
2241
  </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: [
2242
+ `, 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
2243
  trigger('progressState', [
2036
2244
  state('active', style({ opacity: 1 })),
2037
2245
  state('inactive', style({ opacity: 0 })),
@@ -2040,7 +2248,7 @@ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2040
2248
  transition('active => inactive', animate('1s 2s ease-out'))
2041
2249
  ])
2042
2250
  ] });
2043
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListSingleItemComponent, decorators: [{
2251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListMultipleItemsComponent, decorators: [{
2044
2252
  type: Component,
2045
2253
  args: [{
2046
2254
  animations: [
@@ -2052,7 +2260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2052
2260
  transition('active => inactive', animate('1s 2s ease-out'))
2053
2261
  ])
2054
2262
  ],
2055
- selector: 'kendo-upload-file-list-single-item',
2263
+ selector: 'kendo-upload-file-list-multiple-items',
2056
2264
  template: `
2057
2265
  <kendo-progressbar
2058
2266
  [@progressState]="showProgress"
@@ -2062,31 +2270,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2062
2270
  </kendo-progressbar>
2063
2271
  <span class="k-file-icon-wrapper">
2064
2272
  <kendo-icon-wrapper
2273
+ name="copy"
2065
2274
  size="xxlarge"
2066
- [name]="fileGroupClass"
2067
- [svgIcon]="fileSVGGroupIcon"
2275
+ [svgIcon]="copySVGIcon"
2068
2276
  innerCssClass="k-file-icon"
2069
2277
  >
2070
2278
  </kendo-icon-wrapper>
2071
2279
  </span>
2072
- <span class="k-file-info">
2280
+ <span class="k-multiple-files-wrapper">
2073
2281
  <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>
2282
+ <span *ngFor="let file of files" class="k-file-info">
2283
+ <span [title]="file.name" class="k-file-name">
2284
+ {{file.name}}
2285
+ </span>
2286
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2287
+ 'k-file-validation-message': file.validationErrors,
2288
+ 'k-file-size': !file.validationErrors
2289
+ }"
2290
+ >{{fileStatusText(file)}}</span>
2291
+ </span>
2292
+ <span class="k-file-summary"
2293
+ >{{batchStatusText}}</span>
2081
2294
  </ng-container>
2082
- <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2295
+ <ng-container
2296
+ *ngIf="fileInfoTemplate"
2297
+ [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2298
+ [ngTemplateOutletContext]="{
2083
2299
  templateRef: fileInfoTemplate.templateRef,
2084
- state: file.state,
2085
- $implicit: [file]
2300
+ state: files[0].state,
2301
+ $implicit: files
2086
2302
  }"></ng-container>
2087
2303
  </span>
2088
2304
  <kendo-upload-file-list-item-action-button
2089
- [file]='file'
2305
+ [file]='files[0]'
2090
2306
  [disabled]='disabled'
2091
2307
  [progress]='progressComplete'>
2092
2308
  </kendo-upload-file-list-item-action-button>
@@ -2094,7 +2310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2094
2310
  }]
2095
2311
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: UploadService }]; }, propDecorators: { disabled: [{
2096
2312
  type: Input
2097
- }], file: [{
2313
+ }], files: [{
2098
2314
  type: Input
2099
2315
  }], fileInfoTemplate: [{
2100
2316
  type: Input
@@ -2103,51 +2319,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2103
2319
  /**
2104
2320
  * @hidden
2105
2321
  */
2106
- class FileListMultipleItemsComponent extends FileListItemBase {
2322
+ class FileListSingleItemComponent extends FileListItemBase {
2107
2323
  constructor(localization, uploadService) {
2108
2324
  super(uploadService);
2109
2325
  this.localization = localization;
2110
- this.copySVGIcon = copyIcon;
2111
2326
  this.subscribeUploadProgress((args) => {
2112
- if (args.files[0].uid === this.files[0].uid) {
2327
+ if (args.files[0].uid === this.file.uid) {
2113
2328
  this.progressComplete = args.percentComplete;
2114
2329
  }
2115
2330
  });
2116
2331
  }
2332
+ get fileStatusText() {
2333
+ const errors = this.file.validationErrors;
2334
+ if (this.file.state === FileState.Uploaded) {
2335
+ return `${this.textFor('fileStatusUploaded')}`;
2336
+ }
2337
+ if (this.file.state === FileState.Failed) {
2338
+ return `${this.textFor('fileStatusFailed')}`;
2339
+ }
2340
+ if (!isPresent(errors)) {
2341
+ return this.getTotalFilesSizeMessage([this.file]);
2342
+ }
2343
+ return this.getFileValidationMessage(this.file);
2344
+ }
2117
2345
  get showProgress() {
2118
- const showProgress = this.files[0].state === FileState.Uploading || this.files[0].state === FileState.Paused;
2346
+ const showProgress = this.file.state === FileState.Uploading || this.file.state === FileState.Paused;
2119
2347
  return showProgress ? 'active' : 'inactive';
2120
2348
  }
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);
2349
+ get fileGroupClass() {
2350
+ return getFileGroupCssClass(this.file.extension ? this.file.extension : '');
2130
2351
  }
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')}`;
2352
+ get fileSVGGroupIcon() {
2353
+ const initial = fileIcon;
2354
+ if (this.file.extension) {
2355
+ for (const group in fileGroupMap) {
2356
+ if (fileGroupMap[group].indexOf(this.file.extension) >= 0) {
2357
+ return fileSVGGroupMap[group];
2358
+ }
2359
+ }
2139
2360
  }
2140
- return `${fileCount} ${this.textFor('filesBatchStatus')}`;
2361
+ return initial;
2141
2362
  }
2142
2363
  get isUploadSuccessful() {
2143
- return this.files[0].state === FileState.Uploaded;
2364
+ return this.file.state === FileState.Uploaded;
2144
2365
  }
2145
2366
  get isUploadFailed() {
2146
- return this.files[0].state === FileState.Failed;
2367
+ return this.file.state === FileState.Failed;
2368
+ }
2369
+ get isNotYetUploaded() {
2370
+ return !this.isUploadFailed && !this.isUploadSuccessful;
2147
2371
  }
2148
2372
  }
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: `
2373
+ FileListSingleItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListSingleItemComponent, deps: [{ token: i1$1.LocalizationService }, { token: UploadService }], target: i0.ɵɵFactoryTarget.Component });
2374
+ FileListSingleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: FileListSingleItemComponent, selector: "kendo-upload-file-list-single-item", inputs: { disabled: "disabled", file: "file", fileInfoTemplate: "fileInfoTemplate" }, usesInheritance: true, ngImport: i0, template: `
2151
2375
  <kendo-progressbar
2152
2376
  [@progressState]="showProgress"
2153
2377
  [value]="progressComplete"
@@ -2156,43 +2380,35 @@ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
2156
2380
  </kendo-progressbar>
2157
2381
  <span class="k-file-icon-wrapper">
2158
2382
  <kendo-icon-wrapper
2159
- name="copy"
2160
2383
  size="xxlarge"
2161
- [svgIcon]="copySVGIcon"
2384
+ [name]="fileGroupClass"
2385
+ [svgIcon]="fileSVGGroupIcon"
2162
2386
  innerCssClass="k-file-icon"
2163
2387
  >
2164
2388
  </kendo-icon-wrapper>
2165
2389
  </span>
2166
- <span class="k-multiple-files-wrapper">
2390
+ <span class="k-file-info">
2167
2391
  <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>
2392
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2393
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2394
+ 'k-file-validation-message': file.validationErrors,
2395
+ 'k-file-size': !file.validationErrors && isNotYetUploaded,
2396
+ 'k-file-summary': isUploadSuccessful || isUploadFailed
2397
+ }"
2398
+ >{{fileStatusText}}</span>
2180
2399
  </ng-container>
2181
- <ng-container
2182
- *ngIf="fileInfoTemplate"
2183
- [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2184
- [ngTemplateOutletContext]="{
2400
+ <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2185
2401
  templateRef: fileInfoTemplate.templateRef,
2186
- state: files[0].state,
2187
- $implicit: files
2402
+ state: file.state,
2403
+ $implicit: [file]
2188
2404
  }"></ng-container>
2189
2405
  </span>
2190
2406
  <kendo-upload-file-list-item-action-button
2191
- [file]='files[0]'
2407
+ [file]='file'
2192
2408
  [disabled]='disabled'
2193
2409
  [progress]='progressComplete'>
2194
2410
  </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: [
2411
+ `, 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
2412
  trigger('progressState', [
2197
2413
  state('active', style({ opacity: 1 })),
2198
2414
  state('inactive', style({ opacity: 0 })),
@@ -2201,7 +2417,7 @@ FileListMultipleItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
2201
2417
  transition('active => inactive', animate('1s 2s ease-out'))
2202
2418
  ])
2203
2419
  ] });
2204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileListMultipleItemsComponent, decorators: [{
2420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListSingleItemComponent, decorators: [{
2205
2421
  type: Component,
2206
2422
  args: [{
2207
2423
  animations: [
@@ -2213,7 +2429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2213
2429
  transition('active => inactive', animate('1s 2s ease-out'))
2214
2430
  ])
2215
2431
  ],
2216
- selector: 'kendo-upload-file-list-multiple-items',
2432
+ selector: 'kendo-upload-file-list-single-item',
2217
2433
  template: `
2218
2434
  <kendo-progressbar
2219
2435
  [@progressState]="showProgress"
@@ -2223,39 +2439,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2223
2439
  </kendo-progressbar>
2224
2440
  <span class="k-file-icon-wrapper">
2225
2441
  <kendo-icon-wrapper
2226
- name="copy"
2227
2442
  size="xxlarge"
2228
- [svgIcon]="copySVGIcon"
2443
+ [name]="fileGroupClass"
2444
+ [svgIcon]="fileSVGGroupIcon"
2229
2445
  innerCssClass="k-file-icon"
2230
2446
  >
2231
2447
  </kendo-icon-wrapper>
2232
2448
  </span>
2233
- <span class="k-multiple-files-wrapper">
2449
+ <span class="k-file-info">
2234
2450
  <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>
2451
+ <span class="k-file-name" [title]="file.name">{{ file.name }}</span>
2452
+ <span [attr.aria-live]="'polite'" [ngClass]="{
2453
+ 'k-file-validation-message': file.validationErrors,
2454
+ 'k-file-size': !file.validationErrors && isNotYetUploaded,
2455
+ 'k-file-summary': isUploadSuccessful || isUploadFailed
2456
+ }"
2457
+ >{{fileStatusText}}</span>
2247
2458
  </ng-container>
2248
- <ng-container
2249
- *ngIf="fileInfoTemplate"
2250
- [ngTemplateOutlet]="fileInfoTemplate.templateRef"
2251
- [ngTemplateOutletContext]="{
2459
+ <ng-container *ngIf="fileInfoTemplate" [ngTemplateOutlet]="fileInfoTemplate.templateRef" [ngTemplateOutletContext]="{
2252
2460
  templateRef: fileInfoTemplate.templateRef,
2253
- state: files[0].state,
2254
- $implicit: files
2461
+ state: file.state,
2462
+ $implicit: [file]
2255
2463
  }"></ng-container>
2256
2464
  </span>
2257
2465
  <kendo-upload-file-list-item-action-button
2258
- [file]='files[0]'
2466
+ [file]='file'
2259
2467
  [disabled]='disabled'
2260
2468
  [progress]='progressComplete'>
2261
2469
  </kendo-upload-file-list-item-action-button>
@@ -2263,7 +2471,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2263
2471
  }]
2264
2472
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: UploadService }]; }, propDecorators: { disabled: [{
2265
2473
  type: Input
2266
- }], files: [{
2474
+ }], file: [{
2267
2475
  type: Input
2268
2476
  }], fileInfoTemplate: [{
2269
2477
  type: Input
@@ -2332,8 +2540,8 @@ class FileListComponent {
2332
2540
  this.actionSubscription.unsubscribe();
2333
2541
  }
2334
2542
  }
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: `
2543
+ FileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListComponent, deps: [{ token: UploadService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
2544
+ FileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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
2545
  <ng-template ngFor
2338
2546
  [ngForOf]="fileList"
2339
2547
  let-files
@@ -2359,8 +2567,8 @@ FileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
2359
2567
  }"></ng-container>
2360
2568
  </li>
2361
2569
  </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: [{
2570
+ `, 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"] }] });
2571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileListComponent, decorators: [{
2364
2572
  type: Component,
2365
2573
  args: [{
2366
2574
  selector: '[kendo-upload-file-list]',
@@ -2382,322 +2590,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2382
2590
  [disabled]='disabled'
2383
2591
  [files]='files'
2384
2592
  [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 () {
2601
- return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
2602
- type: Inject,
2603
- args: ['hoverClass']
2604
- }] }];
2605
- }, propDecorators: { onElementDragEnterListener: [{
2606
- type: HostListener,
2607
- args: ['dragenter']
2608
- }], onElementDragOverListener: [{
2609
- type: HostListener,
2610
- args: ['dragover']
2611
- }] } });
2612
-
2613
- /**
2614
- * @hidden
2615
- */
2616
- class DropZoneInternalDirective extends DropZoneBase {
2617
- constructor(element, renderer, ngZone, uploadService) {
2618
- super(element, renderer, 'k-hover');
2619
- this.ngZone = ngZone;
2620
- this.uploadService = uploadService;
2621
- this.initialClassName = true;
2622
- this.hideIntervalDocument = null;
2623
- this.activeClass = 'k-dropzone-active';
2624
- this.ngZone.runOutsideAngular(() => {
2625
- this.unsubscribeDocumentDragEnter = this.renderer.listen('document', 'dragenter', () => this.onDocumentDragEnter());
2626
- this.unsubscribeDocumentDragOver = this.renderer.listen('document', 'dragover', () => this.onDocumentDragOver());
2627
- });
2628
- }
2629
- ngOnDestroy() {
2630
- this.ngZone.runOutsideAngular(() => {
2631
- if (this.unsubscribeDocumentDragEnter) {
2632
- this.unsubscribeDocumentDragEnter();
2633
- }
2634
- if (this.unsubscribeDocumentDragOver) {
2635
- this.unsubscribeDocumentDragOver();
2636
- }
2637
- });
2638
- }
2639
- onDocumentDragEnter() {
2640
- this.addClass(this.activeClass);
2641
- this.lastDragDocument = new Date();
2642
- if (!this.hideIntervalDocument) {
2643
- this.hideIntervalDocument = setInterval(() => {
2644
- if (this.calculateTimeDiff(this.lastDragDocument) < 100) {
2645
- return;
2646
- }
2647
- this.removeClass(this.activeClass);
2648
- clearInterval(this.hideIntervalDocument);
2649
- this.hideIntervalDocument = null;
2650
- }, 100);
2651
- }
2652
- return false;
2653
- }
2654
- /**
2655
- * @hidden
2656
- */
2657
- onDocumentDragOver() {
2658
- this.lastDragDocument = new Date();
2659
- return false;
2660
- }
2661
- onDropListener(event) {
2662
- const droppedFiles = event.dataTransfer.files;
2663
- if (droppedFiles.length > 0 && !this.disabled) {
2664
- let files = getAllFileInfo(droppedFiles);
2665
- files = assignGuidToFiles(files, !this.uploadService.async.batch);
2666
- if (!this.multiple) {
2667
- files.splice(1, files.length - 1);
2668
- this.uploadService.clearFiles();
2669
- }
2670
- validateFiles(files, this.restrictions);
2671
- this.uploadService.addFiles(files);
2672
- }
2673
- return false;
2674
- }
2675
- }
2676
- 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 });
2677
- 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 });
2678
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropZoneInternalDirective, decorators: [{
2679
- type: Directive,
2680
- args: [{
2681
- selector: `
2682
- [kendoUploadInternalDropZone],
2683
- [kendoFileSelectInternalDropZone]
2593
+ <ng-container
2594
+ *ngIf="fileTemplate" [ngTemplateOutlet]="fileTemplate.templateRef" [ngTemplateOutletContext]="{
2595
+ templateRef: fileTemplate.templateRef,
2596
+ state: files[0].state,
2597
+ $implicit: files
2598
+ }"></ng-container>
2599
+ </li>
2600
+ </ng-template>
2684
2601
  `
2685
2602
  }]
2686
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: UploadService }]; }, propDecorators: { disabled: [{
2603
+ }], ctorParameters: function () { return [{ type: UploadService }, { type: NavigationService }]; }, propDecorators: { disabled: [{
2687
2604
  type: Input
2688
- }], multiple: [{
2605
+ }], fileList: [{
2689
2606
  type: Input
2690
- }], restrictions: [{
2607
+ }], fileTemplate: [{
2691
2608
  type: Input
2692
- }], initialClassName: [{
2693
- type: HostBinding,
2694
- args: ['class.k-dropzone']
2695
- }, {
2696
- type: HostBinding,
2697
- args: ['class.k-upload-dropzone']
2698
- }], onDropListener: [{
2699
- type: HostListener,
2700
- args: ['drop', ['$event']]
2609
+ }], fileInfoTemplate: [{
2610
+ type: Input
2611
+ }], fileListItems: [{
2612
+ type: ViewChildren,
2613
+ args: [FileListItemDirective]
2701
2614
  }] } });
2702
2615
 
2703
2616
  /**
@@ -2758,9 +2671,9 @@ class FileSelectDirective {
2758
2671
  });
2759
2672
  }
2760
2673
  }
2761
- 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 });
2762
- 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 });
2763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectDirective, decorators: [{
2674
+ FileSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileSelectDirective, deps: [{ token: UploadService }, { token: NavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2675
+ FileSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", 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 });
2676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileSelectDirective, decorators: [{
2764
2677
  type: Directive,
2765
2678
  args: [{
2766
2679
  selector: '[kendoFileSelect]'
@@ -2815,6 +2728,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2815
2728
  args: ["change", ["$event"]]
2816
2729
  }] } });
2817
2730
 
2731
+ /**
2732
+ * @hidden
2733
+ */
2734
+ class Messages extends ComponentMessages {
2735
+ }
2736
+ Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2737
+ Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", 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 });
2738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Messages, decorators: [{
2739
+ type: Directive
2740
+ }], propDecorators: { cancel: [{
2741
+ type: Input
2742
+ }], clearSelectedFiles: [{
2743
+ type: Input
2744
+ }], dropFilesHere: [{
2745
+ type: Input
2746
+ }], externalDropFilesHere: [{
2747
+ type: Input
2748
+ }], filesBatchStatus: [{
2749
+ type: Input
2750
+ }], filesBatchStatusFailed: [{
2751
+ type: Input
2752
+ }], filesBatchStatusUploaded: [{
2753
+ type: Input
2754
+ }], fileStatusFailed: [{
2755
+ type: Input
2756
+ }], fileStatusUploaded: [{
2757
+ type: Input
2758
+ }], headerStatusPaused: [{
2759
+ type: Input
2760
+ }], headerStatusUploaded: [{
2761
+ type: Input
2762
+ }], headerStatusUploading: [{
2763
+ type: Input
2764
+ }], invalidFileExtension: [{
2765
+ type: Input
2766
+ }], invalidMaxFileSize: [{
2767
+ type: Input
2768
+ }], invalidMinFileSize: [{
2769
+ type: Input
2770
+ }], pause: [{
2771
+ type: Input
2772
+ }], remove: [{
2773
+ type: Input
2774
+ }], resume: [{
2775
+ type: Input
2776
+ }], retry: [{
2777
+ type: Input
2778
+ }], select: [{
2779
+ type: Input
2780
+ }], uploadSelectedFiles: [{
2781
+ type: Input
2782
+ }] } });
2783
+
2784
+ /**
2785
+ * @hidden
2786
+ */
2787
+ class LocalizedMessagesDirective extends Messages {
2788
+ constructor(service) {
2789
+ super();
2790
+ this.service = service;
2791
+ }
2792
+ }
2793
+ LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
2794
+ LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: LocalizedMessagesDirective, selector: "\n [kendoUploadLocalizedMessages],\n [kendoFileSelectLocalizedMessages],\n [kendoUploadDropZoneLocalizedMessages]\n ", providers: [
2795
+ {
2796
+ provide: Messages,
2797
+ useExisting: forwardRef(() => LocalizedMessagesDirective)
2798
+ }
2799
+ ], usesInheritance: true, ngImport: i0 });
2800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
2801
+ type: Directive,
2802
+ args: [{
2803
+ providers: [
2804
+ {
2805
+ provide: Messages,
2806
+ useExisting: forwardRef(() => LocalizedMessagesDirective)
2807
+ }
2808
+ ],
2809
+ selector: `
2810
+ [kendoUploadLocalizedMessages],
2811
+ [kendoFileSelectLocalizedMessages],
2812
+ [kendoUploadDropZoneLocalizedMessages]
2813
+ `
2814
+ }]
2815
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
2816
+
2818
2817
  /**
2819
2818
  * @hidden
2820
2819
  */
@@ -3084,7 +3083,6 @@ class FileSelectComponent {
3084
3083
  const inputId = `k-fileselect-input-${id}`;
3085
3084
  return { buttonId, inputId };
3086
3085
  }
3087
- ;
3088
3086
  subscribeBlur() {
3089
3087
  if (!isDocumentAvailable()) {
3090
3088
  return;
@@ -3157,8 +3155,8 @@ class FileSelectComponent {
3157
3155
  this.uploadService.component = 'FileSelect';
3158
3156
  }
3159
3157
  }
3160
- 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 });
3161
- 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: [
3158
+ FileSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", 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: "14.0.0", version: "15.0.4", 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: [
3162
3160
  LocalizationService,
3163
3161
  NavigationService,
3164
3162
  UploadService,
@@ -3233,8 +3231,8 @@ FileSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
3233
3231
  [fileTemplate]="fileTemplate"
3234
3232
  [fileInfoTemplate]="fileInfoTemplate">
3235
3233
  </ul>
3236
- `, 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"] }] });
3237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectComponent, decorators: [{
3234
+ `, 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"] }] });
3235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileSelectComponent, decorators: [{
3238
3236
  type: Component,
3239
3237
  args: [{
3240
3238
  exportAs: 'kendoFileSelect',
@@ -3395,14 +3393,14 @@ class CustomMessagesComponent extends Messages {
3395
3393
  return true;
3396
3394
  }
3397
3395
  }
3398
- 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 });
3399
- 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: [
3396
+ CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3397
+ CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CustomMessagesComponent, selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages", providers: [
3400
3398
  {
3401
3399
  provide: Messages,
3402
3400
  useExisting: forwardRef(() => CustomMessagesComponent)
3403
3401
  }
3404
3402
  ], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
3405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
3403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CustomMessagesComponent, decorators: [{
3406
3404
  type: Component,
3407
3405
  args: [{
3408
3406
  providers: [
@@ -3416,84 +3414,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3416
3414
  }]
3417
3415
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
3418
3416
 
3419
- /**
3420
- * @hidden
3421
- */
3422
- class UploadStatusTotalComponent {
3423
- constructor(localization) {
3424
- this.localization = localization;
3425
- this.checkmarkIcon = checkIcon;
3426
- this.exceptionSVGIcon = exclamationCircleIcon;
3427
- this.uploadSVGIcon = uploadIcon;
3428
- this.pauseSVGIcon = pauseSmIcon;
3429
- }
3430
- get iconClass() {
3431
- if (!this.isUploading && !this.isFailed) {
3432
- return 'checkmark';
3433
- }
3434
- if (!this.isUploading && this.isFailed) {
3435
- return 'exception';
3436
- }
3437
- if (this.isUploading) {
3438
- return 'upload';
3439
- }
3440
- if (this.isPaused) {
3441
- return 'pause-sm';
3442
- }
3443
- }
3444
- get SVGIconClass() {
3445
- if (!this.isUploading && !this.isFailed) {
3446
- return this.checkmarkIcon;
3447
- }
3448
- if (!this.isUploading && this.isFailed) {
3449
- return this.exceptionSVGIcon;
3450
- }
3451
- if (this.isUploading) {
3452
- return this.uploadSVGIcon;
3453
- }
3454
- if (this.isPaused) {
3455
- return this.pauseSVGIcon;
3456
- }
3457
- }
3458
- ngDoCheck() {
3459
- this.isPaused = this.fileList.hasFileWithState([FileState.Paused]);
3460
- this.isFailed = this.fileList.hasFileWithState([FileState.Failed]);
3461
- this.isUploading = this.fileList.hasFileWithState([FileState.Uploading]);
3462
- if (this.isPaused && !this.isUploading) {
3463
- this.statusText = this.localization.get('headerStatusPaused');
3464
- }
3465
- else {
3466
- this.statusText = this.isUploading ? this.localization.get('headerStatusUploading')
3467
- : this.localization.get('headerStatusUploaded');
3468
- }
3469
- }
3470
- }
3471
- 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 });
3472
- 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: `
3473
- <kendo-icon-wrapper
3474
- [name]="iconClass"
3475
- [svgIcon]="SVGIconClass"
3476
- >
3477
- </kendo-icon-wrapper>
3478
- {{statusText}}
3479
- `, isInline: true, components: [{ type: i4.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
3480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadStatusTotalComponent, decorators: [{
3481
- type: Component,
3482
- args: [{
3483
- selector: 'kendo-upload-status-total',
3484
- template: `
3485
- <kendo-icon-wrapper
3486
- [name]="iconClass"
3487
- [svgIcon]="SVGIconClass"
3488
- >
3489
- </kendo-icon-wrapper>
3490
- {{statusText}}
3491
- `
3492
- }]
3493
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { fileList: [{
3494
- type: Input
3495
- }] } });
3496
-
3497
3417
  /* eslint-disable no-debugger */
3498
3418
  /**
3499
3419
  * @hidden
@@ -3546,8 +3466,8 @@ class UploadActionButtonsComponent {
3546
3466
  return this.localization.get(key);
3547
3467
  }
3548
3468
  }
3549
- 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 });
3550
- 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: `
3469
+ UploadActionButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadActionButtonsComponent, deps: [{ token: UploadService }, { token: i1$1.LocalizationService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
3470
+ UploadActionButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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: `
3551
3471
  <button #clearButton role="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-clear-selected"
3552
3472
  (click)="onClearButtonClick($event)">
3553
3473
  {{textFor('clearSelectedFiles')}}
@@ -3558,7 +3478,7 @@ UploadActionButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
3558
3478
  {{textFor('uploadSelectedFiles')}}
3559
3479
  </button>
3560
3480
  `, isInline: true });
3561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadActionButtonsComponent, decorators: [{
3481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadActionButtonsComponent, decorators: [{
3562
3482
  type: Component,
3563
3483
  args: [{
3564
3484
  selector: 'kendo-upload-action-buttons',
@@ -3601,6 +3521,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3601
3521
  args: ['class.k-actions-center']
3602
3522
  }] } });
3603
3523
 
3524
+ /**
3525
+ * @hidden
3526
+ */
3527
+ class UploadStatusTotalComponent {
3528
+ constructor(localization) {
3529
+ this.localization = localization;
3530
+ this.checkmarkIcon = checkIcon;
3531
+ this.exceptionSVGIcon = exclamationCircleIcon;
3532
+ this.uploadSVGIcon = uploadIcon;
3533
+ this.pauseSVGIcon = pauseSmIcon;
3534
+ }
3535
+ get iconClass() {
3536
+ if (!this.isUploading && !this.isFailed) {
3537
+ return 'checkmark';
3538
+ }
3539
+ if (!this.isUploading && this.isFailed) {
3540
+ return 'exception';
3541
+ }
3542
+ if (this.isUploading) {
3543
+ return 'upload';
3544
+ }
3545
+ if (this.isPaused) {
3546
+ return 'pause-sm';
3547
+ }
3548
+ }
3549
+ get SVGIconClass() {
3550
+ if (!this.isUploading && !this.isFailed) {
3551
+ return this.checkmarkIcon;
3552
+ }
3553
+ if (!this.isUploading && this.isFailed) {
3554
+ return this.exceptionSVGIcon;
3555
+ }
3556
+ if (this.isUploading) {
3557
+ return this.uploadSVGIcon;
3558
+ }
3559
+ if (this.isPaused) {
3560
+ return this.pauseSVGIcon;
3561
+ }
3562
+ }
3563
+ ngDoCheck() {
3564
+ this.isPaused = this.fileList.hasFileWithState([FileState.Paused]);
3565
+ this.isFailed = this.fileList.hasFileWithState([FileState.Failed]);
3566
+ this.isUploading = this.fileList.hasFileWithState([FileState.Uploading]);
3567
+ if (this.isPaused && !this.isUploading) {
3568
+ this.statusText = this.localization.get('headerStatusPaused');
3569
+ }
3570
+ else {
3571
+ this.statusText = this.isUploading ? this.localization.get('headerStatusUploading')
3572
+ : this.localization.get('headerStatusUploaded');
3573
+ }
3574
+ }
3575
+ }
3576
+ UploadStatusTotalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadStatusTotalComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3577
+ UploadStatusTotalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadStatusTotalComponent, selector: "kendo-upload-status-total", inputs: { fileList: "fileList" }, ngImport: i0, template: `
3578
+ <kendo-icon-wrapper
3579
+ [name]="iconClass"
3580
+ [svgIcon]="SVGIconClass"
3581
+ >
3582
+ </kendo-icon-wrapper>
3583
+ {{statusText}}
3584
+ `, isInline: true, dependencies: [{ kind: "component", type: i5.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
3585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadStatusTotalComponent, decorators: [{
3586
+ type: Component,
3587
+ args: [{
3588
+ selector: 'kendo-upload-status-total',
3589
+ template: `
3590
+ <kendo-icon-wrapper
3591
+ [name]="iconClass"
3592
+ [svgIcon]="SVGIconClass"
3593
+ >
3594
+ </kendo-icon-wrapper>
3595
+ {{statusText}}
3596
+ `
3597
+ }]
3598
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { fileList: [{
3599
+ type: Input
3600
+ }] } });
3601
+
3604
3602
  /**
3605
3603
  * @hidden
3606
3604
  */
@@ -4052,7 +4050,6 @@ class UploadComponent {
4052
4050
  const inputId = `k-upload-input-${id}`;
4053
4051
  return { buttonId, inputId };
4054
4052
  }
4055
- ;
4056
4053
  /**
4057
4054
  * Focuses the underlying input element.
4058
4055
  */
@@ -4242,8 +4239,8 @@ class UploadComponent {
4242
4239
  }));
4243
4240
  }
4244
4241
  }
4245
- 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 });
4246
- 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.0.4", 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.0.4", 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: [
4247
4244
  LocalizationService,
4248
4245
  NavigationService,
4249
4246
  UploadService,
@@ -4366,8 +4363,8 @@ UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
4366
4363
  [disabled]="disabled"
4367
4364
  [actionsLayout]="actionsLayout">
4368
4365
  </kendo-upload-action-buttons>
4369
- `, 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"] }] });
4370
- 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.0.4", ngImport: i0, type: UploadComponent, decorators: [{
4371
4368
  type: Component,
4372
4369
  args: [{
4373
4370
  exportAs: 'kendoUpload',
@@ -4654,11 +4651,11 @@ class UploadDropZoneDirective {
4654
4651
  return this.dropZoneService.getComponents(this.zoneId);
4655
4652
  }
4656
4653
  }
4657
- UploadDropZoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadDropZoneDirective, deps: [{ token: DropZoneService }], target: i0.ɵɵFactoryTarget.Directive });
4658
- 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.0.4", ngImport: i0, type: UploadDropZoneDirective, deps: [{ token: DropZoneService }], target: i0.ɵɵFactoryTarget.Directive });
4655
+ UploadDropZoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: UploadDropZoneDirective, selector: "[kendoUploadDropZone], [kendoFileSelectDropZone]", inputs: { zoneId: ["kendoUploadDropZone", "zoneId"] }, host: { listeners: { "dragenter": "onElementDragEnter()", "dragover": "onElementDragOver()", "drop": "onDropListener($event)" } }, providers: [
4659
4656
  DropZoneService
4660
4657
  ], ngImport: i0 });
4661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadDropZoneDirective, decorators: [{
4658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDropZoneDirective, decorators: [{
4662
4659
  type: Directive,
4663
4660
  args: [{
4664
4661
  providers: [
@@ -4732,8 +4729,8 @@ class UploadDropZoneComponent extends DropZoneBase {
4732
4729
  }
4733
4730
  }
4734
4731
  }
4735
- 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 });
4736
- 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.0.4", 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.0.4", 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: [
4737
4734
  LocalizationService,
4738
4735
  {
4739
4736
  provide: L10N_PREFIX,
@@ -4757,8 +4754,8 @@ UploadDropZoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
4757
4754
  <ng-content></ng-content>
4758
4755
  </span>
4759
4756
  </div>
4760
- `, 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"] }] });
4761
- 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.0.4", ngImport: i0, type: UploadDropZoneComponent, decorators: [{
4762
4759
  type: Component,
4763
4760
  args: [{
4764
4761
  exportAs: 'kendoUploadDropZone',
@@ -4834,8 +4831,8 @@ const PUBLIC_DIRECTIVES = [
4834
4831
  */
4835
4832
  class SharedModule {
4836
4833
  }
4837
- SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4838
- 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.0.4", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4835
+ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: SharedModule, declarations: [FileTemplateDirective,
4839
4836
  FileInfoTemplateDirective,
4840
4837
  CustomMessagesComponent,
4841
4838
  UploadDropZoneDirective,
@@ -4859,9 +4856,9 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
4859
4856
  FileSelectDirective,
4860
4857
  LocalizedMessagesDirective, CommonModule,
4861
4858
  ButtonsModule] });
4862
- 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.0.4", ngImport: i0, type: SharedModule, imports: [CommonModule, ButtonsModule, ProgressBarModule, IconsModule, CommonModule,
4863
4860
  ButtonsModule] });
4864
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SharedModule, decorators: [{
4861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SharedModule, decorators: [{
4865
4862
  type: NgModule,
4866
4863
  args: [{
4867
4864
  declarations: [
@@ -4886,10 +4883,10 @@ const FILESELECT_DECLARATIONS = [
4886
4883
  */
4887
4884
  class FileSelectModule {
4888
4885
  }
4889
- FileSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4890
- 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] });
4891
- FileSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FileSelectModule, imports: [[SharedModule, IconsModule]] });
4892
- 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.0.4", ngImport: i0, type: FileSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4887
+ FileSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", 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.0.4", ngImport: i0, type: FileSelectModule, imports: [SharedModule, IconsModule] });
4889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FileSelectModule, decorators: [{
4893
4890
  type: NgModule,
4894
4891
  args: [{
4895
4892
  declarations: [FILESELECT_DECLARATIONS],
@@ -4911,14 +4908,14 @@ const UPLOAD_DECLARATIONS = [
4911
4908
  */
4912
4909
  class UploadModule {
4913
4910
  }
4914
- UploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4915
- 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.0.4", ngImport: i0, type: UploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4912
+ UploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: UploadModule, declarations: [UploadComponent,
4916
4913
  UploadActionButtonsComponent,
4917
4914
  UploadStatusTotalComponent], imports: [SharedModule, IconsModule], exports: [FileTemplateDirective, FileInfoTemplateDirective, CustomMessagesComponent, UploadDropZoneDirective, UploadDropZoneComponent, UploadComponent,
4918
4915
  UploadActionButtonsComponent,
4919
4916
  UploadStatusTotalComponent] });
4920
- UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadModule, imports: [[SharedModule, IconsModule]] });
4921
- 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.0.4", ngImport: i0, type: UploadModule, imports: [SharedModule, IconsModule] });
4918
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadModule, decorators: [{
4922
4919
  type: NgModule,
4923
4920
  args: [{
4924
4921
  declarations: [UPLOAD_DECLARATIONS],
@@ -4957,12 +4954,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4957
4954
  */
4958
4955
  class UploadsModule {
4959
4956
  }
4960
- UploadsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4961
- 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.0.4", ngImport: i0, type: UploadsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4958
+ UploadsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: UploadsModule, exports: [FileSelectModule,
4962
4959
  UploadModule] });
4963
- 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.0.4", ngImport: i0, type: UploadsModule, imports: [FileSelectModule,
4964
4961
  UploadModule] });
4965
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UploadsModule, decorators: [{
4962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadsModule, decorators: [{
4966
4963
  type: NgModule,
4967
4964
  args: [{
4968
4965
  exports: [