@wemake4u/form-player-se 1.0.48 → 1.0.50
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/components/actionsCellRenderer/actionsCellRenderer.component.mjs +1 -1
- package/esm2022/lib/components/setFilter/setFilter.component.mjs +2 -2
- package/esm2022/lib/dialog/dialog.component.mjs +3 -2
- package/esm2022/lib/directives/date.directive.mjs +39 -35
- package/esm2022/lib/directives/dialog.directive.mjs +13 -13
- package/esm2022/lib/directives/dropdown.directive.mjs +59 -72
- package/esm2022/lib/directives/file.directive.mjs +212 -0
- package/esm2022/lib/directives/filemanager.directive.mjs +234 -0
- package/esm2022/lib/directives/filepicker.directive.mjs +8 -2
- package/esm2022/lib/directives/jsonfile.directive.mjs +59 -0
- package/esm2022/lib/directives/number.directive.mjs +3 -2
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +16 -69
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +6 -3
- package/esm2022/lib/locale/locale-de.mjs +6 -2
- package/esm2022/lib/locale/locale-en.mjs +6 -2
- package/esm2022/lib/locale/locale-es.mjs +6 -2
- package/esm2022/lib/locale/locale-fr.mjs +6 -2
- package/esm2022/lib/locale/locale-it.mjs +6 -2
- package/esm2022/lib/locale/locale-pt.mjs +6 -2
- package/esm2022/lib/services/compute.service.mjs +3 -3
- package/esm2022/lib/services/dialog.service.mjs +1 -1
- package/esm2022/lib/services/disable.service.mjs +2 -2
- package/esm2022/lib/services/programmability.service.mjs +5 -5
- package/fesm2022/wemake4u-form-player-se.mjs +685 -227
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +4 -0
- package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +4 -0
- package/lib/components/setFilter/setFilter.component.d.ts +4 -0
- package/lib/dialog/dialog.component.d.ts +28 -0
- package/lib/directives/date.directive.d.ts +4 -6
- package/lib/directives/dropdown.directive.d.ts +5 -2
- package/lib/directives/file.directive.d.ts +31 -0
- package/lib/directives/filemanager.directive.d.ts +47 -0
- package/lib/directives/filepicker.directive.d.ts +12 -0
- package/lib/directives/jsonfile.directive.d.ts +14 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +29 -3
- package/lib/dynamic-form/dynamic-form.component.d.ts +29 -0
- package/lib/locale/locale-de.d.ts +4 -0
- package/lib/locale/locale-en.d.ts +4 -0
- package/lib/locale/locale-es.d.ts +4 -0
- package/lib/locale/locale-fr.d.ts +4 -0
- package/lib/locale/locale-it.d.ts +4 -0
- package/lib/locale/locale-pt.d.ts +4 -0
- package/lib/locale/locale.d.ts +28 -0
- package/lib/services/dialog.service.d.ts +2 -0
- package/package.json +2 -2
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { Directive, Input, Self } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { Subscription, take, tap } from 'rxjs';
|
|
4
|
+
import { FileHandlerDirective } from './file.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "ngx-sirio-lib";
|
|
8
|
+
import * as i3 from "../services/toast.service";
|
|
9
|
+
export class FileManagerDirective extends FileHandlerDirective {
|
|
10
|
+
ngControl;
|
|
11
|
+
fileUpload;
|
|
12
|
+
renderer;
|
|
13
|
+
instantUpload = false;
|
|
14
|
+
readonly = false;
|
|
15
|
+
multiple = false;
|
|
16
|
+
uploadHandler;
|
|
17
|
+
deleteHandler;
|
|
18
|
+
constructor(ngControl, fileUpload, renderer, toastService, destroyRef) {
|
|
19
|
+
super(toastService, destroyRef);
|
|
20
|
+
this.ngControl = ngControl;
|
|
21
|
+
this.fileUpload = fileUpload;
|
|
22
|
+
this.renderer = renderer;
|
|
23
|
+
}
|
|
24
|
+
ngOnDestroy() {
|
|
25
|
+
this.cleanupInstant();
|
|
26
|
+
}
|
|
27
|
+
ngOnChanges(changes) {
|
|
28
|
+
if (changes["instantUpload"] || changes["multiple"]
|
|
29
|
+
|| changes["uploadHandler"] || changes["deleteHandler"]) {
|
|
30
|
+
this.cleanupInstant();
|
|
31
|
+
if (this.instantUpload && this.uploadHandler && this.deleteHandler) {
|
|
32
|
+
this.setupInstant();
|
|
33
|
+
}
|
|
34
|
+
this.setupButton();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
canRemove(file) {
|
|
38
|
+
if (this.readonly || !file)
|
|
39
|
+
return false;
|
|
40
|
+
if (this.instantUpload)
|
|
41
|
+
return !this.isUploading(file) && !this.isDeleting(file);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
removeFile(file) {
|
|
45
|
+
if (!this.canRemove(file))
|
|
46
|
+
return;
|
|
47
|
+
this.onRemovingFile(file);
|
|
48
|
+
}
|
|
49
|
+
canDownload(file) {
|
|
50
|
+
if (!this.instantUpload)
|
|
51
|
+
return super.canDownload(file);
|
|
52
|
+
return !this.isUploading(file)
|
|
53
|
+
&& !this.isDeleting(file)
|
|
54
|
+
&& super.canDownload(file);
|
|
55
|
+
}
|
|
56
|
+
isUploading(file) {
|
|
57
|
+
return this.getStatus(file) === UploadStatus.Uploading;
|
|
58
|
+
}
|
|
59
|
+
isDeleting(file) {
|
|
60
|
+
return this.getStatus(file) === UploadStatus.Deleting;
|
|
61
|
+
}
|
|
62
|
+
instantSubscription = new Subscription();
|
|
63
|
+
lastSingleUploaded = null;
|
|
64
|
+
setupInstant() {
|
|
65
|
+
this.instantSubscription.add(this.fileUpload.fileUploadedEvent.subscribe((e) => {
|
|
66
|
+
const addedFiles = this.fileUpload.fileList
|
|
67
|
+
.filter(file => !this.getStatus(file));
|
|
68
|
+
if (this.multiple) {
|
|
69
|
+
for (const file of Array.from(addedFiles ?? [])) {
|
|
70
|
+
this.onAddFile(file);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (this.lastSingleUploaded)
|
|
75
|
+
this.onRemoveFile(this.lastSingleUploaded);
|
|
76
|
+
this.lastSingleUploaded = addedFiles[0] ?? null;
|
|
77
|
+
this.onAddFile(this.lastSingleUploaded);
|
|
78
|
+
}
|
|
79
|
+
}));
|
|
80
|
+
this.instantSubscription.add(this.fileUpload.fileDeletedEvent.subscribe((e) => {
|
|
81
|
+
this.onRemoveFile(e.data.fileDeleted);
|
|
82
|
+
}));
|
|
83
|
+
this.lastSingleUploaded = null;
|
|
84
|
+
}
|
|
85
|
+
cleanupInstant() {
|
|
86
|
+
this.instantSubscription.unsubscribe();
|
|
87
|
+
this.instantSubscription = new Subscription();
|
|
88
|
+
this.lastSingleUploaded = null;
|
|
89
|
+
}
|
|
90
|
+
setupButton() {
|
|
91
|
+
this.instantSubscription.add(this.ngControl.control?.valueChanges.subscribe(value => {
|
|
92
|
+
this.refreshButton(value);
|
|
93
|
+
}));
|
|
94
|
+
setTimeout(() => this.refreshButton(this.ngControl.control?.value));
|
|
95
|
+
}
|
|
96
|
+
onAddFile(file) {
|
|
97
|
+
if (!file || !this.uploadHandler)
|
|
98
|
+
return;
|
|
99
|
+
this.setStatus(file, UploadStatus.Uploading);
|
|
100
|
+
this.uploadHandler(file)
|
|
101
|
+
.pipe(take(1), takeUntilDestroyed(this.destroyRef))
|
|
102
|
+
.subscribe({
|
|
103
|
+
next: result => {
|
|
104
|
+
this.setStatus(file, UploadStatus.Uploaded);
|
|
105
|
+
this.markUploaded(file, result);
|
|
106
|
+
},
|
|
107
|
+
error: error => {
|
|
108
|
+
this.setStatus(file, UploadStatus.Failed);
|
|
109
|
+
this.removeFromUploader(file);
|
|
110
|
+
this.logError(error);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
onRemoveFile(file) {
|
|
115
|
+
if (!file)
|
|
116
|
+
return;
|
|
117
|
+
const currentStatus = this.getStatus(file);
|
|
118
|
+
const shouldDelete = this.deleteHandler
|
|
119
|
+
&& (currentStatus === UploadStatus.Uploaded
|
|
120
|
+
|| currentStatus == null);
|
|
121
|
+
if (!shouldDelete)
|
|
122
|
+
return;
|
|
123
|
+
this.deleteHandler?.(file)
|
|
124
|
+
.pipe(take(1), takeUntilDestroyed(this.destroyRef))
|
|
125
|
+
.subscribe({
|
|
126
|
+
next: result => {
|
|
127
|
+
this.setStatus(file, undefined);
|
|
128
|
+
},
|
|
129
|
+
error: error => {
|
|
130
|
+
this.logError(error);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
onRemovingFile(file) {
|
|
135
|
+
if (!this.deleteHandler) {
|
|
136
|
+
this.removeFromUploader(file);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const currentStatus = this.getStatus(file);
|
|
140
|
+
this.setStatus(file, UploadStatus.Deleting);
|
|
141
|
+
this.deleteHandler?.(file)
|
|
142
|
+
.pipe(take(1), tap(result => {
|
|
143
|
+
if (!result) {
|
|
144
|
+
throw new Error('Delete failed');
|
|
145
|
+
}
|
|
146
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
147
|
+
.subscribe({
|
|
148
|
+
next: result => {
|
|
149
|
+
this.setStatus(file, UploadStatus.Deleted);
|
|
150
|
+
this.removeFromUploader(file);
|
|
151
|
+
},
|
|
152
|
+
error: error => {
|
|
153
|
+
this.setStatus(file, currentStatus);
|
|
154
|
+
this.logError(error);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
removeFromUploader(file) {
|
|
159
|
+
this.fileUpload.onFileDeleted(file);
|
|
160
|
+
}
|
|
161
|
+
refreshButton(value) {
|
|
162
|
+
const hideButton = (value?.length ?? 0) > 0 && !this.multiple;
|
|
163
|
+
const button = this.fileUpload.sirioInput?.sirioButton?.nativeElement;
|
|
164
|
+
if (!button)
|
|
165
|
+
return;
|
|
166
|
+
this.renderer[hideButton ? 'addClass' : 'removeClass'](button, 'd-none');
|
|
167
|
+
}
|
|
168
|
+
markUploaded(file, result) {
|
|
169
|
+
for (const [key, value] of Object.entries(result)) {
|
|
170
|
+
if (key in file) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
Object.defineProperty(file, key, {
|
|
174
|
+
value,
|
|
175
|
+
writable: false,
|
|
176
|
+
enumerable: true,
|
|
177
|
+
configurable: false
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
Object.defineProperty(file, "uploaded", {
|
|
181
|
+
value: true,
|
|
182
|
+
writable: false,
|
|
183
|
+
enumerable: false,
|
|
184
|
+
configurable: false
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
getStatus(file) {
|
|
188
|
+
return file.status;
|
|
189
|
+
}
|
|
190
|
+
setStatus(file, status) {
|
|
191
|
+
const key = 'status';
|
|
192
|
+
if (Object.prototype.hasOwnProperty.call(file, key)) {
|
|
193
|
+
file[key] = status;
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
Object.defineProperty(file, key, {
|
|
197
|
+
value: status,
|
|
198
|
+
writable: true,
|
|
199
|
+
enumerable: false,
|
|
200
|
+
configurable: true
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileManagerDirective, deps: [{ token: i1.NgControl, self: true }, { token: i2.SirioFileUploadComponent }, { token: i0.Renderer2 }, { token: i3.ToastService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
204
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: FileManagerDirective, isStandalone: true, selector: "[fileManager]", inputs: { instantUpload: "instantUpload", readonly: "readonly", multiple: "multiple", uploadHandler: "uploadHandler", deleteHandler: "deleteHandler" }, exportAs: ["fileManager"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
|
205
|
+
}
|
|
206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileManagerDirective, decorators: [{
|
|
207
|
+
type: Directive,
|
|
208
|
+
args: [{
|
|
209
|
+
selector: '[fileManager]',
|
|
210
|
+
exportAs: 'fileManager',
|
|
211
|
+
standalone: true
|
|
212
|
+
}]
|
|
213
|
+
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
214
|
+
type: Self
|
|
215
|
+
}] }, { type: i2.SirioFileUploadComponent }, { type: i0.Renderer2 }, { type: i3.ToastService }, { type: i0.DestroyRef }], propDecorators: { instantUpload: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], readonly: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], multiple: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], uploadHandler: [{
|
|
222
|
+
type: Input
|
|
223
|
+
}], deleteHandler: [{
|
|
224
|
+
type: Input
|
|
225
|
+
}] } });
|
|
226
|
+
export var UploadStatus;
|
|
227
|
+
(function (UploadStatus) {
|
|
228
|
+
UploadStatus[UploadStatus["Uploading"] = 0] = "Uploading";
|
|
229
|
+
UploadStatus[UploadStatus["Uploaded"] = 1] = "Uploaded";
|
|
230
|
+
UploadStatus[UploadStatus["Deleting"] = 2] = "Deleting";
|
|
231
|
+
UploadStatus[UploadStatus["Deleted"] = 3] = "Deleted";
|
|
232
|
+
UploadStatus[UploadStatus["Failed"] = 4] = "Failed";
|
|
233
|
+
})(UploadStatus || (UploadStatus = {}));
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZW1hbmFnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvZGlyZWN0aXZlcy9maWxlbWFuYWdlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFNBQVMsRUFBRSxLQUFLLEVBQW1DLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFjLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQU94RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsb0JBQW9CO0lBa0IxQztJQUNSO0lBQ0E7SUFqQlYsYUFBYSxHQUFtQixLQUFLLENBQUM7SUFHdEMsUUFBUSxHQUFtQixLQUFLLENBQUM7SUFHakMsUUFBUSxHQUFtQixLQUFLLENBQUM7SUFHakMsYUFBYSxDQUFtQztJQUdoRCxhQUFhLENBQXVDO0lBRXBELFlBQ2tCLFNBQW9CLEVBQzVCLFVBQW9DLEVBQ3BDLFFBQW1CLEVBQzNCLFlBQTBCLEVBQzFCLFVBQXNCO1FBRXRCLEtBQUssQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFOaEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBSzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQztlQUM5QyxPQUFPLENB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Q0FBQztJQUM5QixDQUFDO0lBRU8sU0FBUyxDQUFDLElBQVUsRUFBRSxNQUFnQztRQUM1RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUM7UUFFckIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUMvQixLQUFLLEVBQUUsTUFBTTtZQUNiLFFBQVEsRUFBRSxJQUFJO1lBQ2QsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0ExUlUsb0JBQW9COzRGQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQW1CSSxJQUFJOzRKQWZQLGFBQWE7c0JBRFosS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7O0FBK1FSLE1BQU0sQ0FBTixJQUFZLFlBTVg7QUFORCxXQUFZLFlBQVk7SUFDdEIseURBQVMsQ0FBQTtJQUNULHVEQUFRLENBQUE7SUFDUix1REFBUSxDQUFBO0lBQ1IscURBQU8sQ0FBQTtJQUNQLG1EQUFNLENBQUE7QUFDUixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBTZWxmLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTaXJpb0ZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVIYW5kbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9maWxlLmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tmaWxlTWFuYWdlcl0nLFxyXG4gIGV4cG9ydEFzOiAnZmlsZU1hbmFnZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVNYW5hZ2VyRGlyZWN0aXZlIGV4dGVuZHMgRmlsZUhhbmRsZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaW5zdGFudFVwbG9hZDogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBtdWx0aXBsZTogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB1cGxvYWRIYW5kbGVyPzogKGZpbGU6IEZpbGUpID0+IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgQElucHV0KClcclxuICBkZWxldGVIYW5kbGVyPzogKGZpbGU6IEZpbGUpID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgcHJpdmF0ZSBmaWxlVXBsb2FkOiBTaXJpb0ZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcclxuICAgIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWZcclxuICApIHtcclxuICAgIHN1cGVyKHRvYXN0U2VydmljZSwgZGVzdHJveVJlZik7XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhbnVwSW5zdGFudCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJpbnN0YW50VXBsb2FkXCJdIHx8IGNoYW5nZXNbXCJtdWx0aXBsZVwiXVxyXG4gICAgICB8fCBjaGFuZ2VzW1widXBsb2FkSGFuZGxlclwiXSB8fCBjaGFuZ2VzW1wiZGVsZXRlSGFuZGxlclwiXSApIHtcclxuICAgICAgdGhpcy5jbGVhbnVwSW5zdGFudCgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaW5zdGFudFVwbG9hZCAmJiB0aGlzLnVwbG9hZEhhbmRsZXIgJiYgdGhpcy5kZWxldGVIYW5kbGVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXR1cEluc3RhbnQoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXR1cEJ1dHRvbigpOyAgICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5SZW1vdmUoZmlsZTogRmlsZSk6IGJvb2xlYW5cclxuICB7XHJcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCAhZmlsZSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmICh0aGlzLmluc3RhbnRVcGxvYWQpXHJcbiAgICAgIHJldHVybiAhdGhpcy5pc1VwbG9hZGluZyhmaWxlKSAmJiAhdGhpcy5pc0RlbGV0aW5nKGZpbGUpO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsZShmaWxlOiBGaWxlKSB7XHJcblxyXG4gICAgaWYgKCF0aGlzLmNhblJlbW92ZShmaWxlKSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMub25SZW1vdmluZ0ZpbGUoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBjYW5Eb3dubG9hZChmaWxlOiBGaWxlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuaW5zdGFudFVwbG9hZClcclxuICAgICAgcmV0dXJuIHN1cGVyLmNhbkRvd25sb2FkKGZpbGUpO1xyXG5cclxuICAgIHJldHVybiAhdGhpcy5pc1VwbG9hZGluZyhmaWxlKVxyXG4gICAgICAmJiAhdGhpcy5pc0RlbGV0aW5nKGZpbGUpXHJcbiAgICAgICYmIHN1cGVyLmNhbkRvd25sb2FkKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgaXNVcGxvYWRpbmcoZmlsZTogRmlsZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhdHVzKGZpbGUpID09PSBVcGxvYWRTdGF0dXMuVXBsb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgaXNEZWxldGluZyhmaWxlOiBGaWxlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTdGF0dXMoZmlsZSkgPT09IFVwbG9hZFN0YXR1cy5EZWxldGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5zdGFudFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0U2luZ2xlVXBsb2FkZWQ6IEZpbGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEluc3RhbnQoKSB7XHJcblxyXG4gICAgdGhpcy5pbnN0YW50U3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5maWxlVXBsb2FkLmZpbGVVcGxvYWRlZEV2ZW50LnN1YnNjcmliZSgoZSkgPT4ge1xyXG5cclxuICAgICAgICBjb25zdCBhZGRlZEZpbGVzID0gdGhpcy5maWxlVXBsb2FkLmZpbGVMaXN0XHJcbiAgICAgICAgICAuZmlsdGVyKGZpbGUgPT4gIXRoaXMuZ2V0U3RhdHVzKGZpbGUpKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBBcnJheS5mcm9tKGFkZGVkRmlsZXMgPz8gW10pKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25BZGRGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5sYXN0U2luZ2xlVXBsb2FkZWQpXHJcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmVGaWxlKHRoaXMubGFzdFNpbmdsZVVwbG9hZGVkKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmxhc3RTaW5nbGVVcGxvYWRlZCA9IGFkZGVkRmlsZXNbMF0gPz8gbnVsbDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5vbkFkZEZpbGUodGhpcy5sYXN0U2luZ2xlVXBsb2FkZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuaW5zdGFudFN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZC5maWxlRGVsZXRlZEV2ZW50LnN1YnNjcmliZSgoZSkgPT4geyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5vblJlbW92ZUZpbGUoZS5kYXRhLmZpbGVEZWxldGVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5sYXN0U2luZ2xlVXBsb2FkZWQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhbnVwSW5zdGFudCgpIHtcclxuICAgIHRoaXMuaW5zdGFudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5pbnN0YW50U3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgIHRoaXMubGFzdFNpbmdsZVVwbG9hZGVkID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBCdXR0b24oKSB7XHJcbiAgICB0aGlzLmluc3RhbnRTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICB0aGlzLnJlZnJlc2hCdXR0b24odmFsdWUpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWZyZXNoQnV0dG9uKHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQWRkRmlsZShmaWxlOiBGaWxlIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICBpZiAoIWZpbGUgfHwgIXRoaXMudXBsb2FkSGFuZGxlcilcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuc2V0U3RhdHVzKGZpbGUsIFVwbG9hZFN0YXR1cy5VcGxvYWRpbmcpO1xyXG5cclxuICAgIHRoaXMudXBsb2FkSGFuZGxlcihmaWxlKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKGZpbGUsIFVwbG9hZFN0YXR1cy5VcGxvYWRlZCk7XHJcbiAgICAgICAgICB0aGlzLm1hcmtVcGxvYWRlZChmaWxlLCByZXN1bHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKGZpbGUsIFVwbG9hZFN0YXR1cy5GYWlsZWQpO1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVGcm9tVXBsb2FkZXIoZmlsZSk7XHJcbiAgICAgICAgICB0aGlzLmxvZ0Vycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVtb3ZlRmlsZShmaWxlOiBGaWxlIHwgbnVsbCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghZmlsZSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRTdGF0dXMgPSB0aGlzLmdldFN0YXR1cyhmaWxlKTtcclxuXHJcbiAgICBjb25zdCBzaG91bGREZWxldGUgPSB0aGlzLmRlbGV0ZUhhbmRsZXJcclxuICAgICAgJiYgKGN1cnJlbnRTdGF0dXMgPT09IFVwbG9hZFN0YXR1cy5VcGxvYWRlZFxyXG4gICAgICB8fCBjdXJyZW50U3RhdHVzID09IG51bGwpO1xyXG5cclxuICAgIGlmICghc2hvdWxkRGVsZXRlKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5kZWxldGVIYW5kbGVyPy4oZmlsZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXR1cyhmaWxlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVtb3ZpbmdGaWxlKGZpbGU6IEZpbGUpIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGVsZXRlSGFuZGxlcikge1xyXG4gICAgICB0aGlzLnJlbW92ZUZyb21VcGxvYWRlcihmaWxlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRTdGF0dXMgPSB0aGlzLmdldFN0YXR1cyhmaWxlKTtcclxuXHJcbiAgICB0aGlzLnNldFN0YXR1cyhmaWxlLCBVcGxvYWRTdGF0dXMuRGVsZXRpbmcpO1xyXG5cclxuICAgIHRoaXMuZGVsZXRlSGFuZGxlcj8uKGZpbGUpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgdGFwKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RlbGV0ZSBmYWlsZWQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXR1cyhmaWxlLCBVcGxvYWRTdGF0dXMuRGVsZXRlZCk7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUZyb21VcGxvYWRlcihmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXR1cyhmaWxlLCBjdXJyZW50U3RhdHVzKTtcclxuICAgICAgICAgIHRoaXMubG9nRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7ICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlRnJvbVVwbG9hZGVyKGZpbGU6IEZpbGUpIHtcclxuICAgIHRoaXMuZmlsZVVwbG9hZC5vbkZpbGVEZWxldGVkKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoQnV0dG9uKHZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnN0IGhpZGVCdXR0b24gPSAodmFsdWU/Lmxlbmd0aCA/PyAwKSA+IDAgJiYgIXRoaXMubXVsdGlwbGU7XHJcblxyXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5maWxlVXBsb2FkLnNpcmlvSW5wdXQ/LnNpcmlvQnV0dG9uPy5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIGlmICghYnV0dG9uKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlcltoaWRlQnV0dG9uID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKFxyXG4gICAgICBidXR0b24sXHJcbiAgICAgICdkLW5vbmUnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYXJrVXBsb2FkZWQoZmlsZTogRmlsZSwgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVzdWx0KSkge1xyXG5cclxuICAgICAgaWYgKGtleSBpbiBmaWxlKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmaWxlLCBrZXksIHtcclxuICAgICAgICB2YWx1ZSxcclxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmaWxlLCBcInVwbG9hZGVkXCIsIHtcclxuICAgICAgdmFsdWU6IHRydWUsXHJcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcclxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGF0dXMoZmlsZTogRmlsZSk6IFVwbG9hZFN0YXR1cyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gKGZpbGUgYXMgYW55KS5zdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN0YXR1cyhmaWxlOiBGaWxlLCBzdGF0dXM6IFVwbG9hZFN0YXR1cyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgY29uc3Qga2V5ID0gJ3N0YXR1cyc7XHJcblxyXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmaWxlLCBrZXkpKSB7XHJcbiAgICAgIChmaWxlIGFzIGFueSlba2V5XSA9IHN0YXR1cztcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmaWxlLCBrZXksIHtcclxuICAgICAgdmFsdWU6IHN0YXR1cyxcclxuICAgICAgd3JpdGFibGU6IHRydWUsXHJcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXBsb2FkU3RhdHVzIHtcclxuICBVcGxvYWRpbmcsXHJcbiAgVXBsb2FkZWQsXHJcbiAgRGVsZXRpbmcsXHJcbiAgRGVsZXRlZCxcclxuICBGYWlsZWRcclxufVxyXG4iXX0=
|
|
@@ -10,7 +10,7 @@ export class FileListReadonlyDirective {
|
|
|
10
10
|
}
|
|
11
11
|
ngAfterViewChecked() {
|
|
12
12
|
const buttons = this.host.nativeElement.querySelectorAll('.sirio-upload-file-list button');
|
|
13
|
-
buttons.forEach(button => {
|
|
13
|
+
buttons.forEach((button, index) => {
|
|
14
14
|
if (this.readonly) {
|
|
15
15
|
this.renderer.setAttribute(button, 'disabled', '');
|
|
16
16
|
}
|
|
@@ -31,4 +31,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31
31
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { readonly: [{
|
|
32
32
|
type: Input
|
|
33
33
|
}] } });
|
|
34
|
-
|
|
34
|
+
export var UploadStatus;
|
|
35
|
+
(function (UploadStatus) {
|
|
36
|
+
UploadStatus[UploadStatus["Uploading"] = 0] = "Uploading";
|
|
37
|
+
UploadStatus[UploadStatus["Uploaded"] = 1] = "Uploaded";
|
|
38
|
+
UploadStatus[UploadStatus["Failed"] = 2] = "Failed";
|
|
39
|
+
})(UploadStatus || (UploadStatus = {}));
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2ZpbGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFjLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUYsTUFBTSxPQUFPLHlCQUF5QjtJQU0xQjtJQUNBO0lBSlYsUUFBUSxHQUFtQixLQUFLLENBQUM7SUFFakMsWUFDVSxJQUE2QixFQUM3QixRQUFtQjtRQURuQixTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQ3pCLENBQUM7SUFFTCxrQkFBa0I7UUFFaEIsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3RDLGdDQUFnQyxDQUNqQyxDQUFDO1FBRUosT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUVoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRCxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFFSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBM0JVLHlCQUF5Qjs0RkFBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt1R0FJQyxRQUFRO3NCQURQLEtBQUs7O0FBNkJSLE1BQU0sQ0FBTixJQUFZLFlBSVg7QUFKRCxXQUFZLFlBQVk7SUFDdEIseURBQVMsQ0FBQTtJQUNULHVEQUFRLENBQUE7SUFDUixtREFBTSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ25neC1zaXJpby1maWxlLXVwbG9hZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZUxpc3RSZWFkb25seURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlYWRvbmx5OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICApIHsgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcblxyXG4gICAgY29uc3QgYnV0dG9ucyA9XHJcbiAgICAgIHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXHJcbiAgICAgICAgJy5zaXJpby11cGxvYWQtZmlsZS1saXN0IGJ1dHRvbidcclxuICAgICAgKTtcclxuXHJcbiAgICBidXR0b25zLmZvckVhY2goKGJ1dHRvbiwgaW5kZXgpID0+IHtcclxuXHJcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYnV0dG9uLCAnZGlzYWJsZWQnLCAnJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUoYnV0dG9uLCAnZGlzYWJsZWQnKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFVwbG9hZFN0YXR1cyB7XHJcbiAgVXBsb2FkaW5nLFxyXG4gIFVwbG9hZGVkLFxyXG4gIEZhaWxlZFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEZpbGU8VFJlc3VsdCA9IGFueT4ge1xyXG4gIGZpbGU6IEZpbGU7XHJcbiAgc3RhdHVzOiBVcGxvYWRTdGF0dXM7XHJcbiAgcHJvZ3Jlc3M6IG51bWJlcjtcclxuICByZXN1bHQ/OiBUUmVzdWx0O1xyXG4gIGVycm9yPzogYW55O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Directive, Self } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/forms";
|
|
4
|
+
import * as i2 from "../services/subscribe.service";
|
|
5
|
+
export class JsonFileDirective {
|
|
6
|
+
ngControl;
|
|
7
|
+
subscribe;
|
|
8
|
+
destroyRef;
|
|
9
|
+
constructor(ngControl, subscribe, destroyRef) {
|
|
10
|
+
this.ngControl = ngControl;
|
|
11
|
+
this.subscribe = subscribe;
|
|
12
|
+
this.destroyRef = destroyRef;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
const control = this.ngControl.control;
|
|
16
|
+
if (!control)
|
|
17
|
+
return;
|
|
18
|
+
this.subscribe.subscribeChanges(control.valueChanges, control, undefined, this.destroyRef, (_, n) => this.defineJson(n));
|
|
19
|
+
}
|
|
20
|
+
defineJson(value) {
|
|
21
|
+
if (!Array.isArray(value)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
for (const item of value) {
|
|
25
|
+
if (!(item instanceof File)) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (typeof item.toJSON === 'function') {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
Object.defineProperty(item, 'toJSON', {
|
|
32
|
+
value() {
|
|
33
|
+
return {
|
|
34
|
+
...this,
|
|
35
|
+
name: this.name,
|
|
36
|
+
size: this.size,
|
|
37
|
+
type: this.type,
|
|
38
|
+
lastModified: this.lastModified
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
writable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
enumerable: false
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: JsonFileDirective, deps: [{ token: i1.NgControl, self: true }, { token: i2.SubscribeService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: JsonFileDirective, isStandalone: true, selector: "ngx-sirio-file-upload", ngImport: i0 });
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: JsonFileDirective, decorators: [{
|
|
51
|
+
type: Directive,
|
|
52
|
+
args: [{
|
|
53
|
+
selector: 'ngx-sirio-file-upload',
|
|
54
|
+
standalone: true
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
57
|
+
type: Self
|
|
58
|
+
}] }, { type: i2.SubscribeService }, { type: i0.DestroyRef }] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvZGlyZWN0aXZlcy9qc29uZmlsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFNBQVMsRUFBVSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRcEUsTUFBTSxPQUFPLGlCQUFpQjtJQUdWO0lBQ1I7SUFDQTtJQUhWLFlBQ2tCLFNBQW9CLEVBQzVCLFNBQTJCLEVBQzNCLFVBQXNCO1FBRmQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQzVCLENBQUM7SUFFTCxRQUFRO1FBRU4sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFFdkMsSUFBSSxDQUFDLE9BQU87WUFDVixPQUFPO1FBRVQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzSCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQVU7UUFFM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFFekIsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxPQUFRLElBQVksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQy9DLFNBQVM7WUFDWCxDQUFDO1lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUNwQyxLQUFLO29CQUNILE9BQU87d0JBQ0wsR0FBRyxJQUFJO3dCQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTt3QkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7d0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtxQkFDaEMsQ0FBQztnQkFDSixDQUFDO2dCQUNELFFBQVEsRUFBRSxJQUFJO2dCQUNkLFlBQVksRUFBRSxJQUFJO2dCQUNsQixVQUFVLEVBQUUsS0FBSzthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzt3R0FsRFUsaUJBQWlCOzRGQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFJSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBPbkluaXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpYmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3Vic2NyaWJlLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICduZ3gtc2lyaW8tZmlsZS11cGxvYWQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEpzb25GaWxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAU2VsZigpIHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBwcml2YXRlIHN1YnNjcmliZTogU3Vic2NyaWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZlxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sO1xyXG5cclxuICAgIGlmICghY29udHJvbClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaWJlLnN1YnNjcmliZUNoYW5nZXMoY29udHJvbC52YWx1ZUNoYW5nZXMsIGNvbnRyb2wsIHVuZGVmaW5lZCwgdGhpcy5kZXN0cm95UmVmLCAoXywgbikgPT4gdGhpcy5kZWZpbmVKc29uKG4pKTtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlZmluZUpzb24odmFsdWU6IGFueSk6IHZvaWQge1xyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xyXG5cclxuICAgICAgaWYgKCEoaXRlbSBpbnN0YW5jZW9mIEZpbGUpKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0eXBlb2YgKGl0ZW0gYXMgYW55KS50b0pTT04gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGl0ZW0sICd0b0pTT04nLCB7XHJcbiAgICAgICAgdmFsdWUoKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50aGlzLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXHJcbiAgICAgICAgICAgIHNpemU6IHRoaXMuc2l6ZSxcclxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IHRoaXMubGFzdE1vZGlmaWVkXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAgIFxyXG59XHJcbiJdfQ==
|
|
@@ -27,6 +27,7 @@ export class NumberDirective {
|
|
|
27
27
|
writeValue(value, event);
|
|
28
28
|
};
|
|
29
29
|
const coerceValue = (value) => {
|
|
30
|
+
const original = value;
|
|
30
31
|
if (value === null && this.defaultValue !== null) {
|
|
31
32
|
value = this.defaultValue;
|
|
32
33
|
}
|
|
@@ -37,7 +38,7 @@ export class NumberDirective {
|
|
|
37
38
|
if (this.maximum !== null && value > this.maximum) {
|
|
38
39
|
value = this.maximum;
|
|
39
40
|
}
|
|
40
|
-
if (this.decimalDigits != null && this.decimalDigits >= 0) {
|
|
41
|
+
if (original != value || (this.decimalDigits != null && this.decimalDigits >= 0)) {
|
|
41
42
|
writeValue(formatNumber(value), false);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
@@ -120,4 +121,4 @@ function valueToStore(value) {
|
|
|
120
121
|
return null;
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvbnVtYmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdEUsTUFBTSxPQUFPLGVBQWU7SUFNRTtJQUxuQixZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixhQUFhLEdBQWtCLElBQUksQ0FBQztJQUU3QyxZQUE0QixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUV6RCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQW9CLEVBQTBCLEVBQUU7WUFDcEUsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNoRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUM1QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQTtRQUVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUV0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FB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WUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO1NBQ0ksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQWUsQ0FBQztJQUN6QixDQUFDO1NBQ0ksQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEFmdGVyVmlld0luaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpcmlvSW5wdXRDb21wb25lbnQgfSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW251bWJlcl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIE51bWJlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgbWluaW11bTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgbWF4aW11bTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZGVjaW1hbERpZ2l0czogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHJpdmF0ZSBzaXJpb0lucHV0OiBTaXJpb0lucHV0Q29tcG9uZW50KSB7XHJcblxyXG4gICAgY29uc3QgZm9ybWF0TnVtYmVyID0gKHZhbHVlOiBudW1iZXIgfCBudWxsKTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLmRlY2ltYWxEaWdpdHMgIT0gbnVsbCAmJiB0aGlzLmRlY2ltYWxEaWdpdHMgPj0gMCkge1xyXG4gICAgICAgIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxEaWdpdHMpO1xyXG4gICAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvRml4ZWQodGhpcy5kZWNpbWFsRGlnaXRzKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpcnN0V3JpdGUgPSB0cnVlO1xyXG5cclxuICAgIGNvbnN0IHdyaXRlVmFsdWUgPSB0aGlzLnNpcmlvSW5wdXQud3JpdGVWYWx1ZS5iaW5kKHRoaXMuc2lyaW9JbnB1dCk7XHJcblxyXG4gICAgdGhpcy5zaXJpb0lucHV0LndyaXRlVmFsdWUgPSBmdW5jdGlvbiAodmFsdWU6IGFueSwgZXZlbnQ/OiBib29sZWFuKSB7XHJcbiAgICAgIGlmIChmaXJzdFdyaXRlKSB7XHJcbiAgICAgICAgZmlyc3RXcml0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHZhbHVlID0gZm9ybWF0TnVtYmVyKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICB3cml0ZVZhbHVlKHZhbHVlLCBldmVudCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGNvZXJjZVZhbHVlID0gKHZhbHVlOiBudW1iZXIgfCBudWxsKTogbnVtYmVyIHwgbnVsbCA9PiB7XHJcblxyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgdGhpcy5kZWZhdWx0VmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLm1pbmltdW0gIT09IG51bGwgJiYgdmFsdWUgPCB0aGlzLm1pbmltdW0pIHtcclxuICAgICAgICAgIHZhbHVlID0gdGhpcy5taW5pbXVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWF4aW11bSAhPT0gbnVsbCAmJiB2YWx1ZSA+IHRoaXMubWF4aW11bSkge1xyXG4gICAgICAgICAgdmFsdWUgPSB0aGlzLm1heGltdW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kZWNpbWFsRGlnaXRzICE9IG51bGwgJiYgdGhpcy5kZWNpbWFsRGlnaXRzID49IDApIHtcclxuICAgICAgICAgIHdyaXRlVmFsdWUoZm9ybWF0TnVtYmVyKHZhbHVlKSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZWdpc3Rlck9uQ2hhbmdlID0gdGhpcy5zaXJpb0lucHV0LnJlZ2lzdGVyT25DaGFuZ2UuYmluZCh0aGlzLnNpcmlvSW5wdXQpO1xyXG5cclxuICAgIHRoaXMuc2lyaW9JbnB1dC5yZWdpc3Rlck9uQ2hhbmdlID0gZnVuY3Rpb24gKGZuOiAoXzogYW55KSA9PiB2b2lkKSB7XHJcbiAgICAgIHJlZ2lzdGVyT25DaGFuZ2UoZnVuY3Rpb24gKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBmbihjb2VyY2VWYWx1ZSh2YWx1ZVRvU3RvcmUodmFsdWUpKSk7ICAgICAgICBcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5zaXJpb0lucHV0LnNpcmlvSW5wdXQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICBjb25zdCBlID0gZXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcclxuICAgICAgaWYgKGUua2V5ID09PSAnLidcclxuICAgICAgICB8fCAoZS5rZXkgPT09ICcsJyAmJiAhdGhpcy5hY2NlcHREZWNpbWFsKCkpXHJcbiAgICAgICAgfHwgKGUua2V5ID09PSAnLScgJiYgIXRoaXMuYWNjZXB0U2lnbigpKSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigncGFzdGUnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IGUgPSBldmVudCBhcyBDbGlwYm9hcmRFdmVudDtcclxuICAgICAgY29uc3QgdGV4dCA9IGUuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpIHx8ICcnO1xyXG4gICAgICBpZiAodGV4dC5pbmNsdWRlcygnLicpXHJcbiAgICAgICAgfHwgKHRleHQuaW5jbHVkZXMoJywnKSAmJiAhdGhpcy5hY2NlcHREZWNpbWFsKCkpXHJcbiAgICAgICAgfHwgKHRleHQuaW5jbHVkZXMoJy0nKSAmJiAhdGhpcy5hY2NlcHRTaWduKCkpKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWNjZXB0U2lnbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm1pbmltdW0gIT09IG51bGwgJiYgdGhpcy5taW5pbXVtID49IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjY2VwdERlY2ltYWwoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5kZWNpbWFsRGlnaXRzICE9PSBudWxsICYmIHRoaXMuZGVjaW1hbERpZ2l0cyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9ICBcclxufVxyXG5cclxuZnVuY3Rpb24gdmFsdWVUb1N0b3JlKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIgfCBudWxsIHtcclxuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICBpZiAodmFsdWUudHJpbSgpID09PSAnJykgeyBcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcclxuICAgIGlmIChpc05hTihudW1lcmljVmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bWVyaWNWYWx1ZTtcclxuICB9XHJcbiAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgcmV0dXJuIHZhbHVlIGFzIG51bWJlcjtcclxuICB9XHJcbiAgZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvbnVtYmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdEUsTUFBTSxPQUFPLGVBQWU7SUFNRTtJQUxuQixZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixhQUFhLEdBQWtCLElBQUksQ0FBQztJQUU3QyxZQUE0QixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUV6RCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQW9CLEVBQTBCLEVBQUU7WUFDcEUsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNoRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUM1QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQTtRQUVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUV0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FB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TUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztTQUNJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFlLENBQUM7SUFDekIsQ0FBQztTQUNJLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBBZnRlclZpZXdJbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaXJpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tudW1iZXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG1pbmltdW06IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG1heGltdW06IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxEaWdpdHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgc2lyaW9JbnB1dDogU2lyaW9JbnB1dENvbXBvbmVudCkge1xyXG5cclxuICAgIGNvbnN0IGZvcm1hdE51bWJlciA9ICh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IG51bWJlciB8IHN0cmluZyB8IG51bGwgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgJiYgdGhpcy5kZWNpbWFsRGlnaXRzICE9IG51bGwgJiYgdGhpcy5kZWNpbWFsRGlnaXRzID49IDApIHtcclxuICAgICAgICBjb25zdCBmYWN0b3IgPSBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsRGlnaXRzKTtcclxuICAgICAgICB2YWx1ZSA9IE1hdGgucm91bmQodmFsdWUgKiBmYWN0b3IpIC8gZmFjdG9yO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS50b0ZpeGVkKHRoaXMuZGVjaW1hbERpZ2l0cyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBmaXJzdFdyaXRlID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCB3cml0ZVZhbHVlID0gdGhpcy5zaXJpb0lucHV0LndyaXRlVmFsdWUuYmluZCh0aGlzLnNpcmlvSW5wdXQpO1xyXG5cclxuICAgIHRoaXMuc2lyaW9JbnB1dC53cml0ZVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlOiBhbnksIGV2ZW50PzogYm9vbGVhbikge1xyXG4gICAgICBpZiAoZmlyc3RXcml0ZSkge1xyXG4gICAgICAgIGZpcnN0V3JpdGUgPSBmYWxzZTtcclxuICAgICAgICB2YWx1ZSA9IGZvcm1hdE51bWJlcih2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgd3JpdGVWYWx1ZSh2YWx1ZSwgZXZlbnQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjb2VyY2VWYWx1ZSA9ICh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IG51bWJlciB8IG51bGwgPT4ge1xyXG5cclxuICAgICAgY29uc3Qgb3JpZ2luYWwgPSB2YWx1ZTtcclxuXHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiB0aGlzLmRlZmF1bHRWYWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1pbmltdW0gIT09IG51bGwgJiYgdmFsdWUgPCB0aGlzLm1pbmltdW0pIHtcclxuICAgICAgICAgIHZhbHVlID0gdGhpcy5taW5pbXVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWF4aW11bSAhPT0gbnVsbCAmJiB2YWx1ZSA+IHRoaXMubWF4aW11bSkge1xyXG4gICAgICAgICAgdmFsdWUgPSB0aGlzLm1heGltdW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3JpZ2luYWwgIT0gdmFsdWUgfHwgKHRoaXMuZGVjaW1hbERpZ2l0cyAhPSBudWxsICYmIHRoaXMuZGVjaW1hbERpZ2l0cyA+PSAwKSkge1xyXG4gICAgICAgICAgd3JpdGVWYWx1ZShmb3JtYXROdW1iZXIodmFsdWUpLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLnNpcmlvSW5wdXQucmVnaXN0ZXJPbkNoYW5nZS5iaW5kKHRoaXMuc2lyaW9JbnB1dCk7XHJcblxyXG4gICAgdGhpcy5zaXJpb0lucHV0LnJlZ2lzdGVyT25DaGFuZ2UgPSBmdW5jdGlvbiAoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgcmVnaXN0ZXJPbkNoYW5nZShmdW5jdGlvbiAodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGZuKGNvZXJjZVZhbHVlKHZhbHVlVG9TdG9yZSh2YWx1ZSkpKTsgICAgICAgIFxyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnNpcmlvSW5wdXQuc2lyaW9JbnB1dC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IGUgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgICBpZiAoZS5rZXkgPT09ICcuJ1xyXG4gICAgICAgIHx8IChlLmtleSA9PT0gJywnICYmICF0aGlzLmFjY2VwdERlY2ltYWwoKSlcclxuICAgICAgICB8fCAoZS5rZXkgPT09ICctJyAmJiAhdGhpcy5hY2NlcHRTaWduKCkpKSB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgY29uc3QgZSA9IGV2ZW50IGFzIENsaXBib2FyZEV2ZW50O1xyXG4gICAgICBjb25zdCB0ZXh0ID0gZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0JykgfHwgJyc7XHJcbiAgICAgIGlmICh0ZXh0LmluY2x1ZGVzKCcuJylcclxuICAgICAgICB8fCAodGV4dC5pbmNsdWRlcygnLCcpICYmICF0aGlzLmFjY2VwdERlY2ltYWwoKSlcclxuICAgICAgICB8fCAodGV4dC5pbmNsdWRlcygnLScpICYmICF0aGlzLmFjY2VwdFNpZ24oKSkpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY2NlcHRTaWduKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubWluaW11bSAhPT0gbnVsbCAmJiB0aGlzLm1pbmltdW0gPj0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWNjZXB0RGVjaW1hbCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmRlY2ltYWxEaWdpdHMgIT09IG51bGwgJiYgdGhpcy5kZWNpbWFsRGlnaXRzID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gIFxyXG59XHJcblxyXG5mdW5jdGlvbiB2YWx1ZVRvU3RvcmUodmFsdWU6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xyXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgIGlmICh2YWx1ZS50cmltKCkgPT09ICcnKSB7IFxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgaWYgKGlzTmFOKG51bWVyaWNWYWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVtZXJpY1ZhbHVlO1xyXG4gIH1cclxuICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICByZXR1cm4gdmFsdWUgYXMgbnVtYmVyO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|