UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

142 lines (141 loc) 5.51 kB
import { AfterViewInit, ElementRef, OnDestroy, OnInit } from "@angular/core"; import { FileField, FilePreviewType } from "../models/file-field"; import { DomSanitizer, SafeUrl } from "@angular/platform-browser"; import { BehaviorSubject } from "rxjs"; import { TaskResourceService } from "../../../resources/engine-endpoint/task-resource.service"; import { LoggerService } from "../../../logger/services/logger.service"; import { SnackBarService } from "../../../snack-bar/services/snack-bar.service"; import { TranslateService } from "@ngx-translate/core"; import { EventService } from "../../../event/services/event.service"; import { ResizedEvent } from "angular-resize-event"; import { DataFieldPortalData } from "../../models/data-field-portal-data-injection-token"; import { FileFieldRequest } from "../../../resources/interface/file-field-request-body"; import { AbstractFileFieldDefaultComponent } from '../../models/abstract-file-field-default-component'; import * as i0 from "@angular/core"; export interface FileState { progress: number; uploading: boolean; downloading: boolean; completed: boolean; error: boolean; } export declare abstract class AbstractFileDefaultFieldComponent extends AbstractFileFieldDefaultComponent<FileField> implements OnInit, AfterViewInit, OnDestroy { protected _taskResourceService: TaskResourceService; protected _log: LoggerService; protected _snackbar: SnackBarService; protected _translate: TranslateService; protected _eventService: EventService; protected _sanitizer: DomSanitizer; /** * The width of the default file preview border in pixels. The `px` string is appended in the code. */ static readonly DEFAULT_PREVIEW_BORDER_WIDTH = 0; /** * The CSS style attribute of the default file preview border. */ static readonly DEFAULT_PREVIEW_BORDER_STYLE = "none"; /** * The CSS color string of the default file preview border. */ static readonly DEFAULT_PREVIEW_BORDER_COLOR = "black"; state: FileState; /** * Image field view element reference from component template that is initialized after view init. */ imageEl: ElementRef; imageDivEl: ElementRef; /** * If file type can be displayed */ isDisplayable: boolean; /** * Max height of preview */ private maxHeight; /** * Store file for preview */ private fileForPreview; /** * Url of preview file */ previewSource: SafeUrl; /** * Store file to show/download */ private fileForDownload; /** * Full size file url */ fullSource: BehaviorSubject<SafeUrl>; /** * Extension of file to preview */ previewExtension: FilePreviewType; /** * Form control subscription */ private updatedFieldSubscription; isFilePreview: boolean; isFilePreviewButton: boolean; /** * Only inject services. * @param _taskResourceService Provides to download a file from the backend * @param _log Logger service * @param _snackbar Snackbar service to notify user * @param _translate Translate service for I18N * @param _eventService used for parsing of backend response * Option injected trough `NAE_INFORM_ABOUT_INVALID_DATA` InjectionToken * @param _sanitizer Sanitize url of image preview * @param dataFieldPortalData Field and form control data if field is provided with portal */ protected constructor(_taskResourceService: TaskResourceService, _log: LoggerService, _snackbar: SnackBarService, _translate: TranslateService, _eventService: EventService, _sanitizer: DomSanitizer, dataFieldPortalData: DataFieldPortalData<FileField>); /** * Set : * - File field to [FileFieldService]{@link FileFieldService} * - Display name */ ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; chooseFile(): void; /** * Call after click on file field. * * If file field has no file uploaded * [FilesUploadComponent]{@link AbstractFilesUploadComponent} via [SideMenu]{@link SideMenuService} opens. * * Otherwise opens a file picker from which the user can select files. */ upload(): void; download(): void; private initDownloadFile; protected downloadViaAnchor(blob: Blob): void; deleteFile(): void; isEmpty(): boolean; protected createRequestBody(): FileFieldRequest; protected get defaultState(): FileState; /** * Construct display name. */ constructDisplayName(): string; /** * Initialize file field image from backend if it is image type. */ protected initFileFieldImage(): void; protected checkFileBeforeDownload(): boolean; showPreviewDialog(): void; changeMaxWidth(event: ResizedEvent): void; protected initializePreviewIfDisplayable(): void; getHeight(): number; getPreviewBorderWidth(): string; getPreviewBorderStyle(): string; getPreviewBorderColor(): string; isBorderLGBTQ(): boolean; isBorderDefault(): boolean; borderPropertyEnabled(property: string): boolean; hasTitle(): boolean; hasHint(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration<AbstractFileDefaultFieldComponent, [null, null, null, null, null, null, { optional: true; }]>; static ɵcmp: i0.ɵɵComponentDeclaration<AbstractFileDefaultFieldComponent, "ncc-abstract-file-default-fied", never, {}, {}, never, never, false, never>; }