nxt-dropzone-wrapper 14.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 +44 -135
- package/esm2020/lib/dropzone.component.mjs +78 -80
- package/esm2020/lib/dropzone.directive.mjs +206 -139
- package/esm2020/lib/dropzone.interfaces.mjs +35 -20
- package/esm2020/lib/dropzone.module.mjs +19 -9
- package/esm2020/nxt-dropzone-wrapper.mjs +1 -1
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/nxt-dropzone-wrapper.mjs +305 -241
- package/fesm2015/nxt-dropzone-wrapper.mjs.map +1 -1
- package/fesm2020/nxt-dropzone-wrapper.mjs +332 -239
- package/fesm2020/nxt-dropzone-wrapper.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/lib/dropzone.component.d.ts +43 -37
- package/lib/dropzone.directive.d.ts +63 -47
- package/lib/dropzone.interfaces.d.ts +59 -139
- package/lib/dropzone.module.d.ts +1 -2
- package/package.json +9 -11
- package/public-api.d.ts +1 -2
- package/lib/dropzone.component.d.ts.map +0 -1
- package/lib/dropzone.directive.d.ts.map +0 -1
- package/lib/dropzone.interfaces.d.ts.map +0 -1
- package/lib/dropzone.module.d.ts.map +0 -1
- package/nxt-dropzone-wrapper.d.ts.map +0 -1
- package/public-api.d.ts.map +0 -1
|
@@ -1,86 +1,178 @@
|
|
|
1
|
-
|
|
2
|
-
import { PLATFORM_ID } from '@angular/core';
|
|
1
|
+
/* eslint-disable @angular-eslint/no-output-rename */
|
|
3
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
3
|
+
import { Directive, EventEmitter, HostBinding, Inject, Input, Optional, Output, PLATFORM_ID } from '@angular/core';
|
|
4
|
+
import Dropzone from 'dropzone';
|
|
5
|
+
import { _DropzoneConfig, DropzoneEvents, internalChanges, NXT_DROPZONE_CONFIG, NXT_DROPZONE_LISTENERS } from './dropzone.interfaces';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
// Fix until Dropzone types are updated
|
|
8
|
-
const Dropzone = _dz.Dropzone;
|
|
9
7
|
export class DropzoneDirective {
|
|
10
|
-
|
|
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) {
|
|
11
38
|
this.zone = zone;
|
|
12
|
-
this.renderer = renderer;
|
|
13
39
|
this.elementRef = elementRef;
|
|
14
40
|
this.differs = differs;
|
|
15
41
|
this.platformId = platformId;
|
|
16
42
|
this.defaults = defaults;
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
this.
|
|
27
|
-
|
|
28
|
-
this.DZ_DRAGEND =
|
|
29
|
-
|
|
30
|
-
this.
|
|
31
|
-
|
|
32
|
-
this.
|
|
33
|
-
|
|
34
|
-
this.
|
|
35
|
-
|
|
36
|
-
this.
|
|
37
|
-
|
|
38
|
-
this.
|
|
39
|
-
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
this.
|
|
45
|
-
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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();
|
|
50
109
|
}
|
|
110
|
+
/** @internal */
|
|
51
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() {
|
|
52
148
|
if (!isPlatformBrowser(this.platformId)) {
|
|
53
149
|
return;
|
|
54
150
|
}
|
|
55
|
-
const params = new DropzoneConfig(this.defaults);
|
|
56
|
-
params.assign(this.config); // Custom configuration
|
|
57
|
-
this.renderer.addClass(this.elementRef.nativeElement, (params.maxFiles === 1) ? 'dz-single' : 'dz-multiple');
|
|
58
|
-
this.renderer.removeClass(this.elementRef.nativeElement, (params.maxFiles === 1) ? 'dz-multiple' : 'dz-single');
|
|
59
151
|
this.zone.runOutsideAngular(() => {
|
|
60
|
-
this.instance = new Dropzone(this.elementRef.nativeElement,
|
|
152
|
+
this.instance = new Dropzone(this.elementRef.nativeElement, this._params);
|
|
61
153
|
});
|
|
62
154
|
if (this.disabled) {
|
|
63
155
|
this.instance.disable();
|
|
64
156
|
}
|
|
65
|
-
if (this.DZ_INIT.
|
|
157
|
+
if (this.DZ_INIT.observed) {
|
|
66
158
|
this.zone.run(() => {
|
|
67
159
|
this.DZ_INIT.emit(this.instance);
|
|
68
160
|
});
|
|
69
161
|
}
|
|
70
162
|
// Add auto reset handling for events
|
|
71
163
|
this.instance.on('success', () => {
|
|
72
|
-
if (
|
|
73
|
-
setTimeout(() => this.reset(),
|
|
164
|
+
if ((this._params.autoReset ?? -1) >= 0) {
|
|
165
|
+
setTimeout(() => this.reset(), this._params.autoReset);
|
|
74
166
|
}
|
|
75
167
|
});
|
|
76
168
|
this.instance.on('error', () => {
|
|
77
|
-
if (
|
|
78
|
-
setTimeout(() => this.reset(),
|
|
169
|
+
if ((this._params.errorReset ?? -1) >= 0) {
|
|
170
|
+
setTimeout(() => this.reset(), this._params.errorReset);
|
|
79
171
|
}
|
|
80
172
|
});
|
|
81
173
|
this.instance.on('canceled', () => {
|
|
82
|
-
if (
|
|
83
|
-
setTimeout(() => this.reset(),
|
|
174
|
+
if ((this._params.cancelReset ?? -1) >= 0) {
|
|
175
|
+
setTimeout(() => this.reset(), this._params.cancelReset);
|
|
84
176
|
}
|
|
85
177
|
});
|
|
86
178
|
// Add native Dropzone event handling
|
|
@@ -89,104 +181,52 @@ export class DropzoneDirective {
|
|
|
89
181
|
args = (args.length === 1) ? args[0] : args;
|
|
90
182
|
const output = `DZ_${eventName.toUpperCase()}`;
|
|
91
183
|
const emitter = this[output];
|
|
92
|
-
if (emitter.
|
|
184
|
+
if (emitter.observed) {
|
|
93
185
|
this.zone.run(() => {
|
|
94
186
|
emitter.emit(args);
|
|
95
187
|
});
|
|
96
188
|
}
|
|
97
189
|
});
|
|
98
190
|
});
|
|
99
|
-
if (!this.configDiff) {
|
|
100
|
-
this.configDiff = this.differs.find(this.config || {}).create();
|
|
101
|
-
this.configDiff.diff(this.config || {});
|
|
102
|
-
}
|
|
103
191
|
}
|
|
104
|
-
|
|
192
|
+
destroyInstance() {
|
|
105
193
|
if (this.instance) {
|
|
106
194
|
this.zone.runOutsideAngular(() => {
|
|
107
195
|
this.instance.destroy();
|
|
108
196
|
});
|
|
109
|
-
this.instance =
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
ngDoCheck() {
|
|
113
|
-
if (!this.disabled && this.configDiff) {
|
|
114
|
-
const changes = this.configDiff.diff(this.config || {});
|
|
115
|
-
if (changes && this.instance) {
|
|
116
|
-
this.ngOnDestroy();
|
|
117
|
-
this.ngOnInit();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
ngOnChanges(changes) {
|
|
122
|
-
if (this.instance && changes['disabled']) {
|
|
123
|
-
if (changes['disabled'].currentValue !== changes['disabled'].previousValue) {
|
|
124
|
-
if (changes['disabled'].currentValue === false) {
|
|
125
|
-
this.zone.runOutsideAngular(() => {
|
|
126
|
-
this.instance.enable();
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
else if (changes['disabled'].currentValue === true) {
|
|
130
|
-
this.zone.runOutsideAngular(() => {
|
|
131
|
-
this.instance.disable();
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
dropzone() {
|
|
138
|
-
return this.instance;
|
|
139
|
-
}
|
|
140
|
-
reset(cancel) {
|
|
141
|
-
if (this.instance) {
|
|
142
|
-
this.zone.runOutsideAngular(() => {
|
|
143
|
-
this.instance.removeAllFiles(cancel);
|
|
144
|
-
});
|
|
197
|
+
this.instance = undefined;
|
|
145
198
|
}
|
|
146
199
|
}
|
|
147
200
|
}
|
|
148
|
-
DropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
149
|
-
DropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: [{
|
|
151
204
|
type: Directive,
|
|
152
205
|
args: [{
|
|
153
|
-
selector: '[
|
|
154
|
-
exportAs: '
|
|
206
|
+
selector: '[nxtDropzone]',
|
|
207
|
+
exportAs: 'nxtDropzone'
|
|
155
208
|
}]
|
|
156
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.
|
|
209
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: Object, decorators: [{
|
|
157
210
|
type: Inject,
|
|
158
211
|
args: [PLATFORM_ID]
|
|
159
212
|
}] }, { type: undefined, decorators: [{
|
|
160
213
|
type: Optional
|
|
161
214
|
}, {
|
|
162
215
|
type: Inject,
|
|
163
|
-
args: [
|
|
216
|
+
args: [NXT_DROPZONE_CONFIG]
|
|
217
|
+
}] }, { type: undefined, decorators: [{
|
|
218
|
+
type: Optional
|
|
219
|
+
}, {
|
|
220
|
+
type: Inject,
|
|
221
|
+
args: [NXT_DROPZONE_LISTENERS]
|
|
164
222
|
}] }]; }, propDecorators: { disabled: [{
|
|
165
223
|
type: Input
|
|
166
224
|
}], config: [{
|
|
167
225
|
type: Input,
|
|
168
|
-
args: ['
|
|
226
|
+
args: ['nxtDropzone']
|
|
169
227
|
}], DZ_INIT: [{
|
|
170
228
|
type: Output,
|
|
171
229
|
args: ['init']
|
|
172
|
-
}], DZ_ERROR: [{
|
|
173
|
-
type: Output,
|
|
174
|
-
args: ['error']
|
|
175
|
-
}], DZ_SUCCESS: [{
|
|
176
|
-
type: Output,
|
|
177
|
-
args: ['success']
|
|
178
|
-
}], DZ_SENDING: [{
|
|
179
|
-
type: Output,
|
|
180
|
-
args: ['sending']
|
|
181
|
-
}], DZ_CANCELED: [{
|
|
182
|
-
type: Output,
|
|
183
|
-
args: ['canceled']
|
|
184
|
-
}], DZ_COMPLETE: [{
|
|
185
|
-
type: Output,
|
|
186
|
-
args: ['complete']
|
|
187
|
-
}], DZ_PROCESSING: [{
|
|
188
|
-
type: Output,
|
|
189
|
-
args: ['processing']
|
|
190
230
|
}], DZ_DROP: [{
|
|
191
231
|
type: Output,
|
|
192
232
|
args: ['drop']
|
|
@@ -205,9 +245,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
205
245
|
}], DZ_DRAGLEAVE: [{
|
|
206
246
|
type: Output,
|
|
207
247
|
args: ['dragLeave']
|
|
208
|
-
}],
|
|
248
|
+
}], DZ_PASTE: [{
|
|
209
249
|
type: Output,
|
|
210
|
-
args: ['
|
|
250
|
+
args: ['paste']
|
|
251
|
+
}], DZ_RESET: [{
|
|
252
|
+
type: Output,
|
|
253
|
+
args: ['reset']
|
|
211
254
|
}], DZ_ADDEDFILE: [{
|
|
212
255
|
type: Output,
|
|
213
256
|
args: ['addedFile']
|
|
@@ -217,41 +260,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
217
260
|
}], DZ_REMOVEDFILE: [{
|
|
218
261
|
type: Output,
|
|
219
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']
|
|
220
278
|
}], DZ_UPLOADPROGRESS: [{
|
|
221
279
|
type: Output,
|
|
222
280
|
args: ['uploadProgress']
|
|
223
|
-
}],
|
|
281
|
+
}], DZ_TOTALUPLOADPROGRESS: [{
|
|
224
282
|
type: Output,
|
|
225
|
-
args: ['
|
|
226
|
-
}],
|
|
283
|
+
args: ['totalUploadProgress']
|
|
284
|
+
}], DZ_SENDING: [{
|
|
227
285
|
type: Output,
|
|
228
|
-
args: ['
|
|
229
|
-
}],
|
|
286
|
+
args: ['sending']
|
|
287
|
+
}], DZ_SENDINGMULTIPLE: [{
|
|
230
288
|
type: Output,
|
|
231
|
-
args: ['
|
|
289
|
+
args: ['sendingMultiple']
|
|
290
|
+
}], DZ_SUCCESS: [{
|
|
291
|
+
type: Output,
|
|
292
|
+
args: ['success']
|
|
232
293
|
}], DZ_SUCCESSMULTIPLE: [{
|
|
233
294
|
type: Output,
|
|
234
295
|
args: ['successMultiple']
|
|
235
|
-
}],
|
|
296
|
+
}], DZ_CANCELED: [{
|
|
236
297
|
type: Output,
|
|
237
|
-
args: ['
|
|
298
|
+
args: ['canceled']
|
|
238
299
|
}], DZ_CANCELEDMULTIPLE: [{
|
|
239
300
|
type: Output,
|
|
240
301
|
args: ['canceledMultiple']
|
|
302
|
+
}], DZ_COMPLETE: [{
|
|
303
|
+
type: Output,
|
|
304
|
+
args: ['complete']
|
|
241
305
|
}], DZ_COMPLETEMULTIPLE: [{
|
|
242
306
|
type: Output,
|
|
243
307
|
args: ['completeMultiple']
|
|
244
|
-
}],
|
|
308
|
+
}], DZ_MAXFILESEXCEEDED: [{
|
|
245
309
|
type: Output,
|
|
246
|
-
args: ['
|
|
247
|
-
}],
|
|
310
|
+
args: ['maxFilesExceeded']
|
|
311
|
+
}], DZ_MAXFILESREACHED: [{
|
|
248
312
|
type: Output,
|
|
249
|
-
args: ['
|
|
313
|
+
args: ['maxFilesReached']
|
|
250
314
|
}], DZ_QUEUECOMPLETE: [{
|
|
251
315
|
type: Output,
|
|
252
316
|
args: ['queueComplete']
|
|
253
|
-
}],
|
|
254
|
-
type:
|
|
255
|
-
args: ['
|
|
317
|
+
}], isSingle: [{
|
|
318
|
+
type: HostBinding,
|
|
319
|
+
args: ['class.dz-single']
|
|
320
|
+
}], isMultiple: [{
|
|
321
|
+
type: HostBinding,
|
|
322
|
+
args: ['class.dz-multiple']
|
|
256
323
|
}] } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliL3NyYy9saWIvZHJvcHpvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUkzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUF5QixTQUFTLEVBQzFCLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFDdkIsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBVi9ELHVDQUF1QztBQUN2QyxNQUFNLFFBQVEsR0FBZ0IsR0FBVyxDQUFDLFFBQVEsQ0FBQztBQWVuRCxNQUFNLE9BQU8saUJBQWlCO0lBNEM1QixZQUFvQixJQUFZLEVBQVUsUUFBbUIsRUFBVSxVQUFzQixFQUNuRixPQUF3QixFQUErQixVQUFrQixFQUNwQyxRQUFpQztRQUY1RCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDbkYsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFBK0IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQTNDeEUsZUFBVSxHQUF1QyxJQUFJLENBQUM7UUFFckQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUlELFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV0RCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEQsZUFBVSxHQUFvQixJQUFJLFlBQVksRUFBTyxDQUFD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QUNlLFlBQVk7c0JBQTdDLE1BQU07dUJBQUMsV0FBVztnQkFDZSxhQUFhO3NCQUE5QyxNQUFNO3VCQUFDLFlBQVk7Z0JBQ2MsY0FBYztzQkFBL0MsTUFBTTt1QkFBQyxhQUFhO2dCQUNhLGlCQUFpQjtzQkFBbEQsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBQ1Usa0JBQWtCO3NCQUFuRCxNQUFNO3VCQUFDLGlCQUFpQjtnQkFDUyxtQkFBbUI7c0JBQXBELE1BQU07dUJBQUMsa0JBQWtCO2dCQUVRLGdCQUFnQjtzQkFBakQsTUFBTTt1QkFBQyxlQUFlO2dCQUNXLGtCQUFrQjtzQkFBbkQsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBQ1Msa0JBQWtCO3NCQUFuRCxNQUFNO3VCQUFDLGlCQUFpQjtnQkFDUyxtQkFBbUI7c0JBQXBELE1BQU07dUJBQUMsa0JBQWtCO2dCQUNRLG1CQUFtQjtzQkFBcEQsTUFBTTt1QkFBQyxrQkFBa0I7Z0JBQ1EscUJBQXFCO3NCQUF0RCxNQUFNO3VCQUFDLG9CQUFvQjtnQkFFTSxRQUFRO3NCQUF6QyxNQUFNO3VCQUFDLE9BQU87Z0JBQ21CLGdCQUFnQjtzQkFBakQsTUFBTTt1QkFBQyxlQUFlO2dCQUNXLHNCQUFzQjtzQkFBdkQsTUFBTTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2R6IGZyb20gJ2Ryb3B6b25lJztcbi8vIEZpeCB1bnRpbCBEcm9wem9uZSB0eXBlcyBhcmUgdXBkYXRlZFxuY29uc3QgRHJvcHpvbmU6IHR5cGVvZiBfZHogPSAoX2R6IGFzIGFueSkuRHJvcHpvbmU7XG5cbmltcG9ydCB7IFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ1pvbmUsIEluamVjdCwgT3B0aW9uYWwsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgRGlyZWN0aXZlLFxuICBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjaywgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsXG4gIFNpbXBsZUNoYW5nZXMsIEtleVZhbHVlRGlmZmVyLCBLZXlWYWx1ZURpZmZlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRFJPUFpPTkVfQ09ORklHLCBEcm9wem9uZUNvbmZpZywgRHJvcHpvbmVDb25maWdJbnRlcmZhY2UsXG4gIERyb3B6b25lRXZlbnQsIERyb3B6b25lRXZlbnRzIH0gZnJvbSAnLi9kcm9wem9uZS5pbnRlcmZhY2VzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Ryb3B6b25lXScsXG4gIGV4cG9ydEFzOiAnbmd4RHJvcHpvbmUnXG59KVxuZXhwb3J0IGNsYXNzIERyb3B6b25lRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2ssIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgaW5zdGFuY2U6IGFueTtcblxuICBwcml2YXRlIGNvbmZpZ0RpZmY6IEtleVZhbHVlRGlmZmVyPHN0cmluZywgYW55PiB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdkcm9wem9uZScpIGNvbmZpZz86IERyb3B6b25lQ29uZmlnSW50ZXJmYWNlO1xuXG4gIEBPdXRwdXQoJ2luaXQnICAgICAgICAgICAgICAgICAgKSBEWl9JTklUICAgICAgICAgICAgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCdlcnJvcicgICAgICAgICAgICAgICAgICkgRFpfRVJST1IgICAgICAgICAgICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ3N1Y2Nlc3MnICAgICAgICAgICAgICAgKSBEWl9TVUNDRVNTICAgICAgICAgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnc2VuZGluZycgICAgICAgICAgICAgICApIERaX1NFTkRJTkcgICAgICAgICAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdjYW5jZWxlZCcgICAgICAgICAgICAgICkgRFpfQ0FOQ0VMRUQgICAgICAgICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2NvbXBsZXRlJyAgICAgICAgICAgICAgKSBEWl9DT01QTEVURSAgICAgICAgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgncHJvY2Vzc2luZycgICAgICAgICAgICApIERaX1BST0NFU1NJTkcgICAgICAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoJ2Ryb3AnICAgICAgICAgICAgICAgICAgKSBEWl9EUk9QICAgICAgICAgICAgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnZHJhZ1N0YXJ0JyAgICAgICAgICAgICApIERaX0RSQUdTVEFSVCAgICAgICAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdkcmFnRW5kJyAgICAgICAgICAgICAgICkgRFpfRFJBR0VORCAgICAgICAgICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2RyYWdFbnRlcicgICAgICAgICAgICAgKSBEWl9EUkFHRU5URVIgICAgICAgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnZHJhZ092ZXInICAgICAgICAgICAgICApIERaX0RSQUdPVkVSICAgICAgICAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdkcmFnTGVhdmUnICAgICAgICAgICAgICkgRFpfRFJBR0xFQVZFICAgICAgICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgndGh1bWJuYWlsJyAgICAgICAgICAgICApIERaX1RIVU1CTkFJTCAgICAgICAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdhZGRlZEZpbGUnICAgICAgICAgICAgICkgRFpfQURERURGSUxFICAgICAgICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2FkZGVkRmlsZXMnICAgICAgICAgICAgKSBEWl9BRERFREZJTEVTICAgICAgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgncmVtb3ZlZEZpbGUnICAgICAgICAgICApIERaX1JFTU9WRURGSUxFICAgICAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCd1cGxvYWRQcm9ncmVzcycgICAgICAgICkgRFpfVVBMT0FEUFJPR1JFU1MgICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ21heEZpbGVzUmVhY2hlZCcgICAgICAgKSBEWl9NQVhGSUxFU1JFQUNIRUQgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnbWF4RmlsZXNFeGNlZWRlZCcgICAgICApIERaX01BWEZJTEVTRVhDRUVERUQgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoJ2Vycm9yTXVsdGlwbGUnICAgICAgICAgKSBEWl9FUlJPUk1VTFRJUExFICAgICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnc3VjY2Vzc011bHRpcGxlJyAgICAgICApIERaX1NVQ0NFU1NNVUxUSVBMRSAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdzZW5kaW5nTXVsdGlwbGUnICAgICAgICkgRFpfU0VORElOR01VTFRJUExFICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2NhbmNlbGVkTXVsdGlwbGUnICAgICAgKSBEWl9DQU5DRUxFRE1VTFRJUExFICAgICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnY29tcGxldGVNdWx0aXBsZScgICAgICApIERaX0NPTVBMRVRFTVVMVElQTEUgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdwcm9jZXNzaW5nTXVsdGlwbGUnICAgICkgRFpfUFJPQ0VTU0lOR01VTFRJUExFICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgncmVzZXQnICAgICAgICAgICAgICAgICApIERaX1JFU0VUICAgICAgICAgICAgICAgICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdxdWV1ZUNvbXBsZXRlJyAgICAgICAgICkgRFpfUVVFVUVDT01QTEVURSAgICAgICAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ3RvdGFsVXBsb2FkUHJvZ3Jlc3MnICAgKSBEWl9UT1RBTFVQTE9BRFBST0dSRVNTICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRFJPUFpPTkVfQ09ORklHKSBwcml2YXRlIGRlZmF1bHRzOiBEcm9wem9uZUNvbmZpZ0ludGVyZmFjZSkge1xuICAgIGNvbnN0IGR6ID0gRHJvcHpvbmU7XG5cbiAgICBkei5hdXRvRGlzY292ZXIgPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBEcm9wem9uZUNvbmZpZyh0aGlzLmRlZmF1bHRzKTtcblxuICAgIHBhcmFtcy5hc3NpZ24odGhpcy5jb25maWcpOyAvLyBDdXN0b20gY29uZmlndXJhdGlvblxuXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIChwYXJhbXMubWF4RmlsZXMgPT09IDEpID8gJ2R6LXNpbmdsZScgOiAnZHotbXVsdGlwbGUnKTtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAocGFyYW1zLm1heEZpbGVzID09PSAxKSA/ICdkei1tdWx0aXBsZScgOiAnZHotc2luZ2xlJyk7XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBEcm9wem9uZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcGFyYW1zKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmluc3RhbmNlLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5EWl9JTklULm9ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLkRaX0lOSVQuZW1pdCh0aGlzLmluc3RhbmNlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEFkZCBhdXRvIHJlc2V0IGhhbmRsaW5nIGZvciBldmVudHNcbiAgICB0aGlzLmluc3RhbmNlLm9uKCdzdWNjZXNzJywgKCkgPT4ge1xuICAgICAgaWYgKHBhcmFtcy5hdXRvUmVzZXQgIT0gbnVsbCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSwgcGFyYW1zLmF1dG9SZXNldCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmluc3RhbmNlLm9uKCdlcnJvcicsICgpID0+IHtcbiAgICAgIGlmIChwYXJhbXMuZXJyb3JSZXNldCAhPSBudWxsKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNldCgpLCBwYXJhbXMuZXJyb3JSZXNldCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmluc3RhbmNlLm9uKCdjYW5jZWxlZCcsICgpID0+IHtcbiAgICAgIGlmIChwYXJhbXMuY2FuY2VsUmVzZXQgIT0gbnVsbCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXQoKSwgcGFyYW1zLmNhbmNlbFJlc2V0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEFkZCBuYXRpdmUgRHJvcHpvbmUgZXZlbnQgaGFuZGxpbmdcbiAgICBEcm9wem9uZUV2ZW50cy5mb3JFYWNoKChldmVudE5hbWU6IERyb3B6b25lRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuaW5zdGFuY2Uub24oZXZlbnROYW1lLnRvTG93ZXJDYXNlKCksICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICBhcmdzID0gKGFyZ3MubGVuZ3RoID09PSAxKSA/IGFyZ3NbMF0gOiBhcmdzO1xuXG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGBEWl8ke2V2ZW50TmFtZS50b1VwcGVyQ2FzZSgpfWA7XG5cbiAgICAgICAgY29uc3QgZW1pdHRlciA9IHRoaXNbb3V0cHV0IGFzIGtleW9mIERyb3B6b25lRGlyZWN0aXZlXSBhcyBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgICAgICBpZiAoZW1pdHRlci5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZW1pdHRlci5lbWl0KGFyZ3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5jb25maWdEaWZmKSB7XG4gICAgICB0aGlzLmNvbmZpZ0RpZmYgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmNvbmZpZyB8fCB7fSkuY3JlYXRlKCk7XG5cbiAgICAgIHRoaXMuY29uZmlnRGlmZi5kaWZmKHRoaXMuY29uZmlnIHx8IHt9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmNvbmZpZ0RpZmYpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmNvbmZpZ0RpZmYuZGlmZih0aGlzLmNvbmZpZyB8fCB7fSk7XG5cbiAgICAgIGlmIChjaGFuZ2VzICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuXG4gICAgICAgIHRoaXMubmdPbkluaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UgJiYgY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydkaXNhYmxlZCddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLmVuYWJsZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuZGlzYWJsZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRyb3B6b25lKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaW5zdGFuY2U7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoY2FuY2VsPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnJlbW92ZUFsbEZpbGVzKGNhbmNlbCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
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=
|