@fundamental-ngx/platform 0.46.2-rc.2 → 0.46.2-rc.21

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 (105) hide show
  1. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
  2. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +2 -2
  3. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
  4. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
  5. package/esm2022/approval-flow/approval-flow.component.mjs +3 -3
  6. package/esm2022/dynamic-page/dynamic-page.component.mjs +2 -2
  7. package/esm2022/feed-input/feed-input.component.mjs +2 -2
  8. package/esm2022/form/combobox/combobox/combobox.component.mjs +3 -3
  9. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +3 -3
  10. package/esm2022/form/combobox/combobox.module.mjs +20 -4
  11. package/esm2022/form/combobox/commons/base-combobox.mjs +36 -28
  12. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +148 -0
  13. package/esm2022/form/combobox/index.mjs +4 -3
  14. package/esm2022/form/form-group/form-field/form-field.component.mjs +2 -2
  15. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +2 -2
  16. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +2 -2
  17. package/esm2022/form/form-group/form-group.component.mjs +3 -3
  18. package/esm2022/form/index.mjs +37 -36
  19. package/esm2022/form/input-group/input-group.component.mjs +2 -2
  20. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +4 -2
  21. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +7 -5
  22. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +3 -3
  23. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
  24. package/esm2022/form/multi-input/multi-input.component.mjs +6 -4
  25. package/esm2022/form/select/select/select.component.mjs +3 -3
  26. package/esm2022/form/step-input/number/number-step-input.component.mjs +2 -2
  27. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +2 -2
  28. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +2 -2
  29. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +2 -2
  30. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
  31. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +2 -2
  32. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +1 -1
  33. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +2 -2
  34. package/esm2022/link/link.component.mjs +3 -3
  35. package/esm2022/list/list.component.mjs +2 -2
  36. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +2 -2
  37. package/esm2022/list/object-list-item/object-list-item.component.mjs +2 -2
  38. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +2 -2
  39. package/esm2022/menu/menu-item.component.mjs +2 -2
  40. package/esm2022/menu/menu.component.mjs +2 -2
  41. package/esm2022/message-popover/components/message-view/message-view.component.mjs +3 -3
  42. package/esm2022/message-popover/message-popover.component.mjs +2 -2
  43. package/esm2022/object-attribute/object-attribute.component.mjs +2 -2
  44. package/esm2022/page-footer/page-footer.component.mjs +2 -2
  45. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +3 -3
  46. package/esm2022/search-field/search-field.component.mjs +3 -3
  47. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +2 -2
  48. package/esm2022/shared/domain/data-source.mjs +3 -2
  49. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +2 -2
  50. package/esm2022/split-menu-button/split-menu-button.component.mjs +2 -2
  51. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +2 -2
  52. package/esm2022/table/table.component.mjs +13 -12
  53. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +2 -2
  54. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +2 -2
  55. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +2 -2
  56. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +3 -3
  57. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
  58. package/esm2022/variant-management/variant-management.component.mjs +2 -2
  59. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +3 -3
  60. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +6 -6
  61. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  62. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -2
  63. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
  64. package/fesm2022/fundamental-ngx-platform-form.mjs +484 -311
  65. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +8 -8
  67. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  69. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-platform-list.mjs +7 -7
  71. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  72. package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -4
  73. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +4 -4
  74. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs +2 -2
  76. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
  77. package/fesm2022/fundamental-ngx-platform-search-field.mjs +4 -4
  78. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +1 -1
  80. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-platform-shared.mjs +2 -1
  82. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  84. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
  86. package/fesm2022/fundamental-ngx-platform-table.mjs +12 -11
  87. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  88. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +2 -2
  89. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  90. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +3 -3
  91. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  92. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +3 -3
  93. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  94. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +2 -2
  95. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  96. package/form/combobox/combobox.module.d.ts +2 -1
  97. package/form/combobox/commons/base-combobox.d.ts +6 -4
  98. package/form/combobox/directives/combobox-item.directive.d.ts +86 -0
  99. package/form/combobox/index.d.ts +3 -2
  100. package/form/index.d.ts +36 -35
  101. package/fundamental-ngx-platform-v0.46.2-rc.21.tgz +0 -0
  102. package/package.json +4 -4
  103. package/schematics/ng-add/index.js +1 -1
  104. package/table/table.component.d.ts +4 -3
  105. package/fundamental-ngx-platform-v0.46.2-rc.2.tgz +0 -0
@@ -189,7 +189,7 @@ class MoveToComponent {
189
189
  return foundObj;
190
190
  }
191
191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: MoveToComponent, deps: [{ token: i1.DialogRef }, { token: i1.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: MoveToComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 class=\"fd-title--bold\" *ngIf=\"!_currentFolder\" fd-title>\n {{ 'platformUploadCollection.moveToTitle' | fdTranslate }}\n </h1>\n <ng-container *ngIf=\"_currentFolder\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n (click)=\"_goToParentFolder()\"\n ></button>\n <h1 fd-title>\n <span>{{ 'platformUploadCollection.moveToTitleFolder' | fdTranslate }}</span>\n {{ _currentFolder.name }}\n </h1>\n </ng-container>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n [label]=\"'platformUploadCollection.moveToNewFolderBtnLabel' | fdTranslate\"\n (click)=\"_newFolder()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body class=\"fd-dialog__body--no-horizontal-padding\">\n <ul fd-list>\n <li *ngIf=\"!_currentFolder\" fd-list-item class=\"fd-list__item--title-background\">\n <span fd-list-title>{{ 'platformUploadCollection.moveToAllFilesSubHeaderLabel' | fdTranslate }}</span>\n </li>\n <li\n fd-list-item\n *ngFor=\"let folder of _foldersList\"\n [selected]=\"selectedFolder?.documentId === folder.documentId\"\n >\n <a fd-list-link (click)=\"_hasFolders(folder.files) ? _openFolder(folder) : _selectFolder(folder)\">\n <fd-icon class=\"fdp-upload-collection__fd-icon\" glyph=\"folder-blank\"></fd-icon>\n <span fd-list-title>{{ folder.name }}</span>\n <i *ngIf=\"_hasFolders(folder.files)\" fd-list-icon glyph=\"slim-arrow-right\"></i>\n </a>\n </li>\n </ul>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n type=\"submit\"\n [disabled]=\"\n !(\n (selectedFolder && originalFolder?.documentId !== selectedFolder.documentId) ||\n (!selectedFolder && originalFolder?.documentId !== _currentFolder?.documentId)\n )\n \"\n (click)=\"_confirm()\"\n >\n {{ 'platformUploadCollection.moveToConfirmBtn' | fdTranslate }}\n </fd-button-bar>\n <fd-button-bar (click)=\"_close()\">\n {{ 'platformUploadCollection.moveToCloseBtn' | fdTranslate }}\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fd-list__item--title-background{background-color:var(--sapList_HeaderBackground)}.fd-dialog__body--no-horizontal-padding{padding-left:0!important;padding-right:0!important}.fd-title--bold{font-weight:700}\n"], dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }] }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: MoveToComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 class=\"fd-title--bold\" *ngIf=\"!_currentFolder\" fd-title>\n {{ 'platformUploadCollection.moveToTitle' | fdTranslate }}\n </h1>\n <ng-container *ngIf=\"_currentFolder\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n (click)=\"_goToParentFolder()\"\n ></button>\n <h1 fd-title>\n <span>{{ 'platformUploadCollection.moveToTitleFolder' | fdTranslate }}</span>\n {{ _currentFolder.name }}\n </h1>\n </ng-container>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n [label]=\"'platformUploadCollection.moveToNewFolderBtnLabel' | fdTranslate\"\n (click)=\"_newFolder()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body class=\"fd-dialog__body--no-horizontal-padding\">\n <ul fd-list>\n <li *ngIf=\"!_currentFolder\" fd-list-item class=\"fd-list__item--title-background\">\n <span fd-list-title>{{ 'platformUploadCollection.moveToAllFilesSubHeaderLabel' | fdTranslate }}</span>\n </li>\n <li\n fd-list-item\n *ngFor=\"let folder of _foldersList\"\n [selected]=\"selectedFolder?.documentId === folder.documentId\"\n >\n <a fd-list-link (click)=\"_hasFolders(folder.files) ? _openFolder(folder) : _selectFolder(folder)\">\n <fd-icon class=\"fdp-upload-collection__fd-icon\" glyph=\"folder-blank\"></fd-icon>\n <span fd-list-title>{{ folder.name }}</span>\n <i *ngIf=\"_hasFolders(folder.files)\" fd-list-icon glyph=\"slim-arrow-right\"></i>\n </a>\n </li>\n </ul>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n type=\"submit\"\n [disabled]=\"\n !(\n (selectedFolder && originalFolder?.documentId !== selectedFolder.documentId) ||\n (!selectedFolder && originalFolder?.documentId !== _currentFolder?.documentId)\n )\n \"\n (click)=\"_confirm()\"\n >\n {{ 'platformUploadCollection.moveToConfirmBtn' | fdTranslate }}\n </fd-button-bar>\n <fd-button-bar (click)=\"_close()\">\n {{ 'platformUploadCollection.moveToCloseBtn' | fdTranslate }}\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fd-list__item--title-background{background-color:var(--sapList_HeaderBackground)}.fd-dialog__body--no-horizontal-padding{padding-left:0!important;padding-right:0!important}.fd-title--bold{font-weight:700}\n"], dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }] }); }
193
193
  }
194
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: MoveToComponent, decorators: [{
195
195
  type: Component,
@@ -1296,7 +1296,7 @@ class UploadCollectionComponent {
1296
1296
  }
1297
1297
  }
1298
1298
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: UploadCollectionComponent, deps: [{ token: i1.DialogService }, { token: FilesValidatorService }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1299
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: UploadCollectionComponent, isStandalone: true, selector: "fdp-upload-collection", inputs: { id: "id", itemsPerPage: "itemsPerPage", dataSource: "dataSource", fileTypes: "fileTypes", maxFileSize: "maxFileSize", maxFilenameLength: "maxFilenameLength", mimeTypes: "mimeTypes", disabled: "disabled", readonly: "readonly", hierarchy: "hierarchy", enablePagination: "enablePagination", terminationEnabled: "terminationEnabled", multiple: "multiple", showSearch: "showSearch", sameFileNameAllowed: "sameFileNameAllowed" }, outputs: { typeMismatch: "typeMismatch", filenameLengthExceed: "filenameLengthExceed", fileSizeExceed: "fileSizeExceed" }, viewQueries: [{ propertyName: "_uploadFilesRef", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "_updateVersionRef", first: true, predicate: ["updateVersionInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [id]=\"id\" class=\"fdp-upload-collection\">\n <!-- Message strip -->\n <fd-message-strip *ngIf=\"_message\" [type]=\"_message.messageStripType\" (onDismiss)=\"_messageStripDismiss()\">\n <ng-container\n [ngTemplateOutlet]=\"message\"\n [ngTemplateOutletContext]=\"{\n messageType: _message.messageType,\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n </fd-message-strip>\n\n <!-- Toolbar -->\n <fd-toolbar class=\"fdp-upload-collection__toolbar\">\n <div [style.flex]=\"'1 auto'\">\n <fd-breadcrumb [id]=\"id + '-breadcrumb'\">\n <fd-breadcrumb-item>\n <ng-template #multipleBreadcrumbs>\n <a href=\"#\" fd-link (click)=\"_breadcrumbGoTo($event)\">\n {{ 'platformUploadCollection.breadcrumbLabelAllFiles' | fdTranslate }}\n </a>\n </ng-template>\n <ng-template #singleBreadcrumb>\n <span>\n {{\n 'platformUploadCollection.breadcrumbLabelAllFilesWithTotal'\n | fdTranslate : { total: _totalItems }\n }}\n </span>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"_breadcrumbList.length > 0 ? multipleBreadcrumbs : singleBreadcrumb\"\n ></ng-container>\n </fd-breadcrumb-item>\n <fd-breadcrumb-item *ngFor=\"let item of _breadcrumbList; let i = index\">\n <ng-template #clickableBreadcrumb>\n <a href=\"#\" fd-link (click)=\"_breadcrumbGoTo($event, i)\">{{ item.folderName }}</a>\n </ng-template>\n <ng-template #textBreadcrumb>\n <span>{{ item.folderName }} ({{ _totalItems }})</span>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"item.clikable ? clickableBreadcrumb : textBreadcrumb\"\n ></ng-container>\n </fd-breadcrumb-item>\n </fd-breadcrumb>\n </div>\n\n <fd-toolbar-spacer [style.max-width.rem]=\"3\"></fd-toolbar-spacer>\n <ng-container *ngIf=\"readonly || selectedItems.length === 0\">\n <fd-input-group\n *ngIf=\"showSearch\"\n [(ngModel)]=\"_searchText\"\n (ngModelChange)=\"_searchInputChanged()\"\n glyph=\"search\"\n [ariaLabelledBy]=\"id + '-breadcrumb'\"\n [placeholder]=\"'platformUploadCollection.searchPlaceholder' | fdTranslate\"\n ></fd-input-group>\n\n <ng-container *ngIf=\"!readonly\">\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_openUploadFiles()\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n [label]=\"'platformUploadCollection.addBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.addBtnLabel' | fdTranslate\"\n ></button>\n\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_openNewFolderDialog()\"\n *ngIf=\"hierarchy\"\n [disabled]=\"disabled\"\n fdType=\"transparent\"\n [label]=\"'platformUploadCollection.newFolderBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.newFolderBtnLabel' | fdTranslate\"\n ></button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!readonly && selectedItems.length > 0\">\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_moveToClicked(true)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n [label]=\"'platformUploadCollection.moveToBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.moveToBtnLabel' | fdTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_downloadClicked(true)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n *ngIf=\"_showIfSelectedOnlyFiles()\"\n [label]=\"'platformUploadCollection.downloadBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.downloadBtnLabel' | fdTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_remove(true)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n [label]=\"'platformUploadCollection.removeBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.removeBtnLabel' | fdTranslate\"\n ></button>\n </ng-container>\n </fd-toolbar>\n\n <div class=\"fdp-upload-collection__table--wrapper\">\n <div\n class=\"fdp-upload-collection__table\"\n fdpUploadCollectionDragnDrop\n [fileTypes]=\"fileTypes\"\n [maxFilenameLength]=\"maxFilenameLength\"\n [maxFileSize]=\"maxFileSize\"\n [mimeTypes]=\"mimeTypes\"\n [dragndrop]=\"!readonly\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"_handleDrop($event)\"\n (cancel)=\"_dragDropCancel()\"\n (onDropzone)=\"_onDropzone($event)\"\n >\n <!-- Table -->\n <fdp-table\n *ngIf=\"_visibleList$.value.length > 0\"\n [dataSource]=\"_visibleList$\"\n [loading]=\"dataSource.isDataLoading\"\n selectionMode=\"multiple\"\n emptyTableMessage=\"\"\n [noHorizontalBorders]=\"true\"\n [trackBy]=\"_trackByDocumentId\"\n (rowSelectionChange)=\"_onRowSelectionChange($event)\"\n >\n <fdp-column name=\"name\" label=\"Name\" width=\"8rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">\n <div class=\"fdp-upload-collection__vertical-align-center\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n *ngIf=\"item.type === 'folder'\"\n glyph=\"folder-blank\"\n [title]=\"'platformUploadCollection.folderIconTitle' | fdTranslate\"\n ></fd-icon>\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n *ngIf=\"item.type === 'file'\"\n [glyph]=\"_getIconByType(item)\"\n [title]=\"'platformUploadCollection.fileIconTitle' | fdTranslate\"\n ></fd-icon>\n\n <ng-container *ngIf=\"disabled || readonly || !_isSelectedItem(item); else editMode\">\n <span\n [class.fdp-upload-collection__cursor]=\"item.type === 'folder'\"\n (click)=\"_openFolder(item)\"\n >{{ item.name }}</span\n >\n </ng-container>\n </div>\n\n <ng-template #editMode>\n <div fd-form-item>\n <fd-form-input-message-group [triggers]=\"[]\" [isOpen]=\"!!item.sameFilenameState\">\n <div class=\"fdp-upload-collection__vertical-align-center\">\n <input\n fd-form-control\n [value]=\"_getItemName(item)\"\n (blur)=\"_fileNameChange($event, item)\"\n (input)=\"_checkName($event, item)\"\n type=\"text\"\n [placeholder]=\"\n 'platformUploadCollection.editFileNameInputPlaceholder' | fdTranslate\n \"\n [state]=\"item.sameFilenameState\"\n />\n <span class=\"fdp-upload-collection__item_extension\">{{\n _getItemExtension(item)\n }}</span>\n </div>\n\n <fd-form-message [type]=\"item.sameFilenameState\">\n {{\n (item.type === 'file'\n ? 'platformUploadCollection.editFileNameFileAlreadyExistsError'\n : 'platformUploadCollection.editFileNameFolderAlreadyExistsError'\n ) | fdTranslate\n }}\n </fd-form-message>\n </fd-form-input-message-group>\n </div>\n </ng-template>\n </fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"uploadedBy\" label=\"Uploaded by\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.uploadedBy.name }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"uploadedOn\" label=\"Uploaded on\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.uploadedOn | date : 'shortDate' }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"size\" label=\"File size\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.fileSize | convertBytes }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"version\" label=\"Version\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.version || '' }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"status\" label=\"Status\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">\n <fd-busy-indicator\n *ngIf=\"item.status === _uploadCollectionItemStatus.LOADING\"\n [loading]=\"true\"\n ariaLabel=\"Status: Loading\"\n ariaLive=\"polite\"\n size=\"s\"\n ></fd-busy-indicator>\n <span\n *ngIf=\"item.status === _uploadCollectionItemStatus.SUCCESSFUL\"\n fd-object-status\n status=\"positive\"\n >\n {{ 'platformUploadCollection.itemStatusSuccessful' | fdTranslate }}\n </span>\n <span\n *ngIf=\"item.status === _uploadCollectionItemStatus.UNSUCCESSFUL\"\n fd-object-status\n status=\"negative\"\n >\n {{ 'platformUploadCollection.itemStatusUnsuccessful' | fdTranslate }}\n </span>\n </fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"action\" *ngIf=\"!readonly\" width=\"5rem\" align=\"end\">\n <fdp-table-header *fdpHeaderCellDef>Action</fdp-table-header>\n <fdp-table-cell *fdpCellDef=\"let item\">\n <div class=\"fdp-upload-collection__actions\">\n <div class=\"fdp-upload-collection__actions--status\">\n <button\n fd-button\n [label]=\"'platformUploadCollection.uploadNewFileAfterFailAction' | fdTranslate\"\n [title]=\"'platformUploadCollection.uploadNewFileAfterFailAction' | fdTranslate\"\n (click)=\"_runUploadNewFileAfterFail(item)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n *ngIf=\"item.status === _uploadCollectionItemStatus.UNSUCCESSFUL\"\n ></button>\n\n <button\n fd-button\n [label]=\"'platformUploadCollection.cancelUploadNewFileAction' | fdTranslate\"\n [title]=\"'platformUploadCollection.cancelUploadNewFileAction' | fdTranslate\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n (click)=\"_cancelUploadNewFile(item)\"\n *ngIf=\"terminationEnabled && item.status === _uploadCollectionItemStatus.LOADING\"\n ></button>\n </div>\n\n <fdp-menu-button\n icon=\"overflow\"\n [disabled]=\"disabled\"\n type=\"transparent\"\n [title]=\"'platformUploadCollection.itemMenuBtnTitle' | fdTranslate\"\n [fdpMenuTriggerFor]=\"menuActions\"\n (buttonClicked)=\"_actionButton(item)\"\n >\n </fdp-menu-button>\n </div>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n\n <!-- Dragdrop area -->\n <div\n class=\"fdp-upload-collection__dragdrop-area\"\n *ngIf=\"_showDragDropArea\"\n [class.active]=\"_onDragDropArea\"\n >\n <fd-icon class=\"fdp-upload-collection__dragdrop-area--icon\" glyph=\"upload-to-cloud\"></fd-icon>\n <p class=\"fdp-upload-collection__dragdrop-area--text\">\n {{ 'platformUploadCollection.dragDropAreaText' | fdTranslate }}\n </p>\n </div>\n\n <!-- No data -->\n <div\n class=\"fdp-upload-collection__no-data\"\n *ngIf=\"_visibleList$.value.length === 0\"\n [class.invisible]=\"_showDragDropArea\"\n >\n <fd-icon glyph=\"document\"></fd-icon>\n <h3>{{ 'platformUploadCollection.noDataText' | fdTranslate }}</h3>\n <p>{{ 'platformUploadCollection.noDataDescription' | fdTranslate }}</p>\n </div>\n </div>\n\n <!-- Table footer -->\n <div class=\"fdp-upload-collection__table-footer\" *ngIf=\"enablePagination && _totalItems\">\n <!-- Pagination -->\n <div class=\"fdp-upload-collection__pagination\">\n <span [id]=\"id + '-pagination'\" class=\"fdp-upload-collection__pagination--total\">\n {{\n 'platformUploadCollection.paginationTotal'\n | fdTranslate : { from: _countShowedItems, to: _countNotShowedItems, total: _totalItems }\n }}\n </span>\n <fd-pagination\n [totalItems]=\"_totalItems\"\n [displayTotalItems]=\"false\"\n (pageChangeStart)=\"_pageChanged($event)\"\n [itemsPerPage]=\"_itemsPerPage\"\n [currentPage]=\"_currentPage\"\n [attr.aria-labelledby]=\"id + '-pagination'\"\n ></fd-pagination>\n </div>\n\n <!-- Results per page -->\n <div class=\"fdp-upload-collection__results\">\n <span class=\"fdp-upload-collection__results--title\">\n <span [id]=\"id + '-results'\">\n {{ 'platformUploadCollection.resultsPerPage' | fdTranslate }}\n </span>\n <span *ngIf=\"_itemsPerPageOptions.length === 0\">{{ _itemsPerPage }}</span>\n </span>\n <fdp-menu-button\n *ngIf=\"_itemsPerPageOptions.length > 0\"\n type=\"ghost\"\n [ariaLabelledBy]=\"id + '-results'\"\n [fdpMenuTriggerFor]=\"itemsPerPageMenu\"\n [label]=\"_itemsPerPage + ''\"\n >\n </fdp-menu-button>\n </div>\n </div>\n </div>\n</div>\n\n<fdp-menu #itemsPerPageMenu xPosition=\"before\">\n <fdp-menu-item\n *ngFor=\"let value of _itemsPerPageOptions\"\n (itemSelect)=\"_itemsPerPageChange(value.label)\"\n [attr.title]=\"'Results per page: ' + value.label\"\n >\n <span>{{ value.label }}</span>\n </fdp-menu-item>\n</fdp-menu>\n\n<fdp-menu #menuActions xPosition=\"before\">\n <fdp-menu-item (itemSelect)=\"_moveToClicked()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"folder-blank\"\n [title]=\"'platformUploadCollection.moveToBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.moveToBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n <ng-container *ngIf=\"_activeItem?.type === 'file'\">\n <fdp-menu-item (itemSelect)=\"_downloadClicked()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"download\"\n [title]=\"'platformUploadCollection.downloadBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.downloadBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n <fdp-menu-item (itemSelect)=\"_openUpdateFileVersion()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"drill-up\"\n [title]=\"'platformUploadCollection.updateVersionBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.updateVersionBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n </ng-container>\n <fdp-menu-item (itemSelect)=\"_remove()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"delete\"\n [title]=\"'platformUploadCollection.removeBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.removeBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n</fdp-menu>\n\n<input\n #fileInput\n class=\"fdp-upload-collection__hidden\"\n type=\"file\"\n (fileSelected)=\"_selectHandler($event)\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n fdFileSelect\n/>\n\n<input\n #updateVersionInput\n class=\"fdp-upload-collection__hidden\"\n type=\"file\"\n (fileSelected)=\"_selectHandler($event)\"\n [disabled]=\"disabled\"\n [multiple]=\"false\"\n fdFileSelect\n/>\n\n<ng-template\n let-messageType=\"messageType\"\n let-payload=\"payload\"\n let-messageStripType=\"messageStripType\"\n let-count=\"count\"\n #message\n>\n <ng-container *ngIf=\"_message\" [ngSwitch]=\"messageType\">\n <ng-container\n *ngSwitchCase=\"_messageType.CREATE\"\n [ngTemplateOutlet]=\"messageNewFolder\"\n [ngTemplateOutletContext]=\"{\n messageStripType: _message.messageStripType,\n payload: _message.payload\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.UPDATE_VERSION\"\n [ngTemplateOutlet]=\"messageUpdateVersion\"\n [ngTemplateOutletContext]=\"{\n messageStripType: _message.messageStripType,\n payload: _message.payload\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.FILE_RENAME\"\n [ngTemplateOutlet]=\"messageFileRename\"\n [ngTemplateOutletContext]=\"{\n messageStripType: _message.messageStripType,\n payload: _message.payload\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.REMOVE\"\n [ngTemplateOutlet]=\"messageRemove\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.MOVE\"\n [ngTemplateOutlet]=\"messageMove\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.TYPE_MISMATCH\"\n [ngTemplateOutlet]=\"messageTypeMismatch\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.FILE_SIZE\"\n [ngTemplateOutlet]=\"messageFileSize\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.FILE_NAME_LENGTH\"\n [ngTemplateOutlet]=\"messageFilenameLength\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #messageNewFolder let-payload=\"payload\" let-messageStripType=\"messageStripType\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersCreated\">\n {{ 'platformUploadCollection.messageCreateFailed' | fdTranslate : { folderName: payload.folder.name } }}\n </ng-container>\n <ng-template #foldersCreated>\n {{ 'platformUploadCollection.messageCreateSuccess' | fdTranslate : { folderName: payload.folder.name } }}\n </ng-template>\n</ng-template>\n\n<ng-template #messageUpdateVersion let-payload=\"payload\" let-messageStripType=\"messageStripType\">\n <ng-container *ngIf=\"messageStripType === 'error'; else versionUpdated\">\n {{ 'platformUploadCollection.messageUpdateVersionFailed' | fdTranslate : { folderName: payload.item.name } }}\n </ng-container>\n <ng-template #versionUpdated>\n {{ 'platformUploadCollection.messageUpdateVersionSuccess' | fdTranslate : { folderName: payload.item.name } }}\n </ng-template>\n</ng-template>\n\n<ng-template #messageFileRename let-payload=\"payload\" let-messageStripType=\"messageStripType\">\n <ng-container *ngIf=\"messageStripType === 'error'; else fileRenamed\">\n {{\n 'platformUploadCollection.messageFileRenameFailed'\n | fdTranslate : { from: payload.item.name, to: payload.fileName }\n }}\n </ng-container>\n <ng-template #fileRenamed>\n {{\n 'platformUploadCollection.messageFileRenameSuccess'\n | fdTranslate : { from: payload.item.name, to: payload.fileName }\n }}\n </ng-template>\n</ng-template>\n\n<ng-template #messageRemove let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersAndFilesRemoved\">\n {{\n 'platformUploadCollection.messageRemoveFoldersAndFilesFailed'\n | fdTranslate : { foldersCount: count.folder, filesCount: count.file }\n }}\n </ng-container>\n <ng-template #foldersAndFilesRemoved>\n {{\n 'platformUploadCollection.messageRemoveFoldersAndFilesSuccess'\n | fdTranslate : { foldersCount: count.folder, filesCount: count.file }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && !count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersRemoved\">\n {{ 'platformUploadCollection.messageRemoveFoldersFailed' | fdTranslate : { foldersCount: count.folder } }}\n </ng-container>\n <ng-template #foldersRemoved>\n {{ 'platformUploadCollection.messageRemoveFoldersSuccess' | fdTranslate : { foldersCount: count.folder } }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.file && !count.folder\">\n <ng-container *ngIf=\"messageStripType === 'error'; else filesRemoved\">\n {{ 'platformUploadCollection.messageRemoveFilesFailed' | fdTranslate : { filesCount: count.file } }}\n </ng-container>\n <ng-template #filesRemoved>\n {{ 'platformUploadCollection.messageRemoveFilesSuccess' | fdTranslate : { filesCount: count.file } }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n <ng-container *ngIf=\"messageStripType === 'error'; else oneItemRemoved\">\n {{\n 'platformUploadCollection.messageRemoveFileOrFolderFailed'\n | fdTranslate : { name: payload.items[0].name }\n }}\n </ng-container>\n <ng-template #oneItemRemoved>\n {{\n 'platformUploadCollection.messageRemoveFileOrFolderSuccess'\n | fdTranslate : { name: payload.items[0].name }\n }}\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #messageMove let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else filesAndFoldersMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersAndFilesFailed'\n : 'platformUploadCollection.messageMoveRootFoldersAndFilesFailed'\n ) | fdTranslate : { foldersCount: count.folder, filesCount: count.file, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #filesAndFoldersMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersAndFilesSuccess'\n : 'platformUploadCollection.messageMoveRootFoldersAndFilesSuccess'\n ) | fdTranslate : { foldersCount: count.folder, filesCount: count.file, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && !count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersFailed'\n : 'platformUploadCollection.messageMoveRootFoldersFailed'\n ) | fdTranslate : { foldersCount: count.folder, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #foldersMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersSuccess'\n : 'platformUploadCollection.messageMoveRootFoldersSuccess'\n ) | fdTranslate : { foldersCount: count.folder, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.file && !count.folder\">\n <ng-container *ngIf=\"messageStripType === 'error'; else filesMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFilesFailed'\n : 'platformUploadCollection.messageMoveRootFilesFailed'\n ) | fdTranslate : { filesCount: count.file, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #filesMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFilesSuccess'\n : 'platformUploadCollection.messageMoveRootFilesSuccess'\n ) | fdTranslate : { filesCount: count.file, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n <ng-container *ngIf=\"messageStripType === 'error'; else oneItemMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFileOrFolderFailed'\n : 'platformUploadCollection.messageMoveRootFileOrFolderFailed'\n ) | fdTranslate : { name: payload.items[0].name, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #oneItemMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFileOrFolderSuccess'\n : 'platformUploadCollection.messageMoveRootFileOrFolderSuccess'\n ) | fdTranslate : { name: payload.items[0].name, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #messageTypeMismatch let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1\">\n {{\n 'platformUploadCollection.messageFileTypeMismatchPlural'\n | fdTranslate : { filesCount: payload.items.length, allowedTypes: _getAllowedTypes() }\n }}\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n {{\n 'platformUploadCollection.messageFileTypeMismatchSingular'\n | fdTranslate : { fileName: payload.items[0].name, allowedTypes: _getAllowedTypes() }\n }}\n </ng-container>\n</ng-template>\n\n<ng-template #messageFileSize let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1\">\n {{\n 'platformUploadCollection.messageFileSizeExceededPlural'\n | fdTranslate : { filesCount: payload.items.length, maxFileSize: maxFileSize || 0 }\n }}\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n {{\n 'platformUploadCollection.messageFileSizeExceededSingular'\n | fdTranslate : { fileName: payload.items[0].name, maxFileSize: maxFileSize || 0 }\n }}\n </ng-container>\n</ng-template>\n\n<ng-template #messageFilenameLength let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1\">\n {{\n 'platformUploadCollection.messageFileNameLengthExceededPlural'\n | fdTranslate : { filesCount: payload.items.length, maxFilenameLength: maxFilenameLength || 0 }\n }}\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n {{\n 'platformUploadCollection.messageFileNameLengthExceededSingular'\n | fdTranslate : { fileName: payload.items[0].name, maxFilenameLength: maxFilenameLength || 0 }\n }}\n </ng-container>\n</ng-template>\n", styles: [".fdp-upload-collection__fd-icon{color:#0854a0!important;color:var(--sapHighlightColor)!important;margin-right:.625rem!important;font-size:1rem!important}.fdp-upload-collection fd-message-strip{margin-bottom:.625rem}.fdp-upload-collection__toolbar .fd-toolbar{margin-bottom:.625rem;border:0}.fdp-upload-collection__toolbar .fd-toolbar fd-input-group .sap-icon--search{color:#0854a0;color:var(--sapHighlightColor)}.fdp-upload-collection__no-data{text-align:center;min-height:230px;display:flex;align-items:center;flex-direction:column;justify-content:center}.fdp-upload-collection__no-data fd-icon{font-size:3rem;line-height:3rem;margin:0;color:#6a6d70;color:var(--sapContent_LabelColor)}.fdp-upload-collection__no-data h3{font-size:1.125rem;font-size:var(--sapFontHeader4Size);line-height:1rem;margin:8px 0}.fdp-upload-collection__no-data p{font-size:.875rem;font-size:var(--sapFontSize);line-height:1rem;color:#6a6d70;color:var(--sapContent_LabelColor);margin:0}.fdp-upload-collection__no-data.invisible{opacity:0}.fdp-upload-collection__table{position:relative}.fdp-upload-collection__table-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.fdp-upload-collection__table-footer .fdp-upload-collection__results--title,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total{line-height:1.4;line-height:var(--sapContent_LineHeight);color:#32363a;color:var(--sapTextColor);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily);font-weight:400;-webkit-font-smoothing:antialiased;box-sizing:border-box;padding:0;margin:0;border:0;font-size:.875rem;font-size:var(--sapFontSize);color:#6a6d70;color:var(--sapContent_LabelColor);margin-right:.5rem}.fdp-upload-collection__table-footer .fdp-upload-collection__results--title:before,.fdp-upload-collection__table-footer .fdp-upload-collection__results--title:after,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total:before,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fdp-upload-collection__table-footer .fdp-upload-collection__results--title,.fdp-upload-collection__table-footer .fdp-upload-collection__results--title[dir=rtl],[dir=rtl] .fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total[dir=rtl]{margin-right:0;margin-left:.5rem}.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total{width:100%;align-self:center}.fdp-upload-collection__table-footer .fdp-upload-collection__pagination{font-size:.875rem;font-size:var(--sapFontSize);line-height:1.4;line-height:var(--sapContent_LineHeight);color:#32363a;color:var(--sapTextColor);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily);font-weight:400;-webkit-font-smoothing:antialiased;box-sizing:border-box;padding:0;margin:0;border:0;display:flex}.fdp-upload-collection__table-footer .fdp-upload-collection__pagination:before,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination:after{box-sizing:inherit;font-size:inherit}.fdp-upload-collection__hidden{display:none}.fdp-upload-collection__vertical-align-center{display:flex;align-items:center}.fdp-upload-collection__cursor{cursor:pointer}.fdp-upload-collection__item_extension{white-space:nowrap}.fdp-upload-collection__actions{display:flex;justify-content:space-between;align-items:center}.fdp-upload-collection__actions .sap-icon--slim-arrow-down{display:none}.fdp-upload-collection__dragdrop-area{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;background:rgba(255,255,255,.5);outline:2px dashed transparent;outline-color:#89919a;outline-color:var(--sapField_BorderColor);outline-offset:-4px;box-sizing:border-box}.fdp-upload-collection__dragdrop-area fd-icon{font-size:3rem;line-height:3rem;margin-bottom:1rem;color:#6a6d70;color:var(--sapContent_LabelColor)}.fdp-upload-collection__dragdrop-area p{font-size:1rem;line-height:1.125rem;color:#6a6d70;color:var(--sapContent_LabelColor)}.fdp-upload-collection__dragdrop-area.active{outline-color:#0854a0;outline-color:var(--sapContent_DragAndDropActiveColor);background:rgba(8,84,160,.08)}.fdp-upload-collection__dragdrop-area.active fd-icon,.fdp-upload-collection__dragdrop-area.active p{color:#0854a0;color:var(--sapContent_DragAndDropActiveColor)}.fdp-upload-collection .fd-form-item{align-items:center;flex-direction:row}.fdp-upload-collection-dialig-no-bg{background-color:transparent!important}[dir=rtl] .fdp-upload-collection fd-icon{margin-right:0;margin-left:.625rem}.fd-menu__list .disabled{background-color:#fff!important;background-color:var(--sapList_Background)!important;cursor:not-allowed}.fd-menu__list .disabled .fd-menu__title{color:#32363a!important;color:var(--sapList_TextColor)!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: UploadCollectionDragnDropDirective, selector: "[fdpUploadCollectionDragnDrop]", inputs: ["multiple", "fileTypes", "maxFileSize", "maxFilenameLength", "mimeTypes", "disabled", "dragndrop"], outputs: ["fileChanged", "cancel", "onDropzone"] }, { kind: "component", type: TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "ariaLabelledBy", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed"] }, { kind: "directive", type: TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "component", type: TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "directive", type: FdpTableCell, selector: "fdp-table-cell" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "directive", type: FdpHeaderCellDef, selector: "[fdpHeaderCellDef]" }, { kind: "directive", type: FdpTableHeader, selector: "fdp-table-header" }, { kind: "component", type: MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdpMenuTriggerFor]", inputs: ["fdpMenuTriggerFor"] }, { kind: "component", type: PaginationComponent, selector: "fd-pagination", inputs: ["id", "mobile", "totalItems", "currentPage", "itemsPerPage", "itemsPerPageTemplate", "itemsPerPageOptions", "displayTotalItems", "displayTextTemplate"], outputs: ["pageChangeStart", "itemsPerPageChange"] }, { kind: "component", type: MenuComponent, selector: "fdp-menu", inputs: ["id", "openByArrowKeys", "xPosition"], outputs: ["close"] }, { kind: "component", type: MenuItemComponent, selector: "fdp-menu-item", inputs: ["disabled", "cascadeDirection"], outputs: ["itemSelect"] }, { kind: "directive", type: FileUploaderSelectDirective, selector: "[fdFileSelect]", inputs: ["multiple"], outputs: ["fileSelected"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: ConvertBytesPipe, name: "convertBytes" }], encapsulation: i0.ViewEncapsulation.None }); }
1299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: UploadCollectionComponent, isStandalone: true, selector: "fdp-upload-collection", inputs: { id: "id", itemsPerPage: "itemsPerPage", dataSource: "dataSource", fileTypes: "fileTypes", maxFileSize: "maxFileSize", maxFilenameLength: "maxFilenameLength", mimeTypes: "mimeTypes", disabled: "disabled", readonly: "readonly", hierarchy: "hierarchy", enablePagination: "enablePagination", terminationEnabled: "terminationEnabled", multiple: "multiple", showSearch: "showSearch", sameFileNameAllowed: "sameFileNameAllowed" }, outputs: { typeMismatch: "typeMismatch", filenameLengthExceed: "filenameLengthExceed", fileSizeExceed: "fileSizeExceed" }, viewQueries: [{ propertyName: "_uploadFilesRef", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "_updateVersionRef", first: true, predicate: ["updateVersionInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [id]=\"id\" class=\"fdp-upload-collection\">\n <!-- Message strip -->\n <fd-message-strip *ngIf=\"_message\" [type]=\"_message.messageStripType\" (onDismiss)=\"_messageStripDismiss()\">\n <ng-container\n [ngTemplateOutlet]=\"message\"\n [ngTemplateOutletContext]=\"{\n messageType: _message.messageType,\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n </fd-message-strip>\n\n <!-- Toolbar -->\n <fd-toolbar class=\"fdp-upload-collection__toolbar\">\n <div [style.flex]=\"'1 auto'\">\n <fd-breadcrumb [id]=\"id + '-breadcrumb'\">\n <fd-breadcrumb-item>\n <ng-template #multipleBreadcrumbs>\n <a href=\"#\" fd-link (click)=\"_breadcrumbGoTo($event)\">\n {{ 'platformUploadCollection.breadcrumbLabelAllFiles' | fdTranslate }}\n </a>\n </ng-template>\n <ng-template #singleBreadcrumb>\n <span>\n {{\n 'platformUploadCollection.breadcrumbLabelAllFilesWithTotal'\n | fdTranslate : { total: _totalItems }\n }}\n </span>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"_breadcrumbList.length > 0 ? multipleBreadcrumbs : singleBreadcrumb\"\n ></ng-container>\n </fd-breadcrumb-item>\n <fd-breadcrumb-item *ngFor=\"let item of _breadcrumbList; let i = index\">\n <ng-template #clickableBreadcrumb>\n <a href=\"#\" fd-link (click)=\"_breadcrumbGoTo($event, i)\">{{ item.folderName }}</a>\n </ng-template>\n <ng-template #textBreadcrumb>\n <span>{{ item.folderName }} ({{ _totalItems }})</span>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"item.clikable ? clickableBreadcrumb : textBreadcrumb\"\n ></ng-container>\n </fd-breadcrumb-item>\n </fd-breadcrumb>\n </div>\n\n <fd-toolbar-spacer [style.max-width.rem]=\"3\"></fd-toolbar-spacer>\n <ng-container *ngIf=\"readonly || selectedItems.length === 0\">\n <fd-input-group\n *ngIf=\"showSearch\"\n [(ngModel)]=\"_searchText\"\n (ngModelChange)=\"_searchInputChanged()\"\n glyph=\"search\"\n [ariaLabelledBy]=\"id + '-breadcrumb'\"\n [placeholder]=\"'platformUploadCollection.searchPlaceholder' | fdTranslate\"\n ></fd-input-group>\n\n <ng-container *ngIf=\"!readonly\">\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_openUploadFiles()\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n [label]=\"'platformUploadCollection.addBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.addBtnLabel' | fdTranslate\"\n ></button>\n\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_openNewFolderDialog()\"\n *ngIf=\"hierarchy\"\n [disabled]=\"disabled\"\n fdType=\"transparent\"\n [label]=\"'platformUploadCollection.newFolderBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.newFolderBtnLabel' | fdTranslate\"\n ></button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!readonly && selectedItems.length > 0\">\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_moveToClicked(true)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n [label]=\"'platformUploadCollection.moveToBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.moveToBtnLabel' | fdTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_downloadClicked(true)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n *ngIf=\"_showIfSelectedOnlyFiles()\"\n [label]=\"'platformUploadCollection.downloadBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.downloadBtnLabel' | fdTranslate\"\n ></button>\n <button\n fd-toolbar-item\n fd-button\n (click)=\"_remove(true)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n [label]=\"'platformUploadCollection.removeBtnLabel' | fdTranslate\"\n [title]=\"'platformUploadCollection.removeBtnLabel' | fdTranslate\"\n ></button>\n </ng-container>\n </fd-toolbar>\n\n <div class=\"fdp-upload-collection__table--wrapper\">\n <div\n class=\"fdp-upload-collection__table\"\n fdpUploadCollectionDragnDrop\n [fileTypes]=\"fileTypes\"\n [maxFilenameLength]=\"maxFilenameLength\"\n [maxFileSize]=\"maxFileSize\"\n [mimeTypes]=\"mimeTypes\"\n [dragndrop]=\"!readonly\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"_handleDrop($event)\"\n (cancel)=\"_dragDropCancel()\"\n (onDropzone)=\"_onDropzone($event)\"\n >\n <!-- Table -->\n <fdp-table\n *ngIf=\"_visibleList$.value.length > 0\"\n [dataSource]=\"_visibleList$\"\n [loading]=\"dataSource.isDataLoading\"\n selectionMode=\"multiple\"\n emptyTableMessage=\"\"\n [noHorizontalBorders]=\"true\"\n [trackBy]=\"_trackByDocumentId\"\n (rowSelectionChange)=\"_onRowSelectionChange($event)\"\n >\n <fdp-column name=\"name\" label=\"Name\" width=\"8rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">\n <div class=\"fdp-upload-collection__vertical-align-center\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n *ngIf=\"item.type === 'folder'\"\n glyph=\"folder-blank\"\n [title]=\"'platformUploadCollection.folderIconTitle' | fdTranslate\"\n ></fd-icon>\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n *ngIf=\"item.type === 'file'\"\n [glyph]=\"_getIconByType(item)\"\n [title]=\"'platformUploadCollection.fileIconTitle' | fdTranslate\"\n ></fd-icon>\n\n <ng-container *ngIf=\"disabled || readonly || !_isSelectedItem(item); else editMode\">\n <span\n [class.fdp-upload-collection__cursor]=\"item.type === 'folder'\"\n (click)=\"_openFolder(item)\"\n >{{ item.name }}</span\n >\n </ng-container>\n </div>\n\n <ng-template #editMode>\n <div fd-form-item>\n <fd-form-input-message-group [triggers]=\"[]\" [isOpen]=\"!!item.sameFilenameState\">\n <div class=\"fdp-upload-collection__vertical-align-center\">\n <input\n fd-form-control\n [value]=\"_getItemName(item)\"\n (blur)=\"_fileNameChange($event, item)\"\n (input)=\"_checkName($event, item)\"\n type=\"text\"\n [placeholder]=\"\n 'platformUploadCollection.editFileNameInputPlaceholder' | fdTranslate\n \"\n [state]=\"item.sameFilenameState\"\n />\n <span class=\"fdp-upload-collection__item_extension\">{{\n _getItemExtension(item)\n }}</span>\n </div>\n\n <fd-form-message [type]=\"item.sameFilenameState\">\n {{\n (item.type === 'file'\n ? 'platformUploadCollection.editFileNameFileAlreadyExistsError'\n : 'platformUploadCollection.editFileNameFolderAlreadyExistsError'\n ) | fdTranslate\n }}\n </fd-form-message>\n </fd-form-input-message-group>\n </div>\n </ng-template>\n </fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"uploadedBy\" label=\"Uploaded by\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.uploadedBy.name }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"uploadedOn\" label=\"Uploaded on\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.uploadedOn | date : 'shortDate' }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"size\" label=\"File size\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.fileSize | convertBytes }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"version\" label=\"Version\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">{{ item.version || '' }}</fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"status\" label=\"Status\" width=\"5rem\">\n <fdp-table-cell *fdpCellDef=\"let item\">\n <fd-busy-indicator\n *ngIf=\"item.status === _uploadCollectionItemStatus.LOADING\"\n [loading]=\"true\"\n ariaLabel=\"Status: Loading\"\n ariaLive=\"polite\"\n size=\"s\"\n ></fd-busy-indicator>\n <span\n *ngIf=\"item.status === _uploadCollectionItemStatus.SUCCESSFUL\"\n fd-object-status\n status=\"positive\"\n >\n {{ 'platformUploadCollection.itemStatusSuccessful' | fdTranslate }}\n </span>\n <span\n *ngIf=\"item.status === _uploadCollectionItemStatus.UNSUCCESSFUL\"\n fd-object-status\n status=\"negative\"\n >\n {{ 'platformUploadCollection.itemStatusUnsuccessful' | fdTranslate }}\n </span>\n </fdp-table-cell>\n </fdp-column>\n\n <fdp-column name=\"action\" *ngIf=\"!readonly\" width=\"5rem\" align=\"end\">\n <fdp-table-header *fdpHeaderCellDef>Action</fdp-table-header>\n <fdp-table-cell *fdpCellDef=\"let item\">\n <div class=\"fdp-upload-collection__actions\">\n <div class=\"fdp-upload-collection__actions--status\">\n <button\n fd-button\n [label]=\"'platformUploadCollection.uploadNewFileAfterFailAction' | fdTranslate\"\n [title]=\"'platformUploadCollection.uploadNewFileAfterFailAction' | fdTranslate\"\n (click)=\"_runUploadNewFileAfterFail(item)\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n *ngIf=\"item.status === _uploadCollectionItemStatus.UNSUCCESSFUL\"\n ></button>\n\n <button\n fd-button\n [label]=\"'platformUploadCollection.cancelUploadNewFileAction' | fdTranslate\"\n [title]=\"'platformUploadCollection.cancelUploadNewFileAction' | fdTranslate\"\n fdType=\"ghost\"\n [disabled]=\"disabled\"\n (click)=\"_cancelUploadNewFile(item)\"\n *ngIf=\"terminationEnabled && item.status === _uploadCollectionItemStatus.LOADING\"\n ></button>\n </div>\n\n <fdp-menu-button\n icon=\"overflow\"\n [disabled]=\"disabled\"\n type=\"transparent\"\n [title]=\"'platformUploadCollection.itemMenuBtnTitle' | fdTranslate\"\n [fdpMenuTriggerFor]=\"menuActions\"\n (buttonClicked)=\"_actionButton(item)\"\n >\n </fdp-menu-button>\n </div>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n\n <!-- Dragdrop area -->\n <div\n class=\"fdp-upload-collection__dragdrop-area\"\n *ngIf=\"_showDragDropArea\"\n [class.active]=\"_onDragDropArea\"\n >\n <fd-icon class=\"fdp-upload-collection__dragdrop-area--icon\" glyph=\"upload-to-cloud\"></fd-icon>\n <p class=\"fdp-upload-collection__dragdrop-area--text\">\n {{ 'platformUploadCollection.dragDropAreaText' | fdTranslate }}\n </p>\n </div>\n\n <!-- No data -->\n <div\n class=\"fdp-upload-collection__no-data\"\n *ngIf=\"_visibleList$.value.length === 0\"\n [class.invisible]=\"_showDragDropArea\"\n >\n <fd-icon glyph=\"document\"></fd-icon>\n <h3>{{ 'platformUploadCollection.noDataText' | fdTranslate }}</h3>\n <p>{{ 'platformUploadCollection.noDataDescription' | fdTranslate }}</p>\n </div>\n </div>\n\n <!-- Table footer -->\n <div class=\"fdp-upload-collection__table-footer\" *ngIf=\"enablePagination && _totalItems\">\n <!-- Pagination -->\n <div class=\"fdp-upload-collection__pagination\">\n <span [id]=\"id + '-pagination'\" class=\"fdp-upload-collection__pagination--total\">\n {{\n 'platformUploadCollection.paginationTotal'\n | fdTranslate : { from: _countShowedItems, to: _countNotShowedItems, total: _totalItems }\n }}\n </span>\n <fd-pagination\n [totalItems]=\"_totalItems\"\n [displayTotalItems]=\"false\"\n (pageChangeStart)=\"_pageChanged($event)\"\n [itemsPerPage]=\"_itemsPerPage\"\n [currentPage]=\"_currentPage\"\n [attr.aria-labelledby]=\"id + '-pagination'\"\n ></fd-pagination>\n </div>\n\n <!-- Results per page -->\n <div class=\"fdp-upload-collection__results\">\n <span class=\"fdp-upload-collection__results--title\">\n <span [id]=\"id + '-results'\">\n {{ 'platformUploadCollection.resultsPerPage' | fdTranslate }}\n </span>\n <span *ngIf=\"_itemsPerPageOptions.length === 0\">{{ _itemsPerPage }}</span>\n </span>\n <fdp-menu-button\n *ngIf=\"_itemsPerPageOptions.length > 0\"\n type=\"ghost\"\n [ariaLabelledBy]=\"id + '-results'\"\n [fdpMenuTriggerFor]=\"itemsPerPageMenu\"\n [label]=\"_itemsPerPage + ''\"\n >\n </fdp-menu-button>\n </div>\n </div>\n </div>\n</div>\n\n<fdp-menu #itemsPerPageMenu xPosition=\"before\">\n <fdp-menu-item\n *ngFor=\"let value of _itemsPerPageOptions\"\n (itemSelect)=\"_itemsPerPageChange(value.label)\"\n [attr.title]=\"'Results per page: ' + value.label\"\n >\n <span>{{ value.label }}</span>\n </fdp-menu-item>\n</fdp-menu>\n\n<fdp-menu #menuActions xPosition=\"before\">\n <fdp-menu-item (itemSelect)=\"_moveToClicked()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"folder-blank\"\n [title]=\"'platformUploadCollection.moveToBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.moveToBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n <ng-container *ngIf=\"_activeItem?.type === 'file'\">\n <fdp-menu-item (itemSelect)=\"_downloadClicked()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"download\"\n [title]=\"'platformUploadCollection.downloadBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.downloadBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n <fdp-menu-item (itemSelect)=\"_openUpdateFileVersion()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"drill-up\"\n [title]=\"'platformUploadCollection.updateVersionBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.updateVersionBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n </ng-container>\n <fdp-menu-item (itemSelect)=\"_remove()\">\n <fd-icon\n class=\"fdp-upload-collection__fd-icon\"\n glyph=\"delete\"\n [title]=\"'platformUploadCollection.removeBtnLabel' | fdTranslate\"\n ></fd-icon>\n <span>\n {{ 'platformUploadCollection.removeBtnLabel' | fdTranslate }}\n </span>\n </fdp-menu-item>\n</fdp-menu>\n\n<input\n #fileInput\n class=\"fdp-upload-collection__hidden\"\n type=\"file\"\n (fileSelected)=\"_selectHandler($event)\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n fdFileSelect\n/>\n\n<input\n #updateVersionInput\n class=\"fdp-upload-collection__hidden\"\n type=\"file\"\n (fileSelected)=\"_selectHandler($event)\"\n [disabled]=\"disabled\"\n [multiple]=\"false\"\n fdFileSelect\n/>\n\n<ng-template\n let-messageType=\"messageType\"\n let-payload=\"payload\"\n let-messageStripType=\"messageStripType\"\n let-count=\"count\"\n #message\n>\n <ng-container *ngIf=\"_message\" [ngSwitch]=\"messageType\">\n <ng-container\n *ngSwitchCase=\"_messageType.CREATE\"\n [ngTemplateOutlet]=\"messageNewFolder\"\n [ngTemplateOutletContext]=\"{\n messageStripType: _message.messageStripType,\n payload: _message.payload\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.UPDATE_VERSION\"\n [ngTemplateOutlet]=\"messageUpdateVersion\"\n [ngTemplateOutletContext]=\"{\n messageStripType: _message.messageStripType,\n payload: _message.payload\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.FILE_RENAME\"\n [ngTemplateOutlet]=\"messageFileRename\"\n [ngTemplateOutletContext]=\"{\n messageStripType: _message.messageStripType,\n payload: _message.payload\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.REMOVE\"\n [ngTemplateOutlet]=\"messageRemove\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.MOVE\"\n [ngTemplateOutlet]=\"messageMove\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.TYPE_MISMATCH\"\n [ngTemplateOutlet]=\"messageTypeMismatch\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.FILE_SIZE\"\n [ngTemplateOutlet]=\"messageFileSize\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n\n <ng-container\n *ngSwitchCase=\"_messageType.FILE_NAME_LENGTH\"\n [ngTemplateOutlet]=\"messageFilenameLength\"\n [ngTemplateOutletContext]=\"{\n payload: _message.payload,\n messageStripType: _message.messageStripType,\n count: _message.count\n }\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #messageNewFolder let-payload=\"payload\" let-messageStripType=\"messageStripType\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersCreated\">\n {{ 'platformUploadCollection.messageCreateFailed' | fdTranslate : { folderName: payload.folder.name } }}\n </ng-container>\n <ng-template #foldersCreated>\n {{ 'platformUploadCollection.messageCreateSuccess' | fdTranslate : { folderName: payload.folder.name } }}\n </ng-template>\n</ng-template>\n\n<ng-template #messageUpdateVersion let-payload=\"payload\" let-messageStripType=\"messageStripType\">\n <ng-container *ngIf=\"messageStripType === 'error'; else versionUpdated\">\n {{ 'platformUploadCollection.messageUpdateVersionFailed' | fdTranslate : { folderName: payload.item.name } }}\n </ng-container>\n <ng-template #versionUpdated>\n {{ 'platformUploadCollection.messageUpdateVersionSuccess' | fdTranslate : { folderName: payload.item.name } }}\n </ng-template>\n</ng-template>\n\n<ng-template #messageFileRename let-payload=\"payload\" let-messageStripType=\"messageStripType\">\n <ng-container *ngIf=\"messageStripType === 'error'; else fileRenamed\">\n {{\n 'platformUploadCollection.messageFileRenameFailed'\n | fdTranslate : { from: payload.item.name, to: payload.fileName }\n }}\n </ng-container>\n <ng-template #fileRenamed>\n {{\n 'platformUploadCollection.messageFileRenameSuccess'\n | fdTranslate : { from: payload.item.name, to: payload.fileName }\n }}\n </ng-template>\n</ng-template>\n\n<ng-template #messageRemove let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersAndFilesRemoved\">\n {{\n 'platformUploadCollection.messageRemoveFoldersAndFilesFailed'\n | fdTranslate : { foldersCount: count.folder, filesCount: count.file }\n }}\n </ng-container>\n <ng-template #foldersAndFilesRemoved>\n {{\n 'platformUploadCollection.messageRemoveFoldersAndFilesSuccess'\n | fdTranslate : { foldersCount: count.folder, filesCount: count.file }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && !count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersRemoved\">\n {{ 'platformUploadCollection.messageRemoveFoldersFailed' | fdTranslate : { foldersCount: count.folder } }}\n </ng-container>\n <ng-template #foldersRemoved>\n {{ 'platformUploadCollection.messageRemoveFoldersSuccess' | fdTranslate : { foldersCount: count.folder } }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.file && !count.folder\">\n <ng-container *ngIf=\"messageStripType === 'error'; else filesRemoved\">\n {{ 'platformUploadCollection.messageRemoveFilesFailed' | fdTranslate : { filesCount: count.file } }}\n </ng-container>\n <ng-template #filesRemoved>\n {{ 'platformUploadCollection.messageRemoveFilesSuccess' | fdTranslate : { filesCount: count.file } }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n <ng-container *ngIf=\"messageStripType === 'error'; else oneItemRemoved\">\n {{\n 'platformUploadCollection.messageRemoveFileOrFolderFailed'\n | fdTranslate : { name: payload.items[0].name }\n }}\n </ng-container>\n <ng-template #oneItemRemoved>\n {{\n 'platformUploadCollection.messageRemoveFileOrFolderSuccess'\n | fdTranslate : { name: payload.items[0].name }\n }}\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #messageMove let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else filesAndFoldersMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersAndFilesFailed'\n : 'platformUploadCollection.messageMoveRootFoldersAndFilesFailed'\n ) | fdTranslate : { foldersCount: count.folder, filesCount: count.file, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #filesAndFoldersMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersAndFilesSuccess'\n : 'platformUploadCollection.messageMoveRootFoldersAndFilesSuccess'\n ) | fdTranslate : { foldersCount: count.folder, filesCount: count.file, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.folder && !count.file\">\n <ng-container *ngIf=\"messageStripType === 'error'; else foldersMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersFailed'\n : 'platformUploadCollection.messageMoveRootFoldersFailed'\n ) | fdTranslate : { foldersCount: count.folder, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #foldersMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFoldersSuccess'\n : 'platformUploadCollection.messageMoveRootFoldersSuccess'\n ) | fdTranslate : { foldersCount: count.folder, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length > 1 && count.file && !count.folder\">\n <ng-container *ngIf=\"messageStripType === 'error'; else filesMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFilesFailed'\n : 'platformUploadCollection.messageMoveRootFilesFailed'\n ) | fdTranslate : { filesCount: count.file, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #filesMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFilesSuccess'\n : 'platformUploadCollection.messageMoveRootFilesSuccess'\n ) | fdTranslate : { filesCount: count.file, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n <ng-container *ngIf=\"messageStripType === 'error'; else oneItemMovedTo\">\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFileOrFolderFailed'\n : 'platformUploadCollection.messageMoveRootFileOrFolderFailed'\n ) | fdTranslate : { name: payload.items[0].name, to: payload.to?.name }\n }}\n </ng-container>\n <ng-template #oneItemMovedTo>\n {{\n (payload.to\n ? 'platformUploadCollection.messageMoveFileOrFolderSuccess'\n : 'platformUploadCollection.messageMoveRootFileOrFolderSuccess'\n ) | fdTranslate : { name: payload.items[0].name, to: payload.to?.name }\n }}\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #messageTypeMismatch let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1\">\n {{\n 'platformUploadCollection.messageFileTypeMismatchPlural'\n | fdTranslate : { filesCount: payload.items.length, allowedTypes: _getAllowedTypes() }\n }}\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n {{\n 'platformUploadCollection.messageFileTypeMismatchSingular'\n | fdTranslate : { fileName: payload.items[0].name, allowedTypes: _getAllowedTypes() }\n }}\n </ng-container>\n</ng-template>\n\n<ng-template #messageFileSize let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1\">\n {{\n 'platformUploadCollection.messageFileSizeExceededPlural'\n | fdTranslate : { filesCount: payload.items.length, maxFileSize: maxFileSize || 0 }\n }}\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n {{\n 'platformUploadCollection.messageFileSizeExceededSingular'\n | fdTranslate : { fileName: payload.items[0].name, maxFileSize: maxFileSize || 0 }\n }}\n </ng-container>\n</ng-template>\n\n<ng-template #messageFilenameLength let-payload=\"payload\" let-messageStripType=\"messageStripType\" let-count=\"count\">\n <ng-container *ngIf=\"payload.items.length > 1\">\n {{\n 'platformUploadCollection.messageFileNameLengthExceededPlural'\n | fdTranslate : { filesCount: payload.items.length, maxFilenameLength: maxFilenameLength || 0 }\n }}\n </ng-container>\n\n <ng-container *ngIf=\"payload.items.length === 1\">\n {{\n 'platformUploadCollection.messageFileNameLengthExceededSingular'\n | fdTranslate : { fileName: payload.items[0].name, maxFilenameLength: maxFilenameLength || 0 }\n }}\n </ng-container>\n</ng-template>\n", styles: [".fdp-upload-collection__fd-icon{color:#0854a0!important;color:var(--sapHighlightColor)!important;margin-right:.625rem!important;font-size:1rem!important}.fdp-upload-collection fd-message-strip{margin-bottom:.625rem}.fdp-upload-collection__toolbar .fd-toolbar{margin-bottom:.625rem;border:0}.fdp-upload-collection__toolbar .fd-toolbar fd-input-group .sap-icon--search{color:#0854a0;color:var(--sapHighlightColor)}.fdp-upload-collection__no-data{text-align:center;min-height:230px;display:flex;align-items:center;flex-direction:column;justify-content:center}.fdp-upload-collection__no-data fd-icon{font-size:3rem;line-height:3rem;margin:0;color:#6a6d70;color:var(--sapContent_LabelColor)}.fdp-upload-collection__no-data h3{font-size:1.125rem;font-size:var(--sapFontHeader4Size);line-height:1rem;margin:8px 0}.fdp-upload-collection__no-data p{font-size:.875rem;font-size:var(--sapFontSize);line-height:1rem;color:#6a6d70;color:var(--sapContent_LabelColor);margin:0}.fdp-upload-collection__no-data.invisible{opacity:0}.fdp-upload-collection__table{position:relative}.fdp-upload-collection__table-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.fdp-upload-collection__table-footer .fdp-upload-collection__results--title,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total{line-height:1.4;line-height:var(--sapContent_LineHeight);color:#32363a;color:var(--sapTextColor);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily);font-weight:400;-webkit-font-smoothing:antialiased;box-sizing:border-box;padding:0;margin:0;border:0;font-size:.875rem;font-size:var(--sapFontSize);color:#6a6d70;color:var(--sapContent_LabelColor);margin-right:.5rem}.fdp-upload-collection__table-footer .fdp-upload-collection__results--title:before,.fdp-upload-collection__table-footer .fdp-upload-collection__results--title:after,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total:before,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fdp-upload-collection__table-footer .fdp-upload-collection__results--title,.fdp-upload-collection__table-footer .fdp-upload-collection__results--title[dir=rtl],[dir=rtl] .fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total[dir=rtl]{margin-right:0;margin-left:.5rem}.fdp-upload-collection__table-footer .fdp-upload-collection__pagination--total{width:100%;align-self:center}.fdp-upload-collection__table-footer .fdp-upload-collection__pagination{font-size:.875rem;font-size:var(--sapFontSize);line-height:1.4;line-height:var(--sapContent_LineHeight);color:#32363a;color:var(--sapTextColor);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily);font-weight:400;-webkit-font-smoothing:antialiased;box-sizing:border-box;padding:0;margin:0;border:0;display:flex}.fdp-upload-collection__table-footer .fdp-upload-collection__pagination:before,.fdp-upload-collection__table-footer .fdp-upload-collection__pagination:after{box-sizing:inherit;font-size:inherit}.fdp-upload-collection__hidden{display:none}.fdp-upload-collection__vertical-align-center{display:flex;align-items:center}.fdp-upload-collection__cursor{cursor:pointer}.fdp-upload-collection__item_extension{white-space:nowrap}.fdp-upload-collection__actions{display:flex;justify-content:space-between;align-items:center}.fdp-upload-collection__actions .sap-icon--slim-arrow-down{display:none}.fdp-upload-collection__dragdrop-area{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;background:rgba(255,255,255,.5);outline:2px dashed transparent;outline-color:#89919a;outline-color:var(--sapField_BorderColor);outline-offset:-4px;box-sizing:border-box}.fdp-upload-collection__dragdrop-area fd-icon{font-size:3rem;line-height:3rem;margin-bottom:1rem;color:#6a6d70;color:var(--sapContent_LabelColor)}.fdp-upload-collection__dragdrop-area p{font-size:1rem;line-height:1.125rem;color:#6a6d70;color:var(--sapContent_LabelColor)}.fdp-upload-collection__dragdrop-area.active{outline-color:#0854a0;outline-color:var(--sapContent_DragAndDropActiveColor);background:rgba(8,84,160,.08)}.fdp-upload-collection__dragdrop-area.active fd-icon,.fdp-upload-collection__dragdrop-area.active p{color:#0854a0;color:var(--sapContent_DragAndDropActiveColor)}.fdp-upload-collection .fd-form-item{align-items:center;flex-direction:row}.fdp-upload-collection-dialig-no-bg{background-color:transparent!important}[dir=rtl] .fdp-upload-collection fd-icon{margin-right:0;margin-left:.625rem}.fd-menu__list .disabled{background-color:#fff!important;background-color:var(--sapList_Background)!important;cursor:not-allowed}.fd-menu__list .disabled .fd-menu__title{color:#32363a!important;color:var(--sapList_TextColor)!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: UploadCollectionDragnDropDirective, selector: "[fdpUploadCollectionDragnDrop]", inputs: ["multiple", "fileTypes", "maxFileSize", "maxFilenameLength", "mimeTypes", "disabled", "dragndrop"], outputs: ["fileChanged", "cancel", "onDropzone"] }, { kind: "component", type: TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "ariaLabelledBy", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed"] }, { kind: "directive", type: TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "component", type: TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "directive", type: FdpTableCell, selector: "fdp-table-cell" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "directive", type: FdpHeaderCellDef, selector: "[fdpHeaderCellDef]" }, { kind: "directive", type: FdpTableHeader, selector: "fdp-table-header" }, { kind: "component", type: MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdpMenuTriggerFor]", inputs: ["fdpMenuTriggerFor"] }, { kind: "component", type: PaginationComponent, selector: "fd-pagination", inputs: ["id", "mobile", "totalItems", "currentPage", "itemsPerPage", "itemsPerPageTemplate", "itemsPerPageOptions", "displayTotalItems", "displayTextTemplate"], outputs: ["pageChangeStart", "itemsPerPageChange"] }, { kind: "component", type: MenuComponent, selector: "fdp-menu", inputs: ["id", "openByArrowKeys", "xPosition"], outputs: ["close"] }, { kind: "component", type: MenuItemComponent, selector: "fdp-menu-item", inputs: ["disabled", "cascadeDirection"], outputs: ["itemSelect"] }, { kind: "directive", type: FileUploaderSelectDirective, selector: "[fdFileSelect]", inputs: ["multiple"], outputs: ["fileSelected"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: ConvertBytesPipe, name: "convertBytes" }], encapsulation: i0.ViewEncapsulation.None }); }
1300
1300
  }
1301
1301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: UploadCollectionComponent, decorators: [{
1302
1302
  type: Component,