easy-file-system 5.0.45 → 5.0.49

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.
Files changed (50) hide show
  1. package/lib/button/toggle.js +42 -164
  2. package/lib/constants.js +6 -6
  3. package/lib/customEventTypes.js +9 -9
  4. package/lib/div/item/entry/drag/directoryName.js +24 -122
  5. package/lib/div/item/entry/drag/fileName.js +15 -112
  6. package/lib/div/item/entry/drag.js +19 -120
  7. package/lib/div/item/entry/marker.js +10 -107
  8. package/lib/div/item/entry.js +25 -187
  9. package/lib/entryTypes.js +5 -5
  10. package/lib/example/preamble.js +2 -2
  11. package/lib/example/view/button.js +12 -23
  12. package/lib/example/view/explorer/first.js +20 -120
  13. package/lib/example/view/explorer/second.js +17 -117
  14. package/lib/example/view/rubbishBin.js +10 -88
  15. package/lib/example/view.js +88 -233
  16. package/lib/example.js +6 -6
  17. package/lib/explorer.js +393 -740
  18. package/lib/index.js +17 -17
  19. package/lib/item/entry/drag/directoryName.js +130 -289
  20. package/lib/item/entry/drag/fileName.js +61 -182
  21. package/lib/item/entry/drag.js +179 -375
  22. package/lib/item/entry/marker/directoryName.js +20 -117
  23. package/lib/item/entry/marker/fileName.js +21 -118
  24. package/lib/item/entry/marker.js +13 -110
  25. package/lib/item/entry.js +54 -249
  26. package/lib/list/entries.js +464 -808
  27. package/lib/mixins/dragEntryItem.js +19 -19
  28. package/lib/mixins/explorer.js +28 -28
  29. package/lib/mixins/nameSpan.js +12 -12
  30. package/lib/mixins/rubbishBin.js +8 -8
  31. package/lib/rubbishBin.js +180 -415
  32. package/lib/span/name.js +93 -262
  33. package/lib/styles.js +14 -14
  34. package/lib/svg/directoryName.js +31 -142
  35. package/lib/svg/fileName.js +32 -143
  36. package/lib/svg/marker.js +25 -136
  37. package/lib/svg/rubbishBin/closed.js +48 -163
  38. package/lib/svg/rubbishBin/open.js +52 -167
  39. package/lib/svg/toggle/down.js +29 -145
  40. package/lib/svg/toggle/up.js +30 -146
  41. package/lib/svg.js +12 -149
  42. package/lib/utilities/name.js +12 -12
  43. package/lib/utilities/path.js +5 -5
  44. package/lib/utilities/pathMap.js +7 -7
  45. package/package.json +8 -4
  46. package/.aiignore +0 -14
  47. package/.swcrc +0 -11
  48. package/bin/main.js +0 -15
  49. package/example.js +0 -41953
  50. package/index.html +0 -46
package/lib/rubbishBin.js CHANGED
@@ -8,434 +8,199 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
- var _easy = require("easy");
13
- var _easydraganddrop = require("easy-drag-and-drop");
14
- var _rubbishBin = /*#__PURE__*/ _interop_require_default(require("./mixins/rubbishBin"));
15
- var _open = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/open"));
16
- var _closed = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/closed"));
17
- var _dragEntryItem = /*#__PURE__*/ _interop_require_default(require("./mixins/dragEntryItem"));
18
- var _fileName = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/fileName"));
19
- var _directoryName = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/directoryName"));
20
- var _customEventTypes = require("./customEventTypes");
21
- var _pathMap = require("./utilities/pathMap");
22
- var _entryTypes = require("./entryTypes");
23
- function _assert_this_initialized(self) {
24
- if (self === void 0) {
25
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
26
- }
27
- return self;
28
- }
29
- function _call_super(_this, derived, args) {
30
- derived = _get_prototype_of(derived);
31
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
32
- }
33
- function _class_call_check(instance, Constructor) {
34
- if (!(instance instanceof Constructor)) {
35
- throw new TypeError("Cannot call a class as a function");
36
- }
37
- }
38
- function _construct(Parent, args, Class) {
39
- if (_is_native_reflect_construct()) {
40
- _construct = Reflect.construct;
41
- } else {
42
- _construct = function construct(Parent, args, Class) {
43
- var a = [
44
- null
45
- ];
46
- a.push.apply(a, args);
47
- var Constructor = Function.bind.apply(Parent, a);
48
- var instance = new Constructor();
49
- if (Class) _set_prototype_of(instance, Class.prototype);
50
- return instance;
51
- };
52
- }
53
- return _construct.apply(null, arguments);
54
- }
55
- function _defineProperties(target, props) {
56
- for(var i = 0; i < props.length; i++){
57
- var descriptor = props[i];
58
- descriptor.enumerable = descriptor.enumerable || false;
59
- descriptor.configurable = true;
60
- if ("value" in descriptor) descriptor.writable = true;
61
- Object.defineProperty(target, descriptor.key, descriptor);
62
- }
63
- }
64
- function _create_class(Constructor, protoProps, staticProps) {
65
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
66
- if (staticProps) _defineProperties(Constructor, staticProps);
67
- return Constructor;
68
- }
69
- function _define_property(obj, key, value) {
70
- if (key in obj) {
71
- Object.defineProperty(obj, key, {
72
- value: value,
73
- enumerable: true,
74
- configurable: true,
75
- writable: true
76
- });
77
- } else {
78
- obj[key] = value;
79
- }
80
- return obj;
81
- }
82
- function _get_prototype_of(o) {
83
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
84
- return o.__proto__ || Object.getPrototypeOf(o);
85
- };
86
- return _get_prototype_of(o);
87
- }
88
- function _inherits(subClass, superClass) {
89
- if (typeof superClass !== "function" && superClass !== null) {
90
- throw new TypeError("Super expression must either be null or a function");
91
- }
92
- subClass.prototype = Object.create(superClass && superClass.prototype, {
93
- constructor: {
94
- value: subClass,
95
- writable: true,
96
- configurable: true
97
- }
98
- });
99
- if (superClass) _set_prototype_of(subClass, superClass);
100
- }
11
+ const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
+ const _easy = require("easy");
13
+ const _easydraganddrop = require("easy-drag-and-drop");
14
+ const _rubbishBin = /*#__PURE__*/ _interop_require_default(require("./mixins/rubbishBin"));
15
+ const _open = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/open"));
16
+ const _closed = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/closed"));
17
+ const _dragEntryItem = /*#__PURE__*/ _interop_require_default(require("./mixins/dragEntryItem"));
18
+ const _fileName = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/fileName"));
19
+ const _directoryName = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/directoryName"));
20
+ const _customEventTypes = require("./customEventTypes");
21
+ const _pathMap = require("./utilities/pathMap");
22
+ const _entryTypes = require("./entryTypes");
101
23
  function _interop_require_default(obj) {
102
24
  return obj && obj.__esModule ? obj : {
103
25
  default: obj
104
26
  };
105
27
  }
106
- function _is_native_function(fn) {
107
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
108
- }
109
- function _possible_constructor_return(self, call) {
110
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
111
- return call;
112
- }
113
- return _assert_this_initialized(self);
114
- }
115
- function _set_prototype_of(o, p) {
116
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
117
- o.__proto__ = p;
118
- return o;
119
- };
120
- return _set_prototype_of(o, p);
121
- }
122
- function _tagged_template_literal(strings, raw) {
123
- if (!raw) {
124
- raw = strings.slice(0);
125
- }
126
- return Object.freeze(Object.defineProperties(strings, {
127
- raw: {
128
- value: Object.freeze(raw)
129
- }
130
- }));
131
- }
132
- function _type_of(obj) {
133
- "@swc/helpers - typeof";
134
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
135
- }
136
- function _wrap_native_super(Class) {
137
- var _cache = typeof Map === "function" ? new Map() : undefined;
138
- _wrap_native_super = function wrapNativeSuper(Class) {
139
- if (Class === null || !_is_native_function(Class)) return Class;
140
- if (typeof Class !== "function") {
141
- throw new TypeError("Super expression must either be null or a function");
28
+ class RubbishBin extends _easy.Element {
29
+ dragOverCustomHandler = (event, element, dragElement)=>{
30
+ const dragEntryItem = dragElement, markerEntryItem = this.retrieveMarkerEntryItem();
31
+ let markerEntryItemPath = markerEntryItem.getPath(), markerEntryItemExplorer = markerEntryItem.getExplorer(), previousMarkerEntryItemPath = markerEntryItemPath, previousMarkerEntryItemExplorer = markerEntryItemExplorer; ///
32
+ markerEntryItemPath = null; ///
33
+ markerEntryItemExplorer = this; ///
34
+ if (markerEntryItemExplorer !== previousMarkerEntryItemExplorer || markerEntryItemPath !== previousMarkerEntryItemPath) {
35
+ const dragEntryItemType = dragEntryItem.getType();
36
+ previousMarkerEntryItemExplorer.removeMarker();
37
+ markerEntryItemExplorer.addMarker(markerEntryItemPath, dragEntryItemType);
142
38
  }
143
- if (typeof _cache !== "undefined") {
144
- if (_cache.has(Class)) return _cache.get(Class);
145
- _cache.set(Class, Wrapper);
146
- }
147
- function Wrapper() {
148
- return _construct(Class, arguments, _get_prototype_of(this).constructor);
149
- }
150
- Wrapper.prototype = Object.create(Class.prototype, {
151
- constructor: {
152
- value: Wrapper,
153
- enumerable: false,
154
- writable: true,
155
- configurable: true
156
- }
157
- });
158
- return _set_prototype_of(Wrapper, Class);
159
39
  };
160
- return _wrap_native_super(Class);
161
- }
162
- function _is_native_reflect_construct() {
163
- try {
164
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
165
- } catch (_) {}
166
- return (_is_native_reflect_construct = function() {
167
- return !!result;
168
- })();
169
- }
170
- function _templateObject() {
171
- var data = _tagged_template_literal([
172
- "\n \n display: inline-block;\n \n"
173
- ]);
174
- _templateObject = function _templateObject() {
175
- return data;
40
+ dropCustomHandler = (event, element, dragElement, aborted, done)=>{
41
+ const dragEntryItem = dragElement, markerEntryItem = this.retrieveMarkerEntryItem(), markerEntryItemExplorer = markerEntryItem.getExplorer();
42
+ if (aborted) {
43
+ markerEntryItemExplorer.removeMarker();
44
+ done();
45
+ return;
46
+ }
47
+ markerEntryItemExplorer.dropDragEntryItem(event, element, dragEntryItem, done);
176
48
  };
177
- return data;
178
- }
179
- var RubbishBin = /*#__PURE__*/ function(Element) {
180
- _inherits(RubbishBin, Element);
181
- function RubbishBin() {
182
- _class_call_check(this, RubbishBin);
183
- var _this;
184
- _this = _call_super(this, RubbishBin, arguments), _define_property(_this, "dragOverCustomHandler", function(event, element, dragElement) {
185
- var dragEntryItem = dragElement, markerEntryItem = _this.retrieveMarkerEntryItem();
186
- var markerEntryItemPath = markerEntryItem.getPath(), markerEntryItemExplorer = markerEntryItem.getExplorer(), previousMarkerEntryItemPath = markerEntryItemPath, previousMarkerEntryItemExplorer = markerEntryItemExplorer; ///
187
- markerEntryItemPath = null; ///
188
- markerEntryItemExplorer = _this; ///
189
- if (markerEntryItemExplorer !== previousMarkerEntryItemExplorer || markerEntryItemPath !== previousMarkerEntryItemPath) {
190
- var dragEntryItemType = dragEntryItem.getType();
191
- previousMarkerEntryItemExplorer.removeMarker();
192
- markerEntryItemExplorer.addMarker(markerEntryItemPath, dragEntryItemType);
193
- }
194
- }), _define_property(_this, "dropCustomHandler", function(event, element, dragElement, aborted, done) {
195
- var dragEntryItem = dragElement, markerEntryItem = _this.retrieveMarkerEntryItem(), markerEntryItemExplorer = markerEntryItem.getExplorer();
196
- if (aborted) {
197
- markerEntryItemExplorer.removeMarker();
198
- done();
199
- return;
200
- }
201
- markerEntryItemExplorer.dropDragEntryItem(event, element, dragEntryItem, done);
202
- });
203
- return _this;
49
+ getReference() {
50
+ const { reference = null } = this.properties;
51
+ return reference;
204
52
  }
205
- _create_class(RubbishBin, [
206
- {
207
- key: "getReference",
208
- value: function getReference() {
209
- var _this_properties = this.properties, _this_properties_reference = _this_properties.reference, reference = _this_properties_reference === void 0 ? null : _this_properties_reference;
210
- return reference;
211
- }
212
- },
213
- {
214
- key: "getReferences",
215
- value: function getReferences() {
216
- var _this_properties = this.properties, _this_properties_references = _this_properties.references, references = _this_properties_references === void 0 ? [] : _this_properties_references;
217
- return references;
218
- }
219
- },
220
- {
221
- key: "retrieveMarkerEntryItem",
222
- value: function retrieveMarkerEntryItem() {
223
- var markerEntryItem = getMarkerEntryItem();
224
- return markerEntryItem;
225
- }
226
- },
227
- {
228
- key: "addMarker",
229
- value: function addMarker(markerEntryItemPath, dragEntryItemType) {
230
- var markerEntryItemName = markerEntryItemPath; ///
231
- this.addMarkerEntryItem(markerEntryItemName, dragEntryItemType);
232
- this.open();
233
- }
234
- },
235
- {
236
- key: "removeMarker",
237
- value: function removeMarker() {
238
- this.removeMarkerEntryItem();
239
- this.close();
240
- }
241
- },
242
- {
243
- key: "addMarkerEntryItem",
244
- value: function addMarkerEntryItem(markerEntryItemName, dragEntryItemType) {
245
- var markerEntryItem;
246
- var name = markerEntryItemName, type = dragEntryItemType; ///
247
- switch(type){
248
- case _entryTypes.FILE_NAME_DRAG_ENTRY_TYPE:
249
- {
250
- var explorer = this, fileNameMarkerEntryItem = /*#__PURE__*/ React.createElement(_fileName.default, {
251
- name: name,
252
- explorer: explorer
253
- });
254
- markerEntryItem = fileNameMarkerEntryItem; ///
255
- break;
256
- }
257
- case _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE:
258
- {
259
- var explorer1 = this, directoryNameMarkerEntryItem = /*#__PURE__*/ React.createElement(_directoryName.default, {
260
- name: name,
261
- explorer: explorer1
262
- });
263
- markerEntryItem = directoryNameMarkerEntryItem; ///
264
- break;
265
- }
266
- }
267
- setMarkerEntryItem(markerEntryItem);
268
- }
269
- },
270
- {
271
- key: "removeMarkerEntryItem",
272
- value: function removeMarkerEntryItem() {
273
- resetMarkerEntryItem();
274
- resetDropElement();
275
- }
276
- },
277
- {
278
- key: "dropDragEntryItem",
279
- value: function dropDragEntryItem(event, element, dragEntryItem, done) {
280
- var dragEntryItemExplorer = dragEntryItem.getExplorer(), sourceEntryPath = (0, _pathMap.sourceEntryPathFromEntryItem)(dragEntryItem), targetEntryPath = null, pathMaps = dragEntryItem.getPathMaps(sourceEntryPath, targetEntryPath), explorer = dragEntryItemExplorer; ///
281
- this.removeDragEntryItems(event, element, pathMaps, explorer, done);
282
- }
283
- },
284
- {
285
- key: "removeDragEntryItems",
286
- value: function removeDragEntryItems(event, element, pathMaps, explorer, done) {
287
- var _this = this;
288
- var customEventType = _customEventTypes.REMOVE_CUSTOM_EVENT_TYPE;
289
- this.callCustomHandlersAsync(customEventType, event, element, pathMaps, function() {
290
- pathMaps.forEach(function(pathMap) {
291
- _this.removeDragEntryItem(pathMap, explorer);
53
+ getReferences() {
54
+ const { references = [] } = this.properties;
55
+ return references;
56
+ }
57
+ retrieveMarkerEntryItem() {
58
+ const markerEntryItem = getMarkerEntryItem();
59
+ return markerEntryItem;
60
+ }
61
+ addMarker(markerEntryItemPath, dragEntryItemType) {
62
+ const markerEntryItemName = markerEntryItemPath; ///
63
+ this.addMarkerEntryItem(markerEntryItemName, dragEntryItemType);
64
+ this.open();
65
+ }
66
+ removeMarker() {
67
+ this.removeMarkerEntryItem();
68
+ this.close();
69
+ }
70
+ addMarkerEntryItem(markerEntryItemName, dragEntryItemType) {
71
+ let markerEntryItem;
72
+ const name = markerEntryItemName, type = dragEntryItemType; ///
73
+ switch(type){
74
+ case _entryTypes.FILE_NAME_DRAG_ENTRY_TYPE:
75
+ {
76
+ const explorer = this, fileNameMarkerEntryItem = /*#__PURE__*/ React.createElement(_fileName.default, {
77
+ name: name,
78
+ explorer: explorer
292
79
  });
293
- pathMaps.forEach(function(pathMap) {
294
- _this.addDragEntryItem(pathMap, explorer);
80
+ markerEntryItem = fileNameMarkerEntryItem; ///
81
+ break;
82
+ }
83
+ case _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE:
84
+ {
85
+ const explorer = this, directoryNameMarkerEntryItem = /*#__PURE__*/ React.createElement(_directoryName.default, {
86
+ name: name,
87
+ explorer: explorer
295
88
  });
296
- _this.removeMarker();
297
- done();
298
- });
299
- }
300
- },
301
- {
302
- key: "open",
303
- value: function open() {
304
- this.showOpenRubbishBinSVG();
305
- this.hideClosedRubbishBinSVG();
306
- }
307
- },
308
- {
309
- key: "close",
310
- value: function close() {
311
- this.hideOpenRubbishBinSVG();
312
- this.showClosedRubbishBinSVG();
313
- }
314
- },
315
- {
316
- key: "didMount",
317
- value: function didMount() {
318
- this.enableDrop();
319
- this.onCustomDrop(this.dropCustomHandler);
320
- this.onCustomDragOver(this.dragOverCustomHandler);
321
- this.close();
322
- }
323
- },
324
- {
325
- key: "willUnmount",
326
- value: function willUnmount() {
327
- this.disableDrop();
328
- this.offCustomDrop(this.dropCustomHandler);
329
- this.offCustomDragOver(this.dragOverCustomHandler);
330
- }
331
- },
332
- {
333
- key: "addFilePath",
334
- value: function addFilePath(filePath) {
335
- var readOnly = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
336
- ///
337
- }
338
- },
339
- {
340
- key: "removeFilePath",
341
- value: function removeFilePath(filePath) {
342
- var removeEmptyParentDirectories = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
343
- ///
344
- }
345
- },
346
- {
347
- key: "removeAllPaths",
348
- value: function removeAllPaths() {
349
- ///
350
- }
351
- },
352
- {
353
- key: "addDirectoryPath",
354
- value: function addDirectoryPath(directoryPath) {
355
- var readOnly = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false, collapsed = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
356
- ///
357
- }
358
- },
359
- {
360
- key: "removeDirectoryPath",
361
- value: function removeDirectoryPath(directoryPath) {
362
- var removeEmptyParentDirectories = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
363
- ///
364
- }
365
- },
366
- {
367
- key: "getMarkerEntryItemPath",
368
- value: function getMarkerEntryItemPath() {
369
- var markerEntryItemPath = this.getState().markerEntryItemPath;
370
- return markerEntryItemPath;
371
- }
372
- },
373
- {
374
- key: "getMarkerEntryItemExplorer",
375
- value: function getMarkerEntryItemExplorer() {
376
- var markerEntryItemExplorer = this.getState().markerEntryItemExplorer;
377
- return markerEntryItemExplorer;
378
- }
379
- },
380
- {
381
- key: "setMarkerEntryItemPath",
382
- value: function setMarkerEntryItemPath(markerEntryItemPath) {
383
- this.updateState({
384
- markerEntryItemPath: markerEntryItemPath
385
- });
386
- }
387
- },
388
- {
389
- key: "setMarkerEntryItemExplorer",
390
- value: function setMarkerEntryItemExplorer(markerEntryItemExplorer) {
391
- this.updateState({
392
- markerEntryItemExplorer: markerEntryItemExplorer
393
- });
394
- }
395
- },
396
- {
397
- key: "setInitialState",
398
- value: function setInitialState() {
399
- var markerEntryItemPath = null, markerEntryItemExplorer = null;
400
- this.setState({
401
- markerEntryItemPath: markerEntryItemPath,
402
- markerEntryItemExplorer: markerEntryItemExplorer
403
- });
404
- }
405
- },
406
- {
407
- key: "childElements",
408
- value: function childElements() {
409
- var _this_constructor = this.constructor, _$OpenRubbishBinSVG = _this_constructor.OpenRubbishBinSVG, _$ClosedRubbishBinSVG = _this_constructor.ClosedRubbishBinSVG;
410
- return [
411
- /*#__PURE__*/ React.createElement(_$OpenRubbishBinSVG, null),
412
- /*#__PURE__*/ React.createElement(_$ClosedRubbishBinSVG, null)
413
- ];
414
- }
415
- },
416
- {
417
- key: "initialise",
418
- value: function initialise() {
419
- this.assignContext();
420
- this.setInitialState();
421
- }
89
+ markerEntryItem = directoryNameMarkerEntryItem; ///
90
+ break;
91
+ }
422
92
  }
423
- ]);
424
- return RubbishBin;
425
- }(_wrap_native_super(_easy.Element));
426
- _define_property(RubbishBin, "OpenRubbishBinSVG", _open.default);
427
- _define_property(RubbishBin, "ClosedRubbishBinSVG", _closed.default);
428
- _define_property(RubbishBin, "tagName", "div");
429
- _define_property(RubbishBin, "ignoredProperties", [
430
- "reference",
431
- "references"
432
- ]);
433
- _define_property(RubbishBin, "defaultProperties", {
434
- className: "rubbish-bin"
435
- });
93
+ setMarkerEntryItem(markerEntryItem);
94
+ }
95
+ removeMarkerEntryItem() {
96
+ resetMarkerEntryItem();
97
+ resetDropElement();
98
+ }
99
+ dropDragEntryItem(event, element, dragEntryItem, done) {
100
+ const dragEntryItemExplorer = dragEntryItem.getExplorer(), sourceEntryPath = (0, _pathMap.sourceEntryPathFromEntryItem)(dragEntryItem), targetEntryPath = null, pathMaps = dragEntryItem.getPathMaps(sourceEntryPath, targetEntryPath), explorer = dragEntryItemExplorer; ///
101
+ this.removeDragEntryItems(event, element, pathMaps, explorer, done);
102
+ }
103
+ removeDragEntryItems(event, element, pathMaps, explorer, done) {
104
+ const customEventType = _customEventTypes.REMOVE_CUSTOM_EVENT_TYPE;
105
+ this.callCustomHandlersAsync(customEventType, event, element, pathMaps, ()=>{
106
+ pathMaps.forEach((pathMap)=>{
107
+ this.removeDragEntryItem(pathMap, explorer);
108
+ });
109
+ pathMaps.forEach((pathMap)=>{
110
+ this.addDragEntryItem(pathMap, explorer);
111
+ });
112
+ this.removeMarker();
113
+ done();
114
+ });
115
+ }
116
+ open() {
117
+ this.showOpenRubbishBinSVG();
118
+ this.hideClosedRubbishBinSVG();
119
+ }
120
+ close() {
121
+ this.hideOpenRubbishBinSVG();
122
+ this.showClosedRubbishBinSVG();
123
+ }
124
+ didMount() {
125
+ this.enableDrop();
126
+ this.onCustomDrop(this.dropCustomHandler);
127
+ this.onCustomDragOver(this.dragOverCustomHandler);
128
+ this.close();
129
+ }
130
+ willUnmount() {
131
+ this.disableDrop();
132
+ this.offCustomDrop(this.dropCustomHandler);
133
+ this.offCustomDragOver(this.dragOverCustomHandler);
134
+ }
135
+ addFilePath(filePath, readOnly = false) {
136
+ ///
137
+ }
138
+ removeFilePath(filePath, removeEmptyParentDirectories = false) {
139
+ ///
140
+ }
141
+ removeAllPaths() {
142
+ ///
143
+ }
144
+ addDirectoryPath(directoryPath, readOnly = false, collapsed = true) {
145
+ ///
146
+ }
147
+ removeDirectoryPath(directoryPath, removeEmptyParentDirectories = false) {
148
+ ///
149
+ }
150
+ getMarkerEntryItemPath() {
151
+ const { markerEntryItemPath } = this.getState();
152
+ return markerEntryItemPath;
153
+ }
154
+ getMarkerEntryItemExplorer() {
155
+ const { markerEntryItemExplorer } = this.getState();
156
+ return markerEntryItemExplorer;
157
+ }
158
+ setMarkerEntryItemPath(markerEntryItemPath) {
159
+ this.updateState({
160
+ markerEntryItemPath
161
+ });
162
+ }
163
+ setMarkerEntryItemExplorer(markerEntryItemExplorer) {
164
+ this.updateState({
165
+ markerEntryItemExplorer
166
+ });
167
+ }
168
+ setInitialState() {
169
+ const markerEntryItemPath = null, markerEntryItemExplorer = null;
170
+ this.setState({
171
+ markerEntryItemPath,
172
+ markerEntryItemExplorer
173
+ });
174
+ }
175
+ childElements() {
176
+ const { OpenRubbishBinSVG, ClosedRubbishBinSVG } = this.constructor;
177
+ return [
178
+ /*#__PURE__*/ React.createElement(OpenRubbishBinSVG, null),
179
+ /*#__PURE__*/ React.createElement(ClosedRubbishBinSVG, null)
180
+ ];
181
+ }
182
+ initialise() {
183
+ this.assignContext();
184
+ this.setInitialState();
185
+ }
186
+ static OpenRubbishBinSVG = _open.default;
187
+ static ClosedRubbishBinSVG = _closed.default;
188
+ static tagName = "div";
189
+ static ignoredProperties = [
190
+ "reference",
191
+ "references"
192
+ ];
193
+ static defaultProperties = {
194
+ className: "rubbish-bin"
195
+ };
196
+ }
436
197
  Object.assign(RubbishBin.prototype, _easydraganddrop.dropMixins);
437
198
  Object.assign(RubbishBin.prototype, _rubbishBin.default);
438
199
  Object.assign(RubbishBin.prototype, _dragEntryItem.default);
439
- var _default = (0, _easywithstyle.default)(RubbishBin)(_templateObject());
200
+ const _default = (0, _easywithstyle.default)(RubbishBin)`
201
+
202
+ display: inline-block;
203
+
204
+ `;
440
205
 
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWJiaXNoQmluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcbmltcG9ydCB7IGRyb3BNaXhpbnMgfSBmcm9tIFwiZWFzeS1kcmFnLWFuZC1kcm9wXCI7XG5cbmltcG9ydCBydWJiaXNoQmluTWl4aW5zIGZyb20gXCIuL21peGlucy9ydWJiaXNoQmluXCI7XG5pbXBvcnQgT3BlblJ1YmJpc2hCaW5TVkcgZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vb3BlblwiO1xuaW1wb3J0IENsb3NlZFJ1YmJpc2hCaW5TVkcgZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vY2xvc2VkXCI7XG5pbXBvcnQgZHJhZ0VudHJ5SXRlbU1peGlucyBmcm9tIFwiLi9taXhpbnMvZHJhZ0VudHJ5SXRlbVwiO1xuaW1wb3J0IEZpbGVOYW1lTWFya2VyRW50cnlJdGVtIGZyb20gXCIuL2l0ZW0vZW50cnkvbWFya2VyL2ZpbGVOYW1lXCI7XG5pbXBvcnQgRGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSBmcm9tIFwiLi9pdGVtL2VudHJ5L21hcmtlci9kaXJlY3RvcnlOYW1lXCI7XG5cbmltcG9ydCB7IFJFTU9WRV9DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuL2N1c3RvbUV2ZW50VHlwZXNcIjtcbmltcG9ydCB7IHNvdXJjZUVudHJ5UGF0aEZyb21FbnRyeUl0ZW0gfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcFwiO1xuaW1wb3J0IHsgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFLCBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFIH0gZnJvbSBcIi4vZW50cnlUeXBlc1wiO1xuXG5jbGFzcyBSdWJiaXNoQmluIGV4dGVuZHMgRWxlbWVudCB7XG4gIGRyYWdPdmVyQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZHJhZ0VsZW1lbnQpID0+IHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gZHJhZ0VsZW1lbnQsICAvLy9cbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSB0aGlzLnJldHJpZXZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICBsZXQgbWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbS5nZXRQYXRoKCksXG4gICAgICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbVBhdGggPSBtYXJrZXJFbnRyeUl0ZW1QYXRoLCAvLy9cbiAgICAgICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7IC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtUGF0aCA9IG51bGw7IC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSB0aGlzOyAgLy8vXG5cbiAgICBpZiAoKG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyICE9PSBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyKSB8fCAobWFya2VyRW50cnlJdGVtUGF0aCAhPT0gcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoKSkge1xuICAgICAgY29uc3QgZHJhZ0VudHJ5SXRlbVR5cGUgPSBkcmFnRW50cnlJdGVtLmdldFR5cGUoKTtcblxuICAgICAgcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlci5yZW1vdmVNYXJrZXIoKTtcblxuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcbiAgICB9XG4gIH1cblxuICBkcm9wQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZHJhZ0VsZW1lbnQsIGFib3J0ZWQsIGRvbmUpID0+IHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gZHJhZ0VsZW1lbnQsICAvLy9cbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSB0aGlzLnJldHJpZXZlTWFya2VyRW50cnlJdGVtKCksXG4gICAgICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKTtcblxuICAgIGlmIChhYm9ydGVkKSB7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlci5yZW1vdmVNYXJrZXIoKTtcblxuICAgICAgZG9uZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuZHJvcERyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sIGRvbmUpO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlKCkge1xuICAgIGNvbnN0IHsgcmVmZXJlbmNlID0gbnVsbCB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZXMoKSB7XG4gICAgY29uc3QgeyByZWZlcmVuY2VzID0gW10gfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiByZWZlcmVuY2VzO1xuICB9XG5cbiAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gZ2V0TWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtO1xuICB9XG5cbiAgYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtTmFtZSA9IG1hcmtlckVudHJ5SXRlbVBhdGg7ICAvLy9cblxuICAgIHRoaXMuYWRkTWFya2VyRW50cnlJdGVtKG1hcmtlckVudHJ5SXRlbU5hbWUsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcblxuICAgIHRoaXMub3BlbigpO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyKCkge1xuICAgIHRoaXMucmVtb3ZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBhZGRNYXJrZXJFbnRyeUl0ZW0obWFya2VyRW50cnlJdGVtTmFtZSwgZHJhZ0VudHJ5SXRlbVR5cGUpIHtcbiAgICBsZXQgbWFya2VyRW50cnlJdGVtO1xuXG4gICAgY29uc3QgbmFtZSA9IG1hcmtlckVudHJ5SXRlbU5hbWUsIC8vL1xuICAgICAgICAgIHR5cGUgPSBkcmFnRW50cnlJdGVtVHlwZTsgIC8vL1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUgOiB7XG4gICAgICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgICBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbSA9XG5cbiAgICAgICAgICAgICAgICA8RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbTsgIC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICAgIGRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gPVxuXG4gICAgICAgICAgICAgICAgPERpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNYXJrZXJFbnRyeUl0ZW0obWFya2VyRW50cnlJdGVtKTtcbiAgfVxuXG4gIHJlbW92ZU1hcmtlckVudHJ5SXRlbSgpIHtcbiAgICByZXNldE1hcmtlckVudHJ5SXRlbSgpO1xuXG4gICAgcmVzZXREcm9wRWxlbWVudCgpO1xuICB9XG5cbiAgZHJvcERyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sIGRvbmUpIHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtRXhwbG9yZXIgPSBkcmFnRW50cnlJdGVtLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgc291cmNlRW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoRnJvbUVudHJ5SXRlbShkcmFnRW50cnlJdGVtKSxcbiAgICAgICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsLFxuICAgICAgICAgIHBhdGhNYXBzID0gZHJhZ0VudHJ5SXRlbS5nZXRQYXRoTWFwcyhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCksXG4gICAgICAgICAgZXhwbG9yZXIgPSBkcmFnRW50cnlJdGVtRXhwbG9yZXI7ICAvLy9cblxuICAgIHRoaXMucmVtb3ZlRHJhZ0VudHJ5SXRlbXMoZXZlbnQsIGVsZW1lbnQsIHBhdGhNYXBzLCBleHBsb3JlciwgZG9uZSk7XG4gIH1cblxuICByZW1vdmVEcmFnRW50cnlJdGVtcyhldmVudCwgZWxlbWVudCwgcGF0aE1hcHMsIGV4cGxvcmVyLCBkb25lKSB7XG4gICAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gUkVNT1ZFX0NVU1RPTV9FVkVOVF9UWVBFO1xuXG4gICAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBwYXRoTWFwcywgKCkgPT4ge1xuICAgICAgcGF0aE1hcHMuZm9yRWFjaCgocGF0aE1hcCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpXG4gICAgICB9KTtcblxuICAgICAgcGF0aE1hcHMuZm9yRWFjaCgocGF0aE1hcCkgPT4ge1xuICAgICAgICB0aGlzLmFkZERyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zaG93T3BlblJ1YmJpc2hCaW5TVkcoKTtcbiAgICB0aGlzLmhpZGVDbG9zZWRSdWJiaXNoQmluU1ZHKCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmhpZGVPcGVuUnViYmlzaEJpblNWRygpO1xuICAgIHRoaXMuc2hvd0Nsb3NlZFJ1YmJpc2hCaW5TVkcoKTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIHRoaXMuZW5hYmxlRHJvcCgpO1xuXG4gICAgdGhpcy5vbkN1c3RvbURyb3AodGhpcy5kcm9wQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ092ZXIodGhpcy5kcmFnT3ZlckN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5kaXNhYmxlRHJvcCgpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21Ecm9wKHRoaXMuZHJvcEN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21EcmFnT3Zlcih0aGlzLmRyYWdPdmVyQ3VzdG9tSGFuZGxlcik7XG4gIH1cblxuICBhZGRGaWxlUGF0aChmaWxlUGF0aCwgcmVhZE9ubHkgPSBmYWxzZSkge1xuICAgIC8vL1xuICB9XG5cbiAgcmVtb3ZlRmlsZVBhdGgoZmlsZVBhdGgsIHJlbW92ZUVtcHR5UGFyZW50RGlyZWN0b3JpZXMgPSBmYWxzZSkge1xuICAgIC8vL1xuICB9XG5cbiAgcmVtb3ZlQWxsUGF0aHMoKSB7XG4gICAgLy8vXG4gIH1cblxuICBhZGREaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgsIHJlYWRPbmx5ID0gZmFsc2UsIGNvbGxhcHNlZCA9IHRydWUpIHtcbiAgICAvLy9cbiAgfVxuXG4gIHJlbW92ZURpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCwgcmVtb3ZlRW1wdHlQYXJlbnREaXJlY3RvcmllcyA9IGZhbHNlKSB7XG4gICAgLy8vXG4gIH1cblxuICBnZXRNYXJrZXJFbnRyeUl0ZW1QYXRoKCkge1xuICAgIGNvbnN0IHsgbWFya2VyRW50cnlJdGVtUGF0aCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbVBhdGg7XG4gIH1cblxuICBnZXRNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcigpIHtcbiAgICBjb25zdCB7IG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7XG4gIH1cblxuICBzZXRNYXJrZXJFbnRyeUl0ZW1QYXRoKG1hcmtlckVudHJ5SXRlbVBhdGgpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGhcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlclxuICAgIH0pO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbVBhdGggPSBudWxsLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbnVsbDtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbWFya2VyRW50cnlJdGVtUGF0aCxcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyXG4gICAgfSk7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IHsgT3BlblJ1YmJpc2hCaW5TVkcsIENsb3NlZFJ1YmJpc2hCaW5TVkcgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICByZXR1cm4gKFtcblxuICAgICAgPE9wZW5SdWJiaXNoQmluU1ZHLz4sXG4gICAgICA8Q2xvc2VkUnViYmlzaEJpblNWRy8+XG5cbiAgICBdKTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgdGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICB9XG5cbiAgc3RhdGljIE9wZW5SdWJiaXNoQmluU1ZHID0gT3BlblJ1YmJpc2hCaW5TVkc7XG5cbiAgc3RhdGljIENsb3NlZFJ1YmJpc2hCaW5TVkcgPSBDbG9zZWRSdWJiaXNoQmluU1ZHO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXG4gICAgXCJyZWZlcmVuY2VcIixcbiAgICBcInJlZmVyZW5jZXNcIlxuICBdO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwicnViYmlzaC1iaW5cIlxuICB9O1xufVxuXG5PYmplY3QuYXNzaWduKFJ1YmJpc2hCaW4ucHJvdG90eXBlLCBkcm9wTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUnViYmlzaEJpbi5wcm90b3R5cGUsIHJ1YmJpc2hCaW5NaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihSdWJiaXNoQmluLnByb3RvdHlwZSwgZHJhZ0VudHJ5SXRlbU1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShSdWJiaXNoQmluKWBcbiAgXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIFxuYDtcbiJdLCJuYW1lcyI6WyJSdWJiaXNoQmluIiwiZHJhZ092ZXJDdXN0b21IYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiZHJhZ0VsZW1lbnQiLCJkcmFnRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtIiwicmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0iLCJtYXJrZXJFbnRyeUl0ZW1QYXRoIiwiZ2V0UGF0aCIsIm1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwiZ2V0RXhwbG9yZXIiLCJwcmV2aW91c01hcmtlckVudHJ5SXRlbVBhdGgiLCJwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwiZHJhZ0VudHJ5SXRlbVR5cGUiLCJnZXRUeXBlIiwicmVtb3ZlTWFya2VyIiwiYWRkTWFya2VyIiwiZHJvcEN1c3RvbUhhbmRsZXIiLCJhYm9ydGVkIiwiZG9uZSIsImRyb3BEcmFnRW50cnlJdGVtIiwiZ2V0UmVmZXJlbmNlIiwicHJvcGVydGllcyIsInJlZmVyZW5jZSIsImdldFJlZmVyZW5jZXMiLCJyZWZlcmVuY2VzIiwiZ2V0TWFya2VyRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtTmFtZSIsImFkZE1hcmtlckVudHJ5SXRlbSIsIm9wZW4iLCJyZW1vdmVNYXJrZXJFbnRyeUl0ZW0iLCJjbG9zZSIsIm5hbWUiLCJ0eXBlIiwiRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsImV4cGxvcmVyIiwiZmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSIsIkRJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsImRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIiwic2V0TWFya2VyRW50cnlJdGVtIiwicmVzZXRNYXJrZXJFbnRyeUl0ZW0iLCJyZXNldERyb3BFbGVtZW50IiwiZHJhZ0VudHJ5SXRlbUV4cGxvcmVyIiwic291cmNlRW50cnlQYXRoIiwic291cmNlRW50cnlQYXRoRnJvbUVudHJ5SXRlbSIsInRhcmdldEVudHJ5UGF0aCIsInBhdGhNYXBzIiwiZ2V0UGF0aE1hcHMiLCJyZW1vdmVEcmFnRW50cnlJdGVtcyIsImN1c3RvbUV2ZW50VHlwZSIsIlJFTU9WRV9DVVNUT01fRVZFTlRfVFlQRSIsImNhbGxDdXN0b21IYW5kbGVyc0FzeW5jIiwiZm9yRWFjaCIsInBhdGhNYXAiLCJyZW1vdmVEcmFnRW50cnlJdGVtIiwiYWRkRHJhZ0VudHJ5SXRlbSIsInNob3dPcGVuUnViYmlzaEJpblNWRyIsImhpZGVDbG9zZWRSdWJiaXNoQmluU1ZHIiwiaGlkZU9wZW5SdWJiaXNoQmluU1ZHIiwic2hvd0Nsb3NlZFJ1YmJpc2hCaW5TVkciLCJkaWRNb3VudCIsImVuYWJsZURyb3AiLCJvbkN1c3RvbURyb3AiLCJvbkN1c3RvbURyYWdPdmVyIiwid2lsbFVubW91bnQiLCJkaXNhYmxlRHJvcCIsIm9mZkN1c3RvbURyb3AiLCJvZmZDdXN0b21EcmFnT3ZlciIsImFkZEZpbGVQYXRoIiwiZmlsZVBhdGgiLCJyZWFkT25seSIsInJlbW92ZUZpbGVQYXRoIiwicmVtb3ZlRW1wdHlQYXJlbnREaXJlY3RvcmllcyIsInJlbW92ZUFsbFBhdGhzIiwiYWRkRGlyZWN0b3J5UGF0aCIsImRpcmVjdG9yeVBhdGgiLCJjb2xsYXBzZWQiLCJyZW1vdmVEaXJlY3RvcnlQYXRoIiwiZ2V0TWFya2VyRW50cnlJdGVtUGF0aCIsImdldFN0YXRlIiwiZ2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJzZXRNYXJrZXJFbnRyeUl0ZW1QYXRoIiwidXBkYXRlU3RhdGUiLCJzZXRNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiY2hpbGRFbGVtZW50cyIsIk9wZW5SdWJiaXNoQmluU1ZHIiwiQ2xvc2VkUnViYmlzaEJpblNWRyIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZHJvcE1peGlucyIsInJ1YmJp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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWJiaXNoQmluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcbmltcG9ydCB7IGRyb3BNaXhpbnMgfSBmcm9tIFwiZWFzeS1kcmFnLWFuZC1kcm9wXCI7XG5cbmltcG9ydCBydWJiaXNoQmluTWl4aW5zIGZyb20gXCIuL21peGlucy9ydWJiaXNoQmluXCI7XG5pbXBvcnQgT3BlblJ1YmJpc2hCaW5TVkcgZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vb3BlblwiO1xuaW1wb3J0IENsb3NlZFJ1YmJpc2hCaW5TVkcgZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vY2xvc2VkXCI7XG5pbXBvcnQgZHJhZ0VudHJ5SXRlbU1peGlucyBmcm9tIFwiLi9taXhpbnMvZHJhZ0VudHJ5SXRlbVwiO1xuaW1wb3J0IEZpbGVOYW1lTWFya2VyRW50cnlJdGVtIGZyb20gXCIuL2l0ZW0vZW50cnkvbWFya2VyL2ZpbGVOYW1lXCI7XG5pbXBvcnQgRGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSBmcm9tIFwiLi9pdGVtL2VudHJ5L21hcmtlci9kaXJlY3RvcnlOYW1lXCI7XG5cbmltcG9ydCB7IFJFTU9WRV9DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuL2N1c3RvbUV2ZW50VHlwZXNcIjtcbmltcG9ydCB7IHNvdXJjZUVudHJ5UGF0aEZyb21FbnRyeUl0ZW0gfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcFwiO1xuaW1wb3J0IHsgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFLCBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFIH0gZnJvbSBcIi4vZW50cnlUeXBlc1wiO1xuXG5jbGFzcyBSdWJiaXNoQmluIGV4dGVuZHMgRWxlbWVudCB7XG4gIGRyYWdPdmVyQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZHJhZ0VsZW1lbnQpID0+IHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gZHJhZ0VsZW1lbnQsICAvLy9cbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSB0aGlzLnJldHJpZXZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICBsZXQgbWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbS5nZXRQYXRoKCksXG4gICAgICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbVBhdGggPSBtYXJrZXJFbnRyeUl0ZW1QYXRoLCAvLy9cbiAgICAgICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7IC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtUGF0aCA9IG51bGw7IC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSB0aGlzOyAgLy8vXG5cbiAgICBpZiAoKG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyICE9PSBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyKSB8fCAobWFya2VyRW50cnlJdGVtUGF0aCAhPT0gcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoKSkge1xuICAgICAgY29uc3QgZHJhZ0VudHJ5SXRlbVR5cGUgPSBkcmFnRW50cnlJdGVtLmdldFR5cGUoKTtcblxuICAgICAgcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlci5yZW1vdmVNYXJrZXIoKTtcblxuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcbiAgICB9XG4gIH1cblxuICBkcm9wQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZHJhZ0VsZW1lbnQsIGFib3J0ZWQsIGRvbmUpID0+IHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gZHJhZ0VsZW1lbnQsICAvLy9cbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSB0aGlzLnJldHJpZXZlTWFya2VyRW50cnlJdGVtKCksXG4gICAgICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKTtcblxuICAgIGlmIChhYm9ydGVkKSB7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlci5yZW1vdmVNYXJrZXIoKTtcblxuICAgICAgZG9uZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuZHJvcERyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sIGRvbmUpO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlKCkge1xuICAgIGNvbnN0IHsgcmVmZXJlbmNlID0gbnVsbCB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZXMoKSB7XG4gICAgY29uc3QgeyByZWZlcmVuY2VzID0gW10gfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiByZWZlcmVuY2VzO1xuICB9XG5cbiAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gZ2V0TWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtO1xuICB9XG5cbiAgYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtTmFtZSA9IG1hcmtlckVudHJ5SXRlbVBhdGg7ICAvLy9cblxuICAgIHRoaXMuYWRkTWFya2VyRW50cnlJdGVtKG1hcmtlckVudHJ5SXRlbU5hbWUsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcblxuICAgIHRoaXMub3BlbigpO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyKCkge1xuICAgIHRoaXMucmVtb3ZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBhZGRNYXJrZXJFbnRyeUl0ZW0obWFya2VyRW50cnlJdGVtTmFtZSwgZHJhZ0VudHJ5SXRlbVR5cGUpIHtcbiAgICBsZXQgbWFya2VyRW50cnlJdGVtO1xuXG4gICAgY29uc3QgbmFtZSA9IG1hcmtlckVudHJ5SXRlbU5hbWUsIC8vL1xuICAgICAgICAgIHR5cGUgPSBkcmFnRW50cnlJdGVtVHlwZTsgIC8vL1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUgOiB7XG4gICAgICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgICBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbSA9XG5cbiAgICAgICAgICAgICAgICA8RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbTsgIC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICAgIGRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gPVxuXG4gICAgICAgICAgICAgICAgPERpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNYXJrZXJFbnRyeUl0ZW0obWFya2VyRW50cnlJdGVtKTtcbiAgfVxuXG4gIHJlbW92ZU1hcmtlckVudHJ5SXRlbSgpIHtcbiAgICByZXNldE1hcmtlckVudHJ5SXRlbSgpO1xuXG4gICAgcmVzZXREcm9wRWxlbWVudCgpO1xuICB9XG5cbiAgZHJvcERyYWdFbnRyeUl0ZW0oZXZlbnQsIGVsZW1lbnQsIGRyYWdFbnRyeUl0ZW0sIGRvbmUpIHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtRXhwbG9yZXIgPSBkcmFnRW50cnlJdGVtLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgc291cmNlRW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoRnJvbUVudHJ5SXRlbShkcmFnRW50cnlJdGVtKSxcbiAgICAgICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsLFxuICAgICAgICAgIHBhdGhNYXBzID0gZHJhZ0VudHJ5SXRlbS5nZXRQYXRoTWFwcyhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCksXG4gICAgICAgICAgZXhwbG9yZXIgPSBkcmFnRW50cnlJdGVtRXhwbG9yZXI7ICAvLy9cblxuICAgIHRoaXMucmVtb3ZlRHJhZ0VudHJ5SXRlbXMoZXZlbnQsIGVsZW1lbnQsIHBhdGhNYXBzLCBleHBsb3JlciwgZG9uZSk7XG4gIH1cblxuICByZW1vdmVEcmFnRW50cnlJdGVtcyhldmVudCwgZWxlbWVudCwgcGF0aE1hcHMsIGV4cGxvcmVyLCBkb25lKSB7XG4gICAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gUkVNT1ZFX0NVU1RPTV9FVkVOVF9UWVBFO1xuXG4gICAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBwYXRoTWFwcywgKCkgPT4ge1xuICAgICAgcGF0aE1hcHMuZm9yRWFjaCgocGF0aE1hcCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpXG4gICAgICB9KTtcblxuICAgICAgcGF0aE1hcHMuZm9yRWFjaCgocGF0aE1hcCkgPT4ge1xuICAgICAgICB0aGlzLmFkZERyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zaG93T3BlblJ1YmJpc2hCaW5TVkcoKTtcbiAgICB0aGlzLmhpZGVDbG9zZWRSdWJiaXNoQmluU1ZHKCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmhpZGVPcGVuUnViYmlzaEJpblNWRygpO1xuICAgIHRoaXMuc2hvd0Nsb3NlZFJ1YmJpc2hCaW5TVkcoKTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIHRoaXMuZW5hYmxlRHJvcCgpO1xuXG4gICAgdGhpcy5vbkN1c3RvbURyb3AodGhpcy5kcm9wQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ092ZXIodGhpcy5kcmFnT3ZlckN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5kaXNhYmxlRHJvcCgpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21Ecm9wKHRoaXMuZHJvcEN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21EcmFnT3Zlcih0aGlzLmRyYWdPdmVyQ3VzdG9tSGFuZGxlcik7XG4gIH1cblxuICBhZGRGaWxlUGF0aChmaWxlUGF0aCwgcmVhZE9ubHkgPSBmYWxzZSkge1xuICAgIC8vL1xuICB9XG5cbiAgcmVtb3ZlRmlsZVBhdGgoZmlsZVBhdGgsIHJlbW92ZUVtcHR5UGFyZW50RGlyZWN0b3JpZXMgPSBmYWxzZSkge1xuICAgIC8vL1xuICB9XG5cbiAgcmVtb3ZlQWxsUGF0aHMoKSB7XG4gICAgLy8vXG4gIH1cblxuICBhZGREaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgsIHJlYWRPbmx5ID0gZmFsc2UsIGNvbGxhcHNlZCA9IHRydWUpIHtcbiAgICAvLy9cbiAgfVxuXG4gIHJlbW92ZURpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCwgcmVtb3ZlRW1wdHlQYXJlbnREaXJlY3RvcmllcyA9IGZhbHNlKSB7XG4gICAgLy8vXG4gIH1cblxuICBnZXRNYXJrZXJFbnRyeUl0ZW1QYXRoKCkge1xuICAgIGNvbnN0IHsgbWFya2VyRW50cnlJdGVtUGF0aCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbVBhdGg7XG4gIH1cblxuICBnZXRNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcigpIHtcbiAgICBjb25zdCB7IG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7XG4gIH1cblxuICBzZXRNYXJrZXJFbnRyeUl0ZW1QYXRoKG1hcmtlckVudHJ5SXRlbVBhdGgpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGhcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlclxuICAgIH0pO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbVBhdGggPSBudWxsLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbnVsbDtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbWFya2VyRW50cnlJdGVtUGF0aCxcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyXG4gICAgfSk7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IHsgT3BlblJ1YmJpc2hCaW5TVkcsIENsb3NlZFJ1YmJpc2hCaW5TVkcgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICByZXR1cm4gKFtcblxuICAgICAgPE9wZW5SdWJiaXNoQmluU1ZHLz4sXG4gICAgICA8Q2xvc2VkUnViYmlzaEJpblNWRy8+XG5cbiAgICBdKTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgdGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICB9XG5cbiAgc3RhdGljIE9wZW5SdWJiaXNoQmluU1ZHID0gT3BlblJ1YmJpc2hCaW5TVkc7XG5cbiAgc3RhdGljIENsb3NlZFJ1YmJpc2hCaW5TVkcgPSBDbG9zZWRSdWJiaXNoQmluU1ZHO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXG4gICAgXCJyZWZlcmVuY2VcIixcbiAgICBcInJlZmVyZW5jZXNcIlxuICBdO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwicnViYmlzaC1iaW5cIlxuICB9O1xufVxuXG5PYmplY3QuYXNzaWduKFJ1YmJpc2hCaW4ucHJvdG90eXBlLCBkcm9wTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUnViYmlzaEJpbi5wcm90b3R5cGUsIHJ1YmJpc2hCaW5NaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihSdWJiaXNoQmluLnByb3RvdHlwZSwgZHJhZ0VudHJ5SXRlbU1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShSdWJiaXNoQmluKWBcbiAgXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIFxuYDtcbiJdLCJuYW1lcyI6WyJSdWJiaXNoQmluIiwiRWxlbWVudCIsImRyYWdPdmVyQ3VzdG9tSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsImRyYWdFbGVtZW50IiwiZHJhZ0VudHJ5SXRlbSIsIm1hcmtlckVudHJ5SXRlbSIsInJldHJpZXZlTWFya2VyRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtUGF0aCIsImdldFBhdGgiLCJtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsImdldEV4cGxvcmVyIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsImRyYWdFbnRyeUl0ZW1UeXBlIiwiZ2V0VHlwZSIsInJlbW92ZU1hcmtlciIsImFkZE1hcmtlciIsImRyb3BDdXN0b21IYW5kbGVyIiwiYWJvcnRlZCIsImRvbmUiLCJkcm9wRHJhZ0VudHJ5SXRlbSIsImdldFJlZmVyZW5jZSIsInJlZmVyZW5jZSIsInByb3BlcnRpZXMiLCJnZXRSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsImdldE1hcmtlckVudHJ5SXRlbSIsIm1hcmtlckVudHJ5SXRlbU5hbWUiLCJhZGRNYXJrZXJFbnRyeUl0ZW0iLCJvcGVuIiwicmVtb3ZlTWFya2VyRW50cnlJdGVtIiwiY2xvc2UiLCJuYW1lIiwidHlwZSIsIkZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJleHBsb3JlciIsImZpbGVOYW1lTWFya2VyRW50cnlJdGVtIiwiRmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIiwiRGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSIsInNldE1hcmtlckVudHJ5SXRlbSIsInJlc2V0TWFya2VyRW50cnlJdGVtIiwicmVzZXREcm9wRWxlbWVudCIsImRyYWdFbnRyeUl0ZW1FeHBsb3JlciIsInNvdXJjZUVudHJ5UGF0aCIsInNvdXJjZUVudHJ5UGF0aEZyb21FbnRyeUl0ZW0iLCJ0YXJnZXRFbnRyeVBhdGgiLCJwYXRoTWFwcyIsImdldFBhdGhNYXBzIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbXMiLCJjdXN0b21FdmVudFR5cGUiLCJSRU1PVkVfQ1VTVE9NX0VWRU5UX1RZUEUiLCJjYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyIsImZvckVhY2giLCJwYXRoTWFwIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbSIsImFkZERyYWdFbnRyeUl0ZW0iLCJzaG93T3BlblJ1YmJpc2hCaW5TVkciLCJoaWRlQ2xvc2VkUnViYmlzaEJpblNWRyIsImhpZGVPcGVuUnViYmlzaEJpblNWRyIsInNob3dDbG9zZWRSdWJiaXNoQmluU1ZHIiwiZGlkTW91bnQiLCJlbmFibGVEcm9wIiwib25DdXN0b21Ecm9wIiwib25DdXN0b21EcmFnT3ZlciIsIndpbGxVbm1vdW50IiwiZGlzYWJsZURyb3AiLCJvZmZDdXN0b21Ecm9wIiwib2ZmQ3VzdG9tRHJhZ092ZXIiLCJhZGRGaWxlUGF0aCIsImZpbGVQYXRoIiwicmVhZE9ubHkiLCJyZW1vdmVGaWxlUGF0aCIsInJlbW92ZUVtcHR5UGFyZW50RGlyZWN0b3JpZXMiLCJyZW1vdmVBbGxQYXRocyIsImFkZERpcmVjdG9yeVBhdGgiLCJkaXJlY3RvcnlQYXRoIiwiY29sbGFwc2VkIiwicmVtb3ZlRGlyZWN0b3J5UGF0aCIsImdldE1hcmtlckVudHJ5SXRlbVBhdGgiLCJnZXRTdGF0ZSIsImdldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwic2V0TWFya2VyRW50cnlJdGVtUGF0aCIsInVwZGF0ZVN0YXRlIiwic2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJzZXRJbml0aWFsU3RhdGUiLCJzZXRTdGF0ZSIsImNoaWxkRWxlbWVudHMiLCJPcGVuUnViYmlzaEJpblNWRyIsIkNsb3NlZFJ1YmJpc2hCaW5TVkciLCJpbml0aWFsaXNlIiwiYXNzaWduQ29udGV4dCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZHJvcE1peGlucyIsInJ1YmJp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