New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@firestitch/file

Package Overview
Dependencies
Maintainers
7
Versions
221
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@firestitch/file - npm Package Compare versions

Comparing version 12.13.2 to 12.14.0

2

app/classes/file-processor.d.ts
import { Observable } from 'rxjs';
import { FsFileProcessConfig } from '../interfaces';
import { FileProcessConfig, FsFile } from '../models';
import { FsFileProcessConfig } from '../interfaces';
export declare class FileProcessor {

@@ -5,0 +5,0 @@ processFile(fsFile: FsFile, config: FileProcessConfig | FsFileProcessConfig): Observable<FsFile>;

@@ -1,2 +0,2 @@

import { EventEmitter, AfterContentInit, OnInit } from '@angular/core';
import { AfterContentInit, EventEmitter, OnInit } from '@angular/core';
import { FsFile } from '../../models';

@@ -8,7 +8,8 @@ import { FsFilePreviewsBaseComponent } from '../fs-file-preview-base/fs-file-preview-base';

showFilename: boolean;
previewWidth: string | number;
previewHeight: string | number;
previewWidth: number;
previewHeight: number;
file: FsFile;
url: string;
index: number;
showActionOn: 'hover' | 'always';
set setActions(value: any);

@@ -27,3 +28,3 @@ set setActionsTemplate(value: any);

static ɵfac: i0.ɵɵFactoryDeclaration<FsFilePreviewComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FsFilePreviewComponent, "fs-file-preview", never, { "showFilename": "showFilename"; "previewWidth": "previewWidth"; "previewHeight": "previewHeight"; "file": "file"; "url": "url"; "index": "index"; "setActions": "setActions"; "setActionsTemplate": "setActionsTemplate"; }, { "remove": "remove"; }, never, ["*"]>;
static ɵcmp: i0.ɵɵComponentDeclaration<FsFilePreviewComponent, "fs-file-preview", never, { "showFilename": "showFilename"; "previewWidth": "previewWidth"; "previewHeight": "previewHeight"; "file": "file"; "url": "url"; "index": "index"; "showActionOn": "showActionOn"; "setActions": "setActions"; "setActionsTemplate": "setActionsTemplate"; }, { "remove": "remove"; }, never, ["*"]>;
}
import { EventEmitter } from '@angular/core';
import { FsFile } from '../../models';
import { FsFilePreviewsBaseComponent } from '../fs-file-preview-base/fs-file-preview-base';
import { FsFile } from '../../models';
import * as i0 from "@angular/core";

@@ -10,2 +10,3 @@ export declare class FsFilePreviewsComponent extends FsFilePreviewsBaseComponent {

previewHeight: number;
showActionOn: 'hover' | 'always';
removed: EventEmitter<any>;

@@ -15,3 +16,3 @@ queue: boolean;

static ɵfac: i0.ɵɵFactoryDeclaration<FsFilePreviewsComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FsFilePreviewsComponent, "fs-file-previews", never, { "files": "files"; "mapFile": "mapFile"; "previewWidth": "previewWidth"; "previewHeight": "previewHeight"; }, { "removed": "removed"; }, never, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FsFilePreviewsComponent, "fs-file-previews", never, { "files": "files"; "mapFile": "mapFile"; "previewWidth": "previewWidth"; "previewHeight": "previewHeight"; "showActionOn": "showActionOn"; }, { "removed": "removed"; }, never, never>;
}
import { PipeTransform } from '@angular/core';
import { Observable } from 'rxjs';
import { DomSanitizer } from '@angular/platform-browser';
import * as i0 from "@angular/core";
export declare class FsFileSrcPipe implements PipeTransform {
private _sanitizer;
constructor(_sanitizer: DomSanitizer);
transform(file: any): Observable<any>;
transform(file: any, maxWidth?: number, maxHeight?: number): Observable<unknown>;
private _getData;

@@ -10,0 +7,0 @@ static ɵfac: i0.ɵɵFactoryDeclaration<FsFileSrcPipe, never>;

@@ -1,6 +0,5 @@

import { __awaiter } from "tslib";
import { forkJoin, from, of, throwError } from 'rxjs';
import { forkJoin, from, Observable, of, throwError } from 'rxjs';
import { catchError, switchMap } from 'rxjs/operators';
import * as FileAPI from 'fileapi';
import { toInteger } from 'lodash-es';
import * as FileAPI from 'fileapi';
import { FileProcessConfig } from '../models';

@@ -11,3 +10,3 @@ export class FileProcessor {

return (fsFile.imageProcess ?
from(this._applyTransforms(fsFile, processConfig)) :
this._applyTransforms(fsFile, processConfig) :
of(fsFile))

@@ -62,31 +61,36 @@ .pipe(switchMap((fsFile) => this._validate(fsFile, processConfig)));

_transform(fsFile, processConfig) {
return new Promise((resolve, reject) => {
if (!processConfig.orientate &&
!processConfig.maxWidth &&
!processConfig.maxHeight &&
processConfig.quality === 1) {
return resolve(fsFile);
if (!processConfig.orientate &&
!processConfig.maxWidth &&
!processConfig.maxHeight &&
processConfig.quality === 1) {
return of(fsFile);
}
return from(fsFile.exifInfo)
.pipe(switchMap((exifInfo) => {
if (!(exifInfo === null || exifInfo === void 0 ? void 0 : exifInfo.Orientation)) {
return of(fsFile);
}
const transformConfig = this._generateTransformConfig(fsFile, processConfig);
// Transform image by options and rotate if needed
FileAPI.Image.transform(fsFile.file, [transformConfig], processConfig.orientate, (err, images) => {
// Process transformed files
if (!err && images[0]) {
const canvas = images[0];
const type = (processConfig.format) ? 'image/' + processConfig.format : fsFile.type;
canvas.toBlob((blob) => {
fsFile.file = new File([blob], fsFile.file.name, { type: fsFile.type });
resolve(fsFile);
}, type, processConfig.quality);
}
else {
reject(err);
}
return new Observable((observer) => {
const transformConfig = this._generateTransformConfig(fsFile, processConfig);
// Transform image by options and rotate if needed
FileAPI.Image.transform(fsFile.file, [transformConfig], processConfig.orientate, (err, images) => {
// Process transformed files
if (!err && images[0]) {
const canvas = images[0];
const type = (processConfig.format) ? 'image/' + processConfig.format : fsFile.type;
canvas.toBlob((blob) => {
fsFile.file = new File([blob], fsFile.file.name, { type: fsFile.type });
observer.next(fsFile);
observer.complete();
}, type, processConfig.quality);
}
else {
observer.error(err);
}
});
});
});
}));
}
_applyTransforms(fsFile, processConfig) {
return __awaiter(this, void 0, void 0, function* () {
return this._transform(fsFile, processConfig);
});
return this._transform(fsFile, processConfig);
}

@@ -103,2 +107,2 @@ _generateTransformConfig(file, config) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NsYXNzZXMvZmlsZS1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBRW5DLE9BQU8sRUFBRSxpQkFBaUIsRUFBVSxNQUFNLFdBQVcsQ0FBQztBQUl0RCxNQUFNLE9BQU8sYUFBYTtJQUVqQixXQUFXLENBQUMsTUFBYyxFQUFFLE1BQStDO1FBQ2hGLE1BQU0sYUFBYSxHQUFHLE1BQU0sWUFBWSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5HLE9BQU8sQ0FDTCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FDYjthQUNBLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQzdELENBQUM7SUFDSixDQUFDO0lBRU0sWUFBWSxDQUFDLE9BQWlCLEVBQUUsTUFBK0M7UUFDcEYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sUUFBUSxDQUNYLE9BQU8sQ0FBQyxHQUFH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RSxNQUFNLENBQUMsUUFBUTtZQUN6QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFFM0IsMkJBQTJCO1lBQzNCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUM7U0FDN0IsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcmtKb2luLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyB0b0ludGVnZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICogYXMgRmlsZUFQSSBmcm9tICdmaWxlYXBpJztcblxuaW1wb3J0IHsgRmlsZVByb2Nlc3NDb25maWcsIEZzRmlsZSB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBGc0ZpbGVQcm9jZXNzQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cblxuZXhwb3J0IGNsYXNzIEZpbGVQcm9jZXNzb3Ige1xuXG4gIHB1YmxpYyBwcm9jZXNzRmlsZShmc0ZpbGU6IEZzRmlsZSwgY29uZmlnOiBGaWxlUHJvY2Vzc0NvbmZpZyB8IEZzRmlsZVByb2Nlc3NDb25maWcpOiBPYnNlcnZhYmxlPEZzRmlsZT4ge1xuICAgIGNvbnN0IHByb2Nlc3NDb25maWcgPSBjb25maWcgaW5zdGFuY2VvZiBGaWxlUHJvY2Vzc0NvbmZpZyA/IGNvbmZpZyA6IG5ldyBGaWxlUHJvY2Vzc0NvbmZpZyhjb25maWcpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGZzRmlsZS5pbWFnZVByb2Nlc3MgP1xuICAgICAgICBmcm9tKHRoaXMuX2FwcGx5VHJhbnNmb3Jtcyhmc0ZpbGUsIHByb2Nlc3NDb25maWcpKSA6XG4gICAgICAgIG9mKGZzRmlsZSlcbiAgICApXG4gICAgLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGZzRmlsZSkgPT4gdGhpcy5fdmFsaWRhdGUoZnNGaWxlLCBwcm9jZXNzQ29uZmlnKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NGaWxlcyhmc0ZpbGVzOiBGc0ZpbGVbXSwgY29uZmlnOiBGaWxlUHJvY2Vzc0NvbmZpZyB8IEZzRmlsZVByb2Nlc3NDb25maWcpOiBPYnNlcnZhYmxlPEZzRmlsZVtdPiB7XG4gICAgY29uc3QgZXJyb3JzID0gW107XG4gICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgICBmc0ZpbGVzLm1hcCgoZnNGaWxlKSA9PiB0aGlzLnByb2Nlc3NGaWxlKGZzRmlsZSwgY29uZmlnKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGZzRmlsZXMpID0+IHtcbiAgICAgICAgICBpZihlcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGVycm9yc1xuICAgICAgICAgICAgICAucmVkdWNlKChhY2N1bSwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAuLi5hY2N1bSxcbiAgICAgICAgICAgICAgICAgIGl0ZW0uZXJyb3JcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICB9LCBbXSlcbiAgICAgICAgICAgICAgLmpvaW4oJywgJyk7XG5cbiAgICAgICAgICAgICAgY29uc3QgY29kZSA9IGVycm9yc1xuICAgICAgICAgICAgICAucmVkdWNlKChhY2N1bSwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAuLi5hY2N1bSxcbiAgICAgICAgICAgICAgICAgIGl0ZW0uY29kZVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIH0sIFtdKVxuICAgICAgICAgICAgICAuam9pbignLCAnKTsgIFxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHsgZXJyb3IsIGNvZGUsIG1lc3NhZ2U6IGVycm9yIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZihmc0ZpbGVzKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIF92YWxpZGF0ZShmc0ZpbGU6IEZzRmlsZSwgcHJvY2Vzc0NvbmZpZzogRmlsZVByb2Nlc3NDb25maWcpOiBPYnNlcnZhYmxlPEZzRmlsZT4ge1xuICAgIGlmIChwcm9jZXNzQ29uZmlnLm1pbkhlaWdodCB8fCBwcm9jZXNzQ29uZmlnLm1pbldpZHRoKSB7XG4gICAgICByZXR1cm4gZnJvbShmc0ZpbGUuaW1hZ2VJbmZvKVxuICAgICAgICAucGlwZSggXG4gICAgICAgICAgc3dpdGNoTWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZihkYXRhLmhlaWdodCA8IHRvSW50ZWdlcihwcm9jZXNzQ29uZmlnLm1pbkhlaWdodCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoeyBlcnJvcjogYEhlaWdodCBtdXN0IGJlIGF0IGxlYXN0ICR7cHJvY2Vzc0NvbmZpZy5taW5IZWlnaHR9cHguYCwgY29kZTogJ21pbkhlaWdodCcgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmKGRhdGEud2lkdGggPCB0b0ludGVnZXIocHJvY2Vzc0NvbmZpZy5taW5XaWR0aCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoeyBlcnJvcjogYFdpZHRoIG11c3QgYmUgYXQgbGVhc3QgJHtwcm9jZXNzQ29uZmlnLm1pbldpZHRofXB4LmAsIGNvZGU6ICdtaW5XaWR0aCcgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvZihmc0ZpbGUpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIFxuICAgICAgcmV0dXJuIG9mKGZzRmlsZSk7XG4gIH1cblxuICBwcml2YXRlIF90cmFuc2Zvcm0oZnNGaWxlOiBGc0ZpbGUsIHByb2Nlc3NDb25maWc6IEZpbGVQcm9jZXNzQ29uZmlnKTogUHJvbWlzZTxGc0ZpbGU+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYoXG4gICAgICAgICFwcm9jZXNzQ29uZmlnLm9yaWVudGF0ZSAmJlxuICAgICAgICAhcHJvY2Vzc0NvbmZpZy5tYXhXaWR0aCAmJiBcbiAgICAgICAgIXByb2Nlc3NDb25maWcubWF4SGVpZ2h0ICYmIFxuICAgICAgICBwcm9jZXNzQ29uZmlnLnF1YWxpdHkgPT09IDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShmc0ZpbGUpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCB0cmFuc2Zvcm1Db25maWcgPSB0aGlzLl9nZW5lcmF0ZVRyYW5zZm9ybUNvbmZpZyhmc0ZpbGUsIHByb2Nlc3NDb25maWcpO1xuXG4gICAgICAvLyBUcmFuc2Zvcm0gaW1hZ2UgYnkgb3B0aW9ucyBhbmQgcm90YXRlIGlmIG5lZWRlZFxuICAgICAgRmlsZUFQSS5JbWFnZS50cmFuc2Zvcm0oXG4gICAgICAgIGZzRmlsZS5maWxlLFxuICAgICAgICBbdHJhbnNmb3JtQ29uZmlnXSxcbiAgICAgICAgcHJvY2Vzc0NvbmZpZy5vcmllbnRhdGUsICBcbiAgICAgICAgKGVyciwgaW1hZ2VzKSA9PiB7XG4gICAgICAgICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1lZCBmaWxlc1xuICAgICAgICAgIGlmICghZXJyICYmIGltYWdlc1swXSkge1xuICAgICAgICAgICAgY29uc3QgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGltYWdlc1swXTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAocHJvY2Vzc0NvbmZpZy5mb3JtYXQpID8gJ2ltYWdlLycgKyBwcm9jZXNzQ29uZmlnLmZvcm1hdCA6IGZzRmlsZS50eXBlO1xuXG4gICAgICAgICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XG4gICAgICAgICAgICAgIGZzRmlsZS5maWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBmc0ZpbGUuZmlsZS5uYW1lLCB7IHR5cGU6IGZzRmlsZS50eXBlIH0pO1xuICAgICAgICAgICAgICByZXNvbHZlKGZzRmlsZSk7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgfSwgdHlwZSwgcHJvY2Vzc0NvbmZpZy5xdWFsaXR5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2FwcGx5VHJhbnNmb3Jtcyhmc0ZpbGU6IEZzRmlsZSwgcHJvY2Vzc0NvbmZpZzogRmlsZVByb2Nlc3NDb25maWcpOiBQcm9taXNlPEZzRmlsZT4ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm0oZnNGaWxlLCBwcm9jZXNzQ29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dlbmVyYXRlVHJhbnNmb3JtQ29uZmlnKGZpbGUsIGNvbmZpZzogRmlsZVByb2Nlc3NDb25maWcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gUmVzaXplXG4gICAgICBtYXhXaWR0aDogY29uZmlnLm1heFdpZHRoLFxuICAgICAgbWF4SGVpZ2h0OiBjb25maWcubWF4SGVpZ2h0LFxuICBcbiAgICAgIC8vIFF1YWxpdHkgZm9yIHJlc3VsdCBpbWFnZVxuICAgICAgcXVhbGl0eTogY29uZmlnLnF1YWxpdHkgfHwgMVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NsYXNzZXMvZmlsZS1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBVSxNQUFNLFdBQVcsQ0FBQztBQUd0RCxNQUFNLE9BQU8sYUFBYTtJQUVqQixXQUFXLENBQUMsTUFBYyxFQUFFLE1BQStDO1FBQ2hGLE1BQU0sYUFBYSxHQUFHLE1BQU0sWUFBWSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5HLE9BQU8sQ0FDTCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzlDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FDYjthQUNFLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQzdELENBQUM7SUFDTixDQUFDO0lBRU0sWUFBWSxDQUFDLE9BQWlCLEVBQUUsTUFBK0M7UUFDcEYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sUUFBUSxDQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMs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QztxQkFDckI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBYyxFQUFFLGFBQWdDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLHdCQUF3QixDQUFDLElBQUksRUFBRSxNQUF5QjtRQUM5RCxPQUFPO1lBQ0wsU0FBUztZQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFFM0IsMkJBQTJCO1lBQzNCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUM7U0FDN0IsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcmtKb2luLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgKiBhcyBGaWxlQVBJIGZyb20gJ2ZpbGVhcGknO1xuaW1wb3J0IHsgdG9JbnRlZ2VyIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRnNGaWxlUHJvY2Vzc0NvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRmlsZVByb2Nlc3NDb25maWcsIEZzRmlsZSB9IGZyb20gJy4uL21vZGVscyc7XG5cblxuZXhwb3J0IGNsYXNzIEZpbGVQcm9jZXNzb3Ige1xuXG4gIHB1YmxpYyBwcm9jZXNzRmlsZShmc0ZpbGU6IEZzRmlsZSwgY29uZmlnOiBGaWxlUHJvY2Vzc0NvbmZpZyB8IEZzRmlsZVByb2Nlc3NDb25maWcpOiBPYnNlcnZhYmxlPEZzRmlsZT4ge1xuICAgIGNvbnN0IHByb2Nlc3NDb25maWcgPSBjb25maWcgaW5zdGFuY2VvZiBGaWxlUHJvY2Vzc0NvbmZpZyA/IGNvbmZpZyA6IG5ldyBGaWxlUHJvY2Vzc0NvbmZpZyhjb25maWcpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGZzRmlsZS5pbWFnZVByb2Nlc3MgP1xuICAgICAgICB0aGlzLl9hcHBseVRyYW5zZm9ybXMoZnNGaWxlLCBwcm9jZXNzQ29uZmlnKSA6XG4gICAgICAgIG9mKGZzRmlsZSlcbiAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChmc0ZpbGUpID0+IHRoaXMuX3ZhbGlkYXRlKGZzRmlsZSwgcHJvY2Vzc0NvbmZpZykpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NGaWxlcyhmc0ZpbGVzOiBGc0ZpbGVbXSwgY29uZmlnOiBGaWxlUHJvY2Vzc0NvbmZpZyB8IEZzRmlsZVByb2Nlc3NDb25maWcpOiBPYnNlcnZhYmxlPEZzRmlsZVtdPiB7XG4gICAgY29uc3QgZXJyb3JzID0gW107XG4gICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgZnNGaWxlcy5tYXAoKGZzRmlsZSkgPT4gdGhpcy5wcm9jZXNzRmlsZShmc0ZpbGUsIGNvbmZpZylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGZzRmlsZXMpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBlcnJvcnNcbiAgICAgICAgICAgICAgLnJlZHVjZSgoYWNjdW0sIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgLi4uYWNjdW0sXG4gICAgICAgICAgICAgICAgICBpdGVtLmVycm9yXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICAgICAgIC5qb2luKCcsICcpO1xuXG4gICAgICAgICAgICBjb25zdCBjb2RlID0gZXJyb3JzXG4gICAgICAgICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgIC4uLmFjY3VtLFxuICAgICAgICAgICAgICAgICAgaXRlbS5jb2RlXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICAgICAgIC5qb2luKCcsICcpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih7IGVycm9yLCBjb2RlLCBtZXNzYWdlOiBlcnJvciB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb2YoZnNGaWxlcyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdGUoZnNGaWxlOiBGc0ZpbGUsIHByb2Nlc3NDb25maWc6IEZpbGVQcm9jZXNzQ29uZmlnKTogT2JzZXJ2YWJsZTxGc0ZpbGU+IHtcbiAgICBpZiAocHJvY2Vzc0NvbmZpZy5taW5IZWlnaHQgfHwgcHJvY2Vzc0NvbmZpZy5taW5XaWR0aCkge1xuICAgICAgcmV0dXJuIGZyb20oZnNGaWxlLmltYWdlSW5mbylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YS5oZWlnaHQgPCB0b0ludGVnZXIocHJvY2Vzc0NvbmZpZy5taW5IZWlnaHQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHsgZXJyb3I6IGBIZWlnaHQgbXVzdCBiZSBhdCBsZWFzdCAke3Byb2Nlc3NDb25maWcubWluSGVpZ2h0fXB4LmAsIGNvZGU6ICdtaW5IZWlnaHQnIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0YS53aWR0aCA8IHRvSW50ZWdlcihwcm9jZXNzQ29uZmlnLm1pbldpZHRoKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih7IGVycm9yOiBgV2lkdGggbXVzdCBiZSBhdCBsZWFzdCAke3Byb2Nlc3NDb25maWcubWluV2lkdGh9cHguYCwgY29kZTogJ21pbldpZHRoJyB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9mKGZzRmlsZSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKGZzRmlsZSk7XG4gIH1cblxuICBwcml2YXRlIF90cmFuc2Zvcm0oZnNGaWxlOiBGc0ZpbGUsIHByb2Nlc3NDb25maWc6IEZpbGVQcm9jZXNzQ29uZmlnKTogT2JzZXJ2YWJsZTxGc0ZpbGU+IHtcbiAgICBpZiAoXG4gICAgICAhcHJvY2Vzc0NvbmZpZy5vcmllbnRhdGUgJiZcbiAgICAgICFwcm9jZXNzQ29uZmlnLm1heFdpZHRoICYmXG4gICAgICAhcHJvY2Vzc0NvbmZpZy5tYXhIZWlnaHQgJiZcbiAgICAgIHByb2Nlc3NDb25maWcucXVhbGl0eSA9PT0gMVxuICAgICkge1xuICAgICAgcmV0dXJuIG9mKGZzRmlsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyb20oZnNGaWxlLmV4aWZJbmZvKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoZXhpZkluZm86IGFueSkgPT4ge1xuICAgICAgICAgIGlmICghZXhpZkluZm8/Lk9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoZnNGaWxlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8RnNGaWxlPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybUNvbmZpZyA9IHRoaXMuX2dlbmVyYXRlVHJhbnNmb3JtQ29uZmlnKGZzRmlsZSwgcHJvY2Vzc0NvbmZpZyk7XG5cbiAgICAgICAgICAgIC8vIFRyYW5zZm9ybSBpbWFnZSBieSBvcHRpb25zIGFuZCByb3RhdGUgaWYgbmVlZGVkXG4gICAgICAgICAgICBGaWxlQVBJLkltYWdlLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgZnNGaWxlLmZpbGUsXG4gICAgICAgICAgICAgIFt0cmFuc2Zvcm1Db25maWddLFxuICAgICAgICAgICAgICBwcm9jZXNzQ29uZmlnLm9yaWVudGF0ZSxcbiAgICAgICAgICAgICAgKGVyciwgaW1hZ2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1lZCBmaWxlc1xuICAgICAgICAgICAgICAgIGlmICghZXJyICYmIGltYWdlc1swXSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGltYWdlc1swXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAocHJvY2Vzc0NvbmZpZy5mb3JtYXQpID8gJ2ltYWdlLycgKyBwcm9jZXNzQ29uZmlnLmZvcm1hdCA6IGZzRmlsZS50eXBlO1xuXG4gICAgICAgICAgICAgICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZzRmlsZS5maWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBmc0ZpbGUuZmlsZS5uYW1lLCB7IHR5cGU6IGZzRmlsZS50eXBlIH0pO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGZzRmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICB9LCB0eXBlLCBwcm9jZXNzQ29uZmlnLnF1YWxpdHkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlUcmFuc2Zvcm1zKGZzRmlsZTogRnNGaWxlLCBwcm9jZXNzQ29uZmlnOiBGaWxlUHJvY2Vzc0NvbmZpZyk6IE9ic2VydmFibGU8RnNGaWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybShmc0ZpbGUsIHByb2Nlc3NDb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2VuZXJhdGVUcmFuc2Zvcm1Db25maWcoZmlsZSwgY29uZmlnOiBGaWxlUHJvY2Vzc0NvbmZpZykge1xuICAgIHJldHVybiB7XG4gICAgICAvLyBSZXNpemVcbiAgICAgIG1heFdpZHRoOiBjb25maWcubWF4V2lkdGgsXG4gICAgICBtYXhIZWlnaHQ6IGNvbmZpZy5tYXhIZWlnaHQsXG5cbiAgICAgIC8vIFF1YWxpdHkgZm9yIHJlc3VsdCBpbWFnZVxuICAgICAgcXVhbGl0eTogY29uZmlnLnF1YWxpdHkgfHwgMVxuICAgIH07XG4gIH1cbn1cbiJdfQ==

@@ -151,3 +151,3 @@ import { EventEmitter, Component, Input, Output, ViewChild, Inject, Optional, ChangeDetectionStrategy, forwardRef, ChangeDetectorRef, QueryList, ContentChildren, TemplateRef, ContentChild } from '@angular/core';

}
], queries: [{ propertyName: "filePickerSelectTemplate", first: true, predicate: FsFilePickerSelectDirective, descendants: true, read: TemplateRef }, { propertyName: "labels", predicate: FsFileLabelDirective }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fs-label-field\n class=\"fs-form-wrapper\"\n [ngClass]=\"{ 'percent-preview': previewPercent }\">\n <ng-container *ngIf=\"label; else labelContent\">\n <fs-label class=\"fs-form-label\">{{label}}</fs-label>\n </ng-container>\n <ng-template #labelContent>\n <fs-label *ngIf=\"labels.length\" class=\"fs-form-label\">\n <ng-content select=\"[fsFileLabel]\"></ng-content>\n </fs-label>\n </ng-template>\n <fs-file\n [accept]=\"accept\"\n (select)=\"selectFile($event)\"\n [imageWidth]=\"imageWidth\"\n [imageHeight]=\"imageHeight\"\n [imageQuality]=\"imageQuality\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\">\n <div\n class=\"wrap\"\n [style.width]=\"previewWidth\"\n [style.height]=\"previewHeight\">\n <fs-file-preview\n class=\"preview\"\n *ngIf=\"file; else preview\"\n (remove)=\"removeFile()\"\n [file]=\"file\"\n [showFilename]=\"showFilename\"\n [previewHeight]=\"null\"\n [previewWidth]=\"null\">\n <ng-template\n fs-file-preview-action\n placement=\"top-right\"\n action=\"remove\"\n tooltip=\"Remove\"\n *ngIf=\"allowRemove\"\n (click)=\"actionClick($event)\">\n <mat-icon>close</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-right\"\n tooltip=\"Reupload\"\n *ngIf=\"allowReupload\">\n <mat-icon>upload</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-left\"\n action=\"download\"\n tooltip=\"Download\"\n [hide]=\"!(allowDownload && ((download.observers.length && file) || file.url))\"\n (click)=\"downloadClicked($event)\">\n <a\n [href]=\"file.url\"\n target=\"_blank\"\n tabindex=\"-1\"\n class=\"download\">\n <mat-icon>download</mat-icon>\n </a>\n </ng-template>\n </fs-file-preview>\n\n <ng-template #preview>\n <ng-container *ngIf=\"filePickerSelectTemplate\">\n <ng-container [ngTemplateOutlet]=\"filePickerSelectTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!filePickerSelectTemplate\">\n <div class=\"select\">\n <mat-icon>upload</mat-icon>\n <div class=\"instruction\">{{instruction}}</div>\n <div class=\"mat-raised-button\">Upload</div>\n </div>\n </ng-container>\n </ng-template>\n </div>\n </fs-file>\n <fs-label-message class=\"fs-form-message\">\n <span class=\"fs-form-hint\">\n <ng-content select=\"[fsFileHint]\"></ng-content>\n <ng-content select=\"[fsFileMessageLabel]\"></ng-content>\n </span>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host .wrap{border:1px #efefef solid;border-radius:3px}:host .wrap:after{border-width:3px;border-style:dashed;border-radius:3px}:host.dragover .wrap{border-color:transparent}:host.dragover .wrap:after{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0}:host.dragover .wrap .select{border:none}:host.dragover .select button{display:none}:host.dragover .select .mat-icon{color:#07a8e6}:host ::ng-deep .percent-preview fs-file .file-label,:host ::ng-deep .percent-preview fs-file-preview{display:block}:host ::ng-deep fs-file .file-label{position:relative}:host ::ng-deep fs-file-preview{border:none;height:100%;width:100%}:host .download{color:inherit}:host .select{text-align:center;width:100%;height:100%;vertical-align:middle;padding:0 10px;justify-content:center;flex-direction:column;box-sizing:border-box;display:flex;align-items:center}:host .select mat-icon{transform:scale(1.8);color:#ddd}:host .instruction{font-size:75%;padding:12px 0;line-height:normal}\n"], components: [{ type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i1.FsLabelComponent, selector: "fs-label" }, { type: i2.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "clicked", "declined"] }, { type: i3.FsFilePreviewComponent, selector: "fs-file-preview", inputs: ["showFilename", "previewWidth", "previewHeight", "file", "url", "index", "setActions", "setActionsTemplate"], outputs: ["remove"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1.FsLabelMessageComponent, selector: "fs-label-message" }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.FsFilePreviewActionDirective, selector: "[fs-file-preview-action]", inputs: ["placement", "tooltip", "action", "hide", "for-types"], outputs: ["click"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
], queries: [{ propertyName: "filePickerSelectTemplate", first: true, predicate: FsFilePickerSelectDirective, descendants: true, read: TemplateRef }, { propertyName: "labels", predicate: FsFileLabelDirective }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fs-label-field\n class=\"fs-form-wrapper\"\n [ngClass]=\"{ 'percent-preview': previewPercent }\">\n <ng-container *ngIf=\"label; else labelContent\">\n <fs-label class=\"fs-form-label\">{{label}}</fs-label>\n </ng-container>\n <ng-template #labelContent>\n <fs-label *ngIf=\"labels.length\" class=\"fs-form-label\">\n <ng-content select=\"[fsFileLabel]\"></ng-content>\n </fs-label>\n </ng-template>\n <fs-file\n [accept]=\"accept\"\n (select)=\"selectFile($event)\"\n [imageWidth]=\"imageWidth\"\n [imageHeight]=\"imageHeight\"\n [imageQuality]=\"imageQuality\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\">\n <div\n class=\"wrap\"\n [style.width]=\"previewWidth\"\n [style.height]=\"previewHeight\">\n <fs-file-preview\n class=\"preview\"\n *ngIf=\"file; else preview\"\n (remove)=\"removeFile()\"\n [file]=\"file\"\n [showFilename]=\"showFilename\"\n [previewHeight]=\"null\"\n [previewWidth]=\"null\">\n <ng-template\n fs-file-preview-action\n placement=\"top-right\"\n action=\"remove\"\n tooltip=\"Remove\"\n *ngIf=\"allowRemove\"\n (click)=\"actionClick($event)\">\n <mat-icon>close</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-right\"\n tooltip=\"Reupload\"\n *ngIf=\"allowReupload\">\n <mat-icon>upload</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-left\"\n action=\"download\"\n tooltip=\"Download\"\n [hide]=\"!(allowDownload && ((download.observers.length && file) || file.url))\"\n (click)=\"downloadClicked($event)\">\n <a\n [href]=\"file.url\"\n target=\"_blank\"\n tabindex=\"-1\"\n class=\"download\">\n <mat-icon>download</mat-icon>\n </a>\n </ng-template>\n </fs-file-preview>\n\n <ng-template #preview>\n <ng-container *ngIf=\"filePickerSelectTemplate\">\n <ng-container [ngTemplateOutlet]=\"filePickerSelectTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!filePickerSelectTemplate\">\n <div class=\"select\">\n <mat-icon>upload</mat-icon>\n <div class=\"instruction\">{{instruction}}</div>\n <div class=\"mat-raised-button\">Upload</div>\n </div>\n </ng-container>\n </ng-template>\n </div>\n </fs-file>\n <fs-label-message class=\"fs-form-message\">\n <span class=\"fs-form-hint\">\n <ng-content select=\"[fsFileHint]\"></ng-content>\n <ng-content select=\"[fsFileMessageLabel]\"></ng-content>\n </span>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host .wrap{border:1px #efefef solid;border-radius:3px}:host .wrap:after{border-width:3px;border-style:dashed;border-radius:3px}:host.dragover .wrap{border-color:transparent}:host.dragover .wrap:after{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0}:host.dragover .wrap .select{border:none}:host.dragover .select button{display:none}:host.dragover .select .mat-icon{color:#07a8e6}:host ::ng-deep .percent-preview fs-file .file-label,:host ::ng-deep .percent-preview fs-file-preview{display:block}:host ::ng-deep fs-file .file-label{position:relative}:host ::ng-deep fs-file-preview{border:none;height:100%;width:100%}:host .download{color:inherit}:host .select{text-align:center;width:100%;height:100%;vertical-align:middle;padding:0 10px;justify-content:center;flex-direction:column;box-sizing:border-box;display:flex;align-items:center}:host .select mat-icon{transform:scale(1.8);color:#ddd}:host .instruction{font-size:75%;padding:12px 0;line-height:normal}\n"], components: [{ type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i1.FsLabelComponent, selector: "fs-label" }, { type: i2.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "clicked", "declined"] }, { type: i3.FsFilePreviewComponent, selector: "fs-file-preview", inputs: ["showFilename", "previewWidth", "previewHeight", "file", "url", "index", "showActionOn", "setActions", "setActionsTemplate"], outputs: ["remove"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1.FsLabelMessageComponent, selector: "fs-label-message" }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.FsFilePreviewActionDirective, selector: "[fs-file-preview-action]", inputs: ["placement", "tooltip", "action", "hide", "for-types"], outputs: ["click"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFilePickerComponent, decorators: [{

@@ -154,0 +154,0 @@ type: Component,

@@ -1,2 +0,2 @@

import { EventEmitter, Component, Input, Output, ChangeDetectionStrategy, } from '@angular/core';
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
import { isArray } from 'lodash-es';

@@ -18,2 +18,3 @@ import { FsFile } from '../../models';

this.previewHeight = 150;
this.showActionOn = 'hover';
this.remove = new EventEmitter();

@@ -47,3 +48,4 @@ }

_cleanActions() {
this.actionTemplates.forEach(action => {
this.actionTemplates
.forEach(action => {
if (action.forTypes) {

@@ -67,3 +69,3 @@ // save original type

FsFilePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFilePreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
FsFilePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FsFilePreviewComponent, selector: "fs-file-preview", inputs: { showFilename: "showFilename", previewWidth: "previewWidth", previewHeight: "previewHeight", file: "file", url: "url", index: "index", setActions: "setActions", setActionsTemplate: "setActionsTemplate" }, outputs: { remove: "remove" }, usesInheritance: true, ngImport: i0, template: "<div\n [style.width.px]=\"previewWidth\"\n [style.height.px]=\"previewHeight\"\n class=\"preview-container\"\n [ngClass]=\"{ \n 'has-actions': !!actions.length, \n 'type-image': file.typeImage && file.exists\n }\">\n\n <!-- Image container -->\n <ng-container \n *ngIf=\"file?.exists && file.typeImage; else nonImage\">\n <ng-container *ngIf=\"(file | fsFileSrc | async) as src\">\n <img \n [src]=\"src\" \n [ngClass]=\"{ loaded: this.loaded }\"\n (load)=\"previewLoaded()\">\n </ng-container>\n </ng-container>\n\n <!-- Non image container -->\n <ng-template #nonImage>\n <div class=\"file-details\">\n <div class=\"file-icon\">\n <div class=\"file-ext\">{{file.extension}}</div>\n <mat-icon>insert_drive_file</mat-icon>\n </div>\n <div class=\"file-name\" [matTooltip]=\"file.name\" *ngIf=\"showFilename && file.name\">{{file.name}}</div>\n </div>\n </ng-template>\n\n <div class=\"actions\">\n <ng-container *ngFor=\"let action of actionTemplates; let index = index\">\n <div\n class=\"action mat-mini-fab mat-primary\"\n *ngIf=\"!action.hide\"\n [ngClass]=\"{ hide: action.hide }\"\n [class]=\"action.placement\"\n [matTooltip]=\"action.tooltip\"\n (click)=\"callAction($event, action, index)\">\n <span class=\"mat-button-wrapper\">\n <ng-template [ngTemplateOutlet]=\"actionTemplateRefs[index]\"></ng-template>\n </span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"spinner\">\n <mat-spinner *ngIf=\"file.progress\" [diameter]=\"30\"></mat-spinner>\n </div>\n\n <ng-content></ng-content>\n</div>", styles: [":host{border:1px #efefef solid;display:inline-block;position:relative;vertical-align:top;overflow:hidden;border-radius:3px}:host .file-details{flex-direction:column;display:flex;align-items:center;padding:5px}:host .file-details .file-icon{position:relative}:host .file-details .file-ext{font-weight:bold;text-align:center;text-transform:uppercase;font-size:20px;position:absolute;width:100%;bottom:28px;color:#fff}:host .file-details mat-icon{font-size:90px;width:90px;height:90px;color:#ccc}:host .file-details .file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px;font-size:75%;text-align:center;width:100%}:host .preview-container{overflow:hidden;box-sizing:border-box;margin:auto;display:flex;justify-content:center;align-items:center;flex-grow:1;height:100%}:host .preview-container.type-image{background-image:linear-gradient(to right,rgba(255,255,255,.75),rgba(255,255,255,.75)),linear-gradient(to right,black 50%,white 50%),linear-gradient(to bottom,black 50%,white 50%);background-blend-mode:normal,difference,normal;background-size:20px 20px}:host .actions{position:absolute;width:100%;height:100%;top:0;left:0}:host .actions .action{position:absolute;cursor:pointer}:host .actions .action.hide{display:none}:host:hover .actions,:host:focus .actions{display:block}:host img{display:block;object-fit:cover;width:100%;height:100%}:host .mat-button-wrapper{padding:0;line-height:15px!important}:host .spinner{position:absolute;top:50%;left:50%;margin-left:-25%;margin-top:-25%}img{opacity:0}img.loaded{opacity:1}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i3.AsyncPipe, "fsFileSrc": i5.FsFileSrcPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
FsFilePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FsFilePreviewComponent, selector: "fs-file-preview", inputs: { showFilename: "showFilename", previewWidth: "previewWidth", previewHeight: "previewHeight", file: "file", url: "url", index: "index", showActionOn: "showActionOn", setActions: "setActions", setActionsTemplate: "setActionsTemplate" }, outputs: { remove: "remove" }, usesInheritance: true, ngImport: i0, template: "<div\n [style.width.px]=\"previewWidth\"\n [style.height.px]=\"previewHeight\"\n class=\"preview-container\"\n [ngClass]=\"{ \n 'has-actions': !!actions.length, \n 'type-image': file.typeImage && file.exists,\n 'loaded': loaded,\n 'show-action-always': showActionOn === 'always'\n }\">\n\n <!-- Image container -->\n <ng-container \n *ngIf=\"file?.exists && file.typeImage; else nonImage\">\n <ng-container *ngIf=\"(file | fsFileSrc:previewWidth:previewHeight | async) as src\">\n <img \n [src]=\"src\" \n [ngClass]=\"{ loaded: this.loaded }\"\n (load)=\"previewLoaded()\">\n </ng-container>\n\n <ng-container *ngIf=\"!loaded\">\n <div class=\"loader\"></div>\n </ng-container>\n </ng-container>\n\n <!-- Non image container -->\n <ng-template #nonImage>\n <div class=\"file-details\">\n <div class=\"file-icon\">\n <div class=\"file-ext\">{{file.extension}}</div>\n <mat-icon>insert_drive_file</mat-icon>\n </div>\n <div class=\"file-name\" [matTooltip]=\"file.name\" *ngIf=\"showFilename && file.name\">{{file.name}}</div>\n </div>\n </ng-template>\n\n <div class=\"actions\">\n <ng-container *ngFor=\"let action of actionTemplates; let index = index\">\n <div\n class=\"action mat-mini-fab mat-primary\"\n *ngIf=\"!action.hide\"\n [class]=\"action.placement\"\n [matTooltip]=\"action.tooltip\"\n (click)=\"callAction($event, action, index)\">\n <span class=\"mat-button-wrapper\">\n <ng-template [ngTemplateOutlet]=\"actionTemplateRefs[index]\"></ng-template>\n </span>\n </div>\n </ng-container>\n </div>\n\n <div class=\"spinner\">\n <mat-spinner *ngIf=\"file.progress\" [diameter]=\"30\"></mat-spinner>\n </div>\n\n <ng-content></ng-content>\n</div>", styles: [":host{border:1px #efefef solid;display:inline-block;position:relative;vertical-align:top;overflow:hidden;border-radius:3px}:host .file-details{flex-direction:column;display:flex;align-items:center;padding:5px}:host .file-details .file-icon{position:relative}:host .file-details .file-ext{font-weight:bold;text-align:center;text-transform:uppercase;font-size:20px;position:absolute;width:100%;bottom:28px;color:#fff}:host .file-details mat-icon{font-size:90px;width:90px;height:90px;color:#ccc}:host .file-details .file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px;font-size:75%;text-align:center;width:100%}:host .preview-container.show-action-always .actions .action.top-left,:host .preview-container:hover .actions .action.top-left,:host .preview-container:focus .actions .action.top-left{top:8px;left:8px}:host .preview-container.show-action-always .actions .action.top-right,:host .preview-container:hover .actions .action.top-right,:host .preview-container:focus .actions .action.top-right{top:8px;right:8px}:host .preview-container.show-action-always .actions .action.bottom-left,:host .preview-container:hover .actions .action.bottom-left,:host .preview-container:focus .actions .action.bottom-left{bottom:8px;left:8px}:host .preview-container.show-action-always .actions .action.bottom-right,:host .preview-container:hover .actions .action.bottom-right,:host .preview-container:focus .actions .action.bottom-right{bottom:8px;right:8px}:host .preview-container{overflow:hidden;box-sizing:border-box;margin:auto;display:flex;justify-content:center;align-items:center;flex-grow:1;height:100%}:host .preview-container.type-image{background-image:linear-gradient(to right,rgba(255,255,255,.75),rgba(255,255,255,.75)),linear-gradient(to right,black 50%,white 50%),linear-gradient(to bottom,black 50%,white 50%);background-blend-mode:normal,difference,normal;background-size:20px 20px}:host .preview-container:not(.loaded){background:none}:host .actions{position:absolute;width:100%;height:100%;top:0;left:0}@media only screen and (max-width: 767.98px){:host .actions{display:block}}@media only screen and (min-width: 768px){:host .actions .action.top-left,:host .actions .action.top-right,:host .actions .action.bottom-left,:host .actions .action.bottom-right{transition:top .3s,bottom .3s,left .3s,right .3s}:host .actions .action.top-left{top:-50px;left:-50px}:host .actions .action.top-right{top:-50px;right:-50px}:host .actions .action.bottom-left{bottom:-50px;left:-50px}:host .actions .action.bottom-right{bottom:-50px;right:-50px}}:host .actions .action{position:absolute;cursor:pointer}:host .actions .action.hide{display:none}:host:hover .actions,:host:focus .actions{display:block}:host img{display:block;object-fit:cover;width:100%;height:100%}:host .mat-button-wrapper{padding:0;line-height:15px!important}:host .spinner{position:absolute;top:50%;left:50%;margin-left:-25%;margin-top:-25%}img{opacity:0}img.loaded{opacity:1}.loader{width:50%;height:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loader:after{content:\" \";display:block;width:100%;height:100%;border-radius:50%;border:6px solid #ccc;border-color:#ccc transparent #ccc transparent;animation:lds-dual-ring 1.2s linear infinite;box-sizing:border-box}@keyframes lds-dual-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i3.AsyncPipe, "fsFileSrc": i5.FsFileSrcPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFilePreviewComponent, decorators: [{

@@ -89,2 +91,4 @@ type: Component,

type: Input
}], showActionOn: [{
type: Input
}], setActions: [{

@@ -97,2 +101,2 @@ type: Input

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXByZXZpZXcvZnMtZmlsZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXByZXZpZXcvZnMtZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBRU4sdUJBQXVCLEdBRXhCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztBQVMzRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMkJBQTJCO0lBTnZFOztRQVFTLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFYixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNiLGlCQUFZLEdBQW9CLEdBQUcsQ0FBQztRQUNwQyxrQkFBYSxHQUFvQixHQUFHLENBQUM7UUFhcEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFzRCxDQUFDO0tBOENsRztJQXREQyxJQUFhLFVBQVUsQ0FBQyxLQUFLO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsa0JBQWtCLENBQUMsS0FBSztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFJTSxRQUFRO1FBQ2IsSUFBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQWtCLEVBQUUsTUFBTSxFQUFFLEtBQUs7UUFDakQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM3RDtJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDbkIscUJBQXFCO2dCQUNyQixNQUFNLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFFLE1BQU0sS0FBSyxHQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVsRiwyQkFBMkI7Z0JBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNyQyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3BELE1BQU0sT0FBTyxHQUFHLFFBQVEsS0FBSyxnQkFBZ0IsSUFBSSxDQUFDLFdBQVcsS0FBSyxtQkFBbUIsSUFBSSxXQUFXLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBRTlHLElBQUksQ0FBQyxPQUFPLEVBQUU7d0JBQ1osTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7d0JBQ25CLE1BQU07cUJBQ1A7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBaEVVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLG1VQ3RCbkMsbXJEQW9ETTs0RkQ5Qk8sc0JBQXNCO2tCQU5sQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUM3QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBS1UsWUFBWTtzQkFBcEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxHQUFHO3NCQUFsQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBSVcsTUFBTTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEZzRmlsZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBGc0ZpbGVQcmV2aWV3c0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi9mcy1maWxlLXByZXZpZXctYmFzZS9mcy1maWxlLXByZXZpZXctYmFzZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtZmlsZS1wcmV2aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICdmcy1maWxlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZnMtZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbGVQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgRnNGaWxlUHJldmlld3NCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0IHtcblxuICBwdWJsaWMgbG9hZGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2hvd0ZpbGVuYW1lID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHByZXZpZXdXaWR0aDogc3RyaW5nIHwgbnVtYmVyID0gMTUwO1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlld0hlaWdodDogc3RyaW5nIHwgbnVtYmVyID0gMTUwO1xuICBASW5wdXQoKSBwdWJsaWMgZmlsZTogRnNGaWxlO1xuICBASW5wdXQoKSBwdWJsaWMgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbmRleDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHNldCBzZXRBY3Rpb25zKHZhbHVlKSB7XG4gICAgdGhpcy5hY3Rpb25zLnB1c2goLi4udmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNldEFjdGlvbnNUZW1wbGF0ZSh2YWx1ZSkge1xuICAgIHRoaXMuYWN0aW9uc1RlbXBsYXRlLnB1c2goLi4udmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IE1vdXNlRXZlbnQsIGZpbGU6IEZzRmlsZSwgaW5kZXg6IG51bWJlciB9PigpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZih0aGlzLnVybCkge1xuICAgICAgdGhpcy5maWxlID0gbmV3IEZzRmlsZSh0aGlzLnVybCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9jbGVhbkFjdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aWV3TG9hZGVkKCkge1xuICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsQWN0aW9uKCRldmVudDogTW91c2VFdmVudCwgYWN0aW9uLCBpbmRleCkge1xuICAgIGlmIChhY3Rpb24uY2xpY2spIHtcbiAgICAgIGFjdGlvbi5jbGljay5lbWl0KHsgZXZlbnQ6ICRldmVudCwgZmlsZTogdGhpcy5maWxlLCBpbmRleCB9KTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aW9uLmFjdGlvbiA9PSAncmVtb3ZlJykge1xuICAgICAgdGhpcy5yZW1vdmUuZW1pdCh7IGV2ZW50OiAkZXZlbnQsIGZpbGU6IHRoaXMuZmlsZSwgaW5kZXggfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW5BY3Rpb25zKCkge1xuICAgIHRoaXMuYWN0aW9uVGVtcGxhdGVzLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgIGlmIChhY3Rpb24uZm9yVHlwZXMpIHtcbiAgICAgICAgLy8gc2F2ZSBvcmlnaW5hbCB0eXBlXG4gICAgICAgIGNvbnN0IFtvcmlnaW5hbEZpbGVUeXBlLCBvcmlnaW5hbENvbnRlbnRUeXBlXSA9IHRoaXMuZmlsZS50eXBlLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IHR5cGVzOiBhbnkgPSBpc0FycmF5KGFjdGlvbi5mb3JUeXBlcykgPyBhY3Rpb24uZm9yVHlwZXMgOiBbYWN0aW9uLmZvclR5cGVzXTtcblxuICAgICAgICAvLyBMb29raW5nIGZvciBhbGxvd2VkIHR5cGVcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IFtmaWxlVHlwZSwgY29udGVudFR5cGVdID0gdHlwZXNbaV0uc3BsaXQoJy8nKTtcbiAgICAgICAgICBjb25zdCBhbGxvd2VkID0gZmlsZVR5cGUgPT09IG9yaWdpbmFsRmlsZVR5cGUgJiYgKGNvbnRlbnRUeXBlID09PSBvcmlnaW5hbENvbnRlbnRUeXBlIHx8IGNvbnRlbnRUeXBlID09PSAnKicpO1xuXG4gICAgICAgICAgaWYgKCFhbGxvd2VkKSB7XG4gICAgICAgICAgICBhY3Rpb24uaGlkZSA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJwcmV2aWV3V2lkdGhcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicHJldmlld0hlaWdodFwiXG4gICAgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwieyBcbiAgICAgICdoYXMtYWN0aW9ucyc6ICEhYWN0aW9ucy5sZW5ndGgsIFxuICAgICAgJ3R5cGUtaW1hZ2UnOiBmaWxlLnR5cGVJbWFnZSAmJiBmaWxlLmV4aXN0c1xuICAgIH1cIj5cblxuICA8IS0tIEltYWdlIGNvbnRhaW5lciAtLT5cbiAgPG5nLWNvbnRhaW5lciBcbiAgICAgICpuZ0lmPVwiZmlsZT8uZXhpc3RzICYmIGZpbGUudHlwZUltYWdlOyBlbHNlIG5vbkltYWdlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihmaWxlIHwgZnNGaWxlU3JjIHwgYXN5bmMpIGFzIHNyY1wiPlxuICAgICAgPGltZyBcbiAgICAgICAgW3NyY109XCJzcmNcIiBcbiAgICAgICAgW25nQ2xhc3NdPVwieyBsb2FkZWQ6IHRoaXMubG9hZGVkIH1cIlxuICAgICAgICAobG9hZCk9XCJwcmV2aWV3TG9hZGVkKClcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBOb24gaW1hZ2UgY29udGFpbmVyIC0tPlxuICA8bmctdGVtcGxhdGUgI25vbkltYWdlPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWRldGFpbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWljb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtZXh0XCI+e3tmaWxlLmV4dGVuc2lvbn19PC9kaXY+XG4gICAgICAgIDxtYXQtaWNvbj5pbnNlcnRfZHJpdmVfZmlsZTwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW5hbWVcIiBbbWF0VG9vbHRpcF09XCJmaWxlLm5hbWVcIiAqbmdJZj1cInNob3dGaWxlbmFtZSAmJiBmaWxlLm5hbWVcIj57e2ZpbGUubmFtZX19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uVGVtcGxhdGVzOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9uIG1hdC1taW5pLWZhYiBtYXQtcHJpbWFyeVwiXG4gICAgICAgICAgKm5nSWY9XCIhYWN0aW9uLmhpZGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGlkZTogYWN0aW9uLmhpZGUgfVwiXG4gICAgICAgICAgW2NsYXNzXT1cImFjdGlvbi5wbGFjZW1lbnRcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cImFjdGlvbi50b29sdGlwXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2FsbEFjdGlvbigkZXZlbnQsIGFjdGlvbiwgaW5kZXgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvblRlbXBsYXRlUmVmc1tpbmRleF1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cbiAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJmaWxlLnByb2dyZXNzXCIgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXByZXZpZXcvZnMtZmlsZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXByZXZpZXcvZnMtZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztBQVMzRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMkJBQTJCO0lBTnZFOztRQVFTLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFYixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNiLGlCQUFZLEdBQVcsR0FBRyxDQUFDO1FBQzNCLGtCQUFhLEdBQVcsR0FBRyxDQUFDO1FBSTVCLGlCQUFZLEdBQXVCLE9BQU8sQ0FBQztRQVUxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXNELENBQUM7S0ErQ2xHO0lBdkRDLElBQWEsVUFBVSxDQUFDLEtBQUs7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBYSxrQkFBa0IsQ0FBQyxLQUFLO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUlNLFFBQVE7UUFD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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRnNGaWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZzRmlsZVByZXZpZXdzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2ZzLWZpbGUtcHJldmlldy1iYXNlL2ZzLWZpbGUtcHJldmlldy1iYXNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1maWxlLXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ2ZzLWZpbGUtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmcy1maWxlLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsZVByZXZpZXdDb21wb25lbnQgZXh0ZW5kcyBGc0ZpbGVQcmV2aWV3c0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQge1xuXG4gIHB1YmxpYyBsb2FkZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzaG93RmlsZW5hbWUgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlld1dpZHRoOiBudW1iZXIgPSAxNTA7XG4gIEBJbnB1dCgpIHB1YmxpYyBwcmV2aWV3SGVpZ2h0OiBudW1iZXIgPSAxNTA7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWxlOiBGc0ZpbGU7XG4gIEBJbnB1dCgpIHB1YmxpYyB1cmw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QWN0aW9uT246ICdob3ZlcicgfCAnYWx3YXlzJyA9ICdob3Zlcic7XG5cbiAgQElucHV0KCkgc2V0IHNldEFjdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLmFjdGlvbnMucHVzaCguLi52YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2V0QWN0aW9uc1RlbXBsYXRlKHZhbHVlKSB7XG4gICAgdGhpcy5hY3Rpb25zVGVtcGxhdGUucHVzaCguLi52YWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBldmVudDogTW91c2VFdmVudCwgZmlsZTogRnNGaWxlLCBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVybCkge1xuICAgICAgdGhpcy5maWxlID0gbmV3IEZzRmlsZSh0aGlzLnVybCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9jbGVhbkFjdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aWV3TG9hZGVkKCkge1xuICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsQWN0aW9uKCRldmVudDogTW91c2VFdmVudCwgYWN0aW9uLCBpbmRleCkge1xuICAgIGlmIChhY3Rpb24uY2xpY2spIHtcbiAgICAgIGFjdGlvbi5jbGljay5lbWl0KHsgZXZlbnQ6ICRldmVudCwgZmlsZTogdGhpcy5maWxlLCBpbmRleCB9KTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aW9uLmFjdGlvbiA9PSAncmVtb3ZlJykge1xuICAgICAgdGhpcy5yZW1vdmUuZW1pdCh7IGV2ZW50OiAkZXZlbnQsIGZpbGU6IHRoaXMuZmlsZSwgaW5kZXggfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW5BY3Rpb25zKCkge1xuICAgIHRoaXMuYWN0aW9uVGVtcGxhdGVzXG4gICAgICAuZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgICAgICBpZiAoYWN0aW9uLmZvclR5cGVzKSB7XG4gICAgICAgICAgLy8gc2F2ZSBvcmlnaW5hbCB0eXBlXG4gICAgICAgICAgY29uc3QgW29yaWdpbmFsRmlsZVR5cGUsIG9yaWdpbmFsQ29udGVudFR5cGVdID0gdGhpcy5maWxlLnR5cGUuc3BsaXQoJy8nKTtcbiAgICAgICAgICBjb25zdCB0eXBlczogYW55ID0gaXNBcnJheShhY3Rpb24uZm9yVHlwZXMpID8gYWN0aW9uLmZvclR5cGVzIDogW2FjdGlvbi5mb3JUeXBlc107XG5cbiAgICAgICAgICAvLyBMb29raW5nIGZvciBhbGxvd2VkIHR5cGVcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBbZmlsZVR5cGUsIGNvbnRlbnRUeXBlXSA9IHR5cGVzW2ldLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICBjb25zdCBhbGxvd2VkID0gZmlsZVR5cGUgPT09IG9yaWdpbmFsRmlsZVR5cGUgJiYgKGNvbnRlbnRUeXBlID09PSBvcmlnaW5hbENvbnRlbnRUeXBlIHx8IGNvbnRlbnRUeXBlID09PSAnKicpO1xuXG4gICAgICAgICAgICBpZiAoIWFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgYWN0aW9uLmhpZGUgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInByZXZpZXdXaWR0aFwiXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJwcmV2aWV3SGVpZ2h0XCJcbiAgICBjbGFzcz1cInByZXZpZXctY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7IFxuICAgICAgJ2hhcy1hY3Rpb25zJzogISFhY3Rpb25zLmxlbmd0aCwgXG4gICAgICAndHlwZS1pbWFnZSc6IGZpbGUudHlwZUltYWdlICYmIGZpbGUuZXhpc3RzLFxuICAgICAgJ2xvYWRlZCc6IGxvYWRlZCxcbiAgICAgICdzaG93LWFjdGlvbi1hbHdheXMnOiBzaG93QWN0aW9uT24gPT09ICdhbHdheXMnXG4gICAgfVwiPlxuXG4gIDwhLS0gSW1hZ2UgY29udGFpbmVyIC0tPlxuICA8bmctY29udGFpbmVyIFxuICAgICAgKm5nSWY9XCJmaWxlPy5leGlzdHMgJiYgZmlsZS50eXBlSW1hZ2U7IGVsc2Ugbm9uSW1hZ2VcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGZpbGUgfCBmc0ZpbGVTcmM6cHJldmlld1dpZHRoOnByZXZpZXdIZWlnaHQgfCBhc3luYykgYXMgc3JjXCI+XG4gICAgICA8aW1nIFxuICAgICAgICBbc3JjXT1cInNyY1wiIFxuICAgICAgICBbbmdDbGFzc109XCJ7IGxvYWRlZDogdGhpcy5sb2FkZWQgfVwiXG4gICAgICAgIChsb2FkKT1cInByZXZpZXdMb2FkZWQoKVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2FkZXJcIj48L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBOb24gaW1hZ2UgY29udGFpbmVyIC0tPlxuICA8bmctdGVtcGxhdGUgI25vbkltYWdlPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWRldGFpbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWljb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtZXh0XCI+e3tmaWxlLmV4dGVuc2lvbn19PC9kaXY+XG4gICAgICAgIDxtYXQtaWNvbj5pbnNlcnRfZHJpdmVfZmlsZTwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW5hbWVcIiBbbWF0VG9vbHRpcF09XCJmaWxlLm5hbWVcIiAqbmdJZj1cInNob3dGaWxlbmFtZSAmJiBmaWxlLm5hbWVcIj57e2ZpbGUubmFtZX19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uVGVtcGxhdGVzOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9uIG1hdC1taW5pLWZhYiBtYXQtcHJpbWFyeVwiXG4gICAgICAgICAgKm5nSWY9XCIhYWN0aW9uLmhpZGVcIlxuICAgICAgICAgIFtjbGFzc109XCJhY3Rpb24ucGxhY2VtZW50XCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNhbGxBY3Rpb24oJGV2ZW50LCBhY3Rpb24sIGluZGV4KVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1idXR0b24td3JhcHBlclwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb25UZW1wbGF0ZVJlZnNbaW5kZXhdXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+XG4gICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiZmlsZS5wcm9ncmVzc1wiIFtkaWFtZXRlcl09XCIzMFwiPjwvbWF0LXNwaW5uZXI+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==

@@ -1,2 +0,2 @@

import { ChangeDetectionStrategy, Component, HostBinding, Input, Output, EventEmitter, } from '@angular/core';
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, } from '@angular/core';
import { FsFilePreviewsBaseComponent } from '../fs-file-preview-base/fs-file-preview-base';

@@ -12,2 +12,3 @@ import * as i0 from "@angular/core";

this.previewHeight = 150;
this.showActionOn = 'hover';
this.removed = new EventEmitter();

@@ -25,3 +26,3 @@ this.queue = true;

FsFilePreviewsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFilePreviewsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
FsFilePreviewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FsFilePreviewsComponent, selector: "fs-file-previews", inputs: { files: "files", mapFile: "mapFile", previewWidth: "previewWidth", previewHeight: "previewHeight" }, outputs: { removed: "removed" }, host: { properties: { "class.queue": "this.queue" } }, usesInheritance: true, ngImport: i0, template: "<fs-file-preview\n *ngFor=\"let file of files; let index = index\"\n [file]=\"file | filePreviewMapFile:mapFile\"\n [previewWidth]=\"previewWidth\"\n [actionTemplates]=\"actionTemplates\"\n [actionTemplateRefs]=\"actionTemplateRefs\"\n [previewHeight]=\"previewHeight\"\n [index]=\"index\"\n (remove)=\"removeFile($event)\"\n class=\"preview\">\n</fs-file-preview>\n", components: [{ type: i1.FsFilePreviewComponent, selector: "fs-file-preview", inputs: ["showFilename", "previewWidth", "previewHeight", "file", "url", "index", "setActions", "setActionsTemplate"], outputs: ["remove"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "filePreviewMapFile": i3.FilePreviewMapFilePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
FsFilePreviewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FsFilePreviewsComponent, selector: "fs-file-previews", inputs: { files: "files", mapFile: "mapFile", previewWidth: "previewWidth", previewHeight: "previewHeight", showActionOn: "showActionOn" }, outputs: { removed: "removed" }, host: { properties: { "class.queue": "this.queue" } }, usesInheritance: true, ngImport: i0, template: "<fs-file-preview\n *ngFor=\"let file of files; let index = index\"\n [file]=\"file | filePreviewMapFile:mapFile\"\n [previewWidth]=\"previewWidth\"\n [actionTemplates]=\"actionTemplates\"\n [actionTemplateRefs]=\"actionTemplateRefs\"\n [previewHeight]=\"previewHeight\"\n [index]=\"index\"\n [showActionOn]=\"showActionOn\"\n (remove)=\"removeFile($event)\"\n class=\"preview\">\n</fs-file-preview>\n", components: [{ type: i1.FsFilePreviewComponent, selector: "fs-file-preview", inputs: ["showFilename", "previewWidth", "previewHeight", "file", "url", "index", "showActionOn", "setActions", "setActionsTemplate"], outputs: ["remove"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "filePreviewMapFile": i3.FilePreviewMapFilePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFilePreviewsComponent, decorators: [{

@@ -42,2 +43,4 @@ type: Component,

type: Input
}], showActionOn: [{
type: Input
}], removed: [{

@@ -49,2 +52,2 @@ type: Output

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1wcmV2aWV3cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZnMtZmlsZS1wcmV2aWV3cy9mcy1maWxlLXByZXZpZXdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXByZXZpZXdzL2ZzLWZpbGUtcHJldmlld3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7OztBQVMzRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMkJBQTJCO0lBTHhFOztRQVNrQixpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUNuQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUVuQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsQixVQUFLLEdBQUcsSUFBSSxDQUFDO0tBUzFDO0lBUFEsVUFBVSxDQUFDLElBQUk7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7O3FIQWpCVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixxUkNsQnBDLHlYQVdBOzRGRE9hLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBR2lCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBRVcsT0FBTztzQkFBdkIsTUFBTTtnQkFFcUIsS0FBSztzQkFBaEMsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZzRmlsZVByZXZpZXdzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2ZzLWZpbGUtcHJldmlldy1iYXNlL2ZzLWZpbGUtcHJldmlldy1iYXNlJztcbmltcG9ydCB7IEZzRmlsZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtZmlsZS1wcmV2aWV3cycsXG4gIHRlbXBsYXRlVXJsOiAnZnMtZmlsZS1wcmV2aWV3cy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbGVQcmV2aWV3c0NvbXBvbmVudCBleHRlbmRzIEZzRmlsZVByZXZpZXdzQmFzZUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIGZpbGVzOiBGc0ZpbGVbXSB8IGFueVtdO1xuICBASW5wdXQoKSBwdWJsaWMgbWFwRmlsZTogKGZpbGU6IGFueSkgPT4gRnNGaWxlO1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlld1dpZHRoID0gMTUwO1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlld0hlaWdodCA9IDE1MDtcblxuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xdWV1ZScpIHF1ZXVlID0gdHJ1ZTtcblxuICBwdWJsaWMgcmVtb3ZlRmlsZShkYXRhKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZGF0YS5maWxlKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5yZW1vdmVkLmVtaXQodGhpcy5maWxlcyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZnMtZmlsZS1wcmV2aWV3XG4gICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gIFtmaWxlXT1cImZpbGUgfCBmaWxlUHJldmlld01hcEZpbGU6bWFwRmlsZVwiXG4gIFtwcmV2aWV3V2lkdGhdPVwicHJldmlld1dpZHRoXCJcbiAgW2FjdGlvblRlbXBsYXRlc109XCJhY3Rpb25UZW1wbGF0ZXNcIlxuICBbYWN0aW9uVGVtcGxhdGVSZWZzXT1cImFjdGlvblRlbXBsYXRlUmVmc1wiXG4gIFtwcmV2aWV3SGVpZ2h0XT1cInByZXZpZXdIZWlnaHRcIlxuICBbaW5kZXhdPVwiaW5kZXhcIlxuICAocmVtb3ZlKT1cInJlbW92ZUZpbGUoJGV2ZW50KVwiXG4gIGNsYXNzPVwicHJldmlld1wiPlxuPC9mcy1maWxlLXByZXZpZXc+XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1wcmV2aWV3cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZnMtZmlsZS1wcmV2aWV3cy9mcy1maWxlLXByZXZpZXdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXByZXZpZXdzL2ZzLWZpbGUtcHJldmlld3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7OztBQVEzRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMkJBQTJCO0lBTHhFOztRQVNrQixpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUNuQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQixpQkFBWSxHQUF1QixPQUFPLENBQUM7UUFFMUMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEIsVUFBSyxHQUFHLElBQUksQ0FBQztLQVMxQztJQVBRLFVBQVUsQ0FBQyxJQUFJO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDOztxSEFsQlUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsbVRDbEJwQyw0WkFZQTs0RkRNYSx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUdpQixLQUFLO3NCQUFwQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRVcsT0FBTztzQkFBdkIsTUFBTTtnQkFFcUIsS0FBSztzQkFBaEMsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZzRmlsZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBGc0ZpbGVQcmV2aWV3c0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi9mcy1maWxlLXByZXZpZXctYmFzZS9mcy1maWxlLXByZXZpZXctYmFzZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtZmlsZS1wcmV2aWV3cycsXG4gIHRlbXBsYXRlVXJsOiAnZnMtZmlsZS1wcmV2aWV3cy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbGVQcmV2aWV3c0NvbXBvbmVudCBleHRlbmRzIEZzRmlsZVByZXZpZXdzQmFzZUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIGZpbGVzOiBGc0ZpbGVbXSB8IGFueVtdO1xuICBASW5wdXQoKSBwdWJsaWMgbWFwRmlsZTogKGZpbGU6IGFueSkgPT4gRnNGaWxlO1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlld1dpZHRoID0gMTUwO1xuICBASW5wdXQoKSBwdWJsaWMgcHJldmlld0hlaWdodCA9IDE1MDtcbiAgQElucHV0KCkgcHVibGljIHNob3dBY3Rpb25PbjogJ2hvdmVyJyB8ICdhbHdheXMnID0gJ2hvdmVyJztcblxuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xdWV1ZScpIHF1ZXVlID0gdHJ1ZTtcblxuICBwdWJsaWMgcmVtb3ZlRmlsZShkYXRhKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZGF0YS5maWxlKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5yZW1vdmVkLmVtaXQodGhpcy5maWxlcyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZnMtZmlsZS1wcmV2aWV3XG4gICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gIFtmaWxlXT1cImZpbGUgfCBmaWxlUHJldmlld01hcEZpbGU6bWFwRmlsZVwiXG4gIFtwcmV2aWV3V2lkdGhdPVwicHJldmlld1dpZHRoXCJcbiAgW2FjdGlvblRlbXBsYXRlc109XCJhY3Rpb25UZW1wbGF0ZXNcIlxuICBbYWN0aW9uVGVtcGxhdGVSZWZzXT1cImFjdGlvblRlbXBsYXRlUmVmc1wiXG4gIFtwcmV2aWV3SGVpZ2h0XT1cInByZXZpZXdIZWlnaHRcIlxuICBbaW5kZXhdPVwiaW5kZXhcIlxuICBbc2hvd0FjdGlvbk9uXT1cInNob3dBY3Rpb25PblwiXG4gIChyZW1vdmUpPVwicmVtb3ZlRmlsZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJwcmV2aWV3XCI+XG48L2ZzLWZpbGUtcHJldmlldz5cbiJdfQ==

@@ -29,2 +29,2 @@ import { Directive, EventEmitter, Input, Output } from '@angular/core';

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1wcmV2aWV3LWFjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2RpcmVjdGl2ZXMvZnMtZmlsZS1wcmV2aWV3LWFjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLDRCQUE0QjtJQUh6QztRQVdtQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQXlDLENBQUM7S0FDcEY7OzBIQVRZLDRCQUE0Qjs4R0FBNUIsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtpQkFDckM7OEJBR2lCLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ3FCLFFBQVE7c0JBQWxDLEtBQUs7dUJBQUMsV0FBVztnQkFFRCxLQUFLO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGc0ZpbGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmcy1maWxlLXByZXZpZXctYWN0aW9uXSdcbn0pXG5leHBvcnQgY2xhc3MgRnNGaWxlUHJldmlld0FjdGlvbkRpcmVjdGl2ZSB7XG5cbiAgQElucHV0KCkgcHVibGljIHBsYWNlbWVudDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlOiBib29sZWFuO1xuICBASW5wdXQoJ2Zvci10eXBlcycpIHB1YmxpYyBmb3JUeXBlczogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWxlOiBGc0ZpbGUsIGV2ZW50OiBQb2ludGVyRXZlbnQgfT4oKTtcbn1cblxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1wcmV2aWV3LWFjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2RpcmVjdGl2ZXMvZnMtZmlsZS1wcmV2aWV3LWFjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPdkUsTUFBTSxPQUFPLDRCQUE0QjtJQUh6QztRQVdtQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQXlDLENBQUM7S0FDcEY7OzBIQVRZLDRCQUE0Qjs4R0FBNUIsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtpQkFDckM7OEJBR2lCLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ3FCLFFBQVE7c0JBQWxDLEtBQUs7dUJBQUMsV0FBVztnQkFFRCxLQUFLO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZzRmlsZSB9IGZyb20gJy4uL21vZGVscyc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZzLWZpbGUtcHJldmlldy1hY3Rpb25dJ1xufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbGVQcmV2aWV3QWN0aW9uRGlyZWN0aXZlIHtcblxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2VtZW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb246IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGhpZGU6IGJvb2xlYW47XG4gIEBJbnB1dCgnZm9yLXR5cGVzJykgcHVibGljIGZvclR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBAT3V0cHV0KCkgcHVibGljIGNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpbGU6IEZzRmlsZSwgZXZlbnQ6IFBvaW50ZXJFdmVudCB9PigpO1xufVxuXG4iXX0=
import { Pipe } from '@angular/core';
import { Observable, of } from 'rxjs';
import { Observable, of, throwError } from 'rxjs';
import { FsApiFile } from '@firestitch/api';
import { switchMap } from 'rxjs/operators';
import { FsFile } from '../models';
import { FsApiFile } from '@firestitch/api';
import { map } from 'rxjs/operators';
import { DomSanitizer } from '@angular/platform-browser';
import * as FileAPI from 'fileapi';
import * as i0 from "@angular/core";
import * as i1 from "@angular/platform-browser";
export class FsFileSrcPipe {
constructor(_sanitizer) {
this._sanitizer = _sanitizer;
transform(file, maxWidth, maxHeight) {
return of(null)
.pipe(switchMap(() => {
const data = this._getData(file);
if (typeof data === 'string') {
return of(data);
}
if (data instanceof FsApiFile || data instanceof Blob) {
return of(null)
.pipe(switchMap(() => {
return data instanceof FsApiFile ? data.blob : of(data);
}), switchMap((blob) => {
return new Observable((observer) => {
FileAPI.Image.transform(blob, [
{
maxWidth: maxWidth * 2,
maxHeight: maxHeight * 2,
}
], false, (err, images) => {
if (!err && images[0]) {
const canvas = images[0];
canvas.toBlob((canvasBlob) => {
observer.next(canvasBlob);
observer.complete();
}, 'image/jpg', 100);
}
else {
observer.error(err);
}
});
});
}), switchMap((data) => {
return new Observable((observer) => {
const fileReader = new FileReader();
fileReader.onload = () => {
observer.next(fileReader.result);
observer.complete();
};
fileReader.onerror = (e) => {
observer.error(e);
};
fileReader.readAsDataURL(data);
});
}));
}
return throwError('Invalid file type');
}));
}
transform(file) {
const data = this._getData(file);
if (data instanceof FsApiFile) {
return data.blobUrl
.pipe(map((data) => this._sanitizer.bypassSecurityTrustUrl(data)));
}
else if (typeof data === 'string') {
return of(data);
}
else if (data instanceof Blob) {
return new Observable((observer) => {
const fileReader = new FileReader();
fileReader.onload = () => {
observer.next(fileReader.result);
observer.complete();
};
fileReader.onerror = (e) => {
observer.error(e);
};
fileReader.readAsDataURL(data);
});
}
return of(null);
}
_getData(file) {

@@ -50,3 +70,3 @@ if (file instanceof FsFile) {

}
FsFileSrcPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFileSrcPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
FsFileSrcPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFileSrcPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
FsFileSrcPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFileSrcPipe, name: "fsFileSrc" });

@@ -56,3 +76,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFileSrcPipe, decorators: [{

args: [{ name: 'fsFileSrc' }]
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlcy9wcmV2aWV3LXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBSXpELE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQ1UsVUFBd0I7UUFBeEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztJQUVsQyxDQUFDO0lBRU0sU0FBUyxDQUFDLElBQUk7UUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFHLElBQUksWUFBWSxTQUFTLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTztpQkFDaEIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzRCxDQUFDO1NBQ0w7YUFBTSxJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNsQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjthQUFNLElBQUcsSUFBSSxZQUFZLElBQUksRUFBRTtZQUM5QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUE7Z0JBRUQsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN6QixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixDQUFDLENBQUE7Z0JBRUQsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFJO1FBQ25CLElBQUcsSUFBSSxZQUFZLE1BQU0sRUFBRTtZQUN6QixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3JCO1lBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3hDO1FBRUQsSUFBRyxJQUFJLFlBQVksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7MkdBakRVLGFBQWE7eUdBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGc0ZpbGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgRnNBcGlGaWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvYXBpJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5cbkBQaXBlKHsgbmFtZTogJ2ZzRmlsZVNyYycgfSlcbmV4cG9ydCBjbGFzcyBGc0ZpbGVTcmNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICkge1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybShmaWxlKSB7ICAgIFxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9nZXREYXRhKGZpbGUpO1xuICAgIGlmKGRhdGEgaW5zdGFuY2VvZiBGc0FwaUZpbGUpIHtcbiAgICAgIHJldHVybiBkYXRhLmJsb2JVcmxcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChkYXRhKT0+IHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGRhdGEpKSxcbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gb2YoZGF0YSk7XG4gICAgfSBlbHNlIGlmKGRhdGEgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICBmaWxlUmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KGZpbGVSZWFkZXIucmVzdWx0KTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZmlsZVJlYWRlci5vbmVycm9yID0gKGUpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERhdGEoZmlsZSkge1xuICAgIGlmKGZpbGUgaW5zdGFuY2VvZiBGc0ZpbGUpIHtcbiAgICAgIGlmKGZpbGUuYXBpRmlsZSkge1xuICAgICAgICByZXR1cm4gZmlsZS5hcGlGaWxlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlsZS51cmwgPyBmaWxlLnVybCA6IGZpbGUuZmlsZTtcbiAgICB9XG5cbiAgICBpZihmaWxlIGluc3RhbmNlb2YgQmxvYiB8fCBmaWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgcmV0dXJuIGZpbGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuIl19
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9waXBlcy9wcmV2aWV3LXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQzs7QUFJbkMsTUFBTSxPQUFPLGFBQWE7SUFFakIsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFpQixFQUFFLFNBQWtCO1FBQzFELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQzthQUNaLElBQUksQ0FDSCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakI7WUFFRCxJQUFJLElBQUksWUFBWSxTQUFTLElBQUksSUFBSSxZQUFZLElBQUksRUFBRTtnQkFDckQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO3FCQUNaLElBQUksQ0FDSCxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLE9BQU8sSUFBSSxZQUFZLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxRCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDakIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO3dCQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDckIsSUFBSSxFQUNKOzRCQUNFO2dDQUNFLFFBQVEsRUFBRSxRQUFRLEdBQUcsQ0FBQztnQ0FDdEIsU0FBUyxFQUFFLFNBQVMsR0FBRyxDQUFDOzZCQUN6Qjt5QkFDRixFQUNELEtBQUssRUFDTCxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTs0QkFDZCxJQUFJLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQ0FDckIsTUFBTSxNQUFNLEdBQXNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FFNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO29DQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29DQUMxQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0NBQ3RCLENBQUMsRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7NkJBQ3RCO2lDQUFNO2dDQUNMLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7NkJBQ3JCO3dCQUNILENBQUMsQ0FBQyxDQUFDO29CQUNQLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUN0QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ3BDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFOzRCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQzs0QkFDakMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN0QixDQUFDLENBQUE7d0JBRUQsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFOzRCQUN6QixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNwQixDQUFDLENBQUE7d0JBRUQsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDakMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUVMO1lBRUQsT0FBTyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFJO1FBQ25CLElBQUksSUFBSSxZQUFZLE1BQU0sRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNyQjtZQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN4QztRQUVELElBQUksSUFBSSxZQUFZLElBQUksSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OzJHQWpGVSxhQUFhO3lHQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFEekIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRnNBcGlGaWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvYXBpJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZzRmlsZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmltcG9ydCAqIGFzIEZpbGVBUEkgZnJvbSAnZmlsZWFwaSc7XG5cblxuQFBpcGUoeyBuYW1lOiAnZnNGaWxlU3JjJyB9KVxuZXhwb3J0IGNsYXNzIEZzRmlsZVNyY1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBwdWJsaWMgdHJhbnNmb3JtKGZpbGUsIG1heFdpZHRoPzogbnVtYmVyLCBtYXhIZWlnaHQ/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gb2YobnVsbClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9nZXREYXRhKGZpbGUpO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGRhdGEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgRnNBcGlGaWxlIHx8IGRhdGEgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgRnNBcGlGaWxlID8gZGF0YS5ibG9iIDogb2YoZGF0YSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChibG9iKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIEZpbGVBUEkuSW1hZ2UudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2IsXG4gICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogbWF4V2lkdGggKiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCAqIDIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAoZXJyLCBpbWFnZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZXJyICYmIGltYWdlc1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50ID0gaW1hZ2VzWzBdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy50b0Jsb2IoKGNhbnZhc0Jsb2IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGNhbnZhc0Jsb2IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sICdpbWFnZS9qcGcnLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZmlsZVJlYWRlci5yZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmaWxlUmVhZGVyLm9uZXJyb3IgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0ludmFsaWQgZmlsZSB0eXBlJyk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERhdGEoZmlsZSkge1xuICAgIGlmIChmaWxlIGluc3RhbmNlb2YgRnNGaWxlKSB7XG4gICAgICBpZiAoZmlsZS5hcGlGaWxlKSB7XG4gICAgICAgIHJldHVybiBmaWxlLmFwaUZpbGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWxlLnVybCA/IGZpbGUudXJsIDogZmlsZS5maWxlO1xuICAgIH1cblxuICAgIGlmIChmaWxlIGluc3RhbmNlb2YgQmxvYiB8fCBmaWxlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgcmV0dXJuIGZpbGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuIl19
{
"name": "@firestitch/file",
"version": "12.13.2",
"version": "12.14.0",
"repository": {

@@ -5,0 +5,0 @@ "type": "git",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc