@solidev/data 0.0.9 → 0.1.0
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/esm2022/lib/auth/auth-interceptor.service.mjs +92 -0
- package/{esm2020 → esm2022}/lib/auth/auth.service.mjs +1 -1
- package/esm2022/lib/data/data-backend.mjs +135 -0
- package/esm2022/lib/data/data-model.mjs +292 -0
- package/esm2022/lib/dispedit/choice.pipe.mjs +81 -0
- package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +481 -0
- package/esm2022/lib/dispedit/factor.pipe.mjs +83 -0
- package/esm2022/lib/dispedit/factorc.pipe.mjs +101 -0
- package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +143 -0
- package/esm2022/lib/dispedit/flags/flags.component.mjs +141 -0
- package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +319 -0
- package/esm2022/lib/dispedit/richedit/richedit.component.mjs +127 -0
- package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +94 -0
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +58 -0
- package/esm2022/lib/messages/message.service.mjs +152 -0
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +66 -0
- package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +65 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +113 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +30 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +22 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +50 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +64 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +47 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +57 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +52 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +175 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +51 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +31 -0
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +71 -0
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +50 -0
- package/esm2022/lib/modellist/model-list.service.mjs +158 -0
- package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +143 -0
- package/esm2022/lib/updates/update/update.component.mjs +18 -0
- package/esm2022/lib/updates/update.service.mjs +59 -0
- package/esm2022/lib/uploader/ng-file-drop.directive.mjs +82 -0
- package/esm2022/lib/uploader/ng-file-select.directive.mjs +52 -0
- package/esm2022/lib/uploader/ngx-uploader.module.mjs +18 -0
- package/esm2022/lib/utils/tab-memory.service.mjs +81 -0
- package/{fesm2020 → fesm2022}/solidev-data.mjs +149 -149
- package/{fesm2020 → fesm2022}/solidev-data.mjs.map +1 -1
- package/lib/dispedit/dispedit/dispedit.component.d.ts +1 -1
- package/lib/dispedit/fkselect/fkselect.component.d.ts +1 -1
- package/lib/dispedit/flags/flags.component.d.ts +1 -1
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +1 -1
- package/lib/dispedit/richedit/richedit.component.d.ts +1 -1
- package/lib/dispedit/sdelete/sdelete.component.d.ts +1 -1
- package/lib/messages/message-zone/message-zone.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +1 -1
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +1 -1
- package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +1 -1
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/uploader/ng-file-drop.directive.d.ts +1 -1
- package/lib/uploader/ng-file-select.directive.d.ts +1 -1
- package/package.json +7 -13
- package/esm2020/lib/auth/auth-interceptor.service.mjs +0 -91
- package/esm2020/lib/data/data-backend.mjs +0 -134
- package/esm2020/lib/data/data-model.mjs +0 -291
- package/esm2020/lib/dispedit/choice.pipe.mjs +0 -79
- package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +0 -480
- package/esm2020/lib/dispedit/factor.pipe.mjs +0 -81
- package/esm2020/lib/dispedit/factorc.pipe.mjs +0 -99
- package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +0 -142
- package/esm2020/lib/dispedit/flags/flags.component.mjs +0 -140
- package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -318
- package/esm2020/lib/dispedit/richedit/richedit.component.mjs +0 -126
- package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +0 -93
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +0 -57
- package/esm2020/lib/messages/message.service.mjs +0 -151
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -65
- package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -112
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
- package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
- package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -30
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -70
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
- package/esm2020/lib/modellist/model-list.service.mjs +0 -157
- package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -142
- package/esm2020/lib/updates/update/update.component.mjs +0 -17
- package/esm2020/lib/updates/update.service.mjs +0 -58
- package/esm2020/lib/uploader/ng-file-drop.directive.mjs +0 -81
- package/esm2020/lib/uploader/ng-file-select.directive.mjs +0 -51
- package/esm2020/lib/uploader/ngx-uploader.module.mjs +0 -17
- package/esm2020/lib/utils/tab-memory.service.mjs +0 -80
- package/fesm2015/solidev-data.mjs +0 -6228
- package/fesm2015/solidev-data.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/auth/jwt.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-collection.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-collection.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-parameters.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-query.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-query.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/boolean.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/computed.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/datetime.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/numbers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/primaryfield.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/relations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/stringfields.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dispedit/dispedit/dispedit.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/routing/routing.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/ngx-uploader.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/slugify.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/template.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/solidev-data.mjs +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostListener, Input, Output } from "@angular/core";
|
|
2
|
+
import { DataUploaderService } from "./ngx-uploader.class";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class NgFileDropDirective {
|
|
5
|
+
constructor(elementRef) {
|
|
6
|
+
this.elementRef = elementRef;
|
|
7
|
+
this.stopEvent = (e) => {
|
|
8
|
+
e.stopPropagation();
|
|
9
|
+
e.preventDefault();
|
|
10
|
+
};
|
|
11
|
+
this.uploadOutput = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this._sub = [];
|
|
15
|
+
const concurrency = this.options && this.options.concurrency || Number.POSITIVE_INFINITY;
|
|
16
|
+
const allowedContentTypes = this.options && this.options.allowedContentTypes || ["*"];
|
|
17
|
+
const maxUploads = this.options && this.options.maxUploads || Number.POSITIVE_INFINITY;
|
|
18
|
+
const maxFileSize = this.options && this.options.maxFileSize || Number.POSITIVE_INFINITY;
|
|
19
|
+
this.upload = new DataUploaderService(concurrency, allowedContentTypes, maxUploads, maxFileSize);
|
|
20
|
+
this.el = this.elementRef.nativeElement;
|
|
21
|
+
this._sub.push(this.upload.serviceEvents.subscribe((event) => {
|
|
22
|
+
this.uploadOutput.emit(event);
|
|
23
|
+
}));
|
|
24
|
+
if (this.uploadInput instanceof EventEmitter) {
|
|
25
|
+
this._sub.push(this.upload.initInputEvents(this.uploadInput));
|
|
26
|
+
}
|
|
27
|
+
this.el.addEventListener("drop", this.stopEvent, false);
|
|
28
|
+
this.el.addEventListener("dragenter", this.stopEvent, false);
|
|
29
|
+
this.el.addEventListener("dragover", this.stopEvent, false);
|
|
30
|
+
}
|
|
31
|
+
ngOnDestroy() {
|
|
32
|
+
if (this._sub) {
|
|
33
|
+
this._sub.forEach(sub => sub.unsubscribe());
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
onDrop(e) {
|
|
37
|
+
e.stopPropagation();
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
const event = { type: "drop" };
|
|
40
|
+
this.uploadOutput.emit(event);
|
|
41
|
+
this.upload.handleFiles(e.dataTransfer.files);
|
|
42
|
+
}
|
|
43
|
+
onDragOver(e) {
|
|
44
|
+
if (!e) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const event = { type: "dragOver" };
|
|
48
|
+
this.uploadOutput.emit(event);
|
|
49
|
+
}
|
|
50
|
+
onDragLeave(e) {
|
|
51
|
+
if (!e) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const event = { type: "dragOut" };
|
|
55
|
+
this.uploadOutput.emit(event);
|
|
56
|
+
}
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgFileDropDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgFileDropDirective, selector: "[dataFileDrop]", inputs: { options: "options", uploadInput: "uploadInput" }, outputs: { uploadOutput: "uploadOutput" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" } }, ngImport: i0 }); }
|
|
59
|
+
}
|
|
60
|
+
export { NgFileDropDirective };
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgFileDropDirective, decorators: [{
|
|
62
|
+
type: Directive,
|
|
63
|
+
args: [{
|
|
64
|
+
selector: "[dataFileDrop]"
|
|
65
|
+
}]
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { options: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], uploadInput: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], uploadOutput: [{
|
|
71
|
+
type: Output
|
|
72
|
+
}], onDrop: [{
|
|
73
|
+
type: HostListener,
|
|
74
|
+
args: ["drop", ["$event"]]
|
|
75
|
+
}], onDragOver: [{
|
|
76
|
+
type: HostListener,
|
|
77
|
+
args: ["dragover", ["$event"]]
|
|
78
|
+
}], onDragLeave: [{
|
|
79
|
+
type: HostListener,
|
|
80
|
+
args: ["dragleave", ["$event"]]
|
|
81
|
+
}] } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi91cGxvYWRlci9uZy1maWxlLWRyb3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHekQsTUFHYSxtQkFBbUI7SUFVOUIsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQW1DekMsY0FBUyxHQUFHLENBQUMsQ0FBUSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFyQ0EsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUN2RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFDekYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJ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LFFBQVEsQ0FBQztnQkFXN0IsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtVcGxvYWRlck9wdGlvbnMsIFVwbG9hZElucHV0LCBVcGxvYWRPdXRwdXR9IGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7RGF0YVVwbG9hZGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXVwbG9hZGVyLmNsYXNzXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltkYXRhRmlsZURyb3BdXCJcbn0pXG5leHBvcnQgY2xhc3MgTmdGaWxlRHJvcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgb3B0aW9ucyE6IFVwbG9hZGVyT3B0aW9ucztcbiAgQElucHV0KCkgdXBsb2FkSW5wdXQhOiBFdmVudEVtaXR0ZXI8VXBsb2FkSW5wdXQ+O1xuICBAT3V0cHV0KCkgdXBsb2FkT3V0cHV0OiBFdmVudEVtaXR0ZXI8VXBsb2FkT3V0cHV0PjtcblxuICBwdWJsaWMgdXBsb2FkITogRGF0YVVwbG9hZGVyU2VydmljZTtcbiAgcHVibGljIGVsITogSFRNTElucHV0RWxlbWVudDtcblxuICBwcml2YXRlIF9zdWIhOiBTdWJzY3JpcHRpb25bXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMudXBsb2FkT3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxVcGxvYWRPdXRwdXQ+KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9zdWIgPSBbXTtcbiAgICBjb25zdCBjb25jdXJyZW5jeSA9IHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuY29uY3VycmVuY3kgfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIGNvbnN0IGFsbG93ZWRDb250ZW50VHlwZXMgPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmFsbG93ZWRDb250ZW50VHlwZXMgfHwgW1wiKlwiXTtcbiAgICBjb25zdCBtYXhVcGxvYWRzID0gdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5tYXhVcGxvYWRzIHx8IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubWF4RmlsZVNpemUgfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIHRoaXMudXBsb2FkID0gbmV3IERhdGFVcGxvYWRlclNlcnZpY2UoY29uY3VycmVuY3ksIGFsbG93ZWRDb250ZW50VHlwZXMsIG1heFVwbG9hZHMsIG1heEZpbGVTaXplKTtcblxuICAgIHRoaXMuZWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuX3N1Yi5wdXNoKFxuICAgICAgdGhpcy51cGxvYWQuc2VydmljZUV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBVcGxvYWRPdXRwdXQpID0+IHtcbiAgICAgICAgdGhpcy51cGxvYWRPdXRwdXQuZW1pdChldmVudCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy51cGxvYWRJbnB1dCBpbnN0YW5jZW9mIEV2ZW50RW1pdHRlcikge1xuICAgICAgdGhpcy5fc3ViLnB1c2godGhpcy51cGxvYWQuaW5pdElucHV0RXZlbnRzKHRoaXMudXBsb2FkSW5wdXQpKTtcbiAgICB9XG5cbiAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoXCJkcm9wXCIsIHRoaXMuc3RvcEV2ZW50LCBmYWxzZSk7XG4gICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKFwiZHJhZ2VudGVyXCIsIHRoaXMuc3RvcEV2ZW50LCBmYWxzZSk7XG4gICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKFwiZHJhZ292ZXJcIiwgdGhpcy5zdG9wRXZlbnQsIGZhbHNlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9zdWIpIHtcbiAgICAgIHRoaXMuX3N1Yi5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuICB9XG5cbiAgc3RvcEV2ZW50ID0gKGU6IEV2ZW50KSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gIH07XG5cbiAgQEhvc3RMaXN0ZW5lcihcImRyb3BcIiwgW1wiJGV2ZW50XCJdKVxuICBwdWJsaWMgb25Ecm9wKGU6IGFueSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZXZlbnQ6IFVwbG9hZE91dHB1dCA9IHt0eXBlOiBcImRyb3BcIn07XG4gICAgdGhpcy51cGxvYWRPdXRwdXQuZW1pdChldmVudCk7XG4gICAgdGhpcy51cGxvYWQuaGFuZGxlRmlsZXMoZS5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImRyYWdvdmVyXCIsIFtcIiRldmVudFwiXSlcbiAgcHVibGljIG9uRHJhZ092ZXIoZTogRXZlbnQpIHtcbiAgICBpZiAoIWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBldmVudDogVXBsb2FkT3V0cHV0ID0ge3R5cGU6IFwiZHJhZ092ZXJcIn07XG4gICAgdGhpcy51cGxvYWRPdXRwdXQuZW1pdChldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwiZHJhZ2xlYXZlXCIsIFtcIiRldmVudFwiXSlcbiAgcHVibGljIG9uRHJhZ0xlYXZlKGU6IEV2ZW50KSB7XG4gICAgaWYgKCFlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnQ6IFVwbG9hZE91dHB1dCA9IHt0eXBlOiBcImRyYWdPdXRcIn07XG4gICAgdGhpcy51cGxvYWRPdXRwdXQuZW1pdChldmVudCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import { DataUploaderService } from "./ngx-uploader.class";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class NgFileSelectDirective {
|
|
5
|
+
constructor(elementRef) {
|
|
6
|
+
this.elementRef = elementRef;
|
|
7
|
+
this.fileListener = () => {
|
|
8
|
+
if (this.el.files) {
|
|
9
|
+
this.upload.handleFiles(this.el.files);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
this.uploadOutput = new EventEmitter();
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this._sub = [];
|
|
16
|
+
const concurrency = this.options && this.options.concurrency || Number.POSITIVE_INFINITY;
|
|
17
|
+
const allowedContentTypes = this.options && this.options.allowedContentTypes || ["*"];
|
|
18
|
+
const maxUploads = this.options && this.options.maxUploads || Number.POSITIVE_INFINITY;
|
|
19
|
+
const maxFileSize = this.options && this.options.maxFileSize || Number.POSITIVE_INFINITY;
|
|
20
|
+
this.upload = new DataUploaderService(concurrency, allowedContentTypes, maxUploads, maxFileSize);
|
|
21
|
+
this.el = this.elementRef.nativeElement;
|
|
22
|
+
this.el.addEventListener("change", this.fileListener, false);
|
|
23
|
+
this._sub.push(this.upload.serviceEvents.subscribe((event) => {
|
|
24
|
+
this.uploadOutput.emit(event);
|
|
25
|
+
}));
|
|
26
|
+
if (this.uploadInput instanceof EventEmitter) {
|
|
27
|
+
this._sub.push(this.upload.initInputEvents(this.uploadInput));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
if (this.el) {
|
|
32
|
+
this.el.removeEventListener("change", this.fileListener, false);
|
|
33
|
+
this._sub.forEach(sub => sub.unsubscribe());
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgFileSelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
37
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgFileSelectDirective, selector: "[dataFileSelect]", inputs: { options: "options", uploadInput: "uploadInput" }, outputs: { uploadOutput: "uploadOutput" }, ngImport: i0 }); }
|
|
38
|
+
}
|
|
39
|
+
export { NgFileSelectDirective };
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgFileSelectDirective, decorators: [{
|
|
41
|
+
type: Directive,
|
|
42
|
+
args: [{
|
|
43
|
+
selector: "[dataFileSelect]"
|
|
44
|
+
}]
|
|
45
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { options: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], uploadInput: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], uploadOutput: [{
|
|
50
|
+
type: Output
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL3VwbG9hZGVyL25nLWZpbGUtc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHekQsTUFHYSxxQkFBcUI7SUFVaEMsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWlDekMsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRTtnQkFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QztRQUNILENBQUMsQ0FBQztRQXBDQSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ3pGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRWpHLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUU7WUFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLFdBQVcsWUFBWSxZQUFZLEVBQUU7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7OEdBekNVLHFCQUFxQjtrR0FBckIscUJBQXFCOztTQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjtpR0FFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1VwbG9hZGVyT3B0aW9ucywgVXBsb2FkT3V0cHV0fSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQge0RhdGFVcGxvYWRlclNlcnZpY2V9IGZyb20gXCIuL25neC11cGxvYWRlci5jbGFzc1wiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbZGF0YUZpbGVTZWxlY3RdXCJcbn0pXG5leHBvcnQgY2xhc3MgTmdGaWxlU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBvcHRpb25zITogVXBsb2FkZXJPcHRpb25zO1xuICBASW5wdXQoKSB1cGxvYWRJbnB1dCE6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCkgdXBsb2FkT3V0cHV0OiBFdmVudEVtaXR0ZXI8VXBsb2FkT3V0cHV0PjtcblxuICBwdWJsaWMgdXBsb2FkITogRGF0YVVwbG9hZGVyU2VydmljZTtcbiAgcHVibGljIGVsITogSFRNTElucHV0RWxlbWVudDtcblxuICBwcml2YXRlIF9zdWIhOiBTdWJzY3JpcHRpb25bXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMudXBsb2FkT3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxVcGxvYWRPdXRwdXQ+KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9zdWIgPSBbXTtcbiAgICBjb25zdCBjb25jdXJyZW5jeSA9IHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuY29uY3VycmVuY3kgfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIGNvbnN0IGFsbG93ZWRDb250ZW50VHlwZXMgPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmFsbG93ZWRDb250ZW50VHlwZXMgfHwgW1wiKlwiXTtcbiAgICBjb25zdCBtYXhVcGxvYWRzID0gdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5tYXhVcGxvYWRzIHx8IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubWF4RmlsZVNpemUgfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIHRoaXMudXBsb2FkID0gbmV3IERhdGFVcGxvYWRlclNlcnZpY2UoY29uY3VycmVuY3ksIGFsbG93ZWRDb250ZW50VHlwZXMsIG1heFVwbG9hZHMsIG1heEZpbGVTaXplKTtcblxuICAgIHRoaXMuZWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgdGhpcy5maWxlTGlzdGVuZXIsIGZhbHNlKTtcblxuICAgIHRoaXMuX3N1Yi5wdXNoKFxuICAgICAgdGhpcy51cGxvYWQuc2VydmljZUV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBVcGxvYWRPdXRwdXQpID0+IHtcbiAgICAgICAgdGhpcy51cGxvYWRPdXRwdXQuZW1pdChldmVudCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy51cGxvYWRJbnB1dCBpbnN0YW5jZW9mIEV2ZW50RW1pdHRlcikge1xuICAgICAgdGhpcy5fc3ViLnB1c2godGhpcy51cGxvYWQuaW5pdElucHV0RXZlbnRzKHRoaXMudXBsb2FkSW5wdXQpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5lbCkge1xuICAgICAgdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIHRoaXMuZmlsZUxpc3RlbmVyLCBmYWxzZSk7XG4gICAgICB0aGlzLl9zdWIuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cbiAgfVxuXG4gIGZpbGVMaXN0ZW5lciA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5lbC5maWxlcykge1xuICAgICAgdGhpcy51cGxvYWQuaGFuZGxlRmlsZXModGhpcy5lbC5maWxlcyk7XG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { NgFileDropDirective } from "./ng-file-drop.directive";
|
|
3
|
+
import { NgFileSelectDirective } from "./ng-file-select.directive";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class NgxUploaderModule {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxUploaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: NgxUploaderModule, declarations: [NgFileDropDirective, NgFileSelectDirective], exports: [NgFileDropDirective, NgFileSelectDirective] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxUploaderModule }); }
|
|
9
|
+
}
|
|
10
|
+
export { NgxUploaderModule };
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgxUploaderModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [NgFileDropDirective, NgFileSelectDirective],
|
|
15
|
+
exports: [NgFileDropDirective, NgFileSelectDirective]
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXVwbG9hZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi91cGxvYWRlci9uZ3gtdXBsb2FkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7O0FBRWpFLE1BSWEsaUJBQWlCOzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFIYixtQkFBbUIsRUFBRSxxQkFBcUIsYUFDL0MsbUJBQW1CLEVBQUUscUJBQXFCOytHQUV6QyxpQkFBaUI7O1NBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDO29CQUMxRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQztpQkFDdEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtOZ0ZpbGVEcm9wRGlyZWN0aXZlfSBmcm9tIFwiLi9uZy1maWxlLWRyb3AuZGlyZWN0aXZlXCI7XG5pbXBvcnQge05nRmlsZVNlbGVjdERpcmVjdGl2ZX0gZnJvbSBcIi4vbmctZmlsZS1zZWxlY3QuZGlyZWN0aXZlXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW05nRmlsZURyb3BEaXJlY3RpdmUsIE5nRmlsZVNlbGVjdERpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtOZ0ZpbGVEcm9wRGlyZWN0aXZlLCBOZ0ZpbGVTZWxlY3REaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE5neFVwbG9hZGVyTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
export class NavDriver {
|
|
5
|
+
constructor(_parent, name, defaults, save) {
|
|
6
|
+
this._parent = _parent;
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.defaults = defaults;
|
|
9
|
+
this.save = save;
|
|
10
|
+
this._current = this.defaults;
|
|
11
|
+
if (this.save) {
|
|
12
|
+
const value = this._parent.load(this.name);
|
|
13
|
+
if (value !== null) {
|
|
14
|
+
this._current = value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
get current() {
|
|
19
|
+
return this._current;
|
|
20
|
+
}
|
|
21
|
+
set current(value) {
|
|
22
|
+
this._current = value;
|
|
23
|
+
this.lastActive = new Date();
|
|
24
|
+
if (this.save) {
|
|
25
|
+
this._parent.save();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
get value() {
|
|
29
|
+
return { name: this.name, value: this._current };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
class TabMemoryService {
|
|
33
|
+
constructor(_route) {
|
|
34
|
+
this._route = _route;
|
|
35
|
+
this.tabMem = {};
|
|
36
|
+
}
|
|
37
|
+
static targetToString(target) {
|
|
38
|
+
let out = '';
|
|
39
|
+
for (const t of target) {
|
|
40
|
+
out += `/${t}`;
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
memFor(target, defaults, save = true, fragment) {
|
|
45
|
+
const tname = TabMemoryService.targetToString(target);
|
|
46
|
+
if (this.tabMem[tname] === undefined) {
|
|
47
|
+
this.tabMem[tname] = new NavDriver(this, tname, defaults, save);
|
|
48
|
+
}
|
|
49
|
+
if (fragment) {
|
|
50
|
+
this.tabMem[tname].current = fragment;
|
|
51
|
+
}
|
|
52
|
+
return this.tabMem[tname];
|
|
53
|
+
}
|
|
54
|
+
save() {
|
|
55
|
+
const tosave = {};
|
|
56
|
+
for (const tn of Object.keys(this.tabMem)) {
|
|
57
|
+
tosave[tn] = this.tabMem[tn].value;
|
|
58
|
+
}
|
|
59
|
+
localStorage.setItem('tabmem', JSON.stringify(tosave));
|
|
60
|
+
}
|
|
61
|
+
load(name) {
|
|
62
|
+
const tm = localStorage.getItem('tabmem');
|
|
63
|
+
if (tm) {
|
|
64
|
+
const tmd = JSON.parse(tm);
|
|
65
|
+
if (tmd && tmd[name] && tmd[name].value) {
|
|
66
|
+
return tmd[name].value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: TabMemoryService, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
72
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: TabMemoryService, providedIn: 'root' }); }
|
|
73
|
+
}
|
|
74
|
+
export { TabMemoryService };
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: TabMemoryService, decorators: [{
|
|
76
|
+
type: Injectable,
|
|
77
|
+
args: [{
|
|
78
|
+
providedIn: 'root',
|
|
79
|
+
}]
|
|
80
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }]; } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLW1lbW9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL3V0aWxzL3RhYi1tZW1vcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRM0MsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFDVSxPQUF5QixFQUMxQixJQUFZLEVBQ1osUUFBZ0IsRUFDZixJQUFhO1FBSGIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFTO1FBRXJCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQzthQUN2QjtTQUNGO0lBQ0gsQ0FBQztJQUlELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBRUQsTUFHYSxnQkFBZ0I7SUFHM0IsWUFBb0IsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFGbEMsV0FBTSxHQUFtQyxFQUFFLENBQUM7SUFFUCxDQUFDO0lBRXRDLE1BQU0sQ0FBQyxjQUFjLENBQzNCLE1BQXdDO1FBRXhDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO1lBQ3RCLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUNYLE1BQXdDLEVBQ3hDLFFBQWdCLEVBQ2hCLE9BQWdCLElBQUksRUFDcEIsUUFBd0I7UUFFeEIsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNqRTtRQUNELElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxJQUFJO1FBQ1QsTUFBTSxNQUFNLEdBQXVDLEVBQUUsQ0FBQztRQUN0RCxLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUNwQztRQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQVk7UUFDdEIsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxJQUFJLEVBQUUsRUFBRTtZQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0IsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3ZDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUN4QjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQWhEVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07O1NBRVAsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFVybFNlZ21lbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbnRlcmZhY2UgSVRhYlN0b3JlZE1lbSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE5hdkRyaXZlciB7XG4gIHByaXZhdGUgbGFzdEFjdGl2ZSE6IERhdGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcGFyZW50OiBUYWJNZW1vcnlTZXJ2aWNlLFxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIGRlZmF1bHRzOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBzYXZlOiBib29sZWFuXG4gICkge1xuICAgIHRoaXMuX2N1cnJlbnQgPSB0aGlzLmRlZmF1bHRzO1xuICAgIGlmICh0aGlzLnNhdmUpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fcGFyZW50LmxvYWQodGhpcy5uYW1lKTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9jdXJyZW50ID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudDogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50O1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jdXJyZW50ID0gdmFsdWU7XG4gICAgdGhpcy5sYXN0QWN0aXZlID0gbmV3IERhdGUoKTtcbiAgICBpZiAodGhpcy5zYXZlKSB7XG4gICAgICB0aGlzLl9wYXJlbnQuc2F2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogSVRhYlN0b3JlZE1lbSB7XG4gICAgcmV0dXJuIHsgbmFtZTogdGhpcy5uYW1lLCB2YWx1ZTogdGhpcy5fY3VycmVudCB9O1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJNZW1vcnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0YWJNZW06IHsgW2luZGV4OiBzdHJpbmddOiBOYXZEcml2ZXIgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge31cblxuICBwcml2YXRlIHN0YXRpYyB0YXJnZXRUb1N0cmluZyhcbiAgICB0YXJnZXQ6IChzdHJpbmcgfCBudW1iZXIgfCBVcmxTZWdtZW50KVtdXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IG91dCA9ICcnO1xuICAgIGZvciAoY29uc3QgdCBvZiB0YXJnZXQpIHtcbiAgICAgIG91dCArPSBgLyR7dH1gO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgcHVibGljIG1lbUZvcihcbiAgICB0YXJnZXQ6IChzdHJpbmcgfCBudW1iZXIgfCBVcmxTZWdtZW50KVtdLFxuICAgIGRlZmF1bHRzOiBzdHJpbmcsXG4gICAgc2F2ZTogYm9vbGVhbiA9IHRydWUsXG4gICAgZnJhZ21lbnQ/OiBzdHJpbmcgfCBudWxsXG4gICk6IE5hdkRyaXZlciB7XG4gICAgY29uc3QgdG5hbWUgPSBUYWJNZW1vcnlTZXJ2aWNlLnRhcmdldFRvU3RyaW5nKHRhcmdldCk7XG4gICAgaWYgKHRoaXMudGFiTWVtW3RuYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRhYk1lbVt0bmFtZV0gPSBuZXcgTmF2RHJpdmVyKHRoaXMsIHRuYW1lLCBkZWZhdWx0cywgc2F2ZSk7XG4gICAgfVxuICAgIGlmIChmcmFnbWVudCkge1xuICAgICAgdGhpcy50YWJNZW1bdG5hbWVdLmN1cnJlbnQgPSBmcmFnbWVudDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudGFiTWVtW3RuYW1lXTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKCkge1xuICAgIGNvbnN0IHRvc2F2ZTogeyBbaW5kZXg6IHN0cmluZ106IElUYWJTdG9yZWRNZW0gfSA9IHt9O1xuICAgIGZvciAoY29uc3QgdG4gb2YgT2JqZWN0LmtleXModGhpcy50YWJNZW0pKSB7XG4gICAgICB0b3NhdmVbdG5dID0gdGhpcy50YWJNZW1bdG5dLnZhbHVlO1xuICAgIH1cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGFibWVtJywgSlNPTi5zdHJpbmdpZnkodG9zYXZlKSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCB0bSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0YWJtZW0nKTtcbiAgICBpZiAodG0pIHtcbiAgICAgIGNvbnN0IHRtZCA9IEpTT04ucGFyc2UodG0pO1xuICAgICAgaWYgKHRtZCAmJiB0bWRbbmFtZV0gJiYgdG1kW25hbWVdLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0bWRbbmFtZV0udmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
|