nxt-dropzone-wrapper 15.0.0 → 16.0.0-alpha.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/README.md +23 -120
- package/esm2020/lib/dropzone.component.mjs +77 -81
- package/esm2020/lib/dropzone.directive.mjs +198 -130
- package/esm2020/lib/dropzone.interfaces.mjs +34 -19
- package/esm2020/lib/dropzone.module.mjs +4 -4
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/nxt-dropzone-wrapper.mjs +283 -231
- package/fesm2015/nxt-dropzone-wrapper.mjs.map +1 -1
- package/fesm2020/nxt-dropzone-wrapper.mjs +310 -229
- package/fesm2020/nxt-dropzone-wrapper.mjs.map +1 -1
- package/lib/dropzone.component.d.ts +42 -35
- package/lib/dropzone.directive.d.ts +58 -41
- package/lib/dropzone.interfaces.d.ts +59 -138
- package/package.json +3 -3
- package/public-api.d.ts +1 -1
|
@@ -1,62 +1,155 @@
|
|
|
1
1
|
/* eslint-disable @angular-eslint/no-output-rename */
|
|
2
|
-
/* eslint-disable @angular-eslint/no-conflicting-lifecycle */
|
|
3
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
4
|
-
import { Directive, EventEmitter, Inject, Input, Optional, Output, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { Directive, EventEmitter, HostBinding, Inject, Input, Optional, Output, PLATFORM_ID } from '@angular/core';
|
|
5
4
|
import Dropzone from 'dropzone';
|
|
6
|
-
import {
|
|
5
|
+
import { _DropzoneConfig, DropzoneEvents, internalChanges, NXT_DROPZONE_CONFIG, NXT_DROPZONE_LISTENERS } from './dropzone.interfaces';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export class DropzoneDirective {
|
|
9
|
-
|
|
8
|
+
/** Disables / detaches Dropzone from the element */
|
|
9
|
+
set disabled(val) {
|
|
10
|
+
val = !!val;
|
|
11
|
+
if (val != this._disabled && this.instance) {
|
|
12
|
+
if (val)
|
|
13
|
+
this.zone.runOutsideAngular(() => {
|
|
14
|
+
this.instance.disable();
|
|
15
|
+
});
|
|
16
|
+
else
|
|
17
|
+
this.zone.runOutsideAngular(() => {
|
|
18
|
+
this.instance.enable();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
this._disabled = val;
|
|
22
|
+
}
|
|
23
|
+
get disabled() {
|
|
24
|
+
return this._disabled;
|
|
25
|
+
}
|
|
26
|
+
get dropzone() {
|
|
27
|
+
return this.instance;
|
|
28
|
+
}
|
|
29
|
+
/** @internal */
|
|
30
|
+
get isSingle() {
|
|
31
|
+
return this._params.maxFiles === 1;
|
|
32
|
+
}
|
|
33
|
+
/** @internal */
|
|
34
|
+
get isMultiple() {
|
|
35
|
+
return this._params.maxFiles !== 1;
|
|
36
|
+
}
|
|
37
|
+
constructor(zone, elementRef, differs, platformId, defaults, component) {
|
|
10
38
|
this.zone = zone;
|
|
11
|
-
this.renderer = renderer;
|
|
12
39
|
this.elementRef = elementRef;
|
|
13
40
|
this.differs = differs;
|
|
14
41
|
this.platformId = platformId;
|
|
15
42
|
this.defaults = defaults;
|
|
16
|
-
this.
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
this.
|
|
26
|
-
|
|
27
|
-
this.DZ_DRAGEND =
|
|
28
|
-
|
|
29
|
-
this.
|
|
30
|
-
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
this.
|
|
34
|
-
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
this.
|
|
42
|
-
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
this.component = component;
|
|
44
|
+
this._disabled = false;
|
|
45
|
+
this._params = new _DropzoneConfig(this.defaults);
|
|
46
|
+
this.configDiff = this.differs.find(this.config || {}).create();
|
|
47
|
+
this.paramDiff = this.differs.find(this._params).create();
|
|
48
|
+
this.DZ_INIT = this.component?.DZ_INIT
|
|
49
|
+
?? new EventEmitter();
|
|
50
|
+
this.DZ_DROP = this.component?.DZ_DROP
|
|
51
|
+
?? new EventEmitter();
|
|
52
|
+
this.DZ_DRAGSTART = this.component?.DZ_DRAGSTART
|
|
53
|
+
?? new EventEmitter();
|
|
54
|
+
this.DZ_DRAGEND = this.component?.DZ_DRAGEND
|
|
55
|
+
?? new EventEmitter();
|
|
56
|
+
this.DZ_DRAGENTER = this.component?.DZ_DRAGENTER
|
|
57
|
+
?? new EventEmitter();
|
|
58
|
+
this.DZ_DRAGOVER = this.component?.DZ_DRAGOVER
|
|
59
|
+
?? new EventEmitter();
|
|
60
|
+
this.DZ_DRAGLEAVE = this.component?.DZ_DRAGLEAVE
|
|
61
|
+
?? new EventEmitter();
|
|
62
|
+
this.DZ_PASTE = this.component?.DZ_PASTE
|
|
63
|
+
?? new EventEmitter();
|
|
64
|
+
this.DZ_RESET = this.component?.DZ_RESET
|
|
65
|
+
?? new EventEmitter();
|
|
66
|
+
this.DZ_ADDEDFILE = this.component?.DZ_ADDEDFILE
|
|
67
|
+
?? new EventEmitter();
|
|
68
|
+
this.DZ_ADDEDFILES = this.component?.DZ_ADDEDFILES
|
|
69
|
+
?? new EventEmitter();
|
|
70
|
+
this.DZ_REMOVEDFILE = this.component?.DZ_REMOVEDFILE
|
|
71
|
+
?? new EventEmitter();
|
|
72
|
+
this.DZ_THUMBNAIL = this.component?.DZ_THUMBNAIL
|
|
73
|
+
?? new EventEmitter();
|
|
74
|
+
this.DZ_ERROR = this.component?.DZ_ERROR
|
|
75
|
+
?? new EventEmitter();
|
|
76
|
+
this.DZ_ERRORMULTIPLE = this.component?.DZ_ERRORMULTIPLE
|
|
77
|
+
?? new EventEmitter();
|
|
78
|
+
this.DZ_PROCESSING = this.component?.DZ_PROCESSING
|
|
79
|
+
?? new EventEmitter();
|
|
80
|
+
this.DZ_PROCESSINGMULTIPLE = this.component?.DZ_PROCESSINGMULTIPLE
|
|
81
|
+
?? new EventEmitter();
|
|
82
|
+
this.DZ_UPLOADPROGRESS = this.component?.DZ_UPLOADPROGRESS
|
|
83
|
+
?? new EventEmitter();
|
|
84
|
+
this.DZ_TOTALUPLOADPROGRESS = this.component?.DZ_TOTALUPLOADPROGRESS
|
|
85
|
+
?? new EventEmitter();
|
|
86
|
+
this.DZ_SENDING = this.component?.DZ_SENDING
|
|
87
|
+
?? new EventEmitter();
|
|
88
|
+
this.DZ_SENDINGMULTIPLE = this.component?.DZ_SENDINGMULTIPLE
|
|
89
|
+
?? new EventEmitter();
|
|
90
|
+
this.DZ_SUCCESS = this.component?.DZ_SUCCESS
|
|
91
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
92
|
+
?? new EventEmitter();
|
|
93
|
+
this.DZ_SUCCESSMULTIPLE = this.component?.DZ_SUCCESSMULTIPLE
|
|
94
|
+
?? new EventEmitter();
|
|
95
|
+
this.DZ_CANCELED = this.component?.DZ_CANCELED
|
|
96
|
+
?? new EventEmitter();
|
|
97
|
+
this.DZ_CANCELEDMULTIPLE = this.component?.DZ_CANCELEDMULTIPLE
|
|
98
|
+
?? new EventEmitter();
|
|
99
|
+
this.DZ_COMPLETE = this.component?.DZ_COMPLETE
|
|
100
|
+
?? new EventEmitter();
|
|
101
|
+
this.DZ_COMPLETEMULTIPLE = this.component?.DZ_COMPLETEMULTIPLE
|
|
102
|
+
?? new EventEmitter();
|
|
103
|
+
this.DZ_MAXFILESEXCEEDED = this.component?.DZ_MAXFILESEXCEEDED
|
|
104
|
+
?? new EventEmitter();
|
|
105
|
+
this.DZ_MAXFILESREACHED = this.component?.DZ_MAXFILESREACHED
|
|
106
|
+
?? new EventEmitter();
|
|
107
|
+
this.DZ_QUEUECOMPLETE = this.component?.DZ_QUEUECOMPLETE
|
|
108
|
+
?? new EventEmitter();
|
|
49
109
|
}
|
|
110
|
+
/** @internal */
|
|
50
111
|
ngOnInit() {
|
|
112
|
+
this.initInstance();
|
|
113
|
+
}
|
|
114
|
+
/** @internal */
|
|
115
|
+
ngOnDestroy() {
|
|
116
|
+
this.destroyInstance();
|
|
117
|
+
}
|
|
118
|
+
/** @internal */
|
|
119
|
+
ngDoCheck() {
|
|
120
|
+
const changes = this.configDiff.diff(this.config || {});
|
|
121
|
+
if (changes) {
|
|
122
|
+
const newParams = new _DropzoneConfig(this.defaults);
|
|
123
|
+
newParams.assign(this.config);
|
|
124
|
+
const d = this.paramDiff.diff(newParams);
|
|
125
|
+
if (d) {
|
|
126
|
+
this._params = newParams;
|
|
127
|
+
let hasChanges = false;
|
|
128
|
+
d.forEachItem(r => {
|
|
129
|
+
if (!internalChanges.has(r.key) && r.currentValue !== r.previousValue)
|
|
130
|
+
hasChanges = true;
|
|
131
|
+
});
|
|
132
|
+
if (hasChanges && this.instance) {
|
|
133
|
+
this.destroyInstance();
|
|
134
|
+
this.initInstance();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/** @internal */
|
|
140
|
+
reset(cancel) {
|
|
141
|
+
if (this.instance) {
|
|
142
|
+
this.zone.runOutsideAngular(() => {
|
|
143
|
+
this.instance.removeAllFiles(cancel);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
initInstance() {
|
|
51
148
|
if (!isPlatformBrowser(this.platformId)) {
|
|
52
149
|
return;
|
|
53
150
|
}
|
|
54
|
-
const params = new DropzoneConfig(this.defaults);
|
|
55
|
-
params.assign(this.config); // Custom configuration
|
|
56
|
-
this.renderer.addClass(this.elementRef.nativeElement, (params.maxFiles === 1) ? 'dz-single' : 'dz-multiple');
|
|
57
|
-
this.renderer.removeClass(this.elementRef.nativeElement, (params.maxFiles === 1) ? 'dz-multiple' : 'dz-single');
|
|
58
151
|
this.zone.runOutsideAngular(() => {
|
|
59
|
-
this.instance = new Dropzone(this.elementRef.nativeElement,
|
|
152
|
+
this.instance = new Dropzone(this.elementRef.nativeElement, this._params);
|
|
60
153
|
});
|
|
61
154
|
if (this.disabled) {
|
|
62
155
|
this.instance.disable();
|
|
@@ -68,18 +161,18 @@ export class DropzoneDirective {
|
|
|
68
161
|
}
|
|
69
162
|
// Add auto reset handling for events
|
|
70
163
|
this.instance.on('success', () => {
|
|
71
|
-
if (
|
|
72
|
-
setTimeout(() => this.reset(),
|
|
164
|
+
if ((this._params.autoReset ?? -1) >= 0) {
|
|
165
|
+
setTimeout(() => this.reset(), this._params.autoReset);
|
|
73
166
|
}
|
|
74
167
|
});
|
|
75
168
|
this.instance.on('error', () => {
|
|
76
|
-
if (
|
|
77
|
-
setTimeout(() => this.reset(),
|
|
169
|
+
if ((this._params.errorReset ?? -1) >= 0) {
|
|
170
|
+
setTimeout(() => this.reset(), this._params.errorReset);
|
|
78
171
|
}
|
|
79
172
|
});
|
|
80
173
|
this.instance.on('canceled', () => {
|
|
81
|
-
if (
|
|
82
|
-
setTimeout(() => this.reset(),
|
|
174
|
+
if ((this._params.cancelReset ?? -1) >= 0) {
|
|
175
|
+
setTimeout(() => this.reset(), this._params.cancelReset);
|
|
83
176
|
}
|
|
84
177
|
});
|
|
85
178
|
// Add native Dropzone event handling
|
|
@@ -95,64 +188,25 @@ export class DropzoneDirective {
|
|
|
95
188
|
}
|
|
96
189
|
});
|
|
97
190
|
});
|
|
98
|
-
if (!this.configDiff) {
|
|
99
|
-
this.configDiff = this.differs.find(this.config || {}).create();
|
|
100
|
-
this.configDiff.diff(this.config || {});
|
|
101
|
-
}
|
|
102
191
|
}
|
|
103
|
-
|
|
192
|
+
destroyInstance() {
|
|
104
193
|
if (this.instance) {
|
|
105
194
|
this.zone.runOutsideAngular(() => {
|
|
106
195
|
this.instance.destroy();
|
|
107
196
|
});
|
|
108
|
-
this.instance =
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
ngDoCheck() {
|
|
112
|
-
if (!this.disabled && this.configDiff) {
|
|
113
|
-
const changes = this.configDiff.diff(this.config || {});
|
|
114
|
-
if (changes && this.instance) {
|
|
115
|
-
this.ngOnDestroy();
|
|
116
|
-
this.ngOnInit();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
ngOnChanges(changes) {
|
|
121
|
-
if (this.instance && changes['disabled']) {
|
|
122
|
-
if (changes['disabled'].currentValue !== changes['disabled'].previousValue) {
|
|
123
|
-
if (changes['disabled'].currentValue === false) {
|
|
124
|
-
this.zone.runOutsideAngular(() => {
|
|
125
|
-
this.instance.enable();
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
else if (changes['disabled'].currentValue === true) {
|
|
129
|
-
this.zone.runOutsideAngular(() => {
|
|
130
|
-
this.instance.disable();
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
dropzone() {
|
|
137
|
-
return this.instance;
|
|
138
|
-
}
|
|
139
|
-
reset(cancel) {
|
|
140
|
-
if (this.instance) {
|
|
141
|
-
this.zone.runOutsideAngular(() => {
|
|
142
|
-
this.instance.removeAllFiles(cancel);
|
|
143
|
-
});
|
|
197
|
+
this.instance = undefined;
|
|
144
198
|
}
|
|
145
199
|
}
|
|
146
200
|
}
|
|
147
|
-
DropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
148
|
-
DropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
201
|
+
DropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: PLATFORM_ID }, { token: NXT_DROPZONE_CONFIG, optional: true }, { token: NXT_DROPZONE_LISTENERS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
202
|
+
DropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: DropzoneDirective, selector: "[nxtDropzone]", inputs: { disabled: "disabled", config: ["nxtDropzone", "config"] }, outputs: { DZ_INIT: "init", DZ_DROP: "drop", DZ_DRAGSTART: "dragStart", DZ_DRAGEND: "dragEnd", DZ_DRAGENTER: "dragEnter", DZ_DRAGOVER: "dragOver", DZ_DRAGLEAVE: "dragLeave", DZ_PASTE: "paste", DZ_RESET: "reset", DZ_ADDEDFILE: "addedFile", DZ_ADDEDFILES: "addedFiles", DZ_REMOVEDFILE: "removedFile", DZ_THUMBNAIL: "thumbnail", DZ_ERROR: "error", DZ_ERRORMULTIPLE: "errorMultiple", DZ_PROCESSING: "processing", DZ_PROCESSINGMULTIPLE: "processingMultiple", DZ_UPLOADPROGRESS: "uploadProgress", DZ_TOTALUPLOADPROGRESS: "totalUploadProgress", DZ_SENDING: "sending", DZ_SENDINGMULTIPLE: "sendingMultiple", DZ_SUCCESS: "success", DZ_SUCCESSMULTIPLE: "successMultiple", DZ_CANCELED: "canceled", DZ_CANCELEDMULTIPLE: "canceledMultiple", DZ_COMPLETE: "complete", DZ_COMPLETEMULTIPLE: "completeMultiple", DZ_MAXFILESEXCEEDED: "maxFilesExceeded", DZ_MAXFILESREACHED: "maxFilesReached", DZ_QUEUECOMPLETE: "queueComplete" }, host: { properties: { "class.dz-single": "this.isSingle", "class.dz-multiple": "this.isMultiple" } }, exportAs: ["nxtDropzone"], ngImport: i0 });
|
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DropzoneDirective, decorators: [{
|
|
150
204
|
type: Directive,
|
|
151
205
|
args: [{
|
|
152
206
|
selector: '[nxtDropzone]',
|
|
153
207
|
exportAs: 'nxtDropzone'
|
|
154
208
|
}]
|
|
155
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.
|
|
209
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: Object, decorators: [{
|
|
156
210
|
type: Inject,
|
|
157
211
|
args: [PLATFORM_ID]
|
|
158
212
|
}] }, { type: undefined, decorators: [{
|
|
@@ -160,6 +214,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
160
214
|
}, {
|
|
161
215
|
type: Inject,
|
|
162
216
|
args: [NXT_DROPZONE_CONFIG]
|
|
217
|
+
}] }, { type: undefined, decorators: [{
|
|
218
|
+
type: Optional
|
|
219
|
+
}, {
|
|
220
|
+
type: Inject,
|
|
221
|
+
args: [NXT_DROPZONE_LISTENERS]
|
|
163
222
|
}] }]; }, propDecorators: { disabled: [{
|
|
164
223
|
type: Input
|
|
165
224
|
}], config: [{
|
|
@@ -168,24 +227,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
168
227
|
}], DZ_INIT: [{
|
|
169
228
|
type: Output,
|
|
170
229
|
args: ['init']
|
|
171
|
-
}], DZ_ERROR: [{
|
|
172
|
-
type: Output,
|
|
173
|
-
args: ['error']
|
|
174
|
-
}], DZ_SUCCESS: [{
|
|
175
|
-
type: Output,
|
|
176
|
-
args: ['success']
|
|
177
|
-
}], DZ_SENDING: [{
|
|
178
|
-
type: Output,
|
|
179
|
-
args: ['sending']
|
|
180
|
-
}], DZ_CANCELED: [{
|
|
181
|
-
type: Output,
|
|
182
|
-
args: ['canceled']
|
|
183
|
-
}], DZ_COMPLETE: [{
|
|
184
|
-
type: Output,
|
|
185
|
-
args: ['complete']
|
|
186
|
-
}], DZ_PROCESSING: [{
|
|
187
|
-
type: Output,
|
|
188
|
-
args: ['processing']
|
|
189
230
|
}], DZ_DROP: [{
|
|
190
231
|
type: Output,
|
|
191
232
|
args: ['drop']
|
|
@@ -204,9 +245,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
204
245
|
}], DZ_DRAGLEAVE: [{
|
|
205
246
|
type: Output,
|
|
206
247
|
args: ['dragLeave']
|
|
207
|
-
}],
|
|
248
|
+
}], DZ_PASTE: [{
|
|
208
249
|
type: Output,
|
|
209
|
-
args: ['
|
|
250
|
+
args: ['paste']
|
|
251
|
+
}], DZ_RESET: [{
|
|
252
|
+
type: Output,
|
|
253
|
+
args: ['reset']
|
|
210
254
|
}], DZ_ADDEDFILE: [{
|
|
211
255
|
type: Output,
|
|
212
256
|
args: ['addedFile']
|
|
@@ -216,41 +260,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
216
260
|
}], DZ_REMOVEDFILE: [{
|
|
217
261
|
type: Output,
|
|
218
262
|
args: ['removedFile']
|
|
263
|
+
}], DZ_THUMBNAIL: [{
|
|
264
|
+
type: Output,
|
|
265
|
+
args: ['thumbnail']
|
|
266
|
+
}], DZ_ERROR: [{
|
|
267
|
+
type: Output,
|
|
268
|
+
args: ['error']
|
|
269
|
+
}], DZ_ERRORMULTIPLE: [{
|
|
270
|
+
type: Output,
|
|
271
|
+
args: ['errorMultiple']
|
|
272
|
+
}], DZ_PROCESSING: [{
|
|
273
|
+
type: Output,
|
|
274
|
+
args: ['processing']
|
|
275
|
+
}], DZ_PROCESSINGMULTIPLE: [{
|
|
276
|
+
type: Output,
|
|
277
|
+
args: ['processingMultiple']
|
|
219
278
|
}], DZ_UPLOADPROGRESS: [{
|
|
220
279
|
type: Output,
|
|
221
280
|
args: ['uploadProgress']
|
|
222
|
-
}],
|
|
281
|
+
}], DZ_TOTALUPLOADPROGRESS: [{
|
|
223
282
|
type: Output,
|
|
224
|
-
args: ['
|
|
225
|
-
}],
|
|
283
|
+
args: ['totalUploadProgress']
|
|
284
|
+
}], DZ_SENDING: [{
|
|
226
285
|
type: Output,
|
|
227
|
-
args: ['
|
|
228
|
-
}],
|
|
286
|
+
args: ['sending']
|
|
287
|
+
}], DZ_SENDINGMULTIPLE: [{
|
|
229
288
|
type: Output,
|
|
230
|
-
args: ['
|
|
289
|
+
args: ['sendingMultiple']
|
|
290
|
+
}], DZ_SUCCESS: [{
|
|
291
|
+
type: Output,
|
|
292
|
+
args: ['success']
|
|
231
293
|
}], DZ_SUCCESSMULTIPLE: [{
|
|
232
294
|
type: Output,
|
|
233
295
|
args: ['successMultiple']
|
|
234
|
-
}],
|
|
296
|
+
}], DZ_CANCELED: [{
|
|
235
297
|
type: Output,
|
|
236
|
-
args: ['
|
|
298
|
+
args: ['canceled']
|
|
237
299
|
}], DZ_CANCELEDMULTIPLE: [{
|
|
238
300
|
type: Output,
|
|
239
301
|
args: ['canceledMultiple']
|
|
302
|
+
}], DZ_COMPLETE: [{
|
|
303
|
+
type: Output,
|
|
304
|
+
args: ['complete']
|
|
240
305
|
}], DZ_COMPLETEMULTIPLE: [{
|
|
241
306
|
type: Output,
|
|
242
307
|
args: ['completeMultiple']
|
|
243
|
-
}],
|
|
308
|
+
}], DZ_MAXFILESEXCEEDED: [{
|
|
244
309
|
type: Output,
|
|
245
|
-
args: ['
|
|
246
|
-
}],
|
|
310
|
+
args: ['maxFilesExceeded']
|
|
311
|
+
}], DZ_MAXFILESREACHED: [{
|
|
247
312
|
type: Output,
|
|
248
|
-
args: ['
|
|
313
|
+
args: ['maxFilesReached']
|
|
249
314
|
}], DZ_QUEUECOMPLETE: [{
|
|
250
315
|
type: Output,
|
|
251
316
|
args: ['queueComplete']
|
|
252
|
-
}],
|
|
253
|
-
type:
|
|
254
|
-
args: ['
|
|
317
|
+
}], isSingle: [{
|
|
318
|
+
type: HostBinding,
|
|
319
|
+
args: ['class.dz-single']
|
|
320
|
+
}], isMultiple: [{
|
|
321
|
+
type: HostBinding,
|
|
322
|
+
args: ['class.dz-multiple']
|
|
255
323
|
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJvcHpvbmUtd3JhcHBlci9zcmMvbGliL2Ryb3B6b25lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXVCLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUF5RSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBNEIsTUFBTSxlQUFlLENBQUE7QUFDM04sT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFBO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQTBDLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBOztBQU1uSSxNQUFNLE9BQU8saUJBQWlCO0lBNEMxQixZQUNxQixJQUFZLEVBQ1osUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsT0FBd0IsRUFHeEIsVUFBa0IsRUFHbEIsUUFBOEM7UUFUOUMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFHeEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUdsQixhQUFRLEdBQVIsUUFBUSxDQUFzQztRQW5EM0QsZUFBVSxHQUF1QyxJQUFJLENBQUE7UUFFcEQsYUFBUSxHQUFZLEtBQUssQ0FBQTtRQUlsQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUVoQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUNoQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUNwQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUNuQyxn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QUNLLGlCQUFpQjtzQkFBMUMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBQ0csa0JBQWtCO3NCQUE1QyxNQUFNO3VCQUFDLGlCQUFpQjtnQkFDRyxtQkFBbUI7c0JBQTlDLE1BQU07dUJBQUMsa0JBQWtCO2dCQUVELGdCQUFnQjtzQkFBeEMsTUFBTTt1QkFBQyxlQUFlO2dCQUNJLGtCQUFrQjtzQkFBNUMsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBQ0Usa0JBQWtCO3NCQUE1QyxNQUFNO3VCQUFDLGlCQUFpQjtnQkFDRyxtQkFBbUI7c0JBQTlDLE1BQU07dUJBQUMsa0JBQWtCO2dCQUNFLG1CQUFtQjtzQkFBOUMsTUFBTTt1QkFBQyxrQkFBa0I7Z0JBQ0kscUJBQXFCO3NCQUFsRCxNQUFNO3VCQUFDLG9CQUFvQjtnQkFFWCxRQUFRO3NCQUF4QixNQUFNO3VCQUFDLE9BQU87Z0JBQ1UsZ0JBQWdCO3NCQUF4QyxNQUFNO3VCQUFDLGVBQWU7Z0JBQ1Esc0JBQXNCO3NCQUFwRCxNQUFNO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tY29uZmxpY3RpbmctbGlmZWN5Y2xlICovXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IERpcmVjdGl2ZSwgRG9DaGVjaywgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBLZXlWYWx1ZURpZmZlciwgS2V5VmFsdWVEaWZmZXJzLCBOZ1pvbmUsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFBMQVRGT1JNX0lELCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IERyb3B6b25lIGZyb20gJ2Ryb3B6b25lJ1xuaW1wb3J0IHsgRHJvcHpvbmVDb25maWcsIERyb3B6b25lQ29uZmlnSW50ZXJmYWNlLCBEcm9wem9uZUV2ZW50LCBEcm9wem9uZUV2ZW50cywgTlhUX0RST1BaT05FX0NPTkZJRyB9IGZyb20gJy4vZHJvcHpvbmUuaW50ZXJmYWNlcydcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbnh0RHJvcHpvbmVdJyxcbiAgICBleHBvcnRBczogJ254dERyb3B6b25lJ1xufSlcbmV4cG9ydCBjbGFzcyBEcm9wem9uZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgaW5zdGFuY2U6IGFueVxuXG4gICAgcHJpdmF0ZSBjb25maWdEaWZmOiBLZXlWYWx1ZURpZmZlcjxzdHJpbmcsIGFueT4gfCBudWxsID0gbnVsbFxuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gICAgQElucHV0KCdueHREcm9wem9uZScpIGNvbmZpZz86IERyb3B6b25lQ29uZmlnSW50ZXJmYWNlXG5cbiAgICBAT3V0cHV0KCdpbml0JykgRFpfSU5JVCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgICBAT3V0cHV0KCdlcnJvcicpIERaX0VSUk9SID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgICBAT3V0cHV0KCdzdWNjZXNzJykgRFpfU1VDQ0VTUyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gICAgQE91dHB1dCgnc2VuZGluZycpIERaX1NFTkRJTkcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ2NhbmNlbGVkJykgRFpfQ0FOQ0VMRUQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ2NvbXBsZXRlJykgRFpfQ09NUExFVEUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ3Byb2Nlc3NpbmcnKSBEWl9QUk9DRVNTSU5HID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcblxuICAgIEBPdXRwdXQoJ2Ryb3AnKSBEWl9EUk9QID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgICBAT3V0cHV0KCdkcmFnU3RhcnQnKSBEWl9EUkFHU1RBUlQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ2RyYWdFbmQnKSBEWl9EUkFHRU5EID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgICBAT3V0cHV0KCdkcmFnRW50ZXInKSBEWl9EUkFHRU5URVIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ2RyYWdPdmVyJykgRFpfRFJBR09WRVIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ2RyYWdMZWF2ZScpIERaX0RSQUdMRUFWRSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgICBAT3V0cHV0KCd0aHVtYm5haWwnKSBEWl9USFVNQk5BSUwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ2FkZGVkRmlsZScpIERaX0FEREVERklMRSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gICAgQE91dHB1dCgnYWRkZWRGaWxlcycpIERaX0FEREVERklMRVMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ3JlbW92ZWRGaWxlJykgRFpfUkVNT1ZFREZJTEUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ3VwbG9hZFByb2dyZXNzJykgRFpfVVBMT0FEUFJPR1JFU1MgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ21heEZpbGVzUmVhY2hlZCcpIERaX01BWEZJTEVTUkVBQ0hFRCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gICAgQE91dHB1dCgnbWF4RmlsZXNFeGNlZWRlZCcpIERaX01BWEZJTEVTRVhDRUVERUQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gICAgQE91dHB1dCgnZXJyb3JNdWx0aXBsZScpIERaX0VSUk9STVVMVElQTEUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ3N1Y2Nlc3NNdWx0aXBsZScpIERaX1NVQ0NFU1NNVUxUSVBMRSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gICAgQE91dHB1dCgnc2VuZGluZ011bHRpcGxlJykgRFpfU0VORElOR01VTFRJUExFID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgICBAT3V0cHV0KCdjYW5jZWxlZE11bHRpcGxlJykgRFpfQ0FOQ0VMRURNVUxUSVBMRSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gICAgQE91dHB1dCgnY29tcGxldGVNdWx0aXBsZScpIERaX0NPTVBMRVRFTVVMVElQTEUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICAgIEBPdXRwdXQoJ3Byb2Nlc3NpbmdNdWx0aXBsZScpIERaX1BST0NFU1NJTkdNVUxUSVBMRSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgICBAT3V0cHV0KCdyZXNldCcpIERaX1JFU0VUID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgICBAT3V0cHV0KCdxdWV1ZUNvbXBsZXRlJykgRFpfUVVFVUVDT01QTEVURSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gICAgQE91dHB1dCgndG90YWxVcGxvYWRQcm9ncmVzcycpIERaX1RPVEFMVVBMT0FEUFJPR1JFU1MgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChOWFRfRFJPUFpPTkVfQ09ORklHKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRzPzogRHJvcHpvbmVDb25maWdJbnRlcmZhY2UgfCB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgICAgY29uc3QgZHogPSBEcm9wem9uZVxuXG4gICAgICAgIGR6LmF1dG9EaXNjb3ZlciA9IGZhbHNlXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgRHJvcHpvbmVDb25maWcodGhpcy5kZWZhdWx0cylcblxuICAgICAgICBwYXJhbXMuYXNzaWduKHRoaXMuY29uZmlnKSAvLyBDdXN0b20gY29uZmlndXJhdGlvblxuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAocGFyYW1zLm1heEZpbGVzID09PSAxKSA/ICdkei1zaW5nbGUnIDogJ2R6LW11bHRpcGxlJylcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgKHBhcmFtcy5tYXhGaWxlcyA9PT0gMSkgPyAnZHotbXVsdGlwbGUnIDogJ2R6LXNpbmdsZScpXG5cbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBuZXcgRHJvcHpvbmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHBhcmFtcylcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5kaXNhYmxlKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLkRaX0lOSVQub2JzZXJ2ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuRFpfSU5JVC5lbWl0KHRoaXMuaW5zdGFuY2UpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIGF1dG8gcmVzZXQgaGFuZGxpbmcgZm9yIGV2ZW50c1xuICAgICAgICB0aGlzLmluc3RhbmNlLm9uKCdzdWNjZXNzJywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmFtcy5hdXRvUmVzZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNldCgpLCBwYXJhbXMuYXV0b1Jlc2V0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2Uub24oJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmFtcy5lcnJvclJlc2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSwgcGFyYW1zLmVycm9yUmVzZXQpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS5vbignY2FuY2VsZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAocGFyYW1zLmNhbmNlbFJlc2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSwgcGFyYW1zLmNhbmNlbFJlc2V0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIEFkZCBuYXRpdmUgRHJvcHpvbmUgZXZlbnQgaGFuZGxpbmdcbiAgICAgICAgRHJvcHpvbmVFdmVudHMuZm9yRWFjaCgoZXZlbnROYW1lOiBEcm9wem9uZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLm9uKGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpLCAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgICAgICAgICBhcmdzID0gKGFyZ3MubGVuZ3RoID09PSAxKSA/IGFyZ3NbMF0gOiBhcmdzXG5cbiAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBgRFpfJHtldmVudE5hbWUudG9VcHBlckNhc2UoKX1gXG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbWl0dGVyID0gdGhpc1tvdXRwdXQgYXMga2V5b2YgRHJvcHpvbmVEaXJlY3RpdmVdIGFzIEV2ZW50RW1pdHRlcjxhbnk+XG5cbiAgICAgICAgICAgICAgICBpZiAoZW1pdHRlci5vYnNlcnZlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtaXR0ZXIuZW1pdChhcmdzKVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZ0RpZmYpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRGlmZiA9IHRoaXMuZGlmZmVycy5maW5kKHRoaXMuY29uZmlnIHx8IHt9KS5jcmVhdGUoKVxuXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0RpZmYuZGlmZih0aGlzLmNvbmZpZyB8fCB7fSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmRlc3Ryb3koKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IG51bGxcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuY29uZmlnRGlmZikge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuY29uZmlnRGlmZi5kaWZmKHRoaXMuY29uZmlnIHx8IHt9KVxuXG4gICAgICAgICAgICBpZiAoY2hhbmdlcyAmJiB0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpXG5cbiAgICAgICAgICAgICAgICB0aGlzLm5nT25Jbml0KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UgJiYgY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydkaXNhYmxlZCddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXS5jdXJyZW50VmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLmVuYWJsZSgpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddLmN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5kaXNhYmxlKClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZHJvcHpvbmUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5zdGFuY2VcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXQoY2FuY2VsPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnJlbW92ZUFsbEZpbGVzKGNhbmNlbClcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJvcHpvbmUtd3JhcHBlci9zcmMvbGliL2Ryb3B6b25lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBdUIsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE4QyxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNuTCxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBaUMsY0FBYyxFQUFxQixlQUFlLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTs7QUFNdkwsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQixvREFBb0Q7SUFDcEQsSUFBYSxRQUFRLENBQUMsR0FBWTtRQUM5QixHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUNYLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QyxJQUFJLEdBQUc7Z0JBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxRQUFTLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQzVCLENBQUMsQ0FBQyxDQUFBOztnQkFFRixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLFFBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtnQkFDM0IsQ0FBQyxDQUFDLENBQUE7U0FDVDtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFBO0lBQ3hC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QUFNO3VCQUFDLGtCQUFrQjtnQkFHVyxtQkFBbUI7c0JBQXZELE1BQU07dUJBQUMsa0JBQWtCO2dCQUVVLGtCQUFrQjtzQkFBckQsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBR1MsZ0JBQWdCO3NCQUFqRCxNQUFNO3VCQUFDLGVBQWU7Z0JBU25CLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTzFCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZSAqL1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBEaXJlY3RpdmUsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIEtleVZhbHVlRGlmZmVycywgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IERyb3B6b25lIGZyb20gJ2Ryb3B6b25lJ1xuaW1wb3J0IHsgX0Ryb3B6b25lQ29uZmlnLCBEcm9wem9uZUNvbmZpZywgRHJvcHpvbmVFdmVudCwgRHJvcHpvbmVFdmVudHMsIERyb3B6b25lTGlzdGVuZXJzLCBpbnRlcm5hbENoYW5nZXMsIE5YVF9EUk9QWk9ORV9DT05GSUcsIE5YVF9EUk9QWk9ORV9MSVNURU5FUlMgfSBmcm9tICcuL2Ryb3B6b25lLmludGVyZmFjZXMnXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW254dERyb3B6b25lXScsXG4gICAgZXhwb3J0QXM6ICdueHREcm9wem9uZSdcbn0pXG5leHBvcnQgY2xhc3MgRHJvcHpvbmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjaywgRHJvcHpvbmVMaXN0ZW5lcnMge1xuXG4gICAgcHJpdmF0ZSBpbnN0YW5jZT86IERyb3B6b25lXG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlXG4gICAgLyoqIERpc2FibGVzIC8gZGV0YWNoZXMgRHJvcHpvbmUgZnJvbSB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdmFsID0gISF2YWxcbiAgICAgICAgaWYgKHZhbCAhPSB0aGlzLl9kaXNhYmxlZCAmJiB0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICBpZiAodmFsKVxuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UhLmRpc2FibGUoKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSEuZW5hYmxlKClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsXG4gICAgfVxuICAgIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGFyYW1zID0gbmV3IF9Ecm9wem9uZUNvbmZpZyh0aGlzLmRlZmF1bHRzKVxuICAgIC8qKiBDYW4gYmUgdXNlZCB0byBwcm92aWRlIG9wdGlvbmFsIGN1c3RvbSBjb25maWcgKi9cbiAgICBASW5wdXQoJ254dERyb3B6b25lJykgY29uZmlnPzogRHJvcHpvbmVDb25maWdcblxuICAgIHByaXZhdGUgY29uZmlnRGlmZiA9IHRoaXMuZGlmZmVycy5maW5kKHRoaXMuY29uZmlnIHx8IHt9KS5jcmVhdGUoKVxuICAgIHByaXZhdGUgcGFyYW1EaWZmID0gdGhpcy5kaWZmZXJzLmZpbmQodGhpcy5fcGFyYW1zKS5jcmVhdGUoKVxuXG4gICAgQE91dHB1dCgnaW5pdCcpIHJlYWRvbmx5IERaX0lOSVQgPSB0aGlzLmNvbXBvbmVudD8uRFpfSU5JVFxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyb3B6b25lPigpXG5cbiAgICBAT3V0cHV0KCdkcm9wJykgcmVhZG9ubHkgRFpfRFJPUCA9IHRoaXMuY29tcG9uZW50Py5EWl9EUk9QXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpXG4gICAgQE91dHB1dCgnZHJhZ1N0YXJ0JykgcmVhZG9ubHkgRFpfRFJBR1NUQVJUID0gdGhpcy5jb21wb25lbnQ/LkRaX0RSQUdTVEFSVFxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKVxuICAgIEBPdXRwdXQoJ2RyYWdFbmQnKSByZWFkb25seSBEWl9EUkFHRU5EID0gdGhpcy5jb21wb25lbnQ/LkRaX0RSQUdFTkRcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KClcbiAgICBAT3V0cHV0KCdkcmFnRW50ZXInKSByZWFkb25seSBEWl9EUkFHRU5URVIgPSB0aGlzLmNvbXBvbmVudD8uRFpfRFJBR0VOVEVSXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpXG4gICAgQE91dHB1dCgnZHJhZ092ZXInKSByZWFkb25seSBEWl9EUkFHT1ZFUiA9IHRoaXMuY29tcG9uZW50Py5EWl9EUkFHT1ZFUlxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKVxuICAgIEBPdXRwdXQoJ2RyYWdMZWF2ZScpIHJlYWRvbmx5IERaX0RSQUdMRUFWRSA9IHRoaXMuY29tcG9uZW50Py5EWl9EUkFHTEVBVkVcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KClcbiAgICBAT3V0cHV0KCdwYXN0ZScpIHJlYWRvbmx5IERaX1BBU1RFID0gdGhpcy5jb21wb25lbnQ/LkRaX1BBU1RFXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PigpXG5cbiAgICBAT3V0cHV0KCdyZXNldCcpIHJlYWRvbmx5IERaX1JFU0VUID0gdGhpcy5jb21wb25lbnQ/LkRaX1JFU0VUXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuXG4gICAgQE91dHB1dCgnYWRkZWRGaWxlJykgcmVhZG9ubHkgRFpfQURERURGSUxFID0gdGhpcy5jb21wb25lbnQ/LkRaX0FEREVERklMRVxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyb3B6b25lLkRyb3B6b25lRmlsZT4oKVxuICAgIEBPdXRwdXQoJ2FkZGVkRmlsZXMnKSByZWFkb25seSBEWl9BRERFREZJTEVTID0gdGhpcy5jb21wb25lbnQ/LkRaX0FEREVERklMRVNcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxEcm9wem9uZS5Ecm9wem9uZUZpbGU+KClcbiAgICBAT3V0cHV0KCdyZW1vdmVkRmlsZScpIHJlYWRvbmx5IERaX1JFTU9WRURGSUxFID0gdGhpcy5jb21wb25lbnQ/LkRaX1JFTU9WRURGSUxFXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJvcHpvbmUuRHJvcHpvbmVGaWxlPigpXG4gICAgQE91dHB1dCgndGh1bWJuYWlsJykgcmVhZG9ubHkgRFpfVEhVTUJOQUlMID0gdGhpcy5jb21wb25lbnQ/LkRaX1RIVU1CTkFJTFxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPFtEcm9wem9uZS5Ecm9wem9uZUZpbGUsIHN0cmluZ10+KClcblxuICAgIEBPdXRwdXQoJ2Vycm9yJykgcmVhZG9ubHkgRFpfRVJST1IgPSB0aGlzLmNvbXBvbmVudD8uRFpfRVJST1JcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxbRHJvcHpvbmUuRHJvcHpvbmVGaWxlLCBzdHJpbmcgfCBFcnJvcl0+KClcbiAgICBAT3V0cHV0KCdlcnJvck11bHRpcGxlJykgcmVhZG9ubHkgRFpfRVJST1JNVUxUSVBMRSA9IHRoaXMuY29tcG9uZW50Py5EWl9FUlJPUk1VTFRJUExFXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8W0Ryb3B6b25lLkRyb3B6b25lRmlsZVtdLCBzdHJpbmcgfCBFcnJvcl0+KClcblxuICAgIEBPdXRwdXQoJ3Byb2Nlc3NpbmcnKSByZWFkb25seSBEWl9QUk9DRVNTSU5HID0gdGhpcy5jb21wb25lbnQ/LkRaX1BST0NFU1NJTkdcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxEcm9wem9uZS5Ecm9wem9uZUZpbGU+KClcbiAgICBAT3V0cHV0KCdwcm9jZXNzaW5nTXVsdGlwbGUnKSByZWFkb25seSBEWl9QUk9DRVNTSU5HTVVMVElQTEUgPSB0aGlzLmNvbXBvbmVudD8uRFpfUFJPQ0VTU0lOR01VTFRJUExFXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJvcHpvbmUuRHJvcHpvbmVGaWxlW10+KClcblxuICAgIEBPdXRwdXQoJ3VwbG9hZFByb2dyZXNzJykgcmVhZG9ubHkgRFpfVVBMT0FEUFJPR1JFU1MgPSB0aGlzLmNvbXBvbmVudD8uRFpfVVBMT0FEUFJPR1JFU1NcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxbRHJvcHpvbmUuRHJvcHpvbmVGaWxlLCBudW1iZXIsIG51bWJlcl0+KClcbiAgICBAT3V0cHV0KCd0b3RhbFVwbG9hZFByb2dyZXNzJykgcmVhZG9ubHkgRFpfVE9UQUxVUExPQURQUk9HUkVTUyA9IHRoaXMuY29tcG9uZW50Py5EWl9UT1RBTFVQTE9BRFBST0dSRVNTXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8W251bWJlciwgbnVtYmVyLCBudW1iZXJdPigpXG5cbiAgICBAT3V0cHV0KCdzZW5kaW5nJykgcmVhZG9ubHkgRFpfU0VORElORyA9IHRoaXMuY29tcG9uZW50Py5EWl9TRU5ESU5HXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8W0Ryb3B6b25lLkRyb3B6b25lRmlsZSwgWE1MSHR0cFJlcXVlc3QsIEZvcm1EYXRhXT4oKVxuICAgIEBPdXRwdXQoJ3NlbmRpbmdNdWx0aXBsZScpIHJlYWRvbmx5IERaX1NFTkRJTkdNVUxUSVBMRSA9IHRoaXMuY29tcG9uZW50Py5EWl9TRU5ESU5HTVVMVElQTEVcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxbRHJvcHpvbmUuRHJvcHpvbmVGaWxlW10sIFhNTEh0dHBSZXF1ZXN0LCBGb3JtRGF0YV0+KClcblxuICAgIEBPdXRwdXQoJ3N1Y2Nlc3MnKSByZWFkb25seSBEWl9TVUNDRVNTID0gdGhpcy5jb21wb25lbnQ/LkRaX1NVQ0NFU1NcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICAgICAgPz8gbmV3IEV2ZW50RW1pdHRlcjxbRHJvcHpvbmUuRHJvcHpvbmVGaWxlLCBPYmplY3QgfCBzdHJpbmddPigpXG4gICAgQE91dHB1dCgnc3VjY2Vzc011bHRpcGxlJykgcmVhZG9ubHkgRFpfU1VDQ0VTU01VTFRJUExFID0gdGhpcy5jb21wb25lbnQ/LkRaX1NVQ0NFU1NNVUxUSVBMRVxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyb3B6b25lLkRyb3B6b25lRmlsZVtdPigpXG5cbiAgICBAT3V0cHV0KCdjYW5jZWxlZCcpIHJlYWRvbmx5IERaX0NBTkNFTEVEID0gdGhpcy5jb21wb25lbnQ/LkRaX0NBTkNFTEVEXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJvcHpvbmUuRHJvcHpvbmVGaWxlPigpXG4gICAgQE91dHB1dCgnY2FuY2VsZWRNdWx0aXBsZScpIHJlYWRvbmx5IERaX0NBTkNFTEVETVVMVElQTEUgPSB0aGlzLmNvbXBvbmVudD8uRFpfQ0FOQ0VMRURNVUxUSVBMRVxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyb3B6b25lLkRyb3B6b25lRmlsZVtdPigpXG5cbiAgICBAT3V0cHV0KCdjb21wbGV0ZScpIHJlYWRvbmx5IERaX0NPTVBMRVRFID0gdGhpcy5jb21wb25lbnQ/LkRaX0NPTVBMRVRFXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJvcHpvbmUuRHJvcHpvbmVGaWxlPigpXG4gICAgQE91dHB1dCgnY29tcGxldGVNdWx0aXBsZScpIHJlYWRvbmx5IERaX0NPTVBMRVRFTVVMVElQTEUgPSB0aGlzLmNvbXBvbmVudD8uRFpfQ09NUExFVEVNVUxUSVBMRVxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyb3B6b25lLkRyb3B6b25lRmlsZVtdPigpXG5cbiAgICBAT3V0cHV0KCdtYXhGaWxlc0V4Y2VlZGVkJykgcmVhZG9ubHkgRFpfTUFYRklMRVNFWENFRURFRCA9IHRoaXMuY29tcG9uZW50Py5EWl9NQVhGSUxFU0VYQ0VFREVEXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8RHJvcHpvbmUuRHJvcHpvbmVGaWxlPigpXG4gICAgQE91dHB1dCgnbWF4RmlsZXNSZWFjaGVkJykgcmVhZG9ubHkgRFpfTUFYRklMRVNSRUFDSEVEID0gdGhpcy5jb21wb25lbnQ/LkRaX01BWEZJTEVTUkVBQ0hFRFxuICAgICAgICA/PyBuZXcgRXZlbnRFbWl0dGVyPERyb3B6b25lLkRyb3B6b25lRmlsZVtdPigpXG5cbiAgICBAT3V0cHV0KCdxdWV1ZUNvbXBsZXRlJykgcmVhZG9ubHkgRFpfUVVFVUVDT01QTEVURSA9IHRoaXMuY29tcG9uZW50Py5EWl9RVUVVRUNPTVBMRVRFXG4gICAgICAgID8/IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuXG4gICAgZ2V0IGRyb3B6b25lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZVxuICAgIH1cblxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmR6LXNpbmdsZScpXG4gICAgZ2V0IGlzU2luZ2xlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zLm1heEZpbGVzID09PSAxXG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZHotbXVsdGlwbGUnKVxuICAgIGdldCBpc011bHRpcGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zLm1heEZpbGVzICE9PSAxXG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoTlhUX0RST1BaT05FX0NPTkZJRylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0cz86IERyb3B6b25lQ29uZmlnLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KE5YVF9EUk9QWk9ORV9MSVNURU5FUlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50PzogRHJvcHpvbmVMaXN0ZW5lcnNcbiAgICApIHsgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRJbnN0YW5jZSgpXG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3lJbnN0YW5jZSgpXG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuY29uZmlnRGlmZi5kaWZmKHRoaXMuY29uZmlnIHx8IHt9IGFzIGFueSlcblxuICAgICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICAgICAgY29uc3QgbmV3UGFyYW1zID0gbmV3IF9Ecm9wem9uZUNvbmZpZyh0aGlzLmRlZmF1bHRzKVxuICAgICAgICAgICAgbmV3UGFyYW1zLmFzc2lnbih0aGlzLmNvbmZpZylcbiAgICAgICAgICAgIGNvbnN0IGQgPSB0aGlzLnBhcmFtRGlmZi5kaWZmKG5ld1BhcmFtcyBhcyBhbnkpXG4gICAgICAgICAgICBpZiAoZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhcmFtcyA9IG5ld1BhcmFtc1xuICAgICAgICAgICAgICAgIGxldCBoYXNDaGFuZ2VzID0gZmFsc2VcbiAgICAgICAgICAgICAgICBkLmZvckVhY2hJdGVtKHIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWludGVybmFsQ2hhbmdlcy5oYXMoci5rZXkgYXMgYW55KSAmJiByLmN1cnJlbnRWYWx1ZSAhPT0gci5wcmV2aW91c1ZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ2hhbmdlcyA9IHRydWVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGlmIChoYXNDaGFuZ2VzICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95SW5zdGFuY2UoKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRJbnN0YW5jZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHJlc2V0KGNhbmNlbD86IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSEucmVtb3ZlQWxsRmlsZXMoY2FuY2VsKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEluc3RhbmNlKCkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBuZXcgRHJvcHpvbmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3BhcmFtcylcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSEuZGlzYWJsZSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5EWl9JTklULm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLkRaX0lOSVQuZW1pdCh0aGlzLmluc3RhbmNlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBhdXRvIHJlc2V0IGhhbmRsaW5nIGZvciBldmVudHNcbiAgICAgICAgdGhpcy5pbnN0YW5jZSEub24oJ3N1Y2Nlc3MnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoKHRoaXMuX3BhcmFtcy5hdXRvUmVzZXQgPz8gLTEpID49IDApIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSwgdGhpcy5fcGFyYW1zLmF1dG9SZXNldClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLmluc3RhbmNlIS5vbignZXJyb3InLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoKHRoaXMuX3BhcmFtcy5lcnJvclJlc2V0ID8/IC0xKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2V0KCksIHRoaXMuX3BhcmFtcy5lcnJvclJlc2V0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UhLm9uKCdjYW5jZWxlZCcsICgpID0+IHtcbiAgICAgICAgICAgIGlmICgodGhpcy5fcGFyYW1zLmNhbmNlbFJlc2V0ID8/IC0xKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2V0KCksIHRoaXMuX3BhcmFtcy5jYW5jZWxSZXNldClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICAvLyBBZGQgbmF0aXZlIERyb3B6b25lIGV2ZW50IGhhbmRsaW5nXG4gICAgICAgIERyb3B6b25lRXZlbnRzLmZvckVhY2goKGV2ZW50TmFtZTogRHJvcHpvbmVFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSEub24oZXZlbnROYW1lLnRvTG93ZXJDYXNlKCksICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgICAgIGFyZ3MgPSAoYXJncy5sZW5ndGggPT09IDEpID8gYXJnc1swXSA6IGFyZ3NcblxuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGBEWl8ke2V2ZW50TmFtZS50b1VwcGVyQ2FzZSgpfWBcblxuICAgICAgICAgICAgICAgIGNvbnN0IGVtaXR0ZXIgPSB0aGlzW291dHB1dCBhcyBrZXlvZiBEcm9wem9uZURpcmVjdGl2ZV0gYXMgRXZlbnRFbWl0dGVyPGFueT5cblxuICAgICAgICAgICAgICAgIGlmIChlbWl0dGVyLm9ic2VydmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1pdHRlci5lbWl0KGFyZ3MpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lJbnN0YW5jZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSEuZGVzdHJveSgpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|