@libs-ui/components-inputs-upload 0.1.1-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/avatar/avatar.component.d.ts +16 -0
- package/defines/helper.define.d.ts +2 -0
- package/esm2022/avatar/avatar.component.mjs +44 -0
- package/esm2022/defines/helper.define.mjs +35 -0
- package/esm2022/index.mjs +6 -0
- package/esm2022/interfaces/upload.interface.mjs +2 -0
- package/esm2022/libs-ui-components-inputs-upload.mjs +5 -0
- package/esm2022/pipes/calc-duration-video.pipe.mjs +32 -0
- package/esm2022/pipes/check-file-extension.pipe.mjs +37 -0
- package/esm2022/upload-drop-file.directive.mjs +68 -0
- package/esm2022/upload-file.directive.mjs +54 -0
- package/esm2022/upload.component.mjs +444 -0
- package/fesm2022/libs-ui-components-inputs-upload.mjs +698 -0
- package/fesm2022/libs-ui-components-inputs-upload.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/interfaces/upload.interface.d.ts +26 -0
- package/package.json +40 -0
- package/pipes/calc-duration-video.pipe.d.ts +7 -0
- package/pipes/check-file-extension.pipe.d.ts +8 -0
- package/upload-drop-file.directive.d.ts +18 -0
- package/upload-file.directive.d.ts +14 -0
- package/upload.component.d.ts +90 -0
package/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IFile } from '@libs-ui/interfaces-types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class LibsUiComponentsInputsUploadAvatarComponent {
|
|
4
|
+
private linkImageError;
|
|
5
|
+
readonly item: import("@angular/core").ModelSignal<IFile>;
|
|
6
|
+
readonly showVideoDuration: import("@angular/core").InputSignal<boolean | undefined>;
|
|
7
|
+
readonly disable: import("@angular/core").InputSignal<boolean | undefined>;
|
|
8
|
+
readonly size: import("@angular/core").InputSignal<number | undefined>;
|
|
9
|
+
readonly classInclude: import("@angular/core").InputSignalWithTransform<string, string | undefined>;
|
|
10
|
+
readonly outOpenPreview: import("@angular/core").OutputEmitterRef<IFile>;
|
|
11
|
+
constructor(linkImageError: string);
|
|
12
|
+
protected handlerImageError(event: Event): Promise<void>;
|
|
13
|
+
protected handlerImageClick(event: Event): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsInputsUploadAvatarComponent, [{ optional: true; }]>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsInputsUploadAvatarComponent, "libs_ui-components-inputs-upload-avatar", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "showVideoDuration": { "alias": "showVideoDuration"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "classInclude": { "alias": "classInclude"; "required": false; "isSignal": true; }; }, { "item": "itemChange"; "outOpenPreview": "outOpenPreview"; }, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { IUploadDescriptionFormatAndSizeFile, TYPE_FILE_UPLOAD } from '../interfaces/upload.interface';
|
|
2
|
+
export declare const getDescriptionFormatAndSizeFileDefault: (type: TYPE_FILE_UPLOAD, maxImageSize: number, maxVideoSize: number, maxDocumentSize: number, maxAudioSize: number) => IUploadDescriptionFormatAndSizeFile[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AsyncPipe, NgComponentOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Inject, input, model, Optional, output } from '@angular/core';
|
|
3
|
+
import { LibsUiComponentsSpinnerComponent } from '@libs-ui/components-spinner';
|
|
4
|
+
import { LibsUiIconsGetIconComponentPipe } from '@libs-ui/icons';
|
|
5
|
+
import { LibsUiPipesSecurityTrustPipe } from '@libs-ui/pipes-security-trust';
|
|
6
|
+
import { LINK_IMAGE_ERROR_TOKEN_INJECT } from '@libs-ui/utils';
|
|
7
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
8
|
+
import { LibsUiPipesInputsUploadCalcDurationVideoPipe } from '../pipes/calc-duration-video.pipe';
|
|
9
|
+
import { LibsUiPipesInputsUploadCheckFileExtensionPipe } from '../pipes/check-file-extension.pipe';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class LibsUiComponentsInputsUploadAvatarComponent {
|
|
12
|
+
linkImageError;
|
|
13
|
+
item = model.required();
|
|
14
|
+
showVideoDuration = input();
|
|
15
|
+
disable = input();
|
|
16
|
+
size = input();
|
|
17
|
+
classInclude = input('', { transform: (value) => value ?? '' });
|
|
18
|
+
outOpenPreview = output();
|
|
19
|
+
constructor(linkImageError) {
|
|
20
|
+
this.linkImageError = linkImageError;
|
|
21
|
+
}
|
|
22
|
+
async handlerImageError(event) {
|
|
23
|
+
if (!this.linkImageError) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
event.target.src = this.linkImageError;
|
|
27
|
+
}
|
|
28
|
+
handlerImageClick(event) {
|
|
29
|
+
event.stopPropagation();
|
|
30
|
+
this.outOpenPreview.emit(this.item());
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsUploadAvatarComponent, deps: [{ token: LINK_IMAGE_ERROR_TOKEN_INJECT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsInputsUploadAvatarComponent, isStandalone: true, selector: "libs_ui-components-inputs-upload-avatar", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, showVideoDuration: { classPropertyName: "showVideoDuration", publicName: "showVideoDuration", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { item: "itemChange", outOpenPreview: "outOpenPreview" }, ngImport: i0, template: "<div\n class=\"flex mr-[12px] bg-[#ffffff] rounded-[4px] {{ classInclude() }}\"\n [class.libs-ui-disable]=\"disable() || item().isUploading || item().error\">\n @if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'image') {\n <div\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"relative\">\n @if (item().url || item().origin_url; as url) {\n <img\n [src]=\"url\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"rounded-[4px] cursor-pointer\"\n alt\n (error)=\"handlerImageError($event)\"\n (click)=\"handlerImageClick($event)\" />\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'video') {\n <div\n class=\"relative\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\">\n @if (item().url || item().origin_url) {\n @let constHtmlSrc = item().url || item().origin_url || '';\n <video\n #videoRef\n [style.width.px]=\"size || 32\"\n [style.height.px]=\"size || 32\"\n class=\"rounded-[4px]\"\n preload=\"metadata\"\n [src]=\"constHtmlSrc | LibsUiPipesSecurityTrustPipe: 'resourceUrl'\"></video>\n <div class=\"absolute w-full h-full top-0 bg-[#001433] opacity-40 rounded-[4px]\"></div>\n <div class=\"absolute w-full h-full flex items-center justify-center top-0\">\n <i class=\"text-[#ffffff] libs-ui-icon-play-solid before:!text-[10px]\"></i>\n </div>\n @if (showVideoDuration()) {\n <div class=\"flex text-[5px] absolute bottom-0 right-0 py-[2px] px-[4px] rounded-[4px] bg-[#000000] text-[#ffffff]\">\n {{ videoRef.duration | LibsUiPipesInputsUploadCalcDurationVideoPipe }}\n </div>\n }\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'pdf') {\n <ng-container *ngComponentOutlet=\"'pdf' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'word') {\n <ng-container *ngComponentOutlet=\"'word' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'pptx') {\n <ng-container *ngComponentOutlet=\"'pptx' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'xlsx') {\n <ng-container *ngComponentOutlet=\"'xlsx' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else {\n <div\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"flex items-center justify-center\">\n <i\n class=\"libs-ui-icon-file before:!text-[19px]\"\n [class.text-[#6a7383]]=\"!item().isUploading && !item().error\"\n [class.text-[#071631]]=\"disable() || item().isUploading || item().error\"></i>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LibsUiComponentsSpinnerComponent, selector: "libs_ui-components-spinner", inputs: ["type", "size"] }, { kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "pipe", type: LibsUiPipesInputsUploadCalcDurationVideoPipe, name: "LibsUiPipesInputsUploadCalcDurationVideoPipe" }, { kind: "pipe", type: LibsUiPipesInputsUploadCheckFileExtensionPipe, name: "LibsUiPipesInputsUploadCheckFileExtensionPipe" }, { kind: "pipe", type: LibsUiIconsGetIconComponentPipe, name: "LibsUiIconsGetIconComponentPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsUploadAvatarComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'libs_ui-components-inputs-upload-avatar', standalone: true, imports: [NgComponentOutlet, AsyncPipe, TranslateModule, LibsUiComponentsSpinnerComponent, LibsUiPipesSecurityTrustPipe, LibsUiPipesInputsUploadCalcDurationVideoPipe, LibsUiPipesInputsUploadCheckFileExtensionPipe, LibsUiIconsGetIconComponentPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"flex mr-[12px] bg-[#ffffff] rounded-[4px] {{ classInclude() }}\"\n [class.libs-ui-disable]=\"disable() || item().isUploading || item().error\">\n @if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'image') {\n <div\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"relative\">\n @if (item().url || item().origin_url; as url) {\n <img\n [src]=\"url\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"rounded-[4px] cursor-pointer\"\n alt\n (error)=\"handlerImageError($event)\"\n (click)=\"handlerImageClick($event)\" />\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'video') {\n <div\n class=\"relative\"\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\">\n @if (item().url || item().origin_url) {\n @let constHtmlSrc = item().url || item().origin_url || '';\n <video\n #videoRef\n [style.width.px]=\"size || 32\"\n [style.height.px]=\"size || 32\"\n class=\"rounded-[4px]\"\n preload=\"metadata\"\n [src]=\"constHtmlSrc | LibsUiPipesSecurityTrustPipe: 'resourceUrl'\"></video>\n <div class=\"absolute w-full h-full top-0 bg-[#001433] opacity-40 rounded-[4px]\"></div>\n <div class=\"absolute w-full h-full flex items-center justify-center top-0\">\n <i class=\"text-[#ffffff] libs-ui-icon-play-solid before:!text-[10px]\"></i>\n </div>\n @if (showVideoDuration()) {\n <div class=\"flex text-[5px] absolute bottom-0 right-0 py-[2px] px-[4px] rounded-[4px] bg-[#000000] text-[#ffffff]\">\n {{ videoRef.duration | LibsUiPipesInputsUploadCalcDurationVideoPipe }}\n </div>\n }\n } @else {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'pdf') {\n <ng-container *ngComponentOutlet=\"'pdf' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'word') {\n <ng-container *ngComponentOutlet=\"'word' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'pptx') {\n <ng-container *ngComponentOutlet=\"'pptx' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else if (item() | LibsUiPipesInputsUploadCheckFileExtensionPipe: 'xlsx') {\n <ng-container *ngComponentOutlet=\"'xlsx' | LibsUiIconsGetIconComponentPipe | async; inputs: { size: size() || 32 }\" />\n } @else {\n <div\n [style.width.px]=\"size() || 32\"\n [style.height.px]=\"size() || 32\"\n class=\"flex items-center justify-center\">\n <i\n class=\"libs-ui-icon-file before:!text-[19px]\"\n [class.text-[#6a7383]]=\"!item().isUploading && !item().error\"\n [class.text-[#071631]]=\"disable() || item().isUploading || item().error\"></i>\n </div>\n }\n</div>\n" }]
|
|
38
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
39
|
+
type: Optional
|
|
40
|
+
}, {
|
|
41
|
+
type: Inject,
|
|
42
|
+
args: [LINK_IMAGE_ERROR_TOKEN_INJECT]
|
|
43
|
+
}] }] });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvdXBsb2FkL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvdXBsb2FkL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVVuRyxNQUFNLE9BQU8sMkNBQTJDO0lBU2lCO0lBUjlELElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFTLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDckMsT0FBTyxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzNCLElBQUksR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUN2QixZQUFZLEdBQUcsS0FBSyxDQUE2QixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTVGLGNBQWMsR0FBRyxNQUFNLEVBQVMsQ0FBQztJQUUxQyxZQUF1RSxjQUFzQjtRQUF0QixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtJQUFHLENBQUM7SUFFdkYsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQVk7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUNBLEtBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3JELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFZO1FBQ3RDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO3dHQXJCVSwyQ0FBMkMsa0JBU3RCLDZCQUE2Qjs0RkFUbEQsMkNBQTJDLGswQkNuQnhELDR1R0FvRUEsNENEcERZLGlCQUFpQiwrT0FBRSxTQUFTLDZDQUFFLGVBQWUsK0JBQUUsZ0NBQWdDLDRGQUFFLDRCQUE0QixnRUFBRSw0Q0FBNEMsZ0ZBQUUsNkNBQTZDLGlGQUFFLCtCQUErQjs7NEZBRzFPLDJDQUEyQztrQkFSdkQsU0FBUzsrQkFFRSx5Q0FBeUMsY0FFdkMsSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxnQ0FBZ0MsRUFBRSw0QkFBNEIsRUFBRSw0Q0FBNEMsRUFBRSw2Q0FBNkMsRUFBRSwrQkFBK0IsQ0FBQyxtQkFDck8sdUJBQXVCLENBQUMsTUFBTTs7MEJBV2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIGlucHV0LCBtb2RlbCwgT3B0aW9uYWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXNwaW5uZXInO1xuaW1wb3J0IHsgTGlic1VpSWNvbnNHZXRJY29uQ29tcG9uZW50UGlwZSB9IGZyb20gJ0BsaWJzLXVpL2ljb25zJztcbmltcG9ydCB7IElFdmVudCwgSUZpbGUgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IExpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGUgfSBmcm9tICdAbGlicy11aS9waXBlcy1zZWN1cml0eS10cnVzdCc7XG5pbXBvcnQgeyBMSU5LX0lNQUdFX0VSUk9SX1RPS0VOX0lOSkVDVCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpUGlwZXNJbnB1dHNVcGxvYWRDYWxjRHVyYXRpb25WaWRlb1BpcGUgfSBmcm9tICcuLi9waXBlcy9jYWxjLWR1cmF0aW9uLXZpZGVvLnBpcGUnO1xuaW1wb3J0IHsgTGlic1VpUGlwZXNJbnB1dHNVcGxvYWRDaGVja0ZpbGVFeHRlbnNpb25QaXBlIH0gZnJvbSAnLi4vcGlwZXMvY2hlY2stZmlsZS1leHRlbnNpb24ucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtdXBsb2FkLWF2YXRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDb21wb25lbnRPdXRsZXQsIEFzeW5jUGlwZSwgVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzU3Bpbm5lckNvbXBvbmVudCwgTGlic1VpUGlwZXNTZWN1cml0eVRydXN0UGlwZSwgTGlic1VpUGlwZXNJbnB1dHNVcGxvYWRDYWxjRHVyYXRpb25WaWRlb1BpcGUsIExpYnNVaVBpcGVzSW5wdXRzVXBsb2FkQ2hlY2tGaWxlRXh0ZW5zaW9uUGlwZSwgTGlic1VpSWNvbnNHZXRJY29uQ29tcG9uZW50UGlwZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzVXBsb2FkQXZhdGFyQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaXRlbSA9IG1vZGVsLnJlcXVpcmVkPElGaWxlPigpO1xuICByZWFkb25seSBzaG93VmlkZW9EdXJhdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBzaXplID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICcnIH0pO1xuXG4gIHJlYWRvbmx5IG91dE9wZW5QcmV2aWV3ID0gb3V0cHV0PElGaWxlPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTElOS19JTUFHRV9FUlJPUl9UT0tFTl9JTkpFQ1QpIHByaXZhdGUgbGlua0ltYWdlRXJyb3I6IHN0cmluZykge31cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckltYWdlRXJyb3IoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmxpbmtJbWFnZUVycm9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIChldmVudCBhcyBJRXZlbnQpLnRhcmdldC5zcmMgPSB0aGlzLmxpbmtJbWFnZUVycm9yO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJJbWFnZUNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3V0T3BlblByZXZpZXcuZW1pdCh0aGlzLml0ZW0oKSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IG1yLVsxMnB4XSBiZy1bI2ZmZmZmZl0gcm91bmRlZC1bNHB4XSB7eyBjbGFzc0luY2x1ZGUoKSB9fVwiXG4gIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiZGlzYWJsZSgpIHx8IGl0ZW0oKS5pc1VwbG9hZGluZyB8fCBpdGVtKCkuZXJyb3JcIj5cbiAgQGlmIChpdGVtKCkgfCBMaWJzVWlQaXBlc0lucHV0c1VwbG9hZENoZWNrRmlsZUV4dGVuc2lvblBpcGU6ICdpbWFnZScpIHtcbiAgICA8ZGl2XG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwic2l6ZSgpIHx8IDMyXCJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwic2l6ZSgpIHx8IDMyXCJcbiAgICAgIGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgIEBpZiAoaXRlbSgpLnVybCB8fCBpdGVtKCkub3JpZ2luX3VybDsgYXMgdXJsKSB7XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cInVybFwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNpemUoKSB8fCAzMlwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJzaXplKCkgfHwgMzJcIlxuICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1bNHB4XSBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgYWx0XG4gICAgICAgICAgKGVycm9yKT1cImhhbmRsZXJJbWFnZUVycm9yKCRldmVudClcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVySW1hZ2VDbGljaygkZXZlbnQpXCIgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLXNwaW5uZXIgW3NpemVdPVwiJ21lZGl1bSdcIiAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9IEBlbHNlIGlmIChpdGVtKCkgfCBMaWJzVWlQaXBlc0lucHV0c1VwbG9hZENoZWNrRmlsZUV4dGVuc2lvblBpcGU6ICd2aWRlbycpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlXCJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJzaXplKCkgfHwgMzJcIlxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJzaXplKCkgfHwgMzJcIj5cbiAgICAgIEBpZiAoaXRlbSgpLnVybCB8fCBpdGVtKCkub3JpZ2luX3VybCkge1xuICAgICAgICBAbGV0IGNvbnN0SHRtbFNyYyA9IGl0ZW0oKS51cmwgfHwgaXRlbSgpLm9yaWdpbl91cmwgfHwgJyc7XG4gICAgICAgIDx2aWRlb1xuICAgICAgICAgICN2aWRlb1JlZlxuICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJzaXplIHx8IDMyXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInNpemUgfHwgMzJcIlxuICAgICAgICAgIGNsYXNzPVwicm91bmRlZC1bNHB4XVwiXG4gICAgICAgICAgcHJlbG9hZD1cIm1ldGFkYXRhXCJcbiAgICAgICAgICBbc3JjXT1cImNvbnN0SHRtbFNyYyB8IExpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGU6ICdyZXNvdXJjZVVybCdcIj48L3ZpZGVvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdy1mdWxsIGgtZnVsbCB0b3AtMCBiZy1bIzAwMTQzM10gb3BhY2l0eS00MCByb3VuZGVkLVs0cHhdXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB3LWZ1bGwgaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRvcC0wXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ0ZXh0LVsjZmZmZmZmXSBsaWJzLXVpLWljb24tcGxheS1zb2xpZCBiZWZvcmU6IXRleHQtWzEwcHhdXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChzaG93VmlkZW9EdXJhdGlvbigpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdGV4dC1bNXB4XSBhYnNvbHV0ZSBib3R0b20tMCByaWdodC0wIHB5LVsycHhdIHB4LVs0cHhdIHJvdW5kZWQtWzRweF0gYmctWyMwMDAwMDBdIHRleHQtWyNmZmZmZmZdXCI+XG4gICAgICAgICAgICB7eyB2aWRlb1JlZi5kdXJhdGlvbiB8IExpYnNVaVBpcGVzSW5wdXRzVXBsb2FkQ2FsY0R1cmF0aW9uVmlkZW9QaXBlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLXNwaW5uZXIgW3NpemVdPVwiJ21lZGl1bSdcIiAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9IEBlbHNlIGlmIChpdGVtKCkgfCBMaWJzVWlQaXBlc0lucHV0c1VwbG9hZENoZWNrRmlsZUV4dGVuc2lvblBpcGU6ICdwZGYnKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCIncGRmJyB8IExpYnNVaUljb25zR2V0SWNvbkNvbXBvbmVudFBpcGUgfCBhc3luYzsgaW5wdXRzOiB7IHNpemU6IHNpemUoKSB8fCAzMiB9XCIgLz5cbiAgfSBAZWxzZSBpZiAoaXRlbSgpIHwgTGlic1VpUGlwZXNJbnB1dHNVcGxvYWRDaGVja0ZpbGVFeHRlbnNpb25QaXBlOiAnd29yZCcpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cIid3b3JkJyB8IExpYnNVaUljb25zR2V0SWNvbkNvbXBvbmVudFBpcGUgfCBhc3luYzsgaW5wdXRzOiB7IHNpemU6IHNpemUoKSB8fCAzMiB9XCIgLz5cbiAgfSBAZWxzZSBpZiAoaXRlbSgpIHwgTGlic1VpUGlwZXNJbnB1dHNVcGxvYWRDaGVja0ZpbGVFeHRlbnNpb25QaXBlOiAncHB0eCcpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cIidwcHR4JyB8IExpYnNVaUljb25zR2V0SWNvbkNvbXBvbmVudFBpcGUgfCBhc3luYzsgaW5wdXRzOiB7IHNpemU6IHNpemUoKSB8fCAzMiB9XCIgLz5cbiAgfSBAZWxzZSBpZiAoaXRlbSgpIHwgTGlic1VpUGlwZXNJbnB1dHNVcGxvYWRDaGVja0ZpbGVFeHRlbnNpb25QaXBlOiAneGxzeCcpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cIid4bHN4JyB8IExpYnNVaUljb25zR2V0SWNvbkNvbXBvbmVudFBpcGUgfCBhc3luYzsgaW5wdXRzOiB7IHNpemU6IHNpemUoKSB8fCAzMiB9XCIgLz5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNpemUoKSB8fCAzMlwiXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInNpemUoKSB8fCAzMlwiXG4gICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cImxpYnMtdWktaWNvbi1maWxlIGJlZm9yZTohdGV4dC1bMTlweF1cIlxuICAgICAgICBbY2xhc3MudGV4dC1bIzZhNzM4M11dPVwiIWl0ZW0oKS5pc1VwbG9hZGluZyAmJiAhaXRlbSgpLmVycm9yXCJcbiAgICAgICAgW2NsYXNzLnRleHQtWyMwNzE2MzFdXT1cImRpc2FibGUoKSB8fCBpdGVtKCkuaXNVcGxvYWRpbmcgfHwgaXRlbSgpLmVycm9yXCI+PC9pPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getLabelBySizeFile } from '@libs-ui/utils';
|
|
2
|
+
export const getDescriptionFormatAndSizeFileDefault = (type, maxImageSize, maxVideoSize, maxDocumentSize, maxAudioSize) => {
|
|
3
|
+
const image = {
|
|
4
|
+
message: 'i18n_note_upload_image_volume',
|
|
5
|
+
interpolateParams: { value: getLabelBySizeFile(maxImageSize, 0) },
|
|
6
|
+
};
|
|
7
|
+
const video = {
|
|
8
|
+
message: 'i18n_note_upload_video_volume',
|
|
9
|
+
interpolateParams: { value: getLabelBySizeFile(maxVideoSize, 0) },
|
|
10
|
+
};
|
|
11
|
+
const document = {
|
|
12
|
+
message: 'i18n_note_upload_file_volume',
|
|
13
|
+
interpolateParams: { value: getLabelBySizeFile(maxDocumentSize, 0) },
|
|
14
|
+
};
|
|
15
|
+
const audio = {
|
|
16
|
+
message: 'i18n_note_upload_audio_volume',
|
|
17
|
+
interpolateParams: { value: getLabelBySizeFile(maxAudioSize, 0) },
|
|
18
|
+
};
|
|
19
|
+
const typeSplit = type.split('_');
|
|
20
|
+
const description = [];
|
|
21
|
+
if (typeSplit.includes('image')) {
|
|
22
|
+
description.push(image);
|
|
23
|
+
}
|
|
24
|
+
if (typeSplit.includes('audio')) {
|
|
25
|
+
description.push(audio);
|
|
26
|
+
}
|
|
27
|
+
if (typeSplit.includes('video')) {
|
|
28
|
+
description.push(video);
|
|
29
|
+
}
|
|
30
|
+
if (typeSplit.includes('document')) {
|
|
31
|
+
description.push(document);
|
|
32
|
+
}
|
|
33
|
+
return description;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvdXBsb2FkL3NyYy9kZWZpbmVzL2hlbHBlci5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsQ0FBQyxJQUFzQixFQUFFLFlBQW9CLEVBQUUsWUFBb0IsRUFBRSxlQUF1QixFQUFFLFlBQW9CLEVBQXlDLEVBQUU7SUFDak4sTUFBTSxLQUFLLEdBQUc7UUFDWixPQUFPLEVBQUUsK0JBQStCO1FBQ3hDLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRTtLQUNsRSxDQUFDO0lBQ0YsTUFBTSxLQUFLLEdBQUc7UUFDWixPQUFPLEVBQUUsK0JBQStCO1FBQ3hDLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRTtLQUNsRSxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPLEVBQUUsOEJBQThCO1FBQ3ZDLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRTtLQUNyRSxDQUFDO0lBQ0YsTUFBTSxLQUFLLEdBQUc7UUFDWixPQUFPLEVBQUUsK0JBQStCO1FBQ3hDLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRTtLQUNsRSxDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFFdkIsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDbkMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TGFiZWxCeVNpemVGaWxlIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgSVVwbG9hZERlc2NyaXB0aW9uRm9ybWF0QW5kU2l6ZUZpbGUsIFRZUEVfRklMRV9VUExPQUQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3VwbG9hZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgZ2V0RGVzY3JpcHRpb25Gb3JtYXRBbmRTaXplRmlsZURlZmF1bHQgPSAodHlwZTogVFlQRV9GSUxFX1VQTE9BRCwgbWF4SW1hZ2VTaXplOiBudW1iZXIsIG1heFZpZGVvU2l6ZTogbnVtYmVyLCBtYXhEb2N1bWVudFNpemU6IG51bWJlciwgbWF4QXVkaW9TaXplOiBudW1iZXIpOiBJVXBsb2FkRGVzY3JpcHRpb25Gb3JtYXRBbmRTaXplRmlsZVtdID0+IHtcbiAgY29uc3QgaW1hZ2UgPSB7XG4gICAgbWVzc2FnZTogJ2kxOG5fbm90ZV91cGxvYWRfaW1hZ2Vfdm9sdW1lJyxcbiAgICBpbnRlcnBvbGF0ZVBhcmFtczogeyB2YWx1ZTogZ2V0TGFiZWxCeVNpemVGaWxlKG1heEltYWdlU2l6ZSwgMCkgfSxcbiAgfTtcbiAgY29uc3QgdmlkZW8gPSB7XG4gICAgbWVzc2FnZTogJ2kxOG5fbm90ZV91cGxvYWRfdmlkZW9fdm9sdW1lJyxcbiAgICBpbnRlcnBvbGF0ZVBhcmFtczogeyB2YWx1ZTogZ2V0TGFiZWxCeVNpemVGaWxlKG1heFZpZGVvU2l6ZSwgMCkgfSxcbiAgfTtcbiAgY29uc3QgZG9jdW1lbnQgPSB7XG4gICAgbWVzc2FnZTogJ2kxOG5fbm90ZV91cGxvYWRfZmlsZV92b2x1bWUnLFxuICAgIGludGVycG9sYXRlUGFyYW1zOiB7IHZhbHVlOiBnZXRMYWJlbEJ5U2l6ZUZpbGUobWF4RG9jdW1lbnRTaXplLCAwKSB9LFxuICB9O1xuICBjb25zdCBhdWRpbyA9IHtcbiAgICBtZXNzYWdlOiAnaTE4bl9ub3RlX3VwbG9hZF9hdWRpb192b2x1bWUnLFxuICAgIGludGVycG9sYXRlUGFyYW1zOiB7IHZhbHVlOiBnZXRMYWJlbEJ5U2l6ZUZpbGUobWF4QXVkaW9TaXplLCAwKSB9LFxuICB9O1xuXG4gIGNvbnN0IHR5cGVTcGxpdCA9IHR5cGUuc3BsaXQoJ18nKTtcbiAgY29uc3QgZGVzY3JpcHRpb24gPSBbXTtcblxuICBpZiAodHlwZVNwbGl0LmluY2x1ZGVzKCdpbWFnZScpKSB7XG4gICAgZGVzY3JpcHRpb24ucHVzaChpbWFnZSk7XG4gIH1cbiAgaWYgKHR5cGVTcGxpdC5pbmNsdWRlcygnYXVkaW8nKSkge1xuICAgIGRlc2NyaXB0aW9uLnB1c2goYXVkaW8pO1xuICB9XG4gIGlmICh0eXBlU3BsaXQuaW5jbHVkZXMoJ3ZpZGVvJykpIHtcbiAgICBkZXNjcmlwdGlvbi5wdXNoKHZpZGVvKTtcbiAgfVxuICBpZiAodHlwZVNwbGl0LmluY2x1ZGVzKCdkb2N1bWVudCcpKSB7XG4gICAgZGVzY3JpcHRpb24ucHVzaChkb2N1bWVudCk7XG4gIH1cblxuICByZXR1cm4gZGVzY3JpcHRpb247XG59O1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './upload.component';
|
|
2
|
+
export * from './avatar/avatar.component';
|
|
3
|
+
export * from './interfaces/upload.interface';
|
|
4
|
+
export * from './upload-file.directive';
|
|
5
|
+
export * from './upload-drop-file.directive';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3VwbG9hZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3VwbG9hZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91cGxvYWQtZmlsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi91cGxvYWQtZHJvcC1maWxlLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvdXBsb2FkL3NyYy9pbnRlcmZhY2VzL3VwbG9hZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRZUEVfT0JKRUNULCBJSHR0cFByb2Nlc3NVcGxvYWQsIElGaWxlIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFRZUEVfTU9ERV9GSUxFX0RJU1BMQVkgPSAnZnVsbCcgfCAnc2hvcnQnO1xuZXhwb3J0IHR5cGUgVFlQRV9GSUxFX1VQTE9BRCA9XG4gIHwgJ2RvY3VtZW50J1xuICB8ICdpbWFnZSdcbiAgfCAndmlkZW8nXG4gIHwgJ2F1ZGlvJ1xuICB8ICdpbWFnZV9kb2N1bWVudCdcbiAgfCAnaW1hZ2VfdmlkZW8nXG4gIHwgJ2ltYWdlX2F1ZGlvJ1xuICB8ICdkb2N1bWVudF9hdWRpbydcbiAgfCAndmlkZW9fYXVkaW8nXG4gIHwgJ2ltYWdlX2RvY3VtZW50X2F1ZGlvJ1xuICB8ICdpbWFnZV92aWRlb19hdWRpbydcbiAgfCAnZG9jdW1lbnRfdmlkZW9fYXVkaW8nXG4gIHwgJ2ltYWdlX3ZpZGVvX2RvY3VtZW50J1xuICB8ICdpbWFnZV9hdWRpb192aWRlb19kb2N1bWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVwbG9hZERlc2NyaXB0aW9uRm9ybWF0QW5kU2l6ZUZpbGUge1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGludGVycG9sYXRlUGFyYW1zPzogVFlQRV9PQkpFQ1Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpbGVDaGFuZ2Uge1xuICBmaWxlczogQXJyYXk8SUZpbGU+O1xufVxuZXhwb3J0IGludGVyZmFjZSBJVXBsb2FkQ29uZmlnRG93bmxvYWRTYW1wbGVGaWxlIHtcbiAgcG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nO1xuICB0aXRsZTogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIGNsYXNzTGFiZWw/OiBzdHJpbmc7XG4gIGNsYXNzSW5jbHVkZT86IHN0cmluZztcbiAgY2xhc3NJY29uTGVmdEluY2x1ZGU/OiBzdHJpbmc7XG4gIGNhbGxCYWNrPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXBsb2FkRnVuY3Rpb25Db250cm9sRXZlbnQge1xuICBjaGVja0lzVmFsaWQ6ICgpID0+IFByb21pc2U8Ym9vbGVhbj47XG4gIHJlbW92ZUFsbDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgdXBsb2FkaW5nOiAocHJvY2VzczogSUh0dHBQcm9jZXNzVXBsb2FkLCBpZDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBzZXRNZXNzYWdlRXJyb3I6IChtZXNzYWdlOiBzdHJpbmcsIGlkPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBoYW5kbGVyVXBsb2FkRmlsZTogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLWlucHV0cy11cGxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3VwbG9hZC9zcmMvbGlicy11aS1jb21wb25lbnRzLWlucHV0cy11cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class LibsUiPipesInputsUploadCalcDurationVideoPipe {
|
|
4
|
+
transform(duration) {
|
|
5
|
+
if (!duration) {
|
|
6
|
+
return '0:0';
|
|
7
|
+
}
|
|
8
|
+
duration = Math.round(duration);
|
|
9
|
+
if (duration >= 3600) {
|
|
10
|
+
const hour = Math.floor(duration / 3600);
|
|
11
|
+
const minute = Math.floor((duration - hour * 3600) / 60);
|
|
12
|
+
const second = duration - (hour * 3600 + minute * 60);
|
|
13
|
+
return `${hour}:${minute < 10 ? `0${minute}` : minute}:${second < 10 ? `0${second}` : second}`;
|
|
14
|
+
}
|
|
15
|
+
if (duration >= 60) {
|
|
16
|
+
const minute = Math.floor(duration / 60);
|
|
17
|
+
const second = duration - minute * 60;
|
|
18
|
+
return `${minute}:${second < 10 ? `0${second}` : second}`;
|
|
19
|
+
}
|
|
20
|
+
return `0:${duration}`;
|
|
21
|
+
}
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiPipesInputsUploadCalcDurationVideoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
23
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: LibsUiPipesInputsUploadCalcDurationVideoPipe, isStandalone: true, name: "LibsUiPipesInputsUploadCalcDurationVideoPipe" });
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiPipesInputsUploadCalcDurationVideoPipe, decorators: [{
|
|
26
|
+
type: Pipe,
|
|
27
|
+
args: [{
|
|
28
|
+
name: 'LibsUiPipesInputsUploadCalcDurationVideoPipe',
|
|
29
|
+
standalone: true,
|
|
30
|
+
}]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsYy1kdXJhdGlvbi12aWRlby5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy91cGxvYWQvc3JjL3BpcGVzL2NhbGMtZHVyYXRpb24tdmlkZW8ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLDRDQUE0QztJQUN2RCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDekQsTUFBTSxNQUFNLEdBQUcsUUFBUSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFFdEQsT0FBTyxHQUFHLElBQUksSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakcsQ0FBQztRQUNELElBQUksUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRXRDLE9BQU8sR0FBRyxNQUFNLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUQsQ0FBQztRQUVELE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQXJCVSw0Q0FBNEM7c0dBQTVDLDRDQUE0Qzs7NEZBQTVDLDRDQUE0QztrQkFKeEQsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsOENBQThDO29CQUNwRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ0xpYnNVaVBpcGVzSW5wdXRzVXBsb2FkQ2FsY0R1cmF0aW9uVmlkZW9QaXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpUGlwZXNJbnB1dHNVcGxvYWRDYWxjRHVyYXRpb25WaWRlb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICBpZiAoIWR1cmF0aW9uKSB7XG4gICAgICByZXR1cm4gJzA6MCc7XG4gICAgfVxuICAgIGR1cmF0aW9uID0gTWF0aC5yb3VuZChkdXJhdGlvbik7XG4gICAgaWYgKGR1cmF0aW9uID49IDM2MDApIHtcbiAgICAgIGNvbnN0IGhvdXIgPSBNYXRoLmZsb29yKGR1cmF0aW9uIC8gMzYwMCk7XG4gICAgICBjb25zdCBtaW51dGUgPSBNYXRoLmZsb29yKChkdXJhdGlvbiAtIGhvdXIgKiAzNjAwKSAvIDYwKTtcbiAgICAgIGNvbnN0IHNlY29uZCA9IGR1cmF0aW9uIC0gKGhvdXIgKiAzNjAwICsgbWludXRlICogNjApO1xuXG4gICAgICByZXR1cm4gYCR7aG91cn06JHttaW51dGUgPCAxMCA/IGAwJHttaW51dGV9YCA6IG1pbnV0ZX06JHtzZWNvbmQgPCAxMCA/IGAwJHtzZWNvbmR9YCA6IHNlY29uZH1gO1xuICAgIH1cbiAgICBpZiAoZHVyYXRpb24gPj0gNjApIHtcbiAgICAgIGNvbnN0IG1pbnV0ZSA9IE1hdGguZmxvb3IoZHVyYXRpb24gLyA2MCk7XG4gICAgICBjb25zdCBzZWNvbmQgPSBkdXJhdGlvbiAtIG1pbnV0ZSAqIDYwO1xuXG4gICAgICByZXR1cm4gYCR7bWludXRlfToke3NlY29uZCA8IDEwID8gYDAke3NlY29uZH1gIDogc2Vjb25kfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAwOiR7ZHVyYXRpb259YDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { DocumentExtList, getFileExtension, ImageExtList, VideoExtList } from '@libs-ui/utils';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class LibsUiPipesInputsUploadCheckFileExtensionPipe {
|
|
5
|
+
transform(file, type) {
|
|
6
|
+
const fileExtension = getFileExtension(file);
|
|
7
|
+
if (!fileExtension) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
switch (type) {
|
|
11
|
+
case 'image':
|
|
12
|
+
return ImageExtList.includes(fileExtension);
|
|
13
|
+
case 'video':
|
|
14
|
+
return VideoExtList.includes(fileExtension);
|
|
15
|
+
case 'word':
|
|
16
|
+
return ['doc', 'docx', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'].includes(fileExtension);
|
|
17
|
+
case 'xlsx':
|
|
18
|
+
return ['xls', 'xlsx', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'gsheet'].includes(fileExtension);
|
|
19
|
+
case 'pdf':
|
|
20
|
+
return ['pdf', 'application/pdf'].includes(fileExtension);
|
|
21
|
+
case 'pptx':
|
|
22
|
+
return ['ppt', 'pptx', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'].includes(fileExtension);
|
|
23
|
+
case 'other':
|
|
24
|
+
return ![...ImageExtList, ...VideoExtList, ...DocumentExtList].includes(fileExtension);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiPipesInputsUploadCheckFileExtensionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
28
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: LibsUiPipesInputsUploadCheckFileExtensionPipe, isStandalone: true, name: "LibsUiPipesInputsUploadCheckFileExtensionPipe" });
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiPipesInputsUploadCheckFileExtensionPipe, decorators: [{
|
|
31
|
+
type: Pipe,
|
|
32
|
+
args: [{
|
|
33
|
+
name: 'LibsUiPipesInputsUploadCheckFileExtensionPipe',
|
|
34
|
+
standalone: true,
|
|
35
|
+
}]
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZmlsZS1leHRlbnNpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvdXBsb2FkL3NyYy9waXBlcy9jaGVjay1maWxlLWV4dGVuc2lvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU0vRixNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFNBQVMsQ0FBQyxJQUFXLEVBQUUsSUFBb0U7UUFDekYsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTlDLEtBQUssT0FBTztnQkFDVixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFOUMsS0FBSyxNQUFNO2dCQUNULE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFLHlFQUF5RSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRWxKLEtBQUssTUFBTTtnQkFDVCxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSwwQkFBMEIsRUFBRSxtRUFBbUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFNUosS0FBSyxLQUFLO2dCQUNSLE9BQU8sQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFNUQsS0FBSyxNQUFNO2dCQUNULE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLCtCQUErQixFQUFFLDJFQUEyRSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRS9KLEtBQUssT0FBTztnQkFDVixPQUFPLENBQUMsQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRixDQUFDO0lBQ0gsQ0FBQzt3R0E3QlUsNkNBQTZDO3NHQUE3Qyw2Q0FBNkM7OzRGQUE3Qyw2Q0FBNkM7a0JBSnpELElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLCtDQUErQztvQkFDckQsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUZpbGUgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IERvY3VtZW50RXh0TGlzdCwgZ2V0RmlsZUV4dGVuc2lvbiwgSW1hZ2VFeHRMaXN0LCBWaWRlb0V4dExpc3QgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ0xpYnNVaVBpcGVzSW5wdXRzVXBsb2FkQ2hlY2tGaWxlRXh0ZW5zaW9uUGlwZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaVBpcGVzSW5wdXRzVXBsb2FkQ2hlY2tGaWxlRXh0ZW5zaW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZmlsZTogSUZpbGUsIHR5cGU6ICdpbWFnZScgfCAndmlkZW8nIHwgJ3dvcmQnIHwgJ3hsc3gnIHwgJ3BkZicgfCAncHB0eCcgfCAnb3RoZXInKSB7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGdldEZpbGVFeHRlbnNpb24oZmlsZSk7XG5cbiAgICBpZiAoIWZpbGVFeHRlbnNpb24pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgIHJldHVybiBJbWFnZUV4dExpc3QuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbik7XG5cbiAgICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICAgICAgcmV0dXJuIFZpZGVvRXh0TGlzdC5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKTtcblxuICAgICAgY2FzZSAnd29yZCc6XG4gICAgICAgIHJldHVybiBbJ2RvYycsICdkb2N4JywgJ2FwcGxpY2F0aW9uL21zd29yZCcsICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pO1xuXG4gICAgICBjYXNlICd4bHN4JzpcbiAgICAgICAgcmV0dXJuIFsneGxzJywgJ3hsc3gnLCAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJywgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JywgJ2dzaGVldCddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pO1xuXG4gICAgICBjYXNlICdwZGYnOlxuICAgICAgICByZXR1cm4gWydwZGYnLCAnYXBwbGljYXRpb24vcGRmJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbik7XG5cbiAgICAgIGNhc2UgJ3BwdHgnOlxuICAgICAgICByZXR1cm4gWydwcHQnLCAncHB0eCcsICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbik7XG5cbiAgICAgIGNhc2UgJ290aGVyJzpcbiAgICAgICAgcmV0dXJuICFbLi4uSW1hZ2VFeHRMaXN0LCAuLi5WaWRlb0V4dExpc3QsIC4uLkRvY3VtZW50RXh0TGlzdF0uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Directive, ElementRef, input, output } from '@angular/core';
|
|
2
|
+
import { checkMouseOverInContainer, isTypeFile } from '@libs-ui/utils';
|
|
3
|
+
import { fromEvent, Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class LibsUiComponentsInputsUploadDropFileDirective {
|
|
7
|
+
elementRef;
|
|
8
|
+
onDestroy = new Subject();
|
|
9
|
+
multiple = input(true, { transform: (value) => value ?? true });
|
|
10
|
+
outDragOver = output();
|
|
11
|
+
outDragLeave = output();
|
|
12
|
+
outDrop = output();
|
|
13
|
+
outDropFiles = output();
|
|
14
|
+
outDropFile = output();
|
|
15
|
+
constructor(elementRef) {
|
|
16
|
+
this.elementRef = elementRef;
|
|
17
|
+
}
|
|
18
|
+
ngAfterViewInit() {
|
|
19
|
+
fromEvent(this.elementRef.nativeElement, 'dragover')
|
|
20
|
+
.pipe(takeUntil(this.onDestroy))
|
|
21
|
+
.subscribe((e) => {
|
|
22
|
+
e.stopPropagation();
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
this.outDragOver.emit(e);
|
|
25
|
+
});
|
|
26
|
+
fromEvent(this.elementRef.nativeElement, 'dragleave')
|
|
27
|
+
.pipe(takeUntil(this.onDestroy))
|
|
28
|
+
.subscribe((e) => {
|
|
29
|
+
e.stopPropagation();
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
if (checkMouseOverInContainer(e, this.elementRef.nativeElement)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.outDragLeave.emit(e);
|
|
35
|
+
});
|
|
36
|
+
fromEvent(this.elementRef.nativeElement, 'drop')
|
|
37
|
+
.pipe(takeUntil(this.onDestroy))
|
|
38
|
+
.subscribe((e) => {
|
|
39
|
+
e.stopPropagation();
|
|
40
|
+
e.preventDefault();
|
|
41
|
+
this.outDrop.emit(e);
|
|
42
|
+
const fileList = Array.from(e.dataTransfer?.files || e.clipboardData?.files || []).filter(isTypeFile);
|
|
43
|
+
if (!fileList || !fileList.length) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (this.multiple()) {
|
|
47
|
+
this.outDropFiles.emit(fileList);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.outDropFile.emit(fileList[0]);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this.onDestroy.next();
|
|
55
|
+
this.onDestroy.complete();
|
|
56
|
+
}
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsUploadDropFileDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
58
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsInputsUploadDropFileDirective, isStandalone: true, selector: "[LibsUiComponentsInputsUploadDropFileDirective]", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outDragOver: "outDragOver", outDragLeave: "outDragLeave", outDrop: "outDrop", outDropFiles: "outDropFiles", outDropFile: "outDropFile" }, ngImport: i0 });
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsUploadDropFileDirective, decorators: [{
|
|
61
|
+
type: Directive,
|
|
62
|
+
args: [{
|
|
63
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
64
|
+
selector: '[LibsUiComponentsInputsUploadDropFileDirective]',
|
|
65
|
+
standalone: true,
|
|
66
|
+
}]
|
|
67
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRyb3AtZmlsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3VwbG9hZC9zcmMvdXBsb2FkLWRyb3AtZmlsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLDZDQUE2QztJQVdwQztJQVZaLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRS9CLFFBQVEsR0FBRyxLQUFLLENBQStCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFFOUYsV0FBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQy9CLFlBQVksR0FBRyxNQUFNLEVBQVUsQ0FBQztJQUNoQyxPQUFPLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDM0IsWUFBWSxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV0QyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5QyxlQUFlO1FBQ2IsU0FBUyxDQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQzthQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUN2QixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsU0FBUyxDQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQzthQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUN2QixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUkseUJBQXlCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDaEUsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVMLFNBQVMsQ0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7YUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUU1RyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQyxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVqQyxPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzt3R0F6RFUsNkNBQTZDOzRGQUE3Qyw2Q0FBNkM7OzRGQUE3Qyw2Q0FBNkM7a0JBTHpELFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsaURBQWlEO29CQUMzRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBPbkRlc3Ryb3ksIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBjaGVja01vdXNlT3ZlckluQ29udGFpbmVyLCBpc1R5cGVGaWxlIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbTGlic1VpQ29tcG9uZW50c0lucHV0c1VwbG9hZERyb3BGaWxlRGlyZWN0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNVcGxvYWREcm9wRmlsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4gfCB1bmRlZmluZWQ+KHRydWUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgb3V0RHJhZ092ZXIgPSBvdXRwdXQ8SUV2ZW50PigpO1xuICByZWFkb25seSBvdXREcmFnTGVhdmUgPSBvdXRwdXQ8SUV2ZW50PigpO1xuICByZWFkb25seSBvdXREcm9wID0gb3V0cHV0PElFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0RHJvcEZpbGVzID0gb3V0cHV0PEZpbGVbXT4oKTtcbiAgcmVhZG9ubHkgb3V0RHJvcEZpbGUgPSBvdXRwdXQ8RmlsZT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZyb21FdmVudDxJRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJhZ292ZXInKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95KSlcbiAgICAgIC5zdWJzY3JpYmUoKGU6IElFdmVudCkgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMub3V0RHJhZ092ZXIuZW1pdChlKTtcbiAgICAgIH0pO1xuICAgIGZyb21FdmVudDxJRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJhZ2xlYXZlJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKChlOiBJRXZlbnQpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoY2hlY2tNb3VzZU92ZXJJbkNvbnRhaW5lcihlLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXREcmFnTGVhdmUuZW1pdChlKTtcbiAgICAgIH0pO1xuXG4gICAgZnJvbUV2ZW50PElFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcm9wJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKChlOiBJRXZlbnQpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLm91dERyb3AuZW1pdChlKTtcblxuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IEFycmF5LmZyb208RmlsZT4oZS5kYXRhVHJhbnNmZXI/LmZpbGVzIHx8IGUuY2xpcGJvYXJkRGF0YT8uZmlsZXMgfHwgW10pLmZpbHRlcihpc1R5cGVGaWxlKTtcblxuICAgICAgICBpZiAoIWZpbGVMaXN0IHx8ICFmaWxlTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgICAgdGhpcy5vdXREcm9wRmlsZXMuZW1pdChmaWxlTGlzdCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXREcm9wRmlsZS5lbWl0KGZpbGVMaXN0WzBdKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, input, output } from '@angular/core';
|
|
2
|
+
import { fromEvent, Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class LibsUiComponentsInputsUploadDirective {
|
|
5
|
+
onDestroy = new Subject();
|
|
6
|
+
multiple = input(true, { transform: (val) => val ?? true });
|
|
7
|
+
accessFiles = input('image/x-png,image/jpg,image/jpeg,image/PNG,image/x-PNG,image/JPG,image/JPEG', { transform: (val) => val ?? 'image/x-png,image/jpg,image/jpeg,image/PNG,image/x-PNG,image/JPG,image/JPEG' });
|
|
8
|
+
outUploadFiles = output();
|
|
9
|
+
outUploadFile = output();
|
|
10
|
+
elementRef = inject(ElementRef);
|
|
11
|
+
ngAfterViewInit() {
|
|
12
|
+
fromEvent(this.elementRef.nativeElement, 'click')
|
|
13
|
+
.pipe(takeUntil(this.onDestroy))
|
|
14
|
+
.subscribe((e) => {
|
|
15
|
+
e.stopPropagation();
|
|
16
|
+
e.preventDefault();
|
|
17
|
+
const inputElementUpload = document.createElement('input');
|
|
18
|
+
inputElementUpload.type = 'file';
|
|
19
|
+
inputElementUpload.accept = this.accessFiles();
|
|
20
|
+
inputElementUpload.multiple = this.multiple();
|
|
21
|
+
inputElementUpload.style.display = 'none';
|
|
22
|
+
inputElementUpload.click();
|
|
23
|
+
fromEvent(inputElementUpload, 'change')
|
|
24
|
+
.pipe(takeUntil(this.onDestroy))
|
|
25
|
+
.subscribe((event) => {
|
|
26
|
+
const files = Array.from(event.dataTransfer?.files || event.target?.files || []);
|
|
27
|
+
inputElementUpload.remove();
|
|
28
|
+
if (!files?.length) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (this.multiple()) {
|
|
32
|
+
this.outUploadFiles.emit(files);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.outUploadFile.emit(files[0]);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
this.onDestroy.next();
|
|
41
|
+
this.onDestroy.complete();
|
|
42
|
+
}
|
|
43
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsUploadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
44
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsInputsUploadDirective, isStandalone: true, selector: "[LibsUiComponentsInputsUploadDirective]", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, accessFiles: { classPropertyName: "accessFiles", publicName: "accessFiles", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outUploadFiles: "outUploadFiles", outUploadFile: "outUploadFile" }, ngImport: i0 });
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsUploadDirective, decorators: [{
|
|
47
|
+
type: Directive,
|
|
48
|
+
args: [{
|
|
49
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
50
|
+
selector: '[LibsUiComponentsInputsUploadDirective]',
|
|
51
|
+
standalone: true,
|
|
52
|
+
}]
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy91cGxvYWQvc3JjL3VwbG9hZC1maWxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU9yRCxNQUFNLE9BQU8scUNBQXFDO0lBQ3hDLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRS9CLFFBQVEsR0FBRyxLQUFLLENBQStCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsV0FBVyxHQUFHLEtBQUssQ0FBNkIsNkVBQTZFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSw2RUFBNkUsRUFBRSxDQUFDLENBQUM7SUFFN08sY0FBYyxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQ2xDLGFBQWEsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUVoQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLGVBQWU7UUFDYixTQUFTLENBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO2FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFbkIsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNELGtCQUFrQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDakMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQzFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLFNBQVMsQ0FBUyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7aUJBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUMvQixTQUFTLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBTyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdkYsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ25CLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFaEMsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQTdDVSxxQ0FBcUM7NEZBQXJDLHFDQUFxQzs7NEZBQXJDLHFDQUFxQztrQkFMakQsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx5Q0FBeUM7b0JBQ25ELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW0xpYnNVaUNvbXBvbmVudHNJbnB1dHNVcGxvYWREaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0lucHV0c1VwbG9hZERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4gfCB1bmRlZmluZWQ+KHRydWUsIHsgdHJhbnNmb3JtOiAodmFsKSA9PiB2YWwgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgYWNjZXNzRmlsZXMgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJ2ltYWdlL3gtcG5nLGltYWdlL2pwZyxpbWFnZS9qcGVnLGltYWdlL1BORyxpbWFnZS94LVBORyxpbWFnZS9KUEcsaW1hZ2UvSlBFRycsIHsgdHJhbnNmb3JtOiAodmFsKSA9PiB2YWwgPz8gJ2ltYWdlL3gtcG5nLGltYWdlL2pwZyxpbWFnZS9qcGVnLGltYWdlL1BORyxpbWFnZS94LVBORyxpbWFnZS9KUEcsaW1hZ2UvSlBFRycgfSk7XG5cbiAgcmVhZG9ubHkgb3V0VXBsb2FkRmlsZXMgPSBvdXRwdXQ8RmlsZVtdPigpO1xuICByZWFkb25seSBvdXRVcGxvYWRGaWxlID0gb3V0cHV0PEZpbGU+KCk7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBmcm9tRXZlbnQ8SUV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKChlOiBJRXZlbnQpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudFVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlucHV0RWxlbWVudFVwbG9hZC50eXBlID0gJ2ZpbGUnO1xuICAgICAgICBpbnB1dEVsZW1lbnRVcGxvYWQuYWNjZXB0ID0gdGhpcy5hY2Nlc3NGaWxlcygpO1xuICAgICAgICBpbnB1dEVsZW1lbnRVcGxvYWQubXVsdGlwbGUgPSB0aGlzLm11bHRpcGxlKCk7XG4gICAgICAgIGlucHV0RWxlbWVudFVwbG9hZC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBpbnB1dEVsZW1lbnRVcGxvYWQuY2xpY2soKTtcbiAgICAgICAgZnJvbUV2ZW50PElFdmVudD4oaW5wdXRFbGVtZW50VXBsb2FkLCAnY2hhbmdlJylcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbTxGaWxlPihldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzIHx8IGV2ZW50LnRhcmdldD8uZmlsZXMgfHwgW10pO1xuICAgICAgICAgICAgaW5wdXRFbGVtZW50VXBsb2FkLnJlbW92ZSgpO1xuICAgICAgICAgICAgaWYgKCFmaWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5vdXRVcGxvYWRGaWxlcy5lbWl0KGZpbGVzKTtcblxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm91dFVwbG9hZEZpbGUuZW1pdChmaWxlc1swXSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|