<ion-item class="ion-text-wrap">
    <ion-label>
        <span *ngIf="maxSubmissionsReadable">
            {{ 'core.maxsizeandattachments' | translate:{$a: {size: maxSizeReadable, attachments: maxSubmissionsReadable} } }}
        </span>
        <span *ngIf="!maxSubmissionsReadable">{{ 'core.maxfilesize' | translate:{$a: maxSizeReadable} }}</span>
        <span [core-mark-required]="required" class="core-mark-required"></span>
    </ion-label>
</ion-item>
<ion-item class="ion-text-wrap" *ngIf="fileTypes && fileTypes.mimetypes && fileTypes.mimetypes.length">
    <ion-label>
        <p>{{ 'core.fileuploader.filesofthesetypes' | translate }}</p>
        <ul class="list-with-style">
            <li *ngFor="let typeInfo of fileTypes.info">
                <strong *ngIf="typeInfo.name">{{typeInfo.name}} </strong>{{typeInfo.extlist}}
            </li>
        </ul>
    </ion-label>
</ion-item>
<div *ngFor="let file of files; let index=index">
    <!-- Files already attached to the submission, either in online or in offline. -->
    <core-file *ngIf="!file.name" [file]="file" [component]="component" [componentId]="componentId"
        [canDelete]="true" (onDelete)="delete(index, true)" [canDownload]="!file.offline">
    </core-file>

    <!-- Files added to draft but not attached to submission yet. -->
    <core-local-file *ngIf="file.name" [file]="file" [manage]="true" (onDelete)="delete(index, false)"
        (onRename)="renamed(index, $event)">
    </core-local-file>
</div>

<!-- Button to add more files. -->
<ion-button expand="block"
    *ngIf="unlimitedFiles || (maxSubmissions !== undefined && maxSubmissions >= 0 && files && files.length < maxSubmissions)"
    class="ion-text-wrap ion-margin" (click)="add()">
    <ion-icon name="fas-plus" slot="start" aria-hidden="true"></ion-icon>
    {{ 'core.fileuploader.addfiletext' | translate }}
</ion-button>