Socket
Socket
Sign inDemoInstall

angular-extensions

Package Overview
Dependencies
21
Maintainers
1
Versions
222
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.26 to 1.0.27

44

bundles/angular-extensions-controls-file-control.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('ngx-awesome-uploader'), require('rxjs'), require('ngx-filesize'), require('angular-extensions/controls/base-control'), require('@angular/material/icon'), require('@angular/common'), require('@angular/material/form-field')) :
typeof define === 'function' && define.amd ? define('angular-extensions/controls/file-control', ['exports', '@angular/core', 'ngx-awesome-uploader', 'rxjs', 'ngx-filesize', 'angular-extensions/controls/base-control', '@angular/material/icon', '@angular/common', '@angular/material/form-field'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["angular-extensions"] = global["angular-extensions"] || {}, global["angular-extensions"].controls = global["angular-extensions"].controls || {}, global["angular-extensions"].controls["file-control"] = {}), global.ng.core, global["ngx-awesome-uploader"], global.rxjs, global["ngx-filesize"], global["angular-extensions"].controls["base-control"], global.ng.material.icon, global.ng.common, global.ng.material.formField));
})(this, (function (exports, i0, i4, rxjs, i1, i3, i5, i6, i7) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('ngx-awesome-uploader'), require('rxjs'), require('ngx-filesize'), require('angular-extensions/controls/base-control'), require('@angular/material/button'), require('@angular/material/icon'), require('@angular/common'), require('@angular/material/form-field')) :
typeof define === 'function' && define.amd ? define('angular-extensions/controls/file-control', ['exports', '@angular/core', 'ngx-awesome-uploader', 'rxjs', 'ngx-filesize', 'angular-extensions/controls/base-control', '@angular/material/button', '@angular/material/icon', '@angular/common', '@angular/material/form-field'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["angular-extensions"] = global["angular-extensions"] || {}, global["angular-extensions"].controls = global["angular-extensions"].controls || {}, global["angular-extensions"].controls["file-control"] = {}), global.ng.core, global["ngx-awesome-uploader"], global.rxjs, global["ngx-filesize"], global["angular-extensions"].controls["base-control"], global.ng.material.button, global.ng.material.icon, global.ng.common, global.ng.material.formField));
})(this, (function (exports, i0, i4, rxjs, i1, i3, i5, i6, i7, i8) { 'use strict';

@@ -32,2 +32,3 @@ function _interopNamespace(e) {

var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
var i8__namespace = /*#__PURE__*/_interopNamespace(i8);

@@ -372,6 +373,6 @@ /*! *****************************************************************************

var FileControlComponent = /** @class */ (function () {
function FileControlComponent(fileSizePipe, defaultAdapter) {
function FileControlComponent(elementRef, fileSizePipe, defaultAdapter) {
this.elementRef = elementRef;
this.fileSizePipe = fileSizePipe;
this.defaultAdapter = defaultAdapter;
this.allowedFileExtensions = [];
this.accept = [];

@@ -384,2 +385,10 @@ this.autoUpload = false;

FileControlComponent.prototype.ngOnInit = function () {
var _this = this;
this.elementRef.nativeElement.addEventListener("change", function () {
// replace file is single select mode
if (!_this.multiple) {
_this.filePicker.files = [];
}
_this.field.control.markAsTouched();
}, { capture: true });
};

@@ -423,4 +432,4 @@ FileControlComponent.prototype.onValidationError = function (error) {

}());
FileControlComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0__namespace, type: FileControlComponent, deps: [{ token: i1__namespace.FileSizePipe }, { token: FileService }], target: i0__namespace.ɵɵFactoryTarget.Component });
FileControlComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: FileControlComponent, selector: "file-control", inputs: { field: "field", disabled: "disabled", multiple: "multiple", allowedFileExtensions: "allowedFileExtensions", accept: "accept", maxFileSize: "maxFileSize", totalFileSize: "totalFileSize", autoUpload: "autoUpload", adapter: "adapter" }, outputs: { changes: "changes" }, providers: [FileService], ngImport: i0__namespace, template: "<base-control #baseControl\r\n [field]=\"field\">\r\n <div class=\"field-label\">\r\n\r\n <ngx-awesome-uploader #uploader\r\n [adapter]=\"adapter\"\r\n [showeDragDropZone]=\"true\"\r\n [uploadType]=\"multiple ? 'multi' : 'single'\"\r\n [fileMaxSize]=\"maxFileSize\"\r\n [totalMaxSize]=\"totalFileSize\"\r\n [fileMaxCount]=\"multiple ? $any(undefined) : 1\"\r\n [accept]=\"accept.toString()\"\r\n [itemTemplate]=\"fileItemTemplate\"\r\n [enableAutoUpload]=\"autoUpload\"\r\n [fileExtensions]=\"allowedFileExtensions\"\r\n (validationError)=\"onValidationError($event)\"\r\n (fileAdded)=\"onFileAdded($event)\">\r\n\r\n <div class=\"dropzoneTemplate\">\r\n <button mat-raised-button\r\n type=\"button\"\r\n (click)=\"field.control.markAsTouched()\">{{ field.label }}</button>\r\n </div>\r\n\r\n </ngx-awesome-uploader>\r\n\r\n </div>\r\n\r\n <mat-error *ngIf=\"baseControl.initialized && field.control.touched\">\r\n <ng-container *ngTemplateOutlet=\"baseControl.errorsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"validationErrors\">\r\n <mat-error *ngFor=\"let error of validationErrors\">\r\n {{ error.error }}\r\n </mat-error>\r\n </ng-container>\r\n </mat-error>\r\n</base-control>\r\n\r\n<ng-template #fileItemTemplate\r\n let-fileItem=\"fileItem\"\r\n let-uploadProgress=\"uploadProgress\">\r\n <div class=\"toolbar\">\r\n <span class=\"text-left\">\r\n {{ fileItem.fileName }}\r\n </span>\r\n\r\n <div *ngIf=\"fileItem\">\r\n <button mat-button\r\n mat-icon-button\r\n type=\"button\"\r\n (click)=\"uploader.removeFile(fileItem); onFileRemoved(fileItem)\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host .field-label{width:100%}:host ::ng-deep ngx-awesome-uploader{max-width:none!important}:host ::ng-deep .file-drop-wrapper{background:#fff!important;padding-top:0!important}:host ::ng-deep .file-drop-wrapper #dropZone{padding:5px 0;border:none;max-width:none}:host ::ng-deep .file-drop-wrapper file-drop{padding:0 3px}:host ::ng-deep file-preview-item{position:initial;padding:10px 16px;max-width:none}:host .toolbar{position:relative;display:flex;justify-content:space-between;align-items:center}:host .toolbar mat-icon{cursor:pointer}:host .toolbar .editor-label{padding:8px 14px;display:inline-block;line-height:1em;height:34px}:host .toolbar .form-control{width:auto;display:inline-block;line-height:1em;height:34px;margin-right:.3em}\n"], components: [{ type: i3__namespace.BaseControlComponent, selector: "base-control", inputs: ["field"] }, { type: i4__namespace.FilePickerComponent, selector: "ngx-awesome-uploader", inputs: ["enableCropper", "showeDragDropZone", "showPreviewContainer", "uploadType", "croppedCanvasOptions", "captions", "enableAutoUpload", "cropperOptions", "customValidator", "itemTemplate", "fileMaxSize", "fileMaxCount", "totalMaxSize", "accept", "fileExtensions", "adapter", "dropzoneTemplate", "fileInputCapture"], outputs: ["uploadSuccess", "uploadFail", "removeSuccess", "validationError", "fileAdded", "fileRemoved"] }, { type: i5__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
FileControlComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0__namespace, type: FileControlComponent, deps: [{ token: i0__namespace.ElementRef }, { token: i1__namespace.FileSizePipe }, { token: FileService }], target: i0__namespace.ɵɵFactoryTarget.Component });
FileControlComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: FileControlComponent, selector: "file-control", inputs: { field: "field", disabled: "disabled", multiple: "multiple", allowedFileExtensions: "allowedFileExtensions", accept: "accept", maxFileSize: "maxFileSize", totalFileSize: "totalFileSize", autoUpload: "autoUpload", adapter: "adapter", showPreview: "showPreview" }, outputs: { changes: "changes" }, providers: [FileService], viewQueries: [{ propertyName: "filePicker", first: true, predicate: i4.FilePickerComponent, descendants: true }], ngImport: i0__namespace, template: "<base-control #baseControl\r\n [field]=\"field\">\r\n <div class=\"field-label\">\r\n <ngx-awesome-uploader #uploader\r\n [adapter]=\"adapter\"\r\n [showeDragDropZone]=\"true\"\r\n [showPreviewContainer]=\"showPreview\"\r\n [uploadType]=\"multiple ? 'multi' : 'single'\"\r\n [fileMaxSize]=\"maxFileSize\"\r\n [totalMaxSize]=\"totalFileSize\"\r\n [accept]=\"accept.toString()\"\r\n [itemTemplate]=\"fileItemTemplate\"\r\n [enableAutoUpload]=\"autoUpload\"\r\n [fileExtensions]=\"allowedFileExtensions\"\r\n (validationError)=\"onValidationError($event)\"\r\n (fileAdded)=\"onFileAdded($event)\">\r\n\r\n <div class=\"dropzoneTemplate\">\r\n <button mat-raised-button\r\n type=\"button\">{{ field.label }}</button>\r\n </div>\r\n </ngx-awesome-uploader>\r\n </div>\r\n\r\n <mat-error *ngIf=\"baseControl.initialized && field.control.touched\">\r\n <ng-container *ngTemplateOutlet=\"baseControl.errorsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"validationErrors\">\r\n <mat-error *ngFor=\"let error of validationErrors\">\r\n {{ error.error }}\r\n </mat-error>\r\n </ng-container>\r\n </mat-error>\r\n</base-control>\r\n\r\n<ng-template #fileItemTemplate\r\n let-fileItem=\"fileItem\"\r\n let-uploadProgress=\"uploadProgress\">\r\n <div class=\"toolbar\">\r\n <span class=\"text-left\">\r\n {{ fileItem.fileName }}\r\n </span>\r\n\r\n <div *ngIf=\"fileItem\">\r\n <button mat-button\r\n mat-icon-button\r\n type=\"button\"\r\n (click)=\"uploader.removeFile(fileItem); onFileRemoved(fileItem)\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host .field-label{width:100%}:host ::ng-deep ngx-awesome-uploader{max-width:none!important}:host ::ng-deep .file-drop-wrapper{width:auto!important;background:none!important;padding-top:0!important}:host ::ng-deep .file-drop-wrapper #dropZone{padding:5px 0;border:none;max-width:none;background:none}:host ::ng-deep .file-drop-wrapper file-drop{padding:0 3px}:host ::ng-deep file-preview-item{position:initial;padding:10px 16px;max-width:none}:host .toolbar{position:relative;display:flex;justify-content:space-between;align-items:center}:host .toolbar mat-icon{cursor:pointer}:host .toolbar .editor-label{padding:8px 14px;display:inline-block;line-height:1em;height:34px}:host .toolbar .form-control{width:auto;display:inline-block;line-height:1em;height:34px;margin-right:.3em}\n"], components: [{ type: i3__namespace.BaseControlComponent, selector: "base-control", inputs: ["field"] }, { type: i4__namespace.FilePickerComponent, selector: "ngx-awesome-uploader", inputs: ["enableCropper", "showeDragDropZone", "showPreviewContainer", "uploadType", "croppedCanvasOptions", "captions", "enableAutoUpload", "cropperOptions", "customValidator", "itemTemplate", "fileMaxSize", "fileMaxCount", "totalMaxSize", "accept", "fileExtensions", "adapter", "dropzoneTemplate", "fileInputCapture"], outputs: ["uploadSuccess", "uploadFail", "removeSuccess", "validationError", "fileAdded", "fileRemoved"] }, { type: i5__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace.MatError, selector: "mat-error", inputs: ["id"] }, { type: i7__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0__namespace, type: FileControlComponent, decorators: [{

@@ -434,3 +443,3 @@ type: i0.Component,

}]
}], ctorParameters: function () { return [{ type: i1__namespace.FileSizePipe }, { type: FileService }]; }, propDecorators: { field: [{
}], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }, { type: i1__namespace.FileSizePipe }, { type: FileService }]; }, propDecorators: { field: [{
type: i0.Input

@@ -453,4 +462,9 @@ }], disabled: [{

type: i0.Input
}], showPreview: [{
type: i0.Input
}], changes: [{
type: i0.Output
}], filePicker: [{
type: i0.ViewChild,
args: [i4.FilePickerComponent]
}] } });

@@ -464,6 +478,8 @@

NgxFileControlModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0__namespace, type: NgxFileControlModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
NgxFileControlModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0__namespace, type: NgxFileControlModule, declarations: [FileControlComponent], imports: [i6.CommonModule,
NgxFileControlModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0__namespace, type: NgxFileControlModule, declarations: [FileControlComponent], imports: [i7.CommonModule,
i3.NgxBaseControlModule,
i5.MatButtonModule,
i1.NgxFilesizeModule,
i4.FilePickerModule], exports: [i3.NgxBaseControlModule,
i5.MatButtonModule,
i1.NgxFilesizeModule,

@@ -475,7 +491,9 @@ i4.FilePickerModule,

], imports: [[
i6.CommonModule,
i7.CommonModule,
i3.NgxBaseControlModule,
i5.MatButtonModule,
i1.NgxFilesizeModule,
i4.FilePickerModule,
], i3.NgxBaseControlModule,
i5.MatButtonModule,
i1.NgxFilesizeModule,

@@ -487,4 +505,5 @@ i4.FilePickerModule] });

imports: [
i6.CommonModule,
i7.CommonModule,
i3.NgxBaseControlModule,
i5.MatButtonModule,
i1.NgxFilesizeModule,

@@ -495,2 +514,3 @@ i4.FilePickerModule,

i3.NgxBaseControlModule,
i5.MatButtonModule,
i1.NgxFilesizeModule,

@@ -497,0 +517,0 @@ i4.FilePickerModule,

@@ -1,4 +0,4 @@

import { OnInit, EventEmitter } from "@angular/core";
import { EventEmitter, ElementRef, OnInit } from "@angular/core";
import { FileSizePipe } from "ngx-filesize";
import { FilePickerAdapter, FilePreviewModel, ValidationError } from "ngx-awesome-uploader";
import { FilePickerAdapter, FilePickerComponent, FilePreviewModel, ValidationError } from "ngx-awesome-uploader";
import { Field } from "angular-extensions/models";

@@ -8,2 +8,3 @@ import { FileService } from "./file.service";

export declare class FileControlComponent implements OnInit {
private elementRef;
private fileSizePipe;

@@ -20,5 +21,7 @@ defaultAdapter: FileService;

adapter: FilePickerAdapter;
showPreview: boolean;
changes: EventEmitter<File[]>;
filePicker: FilePickerComponent;
validationErrors: ValidationError[];
constructor(fileSizePipe: FileSizePipe, defaultAdapter: FileService);
constructor(elementRef: ElementRef<HTMLFieldSetElement>, fileSizePipe: FileSizePipe, defaultAdapter: FileService);
ngOnInit(): void;

@@ -30,3 +33,3 @@ onValidationError(error: ValidationError): void;

static ɵfac: i0.ɵɵFactoryDeclaration<FileControlComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FileControlComponent, "file-control", never, { "field": "field"; "disabled": "disabled"; "multiple": "multiple"; "allowedFileExtensions": "allowedFileExtensions"; "accept": "accept"; "maxFileSize": "maxFileSize"; "totalFileSize": "totalFileSize"; "autoUpload": "autoUpload"; "adapter": "adapter"; }, { "changes": "changes"; }, never, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FileControlComponent, "file-control", never, { "field": "field"; "disabled": "disabled"; "multiple": "multiple"; "allowedFileExtensions": "allowedFileExtensions"; "accept": "accept"; "maxFileSize": "maxFileSize"; "totalFileSize": "totalFileSize"; "autoUpload": "autoUpload"; "adapter": "adapter"; "showPreview": "showPreview"; }, { "changes": "changes"; }, never, never>;
}

@@ -5,8 +5,9 @@ import * as i0 from "@angular/core";

import * as i3 from "angular-extensions/controls/base-control";
import * as i4 from "ngx-filesize";
import * as i5 from "ngx-awesome-uploader";
import * as i4 from "@angular/material/button";
import * as i5 from "ngx-filesize";
import * as i6 from "ngx-awesome-uploader";
export declare class NgxFileControlModule {
static ɵfac: i0.ɵɵFactoryDeclaration<NgxFileControlModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxFileControlModule, [typeof i1.FileControlComponent], [typeof i2.CommonModule, typeof i3.NgxBaseControlModule, typeof i4.NgxFilesizeModule, typeof i5.FilePickerModule], [typeof i3.NgxBaseControlModule, typeof i4.NgxFilesizeModule, typeof i5.FilePickerModule, typeof i1.FileControlComponent]>;
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxFileControlModule, [typeof i1.FileControlComponent], [typeof i2.CommonModule, typeof i3.NgxBaseControlModule, typeof i4.MatButtonModule, typeof i5.NgxFilesizeModule, typeof i6.FilePickerModule], [typeof i3.NgxBaseControlModule, typeof i4.MatButtonModule, typeof i5.NgxFilesizeModule, typeof i6.FilePickerModule, typeof i1.FileControlComponent]>;
static ɵinj: i0.ɵɵInjectorDeclaration<NgxFileControlModule>;
}
export * from "angular-extensions/controls/base-control";
export * from "angular-extensions/controls/text-control";
export * from "angular-extensions/controls/textarea-control";
export * from "angular-extensions/controls/file-control";
export * from "./date-control/date-control.component";

@@ -5,0 +6,0 @@ export * from "./time-control/time-control.component";

@@ -1,3 +0,3 @@

import { Component, Input, Output, EventEmitter } from "@angular/core";
import { FileValidationTypes } from "ngx-awesome-uploader";
import { Component, Input, Output, EventEmitter, ViewChild } from "@angular/core";
import { FilePickerComponent, FileValidationTypes } from "ngx-awesome-uploader";
import { FileService } from "./file.service";

@@ -9,10 +9,11 @@ import * as i0 from "@angular/core";

import * as i4 from "ngx-awesome-uploader";
import * as i5 from "@angular/material/icon";
import * as i6 from "@angular/common";
import * as i7 from "@angular/material/form-field";
import * as i5 from "@angular/material/button";
import * as i6 from "@angular/material/icon";
import * as i7 from "@angular/common";
import * as i8 from "@angular/material/form-field";
export class FileControlComponent {
constructor(fileSizePipe, defaultAdapter) {
constructor(elementRef, fileSizePipe, defaultAdapter) {
this.elementRef = elementRef;
this.fileSizePipe = fileSizePipe;
this.defaultAdapter = defaultAdapter;
this.allowedFileExtensions = [];
this.accept = [];

@@ -25,2 +26,9 @@ this.autoUpload = false;

ngOnInit() {
this.elementRef.nativeElement.addEventListener("change", () => {
// replace file is single select mode
if (!this.multiple) {
this.filePicker.files = [];
}
this.field.control.markAsTouched();
}, { capture: true });
}

@@ -64,4 +72,4 @@ onValidationError(error) {

}
FileControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileControlComponent, deps: [{ token: i1.FileSizePipe }, { token: i2.FileService }], target: i0.ɵɵFactoryTarget.Component });
FileControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: FileControlComponent, selector: "file-control", inputs: { field: "field", disabled: "disabled", multiple: "multiple", allowedFileExtensions: "allowedFileExtensions", accept: "accept", maxFileSize: "maxFileSize", totalFileSize: "totalFileSize", autoUpload: "autoUpload", adapter: "adapter" }, outputs: { changes: "changes" }, providers: [FileService], ngImport: i0, template: "<base-control #baseControl\r\n [field]=\"field\">\r\n <div class=\"field-label\">\r\n\r\n <ngx-awesome-uploader #uploader\r\n [adapter]=\"adapter\"\r\n [showeDragDropZone]=\"true\"\r\n [uploadType]=\"multiple ? 'multi' : 'single'\"\r\n [fileMaxSize]=\"maxFileSize\"\r\n [totalMaxSize]=\"totalFileSize\"\r\n [fileMaxCount]=\"multiple ? $any(undefined) : 1\"\r\n [accept]=\"accept.toString()\"\r\n [itemTemplate]=\"fileItemTemplate\"\r\n [enableAutoUpload]=\"autoUpload\"\r\n [fileExtensions]=\"allowedFileExtensions\"\r\n (validationError)=\"onValidationError($event)\"\r\n (fileAdded)=\"onFileAdded($event)\">\r\n\r\n <div class=\"dropzoneTemplate\">\r\n <button mat-raised-button\r\n type=\"button\"\r\n (click)=\"field.control.markAsTouched()\">{{ field.label }}</button>\r\n </div>\r\n\r\n </ngx-awesome-uploader>\r\n\r\n </div>\r\n\r\n <mat-error *ngIf=\"baseControl.initialized && field.control.touched\">\r\n <ng-container *ngTemplateOutlet=\"baseControl.errorsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"validationErrors\">\r\n <mat-error *ngFor=\"let error of validationErrors\">\r\n {{ error.error }}\r\n </mat-error>\r\n </ng-container>\r\n </mat-error>\r\n</base-control>\r\n\r\n<ng-template #fileItemTemplate\r\n let-fileItem=\"fileItem\"\r\n let-uploadProgress=\"uploadProgress\">\r\n <div class=\"toolbar\">\r\n <span class=\"text-left\">\r\n {{ fileItem.fileName }}\r\n </span>\r\n\r\n <div *ngIf=\"fileItem\">\r\n <button mat-button\r\n mat-icon-button\r\n type=\"button\"\r\n (click)=\"uploader.removeFile(fileItem); onFileRemoved(fileItem)\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host .field-label{width:100%}:host ::ng-deep ngx-awesome-uploader{max-width:none!important}:host ::ng-deep .file-drop-wrapper{background:#fff!important;padding-top:0!important}:host ::ng-deep .file-drop-wrapper #dropZone{padding:5px 0;border:none;max-width:none}:host ::ng-deep .file-drop-wrapper file-drop{padding:0 3px}:host ::ng-deep file-preview-item{position:initial;padding:10px 16px;max-width:none}:host .toolbar{position:relative;display:flex;justify-content:space-between;align-items:center}:host .toolbar mat-icon{cursor:pointer}:host .toolbar .editor-label{padding:8px 14px;display:inline-block;line-height:1em;height:34px}:host .toolbar .form-control{width:auto;display:inline-block;line-height:1em;height:34px;margin-right:.3em}\n"], components: [{ type: i3.BaseControlComponent, selector: "base-control", inputs: ["field"] }, { type: i4.FilePickerComponent, selector: "ngx-awesome-uploader", inputs: ["enableCropper", "showeDragDropZone", "showPreviewContainer", "uploadType", "croppedCanvasOptions", "captions", "enableAutoUpload", "cropperOptions", "customValidator", "itemTemplate", "fileMaxSize", "fileMaxCount", "totalMaxSize", "accept", "fileExtensions", "adapter", "dropzoneTemplate", "fileInputCapture"], outputs: ["uploadSuccess", "uploadFail", "removeSuccess", "validationError", "fileAdded", "fileRemoved"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
FileControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileControlComponent, deps: [{ token: i0.ElementRef }, { token: i1.FileSizePipe }, { token: i2.FileService }], target: i0.ɵɵFactoryTarget.Component });
FileControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: FileControlComponent, selector: "file-control", inputs: { field: "field", disabled: "disabled", multiple: "multiple", allowedFileExtensions: "allowedFileExtensions", accept: "accept", maxFileSize: "maxFileSize", totalFileSize: "totalFileSize", autoUpload: "autoUpload", adapter: "adapter", showPreview: "showPreview" }, outputs: { changes: "changes" }, providers: [FileService], viewQueries: [{ propertyName: "filePicker", first: true, predicate: FilePickerComponent, descendants: true }], ngImport: i0, template: "<base-control #baseControl\r\n [field]=\"field\">\r\n <div class=\"field-label\">\r\n <ngx-awesome-uploader #uploader\r\n [adapter]=\"adapter\"\r\n [showeDragDropZone]=\"true\"\r\n [showPreviewContainer]=\"showPreview\"\r\n [uploadType]=\"multiple ? 'multi' : 'single'\"\r\n [fileMaxSize]=\"maxFileSize\"\r\n [totalMaxSize]=\"totalFileSize\"\r\n [accept]=\"accept.toString()\"\r\n [itemTemplate]=\"fileItemTemplate\"\r\n [enableAutoUpload]=\"autoUpload\"\r\n [fileExtensions]=\"allowedFileExtensions\"\r\n (validationError)=\"onValidationError($event)\"\r\n (fileAdded)=\"onFileAdded($event)\">\r\n\r\n <div class=\"dropzoneTemplate\">\r\n <button mat-raised-button\r\n type=\"button\">{{ field.label }}</button>\r\n </div>\r\n </ngx-awesome-uploader>\r\n </div>\r\n\r\n <mat-error *ngIf=\"baseControl.initialized && field.control.touched\">\r\n <ng-container *ngTemplateOutlet=\"baseControl.errorsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"validationErrors\">\r\n <mat-error *ngFor=\"let error of validationErrors\">\r\n {{ error.error }}\r\n </mat-error>\r\n </ng-container>\r\n </mat-error>\r\n</base-control>\r\n\r\n<ng-template #fileItemTemplate\r\n let-fileItem=\"fileItem\"\r\n let-uploadProgress=\"uploadProgress\">\r\n <div class=\"toolbar\">\r\n <span class=\"text-left\">\r\n {{ fileItem.fileName }}\r\n </span>\r\n\r\n <div *ngIf=\"fileItem\">\r\n <button mat-button\r\n mat-icon-button\r\n type=\"button\"\r\n (click)=\"uploader.removeFile(fileItem); onFileRemoved(fileItem)\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host .field-label{width:100%}:host ::ng-deep ngx-awesome-uploader{max-width:none!important}:host ::ng-deep .file-drop-wrapper{width:auto!important;background:none!important;padding-top:0!important}:host ::ng-deep .file-drop-wrapper #dropZone{padding:5px 0;border:none;max-width:none;background:none}:host ::ng-deep .file-drop-wrapper file-drop{padding:0 3px}:host ::ng-deep file-preview-item{position:initial;padding:10px 16px;max-width:none}:host .toolbar{position:relative;display:flex;justify-content:space-between;align-items:center}:host .toolbar mat-icon{cursor:pointer}:host .toolbar .editor-label{padding:8px 14px;display:inline-block;line-height:1em;height:34px}:host .toolbar .form-control{width:auto;display:inline-block;line-height:1em;height:34px;margin-right:.3em}\n"], components: [{ type: i3.BaseControlComponent, selector: "base-control", inputs: ["field"] }, { type: i4.FilePickerComponent, selector: "ngx-awesome-uploader", inputs: ["enableCropper", "showeDragDropZone", "showPreviewContainer", "uploadType", "croppedCanvasOptions", "captions", "enableAutoUpload", "cropperOptions", "customValidator", "itemTemplate", "fileMaxSize", "fileMaxCount", "totalMaxSize", "accept", "fileExtensions", "adapter", "dropzoneTemplate", "fileInputCapture"], outputs: ["uploadSuccess", "uploadFail", "removeSuccess", "validationError", "fileAdded", "fileRemoved"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileControlComponent, decorators: [{

@@ -75,3 +83,3 @@ type: Component,

}]
}], ctorParameters: function () { return [{ type: i1.FileSizePipe }, { type: i2.FileService }]; }, propDecorators: { field: [{
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FileSizePipe }, { type: i2.FileService }]; }, propDecorators: { field: [{
type: Input

@@ -94,5 +102,10 @@ }], disabled: [{

type: Input
}], showPreview: [{
type: Input
}], changes: [{
type: Output
}], filePicker: [{
type: ViewChild,
args: [FilePickerComponent]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9maWxlLWNvbnRyb2wvZmlsZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9maWxlLWNvbnRyb2wvZmlsZS1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUF1QyxtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUdqSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVE3QyxNQUFNLE9BQU8sb0JBQW9CO0lBa0MvQixZQUNVLFlBQTBCLEVBQzNCLGNBQTJCO1FBRDFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFhO1FBeEI3QiwwQkFBcUIsR0FBYSxFQUFFLENBQUM7UUFHckMsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQVN0QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBTW5CLFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUzRCxxQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO1FBTTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxjQUFjLENBQUM7SUFDaEQsQ0FBQztJQUVNLFFBQVE7SUFDZixDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBc0I7UUFDN0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FB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dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGaWxlU2l6ZVBpcGUgfSBmcm9tIFwibmd4LWZpbGVzaXplXCI7XHJcbmltcG9ydCB7IEZpbGVQaWNrZXJBZGFwdGVyLCBGaWxlUHJldmlld01vZGVsLCBGaWxlVmFsaWRhdGlvblR5cGVzLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwibmd4LWF3ZXNvbWUtdXBsb2FkZXJcIjtcclxuXHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSBcImFuZ3VsYXItZXh0ZW5zaW9ucy9tb2RlbHNcIjtcclxuaW1wb3J0IHsgRmlsZVNlcnZpY2UgfSBmcm9tIFwiLi9maWxlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImZpbGUtY29udHJvbFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsZS1jb250cm9sLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2ZpbGUtY29udHJvbC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBwcm92aWRlcnM6IFtGaWxlU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmllbGQ6IEZpZWxkPEZpbGVbXT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWxsb3dlZEZpbGVFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhY2NlcHQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRvdGFsRmlsZVNpemU6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXV0b1VwbG9hZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGFwdGVyOiBGaWxlUGlja2VyQWRhcHRlcjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNoYW5nZXM6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmlsZVNpemVQaXBlOiBGaWxlU2l6ZVBpcGUsXHJcbiAgICBwdWJsaWMgZGVmYXVsdEFkYXB0ZXI6IEZpbGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXIgfHwgZGVmYXVsdEFkYXB0ZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25WYWxpZGF0aW9uRXJyb3IoZXJyb3I6IFZhbGlkYXRpb25FcnJvcikge1xyXG4gICAgY29uc3QgZXJySW5kZXggPSB0aGlzLnZhbGlkYXRpb25FcnJvcnMuZmluZEluZGV4KGUgPT4gZS5maWxlID09IGVycm9yLmZpbGUpO1xyXG4gICAgZXJyb3IuZXJyb3IgPSB0aGlzLmdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UoZXJyb3IuZXJyb3IgYXMgRmlsZVZhbGlkYXRpb25UeXBlcyk7XHJcblxyXG4gICAgaWYgKGVyckluZGV4ICE9IC0xKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yc1tlcnJJbmRleF0gPSBlcnJvcjtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaChlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25GaWxlQWRkZWQoZmlsZTogRmlsZVByZXZpZXdNb2RlbCkge1xyXG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XHJcblxyXG4gICAgdGhpcy5maWVsZC52YWx1ZSA9IHRoaXMuZmllbGQudmFsdWVcclxuICAgICAgPyBbLi4udGhpcy5maWVsZC52YWx1ZSwgZmlsZS5maWxlIGFzIEZpbGVdXHJcbiAgICAgIDogW2ZpbGUuZmlsZSBhcyBGaWxlXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZpbGVSZW1vdmVkKHJlbW92ZWRGaWxlOiBGaWxlUHJldmlld01vZGVsKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBbXTtcclxuXHJcbiAgICB0aGlzLmZpZWxkLnZhbHVlID0gdGhpcy5maWVsZC52YWx1ZVxyXG4gICAgICA/IHRoaXMuZmllbGQudmFsdWUuZmlsdGVyKGZpbGUgPT4gZmlsZS5uYW1lICE9IHJlbW92ZWRGaWxlLmZpbGVOYW1lKVxyXG4gICAgICA6IFtyZW1vdmVkRmlsZS5maWxlIGFzIEZpbGVdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKGVycm9yVHlwZTogRmlsZVZhbGlkYXRpb25UeXBlcykge1xyXG4gICAgc3dpdGNoIChlcnJvclR5cGUpIHtcclxuXHJcbiAgICAgIGNhc2UgRmlsZVZhbGlkYXRpb25UeXBlcy51cGxvYWRUeXBlOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gXCJTZWxlY3QgbXVsdGlwbGUgZmlsZXNcIiA6IFwiU2VsZWN0IG9ubHkgb25lIGZpbGVcIjtcclxuXHJcbiAgICAgIGNhc2UgRmlsZVZhbGlkYXRpb25UeXBlcy5leHRlbnNpb25zOlxyXG4gICAgICAgIHJldHVybiBgU2VsZWN0ZWQgZmlsZSBzaG91bGQgaGF2ZSAke3RoaXMuYWxsb3dlZEZpbGVFeHRlbnNpb25zfSBleHRlbnNpb25gO1xyXG5cclxuICAgICAgY2FzZSBGaWxlVmFsaWRhdGlvblR5cGVzLmZpbGVNYXhTaXplOlxyXG4gICAgICAgIHJldHVybiBgVGhlIHNpemUgb2Ygc2VsZWN0ZWQgZmlsZSBpcyBsYXJnZXIgdGhhbiAke3RoaXMuZmlsZVNpemVQaXBlLnRyYW5zZm9ybSh0aGlzLm1heEZpbGVTaXplKX1gO1xyXG5cclxuICAgICAgY2FzZSBGaWxlVmFsaWRhdGlvblR5cGVzLnRvdGFsTWF4U2l6ZTpcclxuICAgICAgICByZXR1cm4gYFRoZSB0b3RhbCBzaXplIG9mIHNlbGVjdGVkIGZpbGVzIGlzIGxhcmdlciB0aGFuICR7dGhpcy5maWxlU2l6ZVBpcGUudHJhbnNmb3JtKHRoaXMudG90YWxGaWxlU2l6ZSl9YDtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwiVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGFkZGluZyB5b3VyIGZpbGVcIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJhc2UtY29udHJvbCAjYmFzZUNvbnRyb2xcclxuICAgICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIj5cclxuICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWxcIj5cclxuXHJcbiAgICA8bmd4LWF3ZXNvbWUtdXBsb2FkZXIgI3VwbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkYXB0ZXJdPVwiYWRhcHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dlRHJhZ0Ryb3Bab25lXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt1cGxvYWRUeXBlXT1cIm11bHRpcGxlID8gJ211bHRpJyA6ICdzaW5nbGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsZU1heFNpemVdPVwibWF4RmlsZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0b3RhbE1heFNpemVdPVwidG90YWxGaWxlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVNYXhDb3VudF09XCJtdWx0aXBsZSA/ICRhbnkodW5kZWZpbmVkKSA6IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0LnRvU3RyaW5nKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiZmlsZUl0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZUF1dG9VcGxvYWRdPVwiYXV0b1VwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVFeHRlbnNpb25zXT1cImFsbG93ZWRGaWxlRXh0ZW5zaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbGlkYXRpb25FcnJvcik9XCJvblZhbGlkYXRpb25FcnJvcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZUFkZGVkKT1cIm9uRmlsZUFkZGVkKCRldmVudClcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcm9wem9uZVRlbXBsYXRlXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmllbGQuY29udHJvbC5tYXJrQXNUb3VjaGVkKClcIj57eyBmaWVsZC5sYWJlbCB9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L25neC1hd2Vzb21lLXVwbG9hZGVyPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG1hdC1lcnJvciAqbmdJZj1cImJhc2VDb250cm9sLmluaXRpYWxpemVkICYmIGZpZWxkLmNvbnRyb2wudG91Y2hlZFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJhc2VDb250cm9sLmVycm9yc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsaWRhdGlvbkVycm9yc1wiPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvciBvZiB2YWxpZGF0aW9uRXJyb3JzXCI+XHJcbiAgICAgICAge3sgZXJyb3IuZXJyb3IgfX1cclxuICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1lcnJvcj5cclxuPC9iYXNlLWNvbnRyb2w+XHJcblxyXG48bmctdGVtcGxhdGUgI2ZpbGVJdGVtVGVtcGxhdGVcclxuICAgICAgICAgICAgIGxldC1maWxlSXRlbT1cImZpbGVJdGVtXCJcclxuICAgICAgICAgICAgIGxldC11cGxvYWRQcm9ncmVzcz1cInVwbG9hZFByb2dyZXNzXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRvb2xiYXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZWZ0XCI+XHJcbiAgICAgIHt7IGZpbGVJdGVtLmZpbGVOYW1lIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImZpbGVJdGVtXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRlci5yZW1vdmVGaWxlKGZpbGVJdGVtKTsgb25GaWxlUmVtb3ZlZChmaWxlSXRlbSlcIj5cclxuICAgICAgICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9maWxlLWNvbnRyb2wvZmlsZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9maWxlLWNvbnRyb2wvZmlsZS1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQXFCLG1CQUFtQixFQUFvQixtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUd0SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRN0MsTUFBTSxPQUFPLG9CQUFvQjtJQXdDL0IsWUFDVSxVQUEyQyxFQUMzQyxZQUEwQixFQUMzQixjQUEyQjtRQUYxQixlQUFVLEdBQVYsVUFBVSxDQUFpQztRQUMzQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBYTtRQTVCN0IsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQVN0QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBU25CLFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUszRCxxQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO1FBTzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxjQUFjLENBQUM7SUFDaEQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDNUMsUUFBUSxFQUNSLEdBQUcsRUFBRTtZQUNILHFDQUFx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Q0FBQztvQkFDNUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN6QjtzSkFJUSxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsTUFBTTtnQkFJQSxVQUFVO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZpbGVTaXplUGlwZSB9IGZyb20gXCJuZ3gtZmlsZXNpemVcIjtcclxuaW1wb3J0IHsgRmlsZVBpY2tlckFkYXB0ZXIsIEZpbGVQaWNrZXJDb21wb25lbnQsIEZpbGVQcmV2aWV3TW9kZWwsIEZpbGVWYWxpZGF0aW9uVHlwZXMsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCJuZ3gtYXdlc29tZS11cGxvYWRlclwiO1xyXG5cclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tIFwiYW5ndWxhci1leHRlbnNpb25zL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gXCIuL2ZpbGUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiZmlsZS1jb250cm9sXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZmlsZS1jb250cm9sLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIHByb3ZpZGVyczogW0ZpbGVTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZUNvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaWVsZDogRmllbGQ8RmlsZVtdPjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhbGxvd2VkRmlsZUV4dGVuc2lvbnM6IHN0cmluZ1tdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhY2NlcHQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRvdGFsRmlsZVNpemU6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXV0b1VwbG9hZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGFwdGVyOiBGaWxlUGlja2VyQWRhcHRlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1ByZXZpZXc6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjaGFuZ2VzOiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xyXG5cclxuICBAVmlld0NoaWxkKEZpbGVQaWNrZXJDb21wb25lbnQpXHJcbiAgcHVibGljIGZpbGVQaWNrZXI6IEZpbGVQaWNrZXJDb21wb25lbnQ7XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRmllbGRTZXRFbGVtZW50PixcclxuICAgIHByaXZhdGUgZmlsZVNpemVQaXBlOiBGaWxlU2l6ZVBpcGUsXHJcbiAgICBwdWJsaWMgZGVmYXVsdEFkYXB0ZXI6IEZpbGVTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5hZGFwdGVyID0gdGhpcy5hZGFwdGVyIHx8IGRlZmF1bHRBZGFwdGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgXCJjaGFuZ2VcIixcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIC8vIHJlcGxhY2UgZmlsZSBpcyBzaW5nbGUgc2VsZWN0IG1vZGVcclxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgIHRoaXMuZmlsZVBpY2tlci5maWxlcyA9IFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5maWVsZC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVmFsaWRhdGlvbkVycm9yKGVycm9yOiBWYWxpZGF0aW9uRXJyb3IpIHtcclxuICAgIGNvbnN0IGVyckluZGV4ID0gdGhpcy52YWxpZGF0aW9uRXJyb3JzLmZpbmRJbmRleChlID0+IGUuZmlsZSA9PSBlcnJvci5maWxlKTtcclxuICAgIGVycm9yLmVycm9yID0gdGhpcy5nZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKGVycm9yLmVycm9yIGFzIEZpbGVWYWxpZGF0aW9uVHlwZXMpO1xyXG5cclxuICAgIGlmIChlcnJJbmRleCAhPSAtMSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnNbZXJySW5kZXhdID0gZXJyb3I7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRmlsZUFkZGVkKGZpbGU6IEZpbGVQcmV2aWV3TW9kZWwpIHtcclxuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xyXG5cclxuICAgIHRoaXMuZmllbGQudmFsdWUgPSB0aGlzLmZpZWxkLnZhbHVlXHJcbiAgICAgID8gWy4uLnRoaXMuZmllbGQudmFsdWUsIGZpbGUuZmlsZSBhcyBGaWxlXVxyXG4gICAgICA6IFtmaWxlLmZpbGUgYXMgRmlsZV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25GaWxlUmVtb3ZlZChyZW1vdmVkRmlsZTogRmlsZVByZXZpZXdNb2RlbCkge1xyXG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XHJcblxyXG4gICAgdGhpcy5maWVsZC52YWx1ZSA9IHRoaXMuZmllbGQudmFsdWVcclxuICAgICAgPyB0aGlzLmZpZWxkLnZhbHVlLmZpbHRlcihmaWxlID0+IGZpbGUubmFtZSAhPSByZW1vdmVkRmlsZS5maWxlTmFtZSlcclxuICAgICAgOiBbcmVtb3ZlZEZpbGUuZmlsZSBhcyBGaWxlXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShlcnJvclR5cGU6IEZpbGVWYWxpZGF0aW9uVHlwZXMpIHtcclxuICAgIHN3aXRjaCAoZXJyb3JUeXBlKSB7XHJcblxyXG4gICAgICBjYXNlIEZpbGVWYWxpZGF0aW9uVHlwZXMudXBsb2FkVHlwZTpcclxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFwiU2VsZWN0IG11bHRpcGxlIGZpbGVzXCIgOiBcIlNlbGVjdCBvbmx5IG9uZSBmaWxlXCI7XHJcblxyXG4gICAgICBjYXNlIEZpbGVWYWxpZGF0aW9uVHlwZXMuZXh0ZW5zaW9uczpcclxuICAgICAgICByZXR1cm4gYFNlbGVjdGVkIGZpbGUgc2hvdWxkIGhhdmUgJHt0aGlzLmFsbG93ZWRGaWxlRXh0ZW5zaW9uc30gZXh0ZW5zaW9uYDtcclxuXHJcbiAgICAgIGNhc2UgRmlsZVZhbGlkYXRpb25UeXBlcy5maWxlTWF4U2l6ZTpcclxuICAgICAgICByZXR1cm4gYFRoZSBzaXplIG9mIHNlbGVjdGVkIGZpbGUgaXMgbGFyZ2VyIHRoYW4gJHt0aGlzLmZpbGVTaXplUGlwZS50cmFuc2Zvcm0odGhpcy5tYXhGaWxlU2l6ZSl9YDtcclxuXHJcbiAgICAgIGNhc2UgRmlsZVZhbGlkYXRpb25UeXBlcy50b3RhbE1heFNpemU6XHJcbiAgICAgICAgcmV0dXJuIGBUaGUgdG90YWwgc2l6ZSBvZiBzZWxlY3RlZCBmaWxlcyBpcyBsYXJnZXIgdGhhbiAke3RoaXMuZmlsZVNpemVQaXBlLnRyYW5zZm9ybSh0aGlzLnRvdGFsRmlsZVNpemUpfWA7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBcIlRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBhZGRpbmcgeW91ciBmaWxlXCI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxiYXNlLWNvbnRyb2wgI2Jhc2VDb250cm9sXHJcbiAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpZWxkLWxhYmVsXCI+XHJcbiAgICA8bmd4LWF3ZXNvbWUtdXBsb2FkZXIgI3VwbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkYXB0ZXJdPVwiYWRhcHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dlRHJhZ0Ryb3Bab25lXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UHJldmlld0NvbnRhaW5lcl09XCJzaG93UHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3VwbG9hZFR5cGVdPVwibXVsdGlwbGUgPyAnbXVsdGknIDogJ3NpbmdsZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlTWF4U2l6ZV09XCJtYXhGaWxlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RvdGFsTWF4U2l6ZV09XCJ0b3RhbEZpbGVTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdC50b1N0cmluZygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbVRlbXBsYXRlXT1cImZpbGVJdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGVBdXRvVXBsb2FkXT1cImF1dG9VcGxvYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlRXh0ZW5zaW9uc109XCJhbGxvd2VkRmlsZUV4dGVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWxpZGF0aW9uRXJyb3IpPVwib25WYWxpZGF0aW9uRXJyb3IoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGVBZGRlZCk9XCJvbkZpbGVBZGRlZCgkZXZlbnQpXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJvcHpvbmVUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj57eyBmaWVsZC5sYWJlbCB9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmd4LWF3ZXNvbWUtdXBsb2FkZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJiYXNlQ29udHJvbC5pbml0aWFsaXplZCAmJiBmaWVsZC5jb250cm9sLnRvdWNoZWRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJiYXNlQ29udHJvbC5lcnJvcnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbGlkYXRpb25FcnJvcnNcIj5cclxuICAgICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgdmFsaWRhdGlvbkVycm9yc1wiPlxyXG4gICAgICAgIHt7IGVycm9yLmVycm9yIH19XHJcbiAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9tYXQtZXJyb3I+XHJcbjwvYmFzZS1jb250cm9sPlxyXG5cclxuPG5nLXRlbXBsYXRlICNmaWxlSXRlbVRlbXBsYXRlXHJcbiAgICAgICAgICAgICBsZXQtZmlsZUl0ZW09XCJmaWxlSXRlbVwiXHJcbiAgICAgICAgICAgICBsZXQtdXBsb2FkUHJvZ3Jlc3M9XCJ1cGxvYWRQcm9ncmVzc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0b29sYmFyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInRleHQtbGVmdFwiPlxyXG4gICAgICB7eyBmaWxlSXRlbS5maWxlTmFtZSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJmaWxlSXRlbVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkZXIucmVtb3ZlRmlsZShmaWxlSXRlbSk7IG9uRmlsZVJlbW92ZWQoZmlsZUl0ZW0pXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19

@@ -7,2 +7,3 @@ import { NgModule } from "@angular/core";

import { FileControlComponent } from "./file-control.component";
import { MatButtonModule } from "@angular/material/button";
import * as i0 from "@angular/core";

@@ -14,4 +15,6 @@ export class NgxFileControlModule {

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,
FilePickerModule], exports: [NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -25,5 +28,7 @@ FilePickerModule,

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,
FilePickerModule,
], NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -37,2 +42,3 @@ FilePickerModule] });

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -43,2 +49,3 @@ FilePickerModule,

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -56,2 +63,2 @@ FilePickerModule,

}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZpbGUtY29udHJvbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWV4dGVuc2lvbnMvY29udHJvbHMvZmlsZS1jb250cm9sL25neC1maWxlLWNvbnRyb2wubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFPLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBdUJoRSxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBTjdCLG9CQUFvQixhQWJwQixZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixnQkFBZ0IsYUFHaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFFaEIsb0JBQW9CO2tIQVNYLG9CQUFvQixhQUpwQjtRQUNULFlBQVk7S0FDYixZQWxCUTtZQUNQLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtTQUNqQixFQUVDLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsZ0JBQWdCOzJGQVdQLG9CQUFvQjtrQkFyQmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBRWhCLG9CQUFvQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjtxQkFDckI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRmlsZVBpY2tlck1vZHVsZSB9IGZyb20gIFwibmd4LWF3ZXNvbWUtdXBsb2FkZXJcIjtcclxuaW1wb3J0IHsgRmlsZVNpemVQaXBlLCBOZ3hGaWxlc2l6ZU1vZHVsZSB9IGZyb20gXCJuZ3gtZmlsZXNpemVcIjtcclxuXHJcbmltcG9ydCB7IE5neEJhc2VDb250cm9sTW9kdWxlIH0gZnJvbSBcImFuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9iYXNlLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgRmlsZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tIFwiLi9maWxlLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE5neEJhc2VDb250cm9sTW9kdWxlLFxyXG4gICAgTmd4RmlsZXNpemVNb2R1bGUsXHJcbiAgICBGaWxlUGlja2VyTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTmd4QmFzZUNvbnRyb2xNb2R1bGUsXHJcbiAgICBOZ3hGaWxlc2l6ZU1vZHVsZSxcclxuICAgIEZpbGVQaWNrZXJNb2R1bGUsXHJcblxyXG4gICAgRmlsZUNvbnRyb2xDb21wb25lbnQsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEZpbGVDb250cm9sQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGaWxlU2l6ZVBpcGUsXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RmlsZUNvbnRyb2xNb2R1bGUgeyB9XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZpbGUtY29udHJvbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWV4dGVuc2lvbnMvY29udHJvbHMvZmlsZS1jb250cm9sL25neC1maWxlLWNvbnRyb2wubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFPLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQXlCM0QsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQU43QixvQkFBb0IsYUFmcEIsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGdCQUFnQixhQUdoQixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFFaEIsb0JBQW9CO2tIQVNYLG9CQUFvQixhQUpwQjtRQUNULFlBQVk7S0FDYixZQXBCUTtZQUNQLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixnQkFBZ0I7U0FDakIsRUFFQyxvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixnQkFBZ0I7MkZBV1Asb0JBQW9CO2tCQXZCaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBRWhCLG9CQUFvQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjtxQkFDckI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRmlsZVBpY2tlck1vZHVsZSB9IGZyb20gIFwibmd4LWF3ZXNvbWUtdXBsb2FkZXJcIjtcclxuaW1wb3J0IHsgRmlsZVNpemVQaXBlLCBOZ3hGaWxlc2l6ZU1vZHVsZSB9IGZyb20gXCJuZ3gtZmlsZXNpemVcIjtcclxuXHJcbmltcG9ydCB7IE5neEJhc2VDb250cm9sTW9kdWxlIH0gZnJvbSBcImFuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9iYXNlLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgRmlsZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tIFwiLi9maWxlLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTmd4QmFzZUNvbnRyb2xNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBOZ3hGaWxlc2l6ZU1vZHVsZSxcclxuICAgIEZpbGVQaWNrZXJNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOZ3hCYXNlQ29udHJvbE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE5neEZpbGVzaXplTW9kdWxlLFxyXG4gICAgRmlsZVBpY2tlck1vZHVsZSxcclxuXHJcbiAgICBGaWxlQ29udHJvbENvbXBvbmVudCxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRmlsZUNvbnRyb2xDb21wb25lbnQsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZpbGVTaXplUGlwZSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hGaWxlQ29udHJvbE1vZHVsZSB7IH1cclxuIl19
export * from "angular-extensions/controls/base-control";
export * from "angular-extensions/controls/text-control";
export * from "angular-extensions/controls/textarea-control";
export * from "angular-extensions/controls/file-control";
export * from "./date-control/date-control.component";

@@ -13,2 +14,2 @@ export * from "./time-control/time-control.component";

export * from "./ngx-controls.module";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcImFuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9iYXNlLWNvbnRyb2xcIjtcclxuZXhwb3J0ICogZnJvbSBcImFuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy90ZXh0LWNvbnRyb2xcIjtcclxuZXhwb3J0ICogZnJvbSBcImFuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy90ZXh0YXJlYS1jb250cm9sXCI7XHJcblxyXG5leHBvcnQgKiBmcm9tIFwiLi9kYXRlLWNvbnRyb2wvZGF0ZS1jb250cm9sLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi90aW1lLWNvbnRyb2wvdGltZS1jb250cm9sLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9kYXRldGltZS1jb250cm9sL2RhdGV0aW1lLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3NlbGVjdC1jb250cm9sL3NlbGVjdC1jb250cm9sLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9zZWxlY3QtY29udHJvbC9vcHRpb24tY29udGV4dC9vcHRpb24tY29udGV4dC5kaXJlY3RpdmVcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY2hlY2tib3gtY29udHJvbC9jaGVja2JveC1jb250cm9sLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbGxlY3Rpb24tY29udHJvbC9jb2xsZWN0aW9uLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL25neC1jb250cm9scy5tb2R1bGVcIjtcclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiYW5ndWxhci1leHRlbnNpb25zL2NvbnRyb2xzL2Jhc2UtY29udHJvbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiYW5ndWxhci1leHRlbnNpb25zL2NvbnRyb2xzL3RleHQtY29udHJvbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiYW5ndWxhci1leHRlbnNpb25zL2NvbnRyb2xzL3RleHRhcmVhLWNvbnRyb2xcIjtcclxuZXhwb3J0ICogZnJvbSBcImFuZ3VsYXItZXh0ZW5zaW9ucy9jb250cm9scy9maWxlLWNvbnRyb2xcIjtcclxuXHJcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGUtY29udHJvbC9kYXRlLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3RpbWUtY29udHJvbC90aW1lLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGV0aW1lLWNvbnRyb2wvZGF0ZXRpbWUtY29udHJvbC5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vc2VsZWN0LWNvbnRyb2wvc2VsZWN0LWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3NlbGVjdC1jb250cm9sL29wdGlvbi1jb250ZXh0L29wdGlvbi1jb250ZXh0LmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jaGVja2JveC1jb250cm9sL2NoZWNrYm94LWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29sbGVjdGlvbi1jb250cm9sL2NvbGxlY3Rpb24tY29udHJvbC5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbmd4LWNvbnRyb2xzLm1vZHVsZVwiO1xyXG4iXX0=
import * as i0 from '@angular/core';
import { Injectable, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
import { Injectable, EventEmitter, Component, Input, Output, ViewChild, NgModule } from '@angular/core';
import * as i4 from 'ngx-awesome-uploader';
import { FilePickerAdapter, FileValidationTypes, FilePickerModule } from 'ngx-awesome-uploader';
import { FilePickerAdapter, FileValidationTypes, FilePickerComponent, FilePickerModule } from 'ngx-awesome-uploader';
import { of } from 'rxjs';

@@ -10,6 +10,8 @@ import * as i1 from 'ngx-filesize';

import { NgxBaseControlModule } from 'angular-extensions/controls/base-control';
import * as i5 from '@angular/material/icon';
import * as i6 from '@angular/common';
import * as i5 from '@angular/material/button';
import { MatButtonModule } from '@angular/material/button';
import * as i6 from '@angular/material/icon';
import * as i7 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i7 from '@angular/material/form-field';
import * as i8 from '@angular/material/form-field';

@@ -34,6 +36,6 @@ class FileService extends FilePickerAdapter {

class FileControlComponent {
constructor(fileSizePipe, defaultAdapter) {
constructor(elementRef, fileSizePipe, defaultAdapter) {
this.elementRef = elementRef;
this.fileSizePipe = fileSizePipe;
this.defaultAdapter = defaultAdapter;
this.allowedFileExtensions = [];
this.accept = [];

@@ -46,2 +48,9 @@ this.autoUpload = false;

ngOnInit() {
this.elementRef.nativeElement.addEventListener("change", () => {
// replace file is single select mode
if (!this.multiple) {
this.filePicker.files = [];
}
this.field.control.markAsTouched();
}, { capture: true });
}

@@ -85,4 +94,4 @@ onValidationError(error) {

}
FileControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileControlComponent, deps: [{ token: i1.FileSizePipe }, { token: FileService }], target: i0.ɵɵFactoryTarget.Component });
FileControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: FileControlComponent, selector: "file-control", inputs: { field: "field", disabled: "disabled", multiple: "multiple", allowedFileExtensions: "allowedFileExtensions", accept: "accept", maxFileSize: "maxFileSize", totalFileSize: "totalFileSize", autoUpload: "autoUpload", adapter: "adapter" }, outputs: { changes: "changes" }, providers: [FileService], ngImport: i0, template: "<base-control #baseControl\r\n [field]=\"field\">\r\n <div class=\"field-label\">\r\n\r\n <ngx-awesome-uploader #uploader\r\n [adapter]=\"adapter\"\r\n [showeDragDropZone]=\"true\"\r\n [uploadType]=\"multiple ? 'multi' : 'single'\"\r\n [fileMaxSize]=\"maxFileSize\"\r\n [totalMaxSize]=\"totalFileSize\"\r\n [fileMaxCount]=\"multiple ? $any(undefined) : 1\"\r\n [accept]=\"accept.toString()\"\r\n [itemTemplate]=\"fileItemTemplate\"\r\n [enableAutoUpload]=\"autoUpload\"\r\n [fileExtensions]=\"allowedFileExtensions\"\r\n (validationError)=\"onValidationError($event)\"\r\n (fileAdded)=\"onFileAdded($event)\">\r\n\r\n <div class=\"dropzoneTemplate\">\r\n <button mat-raised-button\r\n type=\"button\"\r\n (click)=\"field.control.markAsTouched()\">{{ field.label }}</button>\r\n </div>\r\n\r\n </ngx-awesome-uploader>\r\n\r\n </div>\r\n\r\n <mat-error *ngIf=\"baseControl.initialized && field.control.touched\">\r\n <ng-container *ngTemplateOutlet=\"baseControl.errorsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"validationErrors\">\r\n <mat-error *ngFor=\"let error of validationErrors\">\r\n {{ error.error }}\r\n </mat-error>\r\n </ng-container>\r\n </mat-error>\r\n</base-control>\r\n\r\n<ng-template #fileItemTemplate\r\n let-fileItem=\"fileItem\"\r\n let-uploadProgress=\"uploadProgress\">\r\n <div class=\"toolbar\">\r\n <span class=\"text-left\">\r\n {{ fileItem.fileName }}\r\n </span>\r\n\r\n <div *ngIf=\"fileItem\">\r\n <button mat-button\r\n mat-icon-button\r\n type=\"button\"\r\n (click)=\"uploader.removeFile(fileItem); onFileRemoved(fileItem)\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host .field-label{width:100%}:host ::ng-deep ngx-awesome-uploader{max-width:none!important}:host ::ng-deep .file-drop-wrapper{background:#fff!important;padding-top:0!important}:host ::ng-deep .file-drop-wrapper #dropZone{padding:5px 0;border:none;max-width:none}:host ::ng-deep .file-drop-wrapper file-drop{padding:0 3px}:host ::ng-deep file-preview-item{position:initial;padding:10px 16px;max-width:none}:host .toolbar{position:relative;display:flex;justify-content:space-between;align-items:center}:host .toolbar mat-icon{cursor:pointer}:host .toolbar .editor-label{padding:8px 14px;display:inline-block;line-height:1em;height:34px}:host .toolbar .form-control{width:auto;display:inline-block;line-height:1em;height:34px;margin-right:.3em}\n"], components: [{ type: i3.BaseControlComponent, selector: "base-control", inputs: ["field"] }, { type: i4.FilePickerComponent, selector: "ngx-awesome-uploader", inputs: ["enableCropper", "showeDragDropZone", "showPreviewContainer", "uploadType", "croppedCanvasOptions", "captions", "enableAutoUpload", "cropperOptions", "customValidator", "itemTemplate", "fileMaxSize", "fileMaxCount", "totalMaxSize", "accept", "fileExtensions", "adapter", "dropzoneTemplate", "fileInputCapture"], outputs: ["uploadSuccess", "uploadFail", "removeSuccess", "validationError", "fileAdded", "fileRemoved"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
FileControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileControlComponent, deps: [{ token: i0.ElementRef }, { token: i1.FileSizePipe }, { token: FileService }], target: i0.ɵɵFactoryTarget.Component });
FileControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.9", type: FileControlComponent, selector: "file-control", inputs: { field: "field", disabled: "disabled", multiple: "multiple", allowedFileExtensions: "allowedFileExtensions", accept: "accept", maxFileSize: "maxFileSize", totalFileSize: "totalFileSize", autoUpload: "autoUpload", adapter: "adapter", showPreview: "showPreview" }, outputs: { changes: "changes" }, providers: [FileService], viewQueries: [{ propertyName: "filePicker", first: true, predicate: FilePickerComponent, descendants: true }], ngImport: i0, template: "<base-control #baseControl\r\n [field]=\"field\">\r\n <div class=\"field-label\">\r\n <ngx-awesome-uploader #uploader\r\n [adapter]=\"adapter\"\r\n [showeDragDropZone]=\"true\"\r\n [showPreviewContainer]=\"showPreview\"\r\n [uploadType]=\"multiple ? 'multi' : 'single'\"\r\n [fileMaxSize]=\"maxFileSize\"\r\n [totalMaxSize]=\"totalFileSize\"\r\n [accept]=\"accept.toString()\"\r\n [itemTemplate]=\"fileItemTemplate\"\r\n [enableAutoUpload]=\"autoUpload\"\r\n [fileExtensions]=\"allowedFileExtensions\"\r\n (validationError)=\"onValidationError($event)\"\r\n (fileAdded)=\"onFileAdded($event)\">\r\n\r\n <div class=\"dropzoneTemplate\">\r\n <button mat-raised-button\r\n type=\"button\">{{ field.label }}</button>\r\n </div>\r\n </ngx-awesome-uploader>\r\n </div>\r\n\r\n <mat-error *ngIf=\"baseControl.initialized && field.control.touched\">\r\n <ng-container *ngTemplateOutlet=\"baseControl.errorsTemplate\"></ng-container>\r\n <ng-container *ngIf=\"validationErrors\">\r\n <mat-error *ngFor=\"let error of validationErrors\">\r\n {{ error.error }}\r\n </mat-error>\r\n </ng-container>\r\n </mat-error>\r\n</base-control>\r\n\r\n<ng-template #fileItemTemplate\r\n let-fileItem=\"fileItem\"\r\n let-uploadProgress=\"uploadProgress\">\r\n <div class=\"toolbar\">\r\n <span class=\"text-left\">\r\n {{ fileItem.fileName }}\r\n </span>\r\n\r\n <div *ngIf=\"fileItem\">\r\n <button mat-button\r\n mat-icon-button\r\n type=\"button\"\r\n (click)=\"uploader.removeFile(fileItem); onFileRemoved(fileItem)\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host .field-label{width:100%}:host ::ng-deep ngx-awesome-uploader{max-width:none!important}:host ::ng-deep .file-drop-wrapper{width:auto!important;background:none!important;padding-top:0!important}:host ::ng-deep .file-drop-wrapper #dropZone{padding:5px 0;border:none;max-width:none;background:none}:host ::ng-deep .file-drop-wrapper file-drop{padding:0 3px}:host ::ng-deep file-preview-item{position:initial;padding:10px 16px;max-width:none}:host .toolbar{position:relative;display:flex;justify-content:space-between;align-items:center}:host .toolbar mat-icon{cursor:pointer}:host .toolbar .editor-label{padding:8px 14px;display:inline-block;line-height:1em;height:34px}:host .toolbar .form-control{width:auto;display:inline-block;line-height:1em;height:34px;margin-right:.3em}\n"], components: [{ type: i3.BaseControlComponent, selector: "base-control", inputs: ["field"] }, { type: i4.FilePickerComponent, selector: "ngx-awesome-uploader", inputs: ["enableCropper", "showeDragDropZone", "showPreviewContainer", "uploadType", "croppedCanvasOptions", "captions", "enableAutoUpload", "cropperOptions", "customValidator", "itemTemplate", "fileMaxSize", "fileMaxCount", "totalMaxSize", "accept", "fileExtensions", "adapter", "dropzoneTemplate", "fileInputCapture"], outputs: ["uploadSuccess", "uploadFail", "removeSuccess", "validationError", "fileAdded", "fileRemoved"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.9", ngImport: i0, type: FileControlComponent, decorators: [{

@@ -96,3 +105,3 @@ type: Component,

}]
}], ctorParameters: function () { return [{ type: i1.FileSizePipe }, { type: FileService }]; }, propDecorators: { field: [{
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FileSizePipe }, { type: FileService }]; }, propDecorators: { field: [{
type: Input

@@ -115,4 +124,9 @@ }], disabled: [{

type: Input
}], showPreview: [{
type: Input
}], changes: [{
type: Output
}], filePicker: [{
type: ViewChild,
args: [FilePickerComponent]
}] } });

@@ -125,4 +139,6 @@

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,
FilePickerModule], exports: [NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -136,5 +152,7 @@ FilePickerModule,

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,
FilePickerModule,
], NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -148,2 +166,3 @@ FilePickerModule] });

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -154,2 +173,3 @@ FilePickerModule,

NgxBaseControlModule,
MatButtonModule,
NgxFilesizeModule,

@@ -156,0 +176,0 @@ FilePickerModule,

@@ -8,2 +8,3 @@ import * as i1 from 'angular-extensions/controls/base-control';

export * from 'angular-extensions/controls/textarea-control';
export * from 'angular-extensions/controls/file-control';
import * as i0 from '@angular/core';

@@ -10,0 +11,0 @@ import { Component, Inject, Input, ViewEncapsulation, TemplateRef, ContentChild, Directive, ChangeDetectionStrategy, Optional, ViewChild, EventEmitter, Output, NgModule } from '@angular/core';

{
"name": "angular-extensions",
"version": "1.0.26",
"version": "1.0.27",
"repository": "https://github.com/nazar-kuzo/angular-extensions.git",

@@ -5,0 +5,0 @@ "author": "Nazar Kuzo",

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

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc