@acorex/components 7.8.14 → 7.8.15
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/button/lib/button.component.d.ts +1 -1
- package/esm2022/button/lib/button-item-list.component.mjs +2 -2
- package/esm2022/button/lib/button.component.mjs +3 -3
- package/esm2022/form/lib/form-field.component.mjs +2 -2
- package/esm2022/range-slider/lib/range-slider.component.mjs +2 -2
- package/esm2022/result/lib/result.component.mjs +2 -2
- package/esm2022/uploader/lib/uploader-list.component.mjs +18 -28
- package/esm2022/uploader/lib/uploader-zone.directive.mjs +35 -14
- package/esm2022/uploader/lib/uploader.module.mjs +5 -4
- package/esm2022/uploader/lib/uploader.service.mjs +12 -2
- package/fesm2022/acorex-components-button.mjs +4 -4
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +2 -2
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +2 -2
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +2 -2
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +87 -68
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/package.json +7 -7
- package/uploader/lib/uploader-list.component.d.ts +2 -1
- package/uploader/lib/uploader-zone.directive.d.ts +10 -5
- package/uploader/lib/uploader.module.d.ts +2 -1
- package/uploader/lib/uploader.service.d.ts +4 -1
@@ -1,7 +1,8 @@
|
|
1
1
|
import { MXBaseComponent } from '@acorex/components/common';
|
2
2
|
import { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';
|
3
|
-
import { DialogRef } from '@angular/cdk/dialog';
|
4
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
3
|
+
import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
|
4
|
+
import { Component, ViewEncapsulation, afterNextRender, inject } from '@angular/core';
|
5
|
+
import { AXUploaderService } from './uploader.service';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
import * as i1 from "@angular/cdk/dialog";
|
7
8
|
import * as i2 from "@angular/common";
|
@@ -10,31 +11,20 @@ export class AXUploaderListComponent extends MXBaseComponent {
|
|
10
11
|
constructor(dialogRef) {
|
11
12
|
super();
|
12
13
|
this.dialogRef = dialogRef;
|
13
|
-
this.items =
|
14
|
-
|
15
|
-
name: 'avatar.png',
|
16
|
-
size: 2048,
|
17
|
-
type: 'picture',
|
18
|
-
description: 'Upload canceled',
|
19
|
-
},
|
20
|
-
{
|
21
|
-
name: 'intro.mkv',
|
22
|
-
size: 10024,
|
23
|
-
type: 'video',
|
24
|
-
},
|
25
|
-
{
|
26
|
-
name: 'time.xls',
|
27
|
-
size: 10024,
|
28
|
-
type: 'doc',
|
29
|
-
},
|
30
|
-
{
|
31
|
-
name: 'resume.pdf',
|
32
|
-
size: 10024,
|
33
|
-
type: 'pdf',
|
34
|
-
},
|
35
|
-
];
|
14
|
+
this.items = inject(DIALOG_DATA);
|
15
|
+
this.uploadService = inject(AXUploaderService);
|
36
16
|
this.leftTime = 5;
|
37
17
|
this.isCollapsed = false;
|
18
|
+
afterNextRender(() => {
|
19
|
+
this.uploadService.upload('http://api.acorexui.com/api/v1/files', this.items[0]).subscribe({
|
20
|
+
next: (e) => {
|
21
|
+
console.log(e);
|
22
|
+
},
|
23
|
+
error: (err) => {
|
24
|
+
console.error(err);
|
25
|
+
},
|
26
|
+
});
|
27
|
+
});
|
38
28
|
}
|
39
29
|
toggle() {
|
40
30
|
this.isCollapsed = !this.isCollapsed;
|
@@ -43,7 +33,7 @@ export class AXUploaderListComponent extends MXBaseComponent {
|
|
43
33
|
this.dialogRef.close();
|
44
34
|
}
|
45
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderListComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: AXUploaderListComponent, selector: "ax-uploader-list", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-uploader-list-header\">\n <div>Uploader list</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button>{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <div>\n <i class=\"ax-icon ax-icon-inbox\"></i>\n <div class=\"ax-uploader-item-text\">\n <strong>{{ item.name }}</strong>\n <small>{{ item.
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: AXUploaderListComponent, selector: "ax-uploader-list", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-uploader-list-header\">\n <div>Uploader list</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button>{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <div>\n <i class=\"ax-icon ax-icon-inbox\"></i>\n <div class=\"ax-uploader-item-text\">\n <strong>{{ item.name }}</strong>\n <small>{{ item.size }}</small>\n </div>\n </div>\n <div></div>\n </li>\n </ng-container>\n </ul>\n</div>\n", styles: [".ax-dark ax-uploader-list .ax-uploader-progress-status{background-color:rgba(var(--ax-color-primary-500),.25);color:rgba(var(--ax-color-primary-50));border-color:rgba(var(--ax-color-primary-500))}ax-uploader-list{display:block;background-color:rgba(var(--ax-color-surface));-webkit-border-top-left-radius:.75rem;-webkit-border-top-right-radius:.75rem;-moz-border-radius-topleft:.75rem;-moz-border-radius-topright:.75rem;border-top-left-radius:.75rem;border-top-right-radius:.75rem;overflow:hidden;box-shadow:-1px -1px 10px #00000029;border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:rgba(var(--ax-color-primary-500))}ax-uploader-list .ax-uploader-list-header{display:flex;justify-content:space-between;padding:.75rem 1rem;background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore));font-weight:500}ax-uploader-list .ax-uploader-list-header .ax-icon{font-size:1.5rem;cursor:pointer;margin-inline-start:.5rem}ax-uploader-list .ax-uploader-list-header .ax-icon:hover{opacity:.6}ax-uploader-list .ax-uploader-progress-status{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;background-color:rgba(var(--ax-color-primary-100));color:rgba(var(--ax-color-primary-700));padding:.5rem .75rem;border-top:1px solid;border-bottom:1px solid;border-color:rgba(var(--ax-color-primary-200))}ax-uploader-list .ax-uploader-list-items{padding:.5rem 0;max-height:50vh;overflow-y:auto;overflow-x:hidden}ax-uploader-list .ax-uploader-list-items li{font-size:.875rem;padding:.75rem;display:flex;align-items:center;justify-content:space-between}ax-uploader-list .ax-uploader-list-items li>div{display:flex}ax-uploader-list .ax-uploader-list-items li>div .ax-icon{display:flex;font-size:1.5rem;margin-inline-end:.5rem}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text{display:flex;flex-direction:column}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text strong{font-weight:500;display:block}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text small{color:rgba(var(--ax-color-on-surface-fore),.75)}.ax-uploader-list-pane .cdk-dialog-container:focus,.ax-uploader-list-pane .cdk-dialog-container:focus-visible,.ax-uploader-list-pane .cdk-dialog-container:focus-within{outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "trans" }], animations: [
|
47
37
|
trigger('collapse', [
|
48
38
|
state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
|
49
39
|
state('true', style({ height: '0', visibility: 'hidden' })),
|
@@ -61,6 +51,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
61
51
|
transition('false => true', animate(150 + 'ms ease-in')),
|
62
52
|
transition('true => false', animate(150 + 'ms ease-out')),
|
63
53
|
]),
|
64
|
-
], template: "<div class=\"ax-uploader-list-header\">\n <div>Uploader list</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button>{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <div>\n <i class=\"ax-icon ax-icon-inbox\"></i>\n <div class=\"ax-uploader-item-text\">\n <strong>{{ item.name }}</strong>\n <small>{{ item.
|
54
|
+
], template: "<div class=\"ax-uploader-list-header\">\n <div>Uploader list</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button>{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <div>\n <i class=\"ax-icon ax-icon-inbox\"></i>\n <div class=\"ax-uploader-item-text\">\n <strong>{{ item.name }}</strong>\n <small>{{ item.size }}</small>\n </div>\n </div>\n <div></div>\n </li>\n </ng-container>\n </ul>\n</div>\n", styles: [".ax-dark ax-uploader-list .ax-uploader-progress-status{background-color:rgba(var(--ax-color-primary-500),.25);color:rgba(var(--ax-color-primary-50));border-color:rgba(var(--ax-color-primary-500))}ax-uploader-list{display:block;background-color:rgba(var(--ax-color-surface));-webkit-border-top-left-radius:.75rem;-webkit-border-top-right-radius:.75rem;-moz-border-radius-topleft:.75rem;-moz-border-radius-topright:.75rem;border-top-left-radius:.75rem;border-top-right-radius:.75rem;overflow:hidden;box-shadow:-1px -1px 10px #00000029;border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:rgba(var(--ax-color-primary-500))}ax-uploader-list .ax-uploader-list-header{display:flex;justify-content:space-between;padding:.75rem 1rem;background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore));font-weight:500}ax-uploader-list .ax-uploader-list-header .ax-icon{font-size:1.5rem;cursor:pointer;margin-inline-start:.5rem}ax-uploader-list .ax-uploader-list-header .ax-icon:hover{opacity:.6}ax-uploader-list .ax-uploader-progress-status{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;background-color:rgba(var(--ax-color-primary-100));color:rgba(var(--ax-color-primary-700));padding:.5rem .75rem;border-top:1px solid;border-bottom:1px solid;border-color:rgba(var(--ax-color-primary-200))}ax-uploader-list .ax-uploader-list-items{padding:.5rem 0;max-height:50vh;overflow-y:auto;overflow-x:hidden}ax-uploader-list .ax-uploader-list-items li{font-size:.875rem;padding:.75rem;display:flex;align-items:center;justify-content:space-between}ax-uploader-list .ax-uploader-list-items li>div{display:flex}ax-uploader-list .ax-uploader-list-items li>div .ax-icon{display:flex;font-size:1.5rem;margin-inline-end:.5rem}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text{display:flex;flex-direction:column}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text strong{font-weight:500;display:block}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text small{color:rgba(var(--ax-color-on-surface-fore),.75)}.ax-uploader-list-pane .cdk-dialog-container:focus,.ax-uploader-list-pane .cdk-dialog-container:focus-visible,.ax-uploader-list-pane .cdk-dialog-container:focus-within{outline:none}\n"] }]
|
65
55
|
}], ctorParameters: function () { return [{ type: i1.DialogRef }]; } });
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdXBsb2FkZXIvc3JjL2xpYi91cGxvYWRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy91cGxvYWRlci9zcmMvbGliL3VwbG9hZGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUF1QnZELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUFlO0lBTTFELFlBQW9CLFNBQTJDO1FBQzdELEtBQUssRUFBRSxDQUFDO1FBRFUsY0FBUyxHQUFULFNBQVMsQ0FBa0M7UUFML0QsVUFBSyxHQUFVLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyRSxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHbEIsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxzQ0FBc0MsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN6RixJQUFJLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQXpCVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwrRUMzQnBDLG82QkFpQ0EseWtGRGZjO1lBQ1YsT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDbEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzNELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsQ0FBQztnQkFDeEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxDQUFDO2FBQzFELENBQUM7U0FDSDs7MkZBRVUsdUJBQXVCO2tCQWRuQyxTQUFTOytCQUNFLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCO3dCQUNWLE9BQU8sQ0FBQyxVQUFVLEVBQUU7NEJBQ2xCLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQzs0QkFDckUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDOzRCQUMzRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUM7NEJBQ3hELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsQ0FBQzt5QkFDMUQsQ0FBQztxQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50Q2xvc2VFdmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBVVRPX1NUWUxFLCBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERJQUxPR19EQVRBLCBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIGFmdGVyTmV4dFJlbmRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4vdXBsb2FkZXIuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRlckl0ZW0ge1xuICB0eXBlOiAncGljdHVyZScgfCAnZG9jJyB8ICdwZGYnIHwgJ2FyY2hpdmUnIHwgJ3ZpZGVvJyB8ICd1bmtub3cnO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXVwbG9hZGVyLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZGVyLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2NvbGxhcHNlJywgW1xuICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyBoZWlnaHQ6IEFVVE9fU1RZTEUsIHZpc2liaWxpdHk6IEFVVE9fU1RZTEUgfSkpLFxuICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGhlaWdodDogJzAnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB0cnVlJywgYW5pbWF0ZSgxNTAgKyAnbXMgZWFzZS1pbicpKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBhbmltYXRlKDE1MCArICdtcyBlYXNlLW91dCcpKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRlckxpc3RDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICBpdGVtczogYW55W10gPSBpbmplY3QoRElBTE9HX0RBVEEpO1xuICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IEFYVXBsb2FkZXJTZXJ2aWNlID0gaW5qZWN0KEFYVXBsb2FkZXJTZXJ2aWNlKTtcblxuICBsZWZ0VGltZSA9IDU7XG4gIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBEaWFsb2dSZWY8QVhDb21wb25lbnRDbG9zZUV2ZW50Pikge1xuICAgIHN1cGVyKCk7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS51cGxvYWQoJ2h0dHA6Ly9hcGkuYWNvcmV4dWkuY29tL2FwaS92MS9maWxlcycsIHRoaXMuaXRlbXNbMF0pLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtdXBsb2FkZXItbGlzdC1oZWFkZXJcIj5cbiAgPGRpdj5VcGxvYWRlciBsaXN0PC9kaXY+XG4gIDxkaXY+XG4gICAgPGlcbiAgICAgIGNsYXNzPVwiYXgtaWNvblwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdheC1pY29uLWNoZXZyb24tZG93bic6ICFpc0NvbGxhcHNlZCwgJ2F4LWljb24tY2hldnJvbi11cCc6IGlzQ29sbGFwc2VkIH1cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICA+PC9pPlxuXG4gICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2xvc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjwvaT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBbQGNvbGxhcHNlXT1cImlzQ29sbGFwc2VkXCI+XG4gIDxkaXYgY2xhc3M9XCJheC11cGxvYWRlci1wcm9ncmVzcy1zdGF0dXNcIj5cbiAgICA8ZGl2Pnt7IGxlZnRUaW1lIH19bWluIGxlZnQ8L2Rpdj5cbiAgICA8YnV0dG9uPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zIH19PC9idXR0b24+XG4gIDwvZGl2PlxuICA8dWwgY2xhc3M9XCJheC11cGxvYWRlci1saXN0LWl0ZW1zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxuICAgICAgPGxpPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWluYm94XCI+PC9pPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC11cGxvYWRlci1pdGVtLXRleHRcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5uYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8c21hbGw+e3sgaXRlbS5zaXplIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
|
@@ -1,35 +1,48 @@
|
|
1
1
|
import { AXFileService } from '@acorex/core/file';
|
2
2
|
import { AXTranslator } from '@acorex/core/translation';
|
3
|
-
import { Directive, ElementRef, inject } from '@angular/core';
|
3
|
+
import { Directive, ElementRef, HostBinding, Input, inject } from '@angular/core';
|
4
|
+
import { AXUploaderService } from './uploader.service';
|
4
5
|
import * as i0 from "@angular/core";
|
5
6
|
export class AXUploaderZoneDirective {
|
7
|
+
initElement() {
|
8
|
+
this.element = this.elementRef.nativeElement;
|
9
|
+
this.element.style.position = 'relative';
|
10
|
+
}
|
6
11
|
constructor(elementRef) {
|
7
12
|
this.elementRef = elementRef;
|
8
13
|
this.fileService = inject(AXFileService);
|
14
|
+
this.uploadService = inject(AXUploaderService);
|
15
|
+
this.multiple = true;
|
9
16
|
this.stateClass = 'ax-uploader-overlay-state';
|
10
|
-
|
11
|
-
|
12
|
-
this.element = this.elementRef.nativeElement;
|
13
|
-
this.element.style.position = 'relative';
|
14
|
-
this.init();
|
15
|
-
}
|
16
|
-
init() {
|
17
|
+
this.files = [];
|
18
|
+
this.initElement();
|
17
19
|
this.element.addEventListener('dragenter', this.handleDragEnter.bind(this));
|
20
|
+
this.element.addEventListener('dragover', this.handleDragOver.bind(this));
|
21
|
+
this.element.addEventListener('drop', this.handleOnDrop.bind(this));
|
18
22
|
this.element.addEventListener('dragleave', this.handleDragLeave.bind(this));
|
19
23
|
}
|
20
24
|
ngOnDestroy() {
|
21
25
|
this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));
|
22
|
-
this.element.removeEventListener('
|
26
|
+
this.element.removeEventListener('drop', this.handleOnDrop.bind(this));
|
27
|
+
this.element.removeEventListener('dragover', this.handleDragOver.bind(this));
|
28
|
+
this.element.removeEventListener('dragleave', this.handleDragLeave.bind(this));
|
23
29
|
}
|
24
30
|
handleDragEnter(event) {
|
25
31
|
this.createZone();
|
26
32
|
event.preventDefault();
|
27
33
|
}
|
28
|
-
|
34
|
+
handleOnDrop(event) {
|
35
|
+
event.preventDefault();
|
36
|
+
this.uploadService.openDialog(event.dataTransfer?.files);
|
29
37
|
this.removeZone();
|
30
|
-
|
38
|
+
}
|
39
|
+
handleDragOver(event) {
|
31
40
|
event.preventDefault();
|
32
41
|
}
|
42
|
+
handleDragLeave(event) {
|
43
|
+
event.preventDefault();
|
44
|
+
this.removeZone();
|
45
|
+
}
|
33
46
|
createZone() {
|
34
47
|
this.overlayElement = document.createElement('div');
|
35
48
|
this.overlayElement.classList.add('ax-uploader-overlay-state');
|
@@ -44,13 +57,21 @@ export class AXUploaderZoneDirective {
|
|
44
57
|
removeZone() {
|
45
58
|
this.overlayElement.remove();
|
46
59
|
}
|
60
|
+
get __hostClass() {
|
61
|
+
return `ax-drop-zone`;
|
62
|
+
}
|
47
63
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderZoneDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
48
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: AXUploaderZoneDirective, selector: "[axUploaderZone]", ngImport: i0 }); }
|
64
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: { multiple: "multiple" }, host: { properties: { "class": "this.__hostClass" } }, ngImport: i0 }); }
|
49
65
|
}
|
50
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderZoneDirective, decorators: [{
|
51
67
|
type: Directive,
|
52
68
|
args: [{
|
53
69
|
selector: '[axUploaderZone]',
|
54
70
|
}]
|
55
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }
|
56
|
-
|
71
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { multiple: [{
|
72
|
+
type: Input
|
73
|
+
}], __hostClass: [{
|
74
|
+
type: HostBinding,
|
75
|
+
args: ['class']
|
76
|
+
}] } });
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItem9uZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdXBsb2FkZXIvc3JjL2xpYi91cGxvYWRlci16b25lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUl2RCxNQUFNLE9BQU8sdUJBQXVCO0lBVWxDLFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBNEIsQ0FBQztRQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZGxDLGdCQUFXLEdBQWtCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRCxrQkFBYSxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUc1RCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXpCLGVBQVUsR0FBRywyQkFBMkIsQ0FBQztRQUV6QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBT2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUks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Qjs7MkZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjtpR0FNVSxRQUFRO3NCQUFoQixLQUFLO2dCQThERixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRmlsZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4vdXBsb2FkZXIuc2VydmljZSc7XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhVcGxvYWRlclpvbmVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRlclpvbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBBWEZpbGVTZXJ2aWNlID0gaW5qZWN0KEFYRmlsZVNlcnZpY2UpO1xuICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IEFYVXBsb2FkZXJTZXJ2aWNlID0gaW5qZWN0KEFYVXBsb2FkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBASW5wdXQoKSBtdWx0aXBsZSA9IHRydWU7XG5cbiAgc3RhdGVDbGFzcyA9ICdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJztcbiAgb3ZlcmxheUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBmaWxlczogRmlsZVtdID0gW107XG4gIGluaXRFbGVtZW50KCkge1xuICAgIHRoaXMuZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmluaXRFbGVtZW50KCk7XG4gICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdlbnRlcicsIHRoaXMuaGFuZGxlRHJhZ0VudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlRHJhZ092ZXIuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmhhbmRsZU9uRHJvcC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5oYW5kbGVEcmFnTGVhdmUuYmluZCh0aGlzKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgdGhpcy5oYW5kbGVEcmFnRW50ZXIuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmhhbmRsZU9uRHJvcC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmhhbmRsZURyYWdPdmVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnbGVhdmUnLCB0aGlzLmhhbmRsZURyYWdMZWF2ZS5iaW5kKHRoaXMpKTtcbiAgfVxuICBwcml2YXRlIGhhbmRsZURyYWdFbnRlcihldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNyZWF0ZVpvbmUoKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG4gIHByaXZhdGUgaGFuZGxlT25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMudXBsb2FkU2VydmljZS5vcGVuRGlhbG9nKGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXMpO1xuICAgIHRoaXMucmVtb3ZlWm9uZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnT3ZlcihldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnTGVhdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlbW92ZVpvbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlWm9uZSgpIHtcbiAgICB0aGlzLm92ZXJsYXlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5vdmVybGF5RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJyk7XG5cbiAgICBjb25zdCBpY29uOiBIVE1MU3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgaWNvbi5jbGFzc0xpc3QuYWRkKCdheC1pY29uJywgJ2F4LWljb24tdXBsb2FkJyk7XG5cbiAgICBjb25zdCB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIHRleHQuaW5uZXJUZXh0ID0gQVhUcmFuc2xhdG9yLmdldCgndXBsb2FkZXIuem9uZS50ZXh0Jyk7XG5cbiAgICB0aGlzLm92ZXJsYXlFbGVtZW50LmFwcGVuZENoaWxkKGljb24pO1xuICAgIHRoaXMub3ZlcmxheUVsZW1lbnQuYXBwZW5kQ2hpbGQodGV4dCk7XG5cbiAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5vdmVybGF5RWxlbWVudCk7XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVab25lKCkge1xuICAgIHRoaXMub3ZlcmxheUVsZW1lbnQucmVtb3ZlKCk7XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgYXgtZHJvcC16b25lYDtcbiAgfVxufVxuIl19
|
@@ -4,6 +4,7 @@ import { CommonModule } from '@angular/common';
|
|
4
4
|
import { NgModule } from '@angular/core';
|
5
5
|
import { AXFileService } from '@acorex/core/file';
|
6
6
|
import { AXTranslationModule } from '@acorex/core/translation';
|
7
|
+
import { HttpClientModule } from '@angular/common/http';
|
7
8
|
import { AXUploaderDropZoneComponent } from './uploader-drop-zone.component';
|
8
9
|
import { AXUploaderListComponent } from './uploader-list.component';
|
9
10
|
import { AXUploaderOverlayComponent } from './uploader-overlay.component';
|
@@ -15,11 +16,11 @@ export class AXUploaderModule {
|
|
15
16
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderModule, declarations: [AXUploaderDropZoneComponent,
|
16
17
|
AXUploaderListComponent,
|
17
18
|
AXUploaderOverlayComponent,
|
18
|
-
AXUploaderZoneDirective], imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule], exports: [AXUploaderDropZoneComponent,
|
19
|
+
AXUploaderZoneDirective], imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, HttpClientModule], exports: [AXUploaderDropZoneComponent,
|
19
20
|
AXUploaderListComponent,
|
20
21
|
AXUploaderOverlayComponent,
|
21
22
|
AXUploaderZoneDirective] }); }
|
22
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderModule, providers: [AXUploaderService, AXFileService], imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule] }); }
|
23
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderModule, providers: [AXUploaderService, AXFileService], imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, HttpClientModule] }); }
|
23
24
|
}
|
24
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderModule, decorators: [{
|
25
26
|
type: NgModule,
|
@@ -30,7 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
30
31
|
AXUploaderOverlayComponent,
|
31
32
|
AXUploaderZoneDirective,
|
32
33
|
],
|
33
|
-
imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule],
|
34
|
+
imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, HttpClientModule],
|
34
35
|
exports: [
|
35
36
|
AXUploaderDropZoneComponent,
|
36
37
|
AXUploaderListComponent,
|
@@ -40,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
40
41
|
providers: [AXUploaderService, AXFileService],
|
41
42
|
}]
|
42
43
|
}] });
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3VwbG9hZGVyL3NyYy9saWIvdXBsb2FkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBa0J2RCxNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFkekIsMkJBQTJCO1lBQzNCLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsdUJBQXVCLGFBRWYsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsYUFFOUYsMkJBQTJCO1lBQzNCLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsdUJBQXVCOytHQUlkLGdCQUFnQixhQUZoQixDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxZQVBuQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQjs7MkZBU3JGLGdCQUFnQjtrQkFoQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDakcsT0FBTyxFQUFFO3dCQUNQLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBWEZpbGVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2ZpbGUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVhVcGxvYWRlckRyb3Bab25lQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWRlci1kcm9wLXpvbmUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYVXBsb2FkZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWRlci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkZXItb3ZlcmxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhVcGxvYWRlclpvbmVEaXJlY3RpdmUgfSBmcm9tICcuL3VwbG9hZGVyLXpvbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFYVXBsb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi91cGxvYWRlci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQVhVcGxvYWRlckRyb3Bab25lQ29tcG9uZW50LFxuICAgIEFYVXBsb2FkZXJMaXN0Q29tcG9uZW50LFxuICAgIEFYVXBsb2FkZXJPdmVybGF5Q29tcG9uZW50LFxuICAgIEFYVXBsb2FkZXJab25lRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGUsIEh0dHBDbGllbnRNb2R1bGVdLFxuICBleHBvcnRzOiBbXG4gICAgQVhVcGxvYWRlckRyb3Bab25lQ29tcG9uZW50LFxuICAgIEFYVXBsb2FkZXJMaXN0Q29tcG9uZW50LFxuICAgIEFYVXBsb2FkZXJPdmVybGF5Q29tcG9uZW50LFxuICAgIEFYVXBsb2FkZXJab25lRGlyZWN0aXZlLFxuICBdLFxuICBwcm92aWRlcnM6IFtBWFVwbG9hZGVyU2VydmljZSwgQVhGaWxlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkZXJNb2R1bGUge31cbiJdfQ==
|
@@ -1,13 +1,17 @@
|
|
1
1
|
import { Dialog } from '@angular/cdk/dialog';
|
2
2
|
import { GlobalPositionStrategy } from '@angular/cdk/overlay';
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
3
4
|
import { Injectable, inject } from '@angular/core';
|
4
5
|
import { AXUploaderListComponent } from './uploader-list.component';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
export class AXUploaderService {
|
7
8
|
constructor() {
|
8
9
|
this.dialog = inject(Dialog);
|
10
|
+
this.http = inject(HttpClient);
|
11
|
+
this.files = [];
|
9
12
|
}
|
10
|
-
openDialog() {
|
13
|
+
openDialog(data) {
|
14
|
+
this.files = [...data];
|
11
15
|
const positionStrategy = new GlobalPositionStrategy();
|
12
16
|
this.dialogRef = this.dialog.open(AXUploaderListComponent, {
|
13
17
|
hasBackdrop: false,
|
@@ -16,15 +20,21 @@ export class AXUploaderService {
|
|
16
20
|
maxWidth: 320,
|
17
21
|
panelClass: ['ax-uploader-list-pane', 'ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],
|
18
22
|
positionStrategy: positionStrategy.bottom().end('24px'),
|
23
|
+
data,
|
19
24
|
});
|
20
25
|
}
|
21
26
|
closeDialog() {
|
22
27
|
this.dialogRef.close();
|
23
28
|
}
|
29
|
+
upload(requestUrl, file, options) {
|
30
|
+
const formData = new FormData();
|
31
|
+
formData.append(file.name, file);
|
32
|
+
return this.http.post(requestUrl, formData, options);
|
33
|
+
}
|
24
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
25
35
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderService }); }
|
26
36
|
}
|
27
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXUploaderService, decorators: [{
|
28
38
|
type: Injectable
|
29
39
|
}] });
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy91cGxvYWRlci9zcmMvbGliL3VwbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHcEUsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5QyxVQUFLLEdBQVUsRUFBRSxDQUFDO0tBd0JuQjtJQXZCQyxVQUFVLENBQUMsSUFBUztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2QixNQUFNLGdCQUFnQixHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ3pELFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsR0FBRztZQUNiLFVBQVUsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO1lBQ3RHLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDdkQsSUFBSTtTQUNMLENBQWMsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFrQixFQUFFLElBQVUsRUFBRSxPQUFhO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDOzhHQTNCVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZywgRGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhVcGxvYWRlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL3VwbG9hZGVyLWxpc3QuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZyA9IGluamVjdChEaWFsb2cpO1xuICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIGRpYWxvZ1JlZjogRGlhbG9nUmVmO1xuICBmaWxlczogYW55W10gPSBbXTtcbiAgb3BlbkRpYWxvZyhkYXRhOiBhbnkpIHtcbiAgICB0aGlzLmZpbGVzID0gWy4uLmRhdGFdO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBuZXcgR2xvYmFsUG9zaXRpb25TdHJhdGVneSgpO1xuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBWFVwbG9hZGVyTGlzdENvbXBvbmVudCwge1xuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgd2lkdGg6ICczMjBweCcsXG4gICAgICBtYXhXaWR0aDogMzIwLFxuICAgICAgcGFuZWxDbGFzczogWydheC11cGxvYWRlci1saXN0LXBhbmUnLCAnYXgtYW5pbWF0ZS1hbmltYXRlZCcsICdheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneS5ib3R0b20oKS5lbmQoJzI0cHgnKSxcbiAgICAgIGRhdGEsXG4gICAgfSkgYXMgRGlhbG9nUmVmO1xuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIHVwbG9hZChyZXF1ZXN0VXJsOiBzdHJpbmcsIGZpbGU6IEZpbGUsIG9wdGlvbnM/OiBhbnkpIHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChyZXF1ZXN0VXJsLCBmb3JtRGF0YSwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|