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/index.js CHANGED
@@ -58,26 +58,26 @@ _export(exports, {
58
58
  return _up.default;
59
59
  }
60
60
  });
61
- var _explorer = /*#__PURE__*/ _interop_require_default(require("./explorer"));
62
- var _rubbishBin = /*#__PURE__*/ _interop_require_default(require("./rubbishBin"));
63
- var _name = /*#__PURE__*/ _interop_require_default(require("./span/name"));
64
- var _entries = /*#__PURE__*/ _interop_require_default(require("./list/entries"));
65
- var _toggle = /*#__PURE__*/ _interop_require_default(require("./button/toggle"));
66
- var _marker = /*#__PURE__*/ _interop_require_default(require("./svg/marker"));
67
- var _fileName = /*#__PURE__*/ _interop_require_default(require("./svg/fileName"));
68
- var _up = /*#__PURE__*/ _interop_require_default(require("./svg/toggle/up"));
69
- var _down = /*#__PURE__*/ _interop_require_default(require("./svg/toggle/down"));
70
- var _directoryName = /*#__PURE__*/ _interop_require_default(require("./svg/directoryName"));
71
- var _open = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/open"));
72
- var _closed = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/closed"));
73
- var _fileName1 = /*#__PURE__*/ _interop_require_default(require("./item/entry/drag/fileName"));
74
- var _fileName2 = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/fileName"));
75
- var _directoryName1 = /*#__PURE__*/ _interop_require_default(require("./item/entry/drag/directoryName"));
76
- var _directoryName2 = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/directoryName"));
61
+ const _explorer = /*#__PURE__*/ _interop_require_default(require("./explorer"));
62
+ const _rubbishBin = /*#__PURE__*/ _interop_require_default(require("./rubbishBin"));
63
+ const _name = /*#__PURE__*/ _interop_require_default(require("./span/name"));
64
+ const _entries = /*#__PURE__*/ _interop_require_default(require("./list/entries"));
65
+ const _toggle = /*#__PURE__*/ _interop_require_default(require("./button/toggle"));
66
+ const _marker = /*#__PURE__*/ _interop_require_default(require("./svg/marker"));
67
+ const _fileName = /*#__PURE__*/ _interop_require_default(require("./svg/fileName"));
68
+ const _up = /*#__PURE__*/ _interop_require_default(require("./svg/toggle/up"));
69
+ const _down = /*#__PURE__*/ _interop_require_default(require("./svg/toggle/down"));
70
+ const _directoryName = /*#__PURE__*/ _interop_require_default(require("./svg/directoryName"));
71
+ const _open = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/open"));
72
+ const _closed = /*#__PURE__*/ _interop_require_default(require("./svg/rubbishBin/closed"));
73
+ const _fileName1 = /*#__PURE__*/ _interop_require_default(require("./item/entry/drag/fileName"));
74
+ const _fileName2 = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/fileName"));
75
+ const _directoryName1 = /*#__PURE__*/ _interop_require_default(require("./item/entry/drag/directoryName"));
76
+ const _directoryName2 = /*#__PURE__*/ _interop_require_default(require("./item/entry/marker/directoryName"));
77
77
  function _interop_require_default(obj) {
78
78
  return obj && obj.__esModule ? obj : {
79
79
  default: obj
80
80
  };
81
81
  }
82
82
 
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFeHBsb3JlciB9IGZyb20gXCIuL2V4cGxvcmVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJ1YmJpc2hCaW4gfSBmcm9tIFwiLi9ydWJiaXNoQmluXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgTmFtZVNwYW4gfSBmcm9tIFwiLi9zcGFuL25hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW50cmllc0xpc3QgfSBmcm9tIFwiLi9saXN0L2VudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9nZ2xlQnV0dG9uIH0gZnJvbSBcIi4vYnV0dG9uL3RvZ2dsZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1hcmtlclNWRyB9IGZyb20gXCIuL3N2Zy9tYXJrZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZU5hbWVTVkcgfSBmcm9tIFwiLi9zdmcvZmlsZU5hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVXBUb2dnbGVTVkcgfSBmcm9tIFwiLi9zdmcvdG9nZ2xlL3VwXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERvd25Ub2dnbGVTVkcgfSBmcm9tIFwiLi9zdmcvdG9nZ2xlL2Rvd25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGlyZWN0b3J5TmFtZVNWRyB9IGZyb20gXCIuL3N2Zy9kaXJlY3RvcnlOYW1lXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9wZW5SdWJiaXNoQmluU1ZHIH0gZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vb3BlblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9zZWRSdWJiaXNoQmluU1ZHIH0gZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vY2xvc2VkXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZU5hbWVEcmFnRW50cnlJdGVtIH0gZnJvbSBcIi4vaXRlbS9lbnRyeS9kcmFnL2ZpbGVOYW1lXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVOYW1lTWFya2VyRW50cnlJdGVtIH0gZnJvbSBcIi4vaXRlbS9lbnRyeS9tYXJrZXIvZmlsZU5hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gfSBmcm9tIFwiLi9pdGVtL2VudHJ5L2RyYWcvZGlyZWN0b3J5TmFtZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIH0gZnJvbSBcIi4vaXRlbS9lbnRyeS9tYXJrZXIvZGlyZWN0b3J5TmFtZVwiO1xuIl0sIm5hbWVzIjpbIkNsb3NlZFJ1YmJpc2hCaW5TVkciLCJEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsIkRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJEaXJlY3RvcnlOYW1lU1ZHIiwiRG93blRvZ2dsZVNWRyIsIkVudHJpZXNMaXN0IiwiRXhwbG9yZXIiLCJGaWxlTmFtZURyYWdFbnRyeUl0ZW0iLCJGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSIsIkZpbGVOYW1lU1ZHIiwiTWFya2VyU1ZHIiwiTmFtZVNwYW4iLCJPcGVuUnViYmlzaEJpblNWRyIsIlJ1YmJpc2hCaW4iLCJUb2dnbGVCdXR0b24iLCJVcFRvZ2dsZVNWRyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBZW9CQTtlQUFBQSxlQUFtQjs7UUFJbkJDO2VBQUFBLHVCQUEwQjs7UUFDMUJDO2VBQUFBLHVCQUE0Qjs7UUFQNUJDO2VBQUFBLHNCQUFnQjs7UUFEaEJDO2VBQUFBLGFBQWE7O1FBTmJDO2VBQUFBLGdCQUFXOztRQUpYQztlQUFBQSxpQkFBUTs7UUFlUkM7ZUFBQUEsa0JBQXFCOztRQUNyQkM7ZUFBQUEsa0JBQXVCOztRQVJ2QkM7ZUFBQUEsaUJBQVc7O1FBRFhDO2VBQUFBLGVBQVM7O1FBSlRDO2VBQUFBLGFBQVE7O1FBU1JDO2VBQUFBLGFBQWlCOztRQVhqQkM7ZUFBQUEsbUJBQVU7O1FBSVZDO2VBQUFBLGVBQVk7O1FBSVpDO2VBQUFBLFdBQVc7OzsrREFUSztpRUFDRTsyREFFRjs4REFDRzs2REFDQzs2REFFSDsrREFDRTt5REFDQTsyREFDRTtvRUFDRzsyREFDQzs2REFDRTtnRUFFRTtnRUFDRTtxRUFDRztxRUFDRSJ9
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFeHBsb3JlciB9IGZyb20gXCIuL2V4cGxvcmVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJ1YmJpc2hCaW4gfSBmcm9tIFwiLi9ydWJiaXNoQmluXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgTmFtZVNwYW4gfSBmcm9tIFwiLi9zcGFuL25hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW50cmllc0xpc3QgfSBmcm9tIFwiLi9saXN0L2VudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9nZ2xlQnV0dG9uIH0gZnJvbSBcIi4vYnV0dG9uL3RvZ2dsZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1hcmtlclNWRyB9IGZyb20gXCIuL3N2Zy9tYXJrZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZU5hbWVTVkcgfSBmcm9tIFwiLi9zdmcvZmlsZU5hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVXBUb2dnbGVTVkcgfSBmcm9tIFwiLi9zdmcvdG9nZ2xlL3VwXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERvd25Ub2dnbGVTVkcgfSBmcm9tIFwiLi9zdmcvdG9nZ2xlL2Rvd25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGlyZWN0b3J5TmFtZVNWRyB9IGZyb20gXCIuL3N2Zy9kaXJlY3RvcnlOYW1lXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9wZW5SdWJiaXNoQmluU1ZHIH0gZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vb3BlblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9zZWRSdWJiaXNoQmluU1ZHIH0gZnJvbSBcIi4vc3ZnL3J1YmJpc2hCaW4vY2xvc2VkXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZU5hbWVEcmFnRW50cnlJdGVtIH0gZnJvbSBcIi4vaXRlbS9lbnRyeS9kcmFnL2ZpbGVOYW1lXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVOYW1lTWFya2VyRW50cnlJdGVtIH0gZnJvbSBcIi4vaXRlbS9lbnRyeS9tYXJrZXIvZmlsZU5hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gfSBmcm9tIFwiLi9pdGVtL2VudHJ5L2RyYWcvZGlyZWN0b3J5TmFtZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIH0gZnJvbSBcIi4vaXRlbS9lbnRyeS9tYXJrZXIvZGlyZWN0b3J5TmFtZVwiO1xuIl0sIm5hbWVzIjpbIkNsb3NlZFJ1YmJpc2hCaW5TVkciLCJEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsIkRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJEaXJlY3RvcnlOYW1lU1ZHIiwiRG93blRvZ2dsZVNWRyIsIkVudHJpZXNMaXN0IiwiRXhwbG9yZXIiLCJGaWxlTmFtZURyYWdFbnRyeUl0ZW0iLCJGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSIsIkZpbGVOYW1lU1ZHIiwiTWFya2VyU1ZHIiwiTmFtZVNwYW4iLCJPcGVuUnViYmlzaEJpblNWRyIsIlJ1YmJpc2hCaW4iLCJUb2dnbGVCdXR0b24iLCJVcFRvZ2dsZVNWRyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBZW9CQTtlQUFBQSxlQUFtQjs7UUFJbkJDO2VBQUFBLHVCQUEwQjs7UUFDMUJDO2VBQUFBLHVCQUE0Qjs7UUFQNUJDO2VBQUFBLHNCQUFnQjs7UUFEaEJDO2VBQUFBLGFBQWE7O1FBTmJDO2VBQUFBLGdCQUFXOztRQUpYQztlQUFBQSxpQkFBUTs7UUFlUkM7ZUFBQUEsa0JBQXFCOztRQUNyQkM7ZUFBQUEsa0JBQXVCOztRQVJ2QkM7ZUFBQUEsaUJBQVc7O1FBRFhDO2VBQUFBLGVBQVM7O1FBSlRDO2VBQUFBLGFBQVE7O1FBU1JDO2VBQUFBLGFBQWlCOztRQVhqQkM7ZUFBQUEsbUJBQVU7O1FBSVZDO2VBQUFBLGVBQVk7O1FBSVpDO2VBQUFBLFdBQVc7OztpRUFUSzttRUFDRTs2REFFRjtnRUFDRzsrREFDQzsrREFFSDtpRUFDRTsyREFDQTs2REFDRTtzRUFDRzs2REFDQzsrREFDRTtrRUFFRTtrRUFDRTt1RUFDRzt1RUFDRSJ9
@@ -8,304 +8,145 @@ Object.defineProperty(exports, "default", {
8
8
  return DirectoryNameDragEntryItem;
9
9
  }
10
10
  });
11
- var _easydraganddrop = require("easy-drag-and-drop");
12
- var _necessary = require("necessary");
13
- var _toggle = /*#__PURE__*/ _interop_require_default(require("../../../button/toggle"));
14
- var _drag = /*#__PURE__*/ _interop_require_default(require("../../../item/entry/drag"));
15
- var _directoryName = /*#__PURE__*/ _interop_require_default(require("../../../svg/directoryName"));
16
- var _directoryName1 = /*#__PURE__*/ _interop_require_default(require("../../../div/item/entry/drag/directoryName"));
17
- var _pathMap = require("../../../utilities/pathMap");
18
- var _entryTypes = require("../../../entryTypes");
19
- function _assert_this_initialized(self) {
20
- if (self === void 0) {
21
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
22
- }
23
- return self;
24
- }
25
- function _call_super(_this, derived, args) {
26
- derived = _get_prototype_of(derived);
27
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
11
+ const _easydraganddrop = require("easy-drag-and-drop");
12
+ const _necessary = require("necessary");
13
+ const _toggle = /*#__PURE__*/ _interop_require_default(require("../../../button/toggle"));
14
+ const _drag = /*#__PURE__*/ _interop_require_default(require("../../../item/entry/drag"));
15
+ const _directoryName = /*#__PURE__*/ _interop_require_default(require("../../../svg/directoryName"));
16
+ const _directoryName1 = /*#__PURE__*/ _interop_require_default(require("../../../div/item/entry/drag/directoryName"));
17
+ const _pathMap = require("../../../utilities/pathMap");
18
+ const _entryTypes = require("../../../entryTypes");
19
+ function _interop_require_default(obj) {
20
+ return obj && obj.__esModule ? obj : {
21
+ default: obj
22
+ };
28
23
  }
29
- function _class_call_check(instance, Constructor) {
30
- if (!(instance instanceof Constructor)) {
31
- throw new TypeError("Cannot call a class as a function");
24
+ const { concatenatePaths } = _necessary.pathUtilities;
25
+ class DirectoryNameDragEntryItem extends _drag.default {
26
+ dragOverCustomHandler = (event, element, dragElement)=>{
27
+ const collapsed = this.isCollapsed();
28
+ if (collapsed) {
29
+ return;
30
+ }
31
+ const path = this.getPath(), explorer = this.getExplorer(), dragEntryItem = dragElement, markerEntryItem = this.retrieveMarkerEntryItem(), dragEntryItemName = dragEntryItem.getName();
32
+ let markerEntryItemPath = markerEntryItem.getPath(), markerEntryItemExplorer = markerEntryItem.getExplorer(), previousMarkerEntryItemPath = markerEntryItemPath, previousMarkerEntryItemExplorer = markerEntryItemExplorer; ///
33
+ markerEntryItemPath = concatenatePaths(path, dragEntryItemName);
34
+ markerEntryItemExplorer = explorer; ///
35
+ if (markerEntryItemExplorer !== previousMarkerEntryItemExplorer || markerEntryItemPath !== previousMarkerEntryItemPath) {
36
+ const dragEntryItemType = dragEntryItem.getType();
37
+ previousMarkerEntryItemExplorer.removeMarker();
38
+ markerEntryItemExplorer.addMarker(markerEntryItemPath, dragEntryItemType);
39
+ }
40
+ };
41
+ dropCustomHandler = (event, element, dragElement, aborted, done)=>{
42
+ const dragEntryItem = dragElement, markerEntryItem = this.retrieveMarkerEntryItem(), markerEntryItemExplorer = markerEntryItem.getExplorer();
43
+ if (aborted) {
44
+ markerEntryItemExplorer.removeMarker();
45
+ done();
46
+ return;
47
+ }
48
+ markerEntryItemExplorer.dropDragEntryItem(event, element, dragEntryItem, done);
49
+ };
50
+ doubleClick(event, element) {
51
+ let collapsed = this.isCollapsed();
52
+ collapsed = !collapsed;
53
+ collapsed ? this.collapse() : this.expand();
32
54
  }
33
- }
34
- function _defineProperties(target, props) {
35
- for(var i = 0; i < props.length; i++){
36
- var descriptor = props[i];
37
- descriptor.enumerable = descriptor.enumerable || false;
38
- descriptor.configurable = true;
39
- if ("value" in descriptor) descriptor.writable = true;
40
- Object.defineProperty(target, descriptor.key, descriptor);
55
+ singleClick(event, element) {
56
+ this.expand();
41
57
  }
42
- }
43
- function _create_class(Constructor, protoProps, staticProps) {
44
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
45
- if (staticProps) _defineProperties(Constructor, staticProps);
46
- return Constructor;
47
- }
48
- function _define_property(obj, key, value) {
49
- if (key in obj) {
50
- Object.defineProperty(obj, key, {
51
- value: value,
52
- enumerable: true,
53
- configurable: true,
54
- writable: true
55
- });
56
- } else {
57
- obj[key] = value;
58
+ isBefore(entryItem) {
59
+ let before;
60
+ const entryItemType = entryItem.getType();
61
+ switch(entryItemType){
62
+ case _entryTypes.FILE_NAME_DRAG_ENTRY_TYPE:
63
+ case _entryTypes.FILE_NAME_MARKER_ENTRY_TYPE:
64
+ case _entryTypes.DIRECTORY_NAME_MARKER_ENTRY_TYPE:
65
+ before = true;
66
+ break;
67
+ case _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE:
68
+ const name = this.getName(), entryItemName = entryItem.getName();
69
+ before = name.localeCompare(entryItemName) < 0;
70
+ break;
71
+ }
72
+ return before;
58
73
  }
59
- return obj;
60
- }
61
- function _get(target, property, receiver) {
62
- if (typeof Reflect !== "undefined" && Reflect.get) {
63
- _get = Reflect.get;
64
- } else {
65
- _get = function get(target, property, receiver) {
66
- var base = _super_prop_base(target, property);
67
- if (!base) return;
68
- var desc = Object.getOwnPropertyDescriptor(base, property);
69
- if (desc.get) {
70
- return desc.get.call(receiver || target);
71
- }
72
- return desc.value;
73
- };
74
+ isTopmost() {
75
+ const { topmost } = this.properties;
76
+ return topmost;
74
77
  }
75
- return _get(target, property, receiver || target);
76
- }
77
- function _get_prototype_of(o) {
78
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
79
- return o.__proto__ || Object.getPrototypeOf(o);
80
- };
81
- return _get_prototype_of(o);
82
- }
83
- function _inherits(subClass, superClass) {
84
- if (typeof superClass !== "function" && superClass !== null) {
85
- throw new TypeError("Super expression must either be null or a function");
78
+ isCollapsed() {
79
+ const entriesListCollapsed = this.isEntriesListCollapsed(), collapsed = entriesListCollapsed; ///
80
+ return collapsed;
86
81
  }
87
- subClass.prototype = Object.create(superClass && superClass.prototype, {
88
- constructor: {
89
- value: subClass,
90
- writable: true,
91
- configurable: true
92
- }
93
- });
94
- if (superClass) _set_prototype_of(subClass, superClass);
95
- }
96
- function _interop_require_default(obj) {
97
- return obj && obj.__esModule ? obj : {
98
- default: obj
99
- };
100
- }
101
- function _possible_constructor_return(self, call) {
102
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
103
- return call;
82
+ getReference() {
83
+ const explorer = this.getExplorer(), reference = explorer.getReference();
84
+ return reference;
104
85
  }
105
- return _assert_this_initialized(self);
106
- }
107
- function _set_prototype_of(o, p) {
108
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
109
- o.__proto__ = p;
110
- return o;
111
- };
112
- return _set_prototype_of(o, p);
113
- }
114
- function _super_prop_base(object, property) {
115
- while(!Object.prototype.hasOwnProperty.call(object, property)){
116
- object = _get_prototype_of(object);
117
- if (object === null) break;
86
+ getReferences() {
87
+ const explorer = this.getExplorer(), references = explorer.getReferences();
88
+ return references;
118
89
  }
119
- return object;
120
- }
121
- function _type_of(obj) {
122
- "@swc/helpers - typeof";
123
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
124
- }
125
- function _is_native_reflect_construct() {
126
- try {
127
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
128
- } catch (_) {}
129
- return (_is_native_reflect_construct = function() {
130
- return !!result;
131
- })();
132
- }
133
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths;
134
- var DirectoryNameDragEntryItem = /*#__PURE__*/ function(DragEntryItem) {
135
- _inherits(DirectoryNameDragEntryItem, DragEntryItem);
136
- function DirectoryNameDragEntryItem() {
137
- _class_call_check(this, DirectoryNameDragEntryItem);
138
- var _this;
139
- _this = _call_super(this, DirectoryNameDragEntryItem, arguments), _define_property(_this, "dragOverCustomHandler", function(event, element, dragElement) {
140
- var collapsed = _this.isCollapsed();
141
- if (collapsed) {
142
- return;
143
- }
144
- var path = _this.getPath(), explorer = _this.getExplorer(), dragEntryItem = dragElement, markerEntryItem = _this.retrieveMarkerEntryItem(), dragEntryItemName = dragEntryItem.getName();
145
- var markerEntryItemPath = markerEntryItem.getPath(), markerEntryItemExplorer = markerEntryItem.getExplorer(), previousMarkerEntryItemPath = markerEntryItemPath, previousMarkerEntryItemExplorer = markerEntryItemExplorer; ///
146
- markerEntryItemPath = concatenatePaths(path, dragEntryItemName);
147
- markerEntryItemExplorer = explorer; ///
148
- if (markerEntryItemExplorer !== previousMarkerEntryItemExplorer || markerEntryItemPath !== previousMarkerEntryItemPath) {
149
- var dragEntryItemType = dragEntryItem.getType();
150
- previousMarkerEntryItemExplorer.removeMarker();
151
- markerEntryItemExplorer.addMarker(markerEntryItemPath, dragEntryItemType);
152
- }
153
- }), _define_property(_this, "dropCustomHandler", function(event, element, dragElement, aborted, done) {
154
- var dragEntryItem = dragElement, markerEntryItem = _this.retrieveMarkerEntryItem(), markerEntryItemExplorer = markerEntryItem.getExplorer();
155
- if (aborted) {
156
- markerEntryItemExplorer.removeMarker();
157
- done();
158
- return;
159
- }
160
- markerEntryItemExplorer.dropDragEntryItem(event, element, dragEntryItem, done);
90
+ retrievePathMaps(sourceEntryPath, targetEntryPath, pathMaps) {
91
+ const name = this.getName(), pathMap = this.getPathMap(sourceEntryPath, targetEntryPath), nameSpanName = this.getNameSpanName();
92
+ pathMaps.push(pathMap);
93
+ sourceEntryPath = (0, _pathMap.adjustSourceEntryPath)(sourceEntryPath, name);
94
+ targetEntryPath = (0, _pathMap.adjustTargetEntryPath)(targetEntryPath, nameSpanName);
95
+ this.forEachDragEntryItem((dragEntryItem)=>{
96
+ dragEntryItem.retrievePathMaps(sourceEntryPath, targetEntryPath, pathMaps);
161
97
  });
162
- return _this;
163
98
  }
164
- _create_class(DirectoryNameDragEntryItem, [
165
- {
166
- key: "doubleClick",
167
- value: function doubleClick(event, element) {
168
- var collapsed = this.isCollapsed();
169
- collapsed = !collapsed;
170
- collapsed ? this.collapse() : this.expand();
171
- }
172
- },
173
- {
174
- key: "singleClick",
175
- value: function singleClick(event, element) {
176
- this.expand();
177
- }
178
- },
179
- {
180
- key: "isBefore",
181
- value: function isBefore(entryItem) {
182
- var before;
183
- var entryItemType = entryItem.getType();
184
- switch(entryItemType){
185
- case _entryTypes.FILE_NAME_DRAG_ENTRY_TYPE:
186
- case _entryTypes.FILE_NAME_MARKER_ENTRY_TYPE:
187
- case _entryTypes.DIRECTORY_NAME_MARKER_ENTRY_TYPE:
188
- before = true;
189
- break;
190
- case _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE:
191
- var name = this.getName(), entryItemName = entryItem.getName();
192
- before = name.localeCompare(entryItemName) < 0;
193
- break;
194
- }
195
- return before;
196
- }
197
- },
198
- {
199
- key: "isTopmost",
200
- value: function isTopmost() {
201
- var topmost = this.properties.topmost;
202
- return topmost;
203
- }
204
- },
205
- {
206
- key: "isCollapsed",
207
- value: function isCollapsed() {
208
- var entriesListCollapsed = this.isEntriesListCollapsed(), collapsed = entriesListCollapsed; ///
209
- return collapsed;
210
- }
211
- },
212
- {
213
- key: "getReference",
214
- value: function getReference() {
215
- var explorer = this.getExplorer(), reference = explorer.getReference();
216
- return reference;
217
- }
218
- },
219
- {
220
- key: "getReferences",
221
- value: function getReferences() {
222
- var explorer = this.getExplorer(), references = explorer.getReferences();
223
- return references;
224
- }
225
- },
226
- {
227
- key: "retrievePathMaps",
228
- value: function retrievePathMaps(sourceEntryPath, targetEntryPath, pathMaps) {
229
- var name = this.getName(), pathMap = this.getPathMap(sourceEntryPath, targetEntryPath), nameSpanName = this.getNameSpanName();
230
- pathMaps.push(pathMap);
231
- sourceEntryPath = (0, _pathMap.adjustSourceEntryPath)(sourceEntryPath, name);
232
- targetEntryPath = (0, _pathMap.adjustTargetEntryPath)(targetEntryPath, nameSpanName);
233
- this.forEachDragEntryItem(function(dragEntryItem) {
234
- dragEntryItem.retrievePathMaps(sourceEntryPath, targetEntryPath, pathMaps);
235
- });
236
- }
237
- },
238
- {
239
- key: "removeFromExplorer",
240
- value: function removeFromExplorer() {
241
- var path = this.getPath(), explorer = this.getExplorer(), directoryPath = path; ///
242
- explorer.removeDirectoryPath(directoryPath);
243
- }
244
- },
245
- {
246
- key: "collapse",
247
- value: function collapse() {
248
- this.collapseEntriesList();
249
- this.collapseToggleButton();
250
- }
251
- },
252
- {
253
- key: "expand",
254
- value: function expand() {
255
- this.expandEntriesList();
256
- this.expandToggleButton();
257
- }
258
- },
259
- {
260
- key: "didMount",
261
- value: function didMount() {
262
- var collapsed = this.properties.collapsed;
263
- collapsed ? this.collapse() : this.expand();
264
- this.enableDrop();
265
- this.onCustomDrop(this.dropCustomHandler);
266
- this.onCustomDragOver(this.dragOverCustomHandler);
267
- _get(_get_prototype_of(DirectoryNameDragEntryItem.prototype), "didMount", this).call(this);
268
- }
269
- },
270
- {
271
- key: "willUnmount",
272
- value: function willUnmount() {
273
- this.disableDrop();
274
- this.offCustomDrop(this.dropCustomHandler);
275
- this.offCustomDragOver(this.dragOverCustomHandler);
276
- _get(_get_prototype_of(DirectoryNameDragEntryItem.prototype), "willUnmount", this).call(this);
277
- }
278
- },
279
- {
280
- key: "childElements",
281
- value: function childElements() {
282
- var name = this.properties.name, _this_constructor = this.constructor, NameSpan = _this_constructor.NameSpan, _$ToggleButton = _this_constructor.ToggleButton, _$DirectoryNameSVG = _this_constructor.DirectoryNameSVG, explorer = this.getExplorer(), EntriesList = explorer.getEntriesList();
283
- return [
284
- /*#__PURE__*/ React.createElement(_directoryName1.default, {
285
- name: name,
286
- explorer: explorer,
287
- NameSpan: NameSpan,
288
- ToggleButton: _$ToggleButton,
289
- DirectoryNameSVG: _$DirectoryNameSVG
290
- }),
291
- /*#__PURE__*/ React.createElement(EntriesList, {
292
- explorer: explorer
293
- })
294
- ];
295
- }
296
- }
297
- ]);
298
- return DirectoryNameDragEntryItem;
299
- }(_drag.default);
300
- _define_property(DirectoryNameDragEntryItem, "type", _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE);
301
- _define_property(DirectoryNameDragEntryItem, "ToggleButton", _toggle.default);
302
- _define_property(DirectoryNameDragEntryItem, "DirectoryNameSVG", _directoryName.default);
303
- _define_property(DirectoryNameDragEntryItem, "ignoredProperties", [
304
- "topmost"
305
- ]);
306
- _define_property(DirectoryNameDragEntryItem, "defaultProperties", {
307
- className: "directory-name"
308
- });
99
+ removeFromExplorer() {
100
+ const path = this.getPath(), explorer = this.getExplorer(), directoryPath = path; ///
101
+ explorer.removeDirectoryPath(directoryPath);
102
+ }
103
+ collapse() {
104
+ this.collapseEntriesList();
105
+ this.collapseToggleButton();
106
+ }
107
+ expand() {
108
+ this.expandEntriesList();
109
+ this.expandToggleButton();
110
+ }
111
+ didMount() {
112
+ const { collapsed } = this.properties;
113
+ collapsed ? this.collapse() : this.expand();
114
+ this.enableDrop();
115
+ this.onCustomDrop(this.dropCustomHandler);
116
+ this.onCustomDragOver(this.dragOverCustomHandler);
117
+ super.didMount();
118
+ }
119
+ willUnmount() {
120
+ this.disableDrop();
121
+ this.offCustomDrop(this.dropCustomHandler);
122
+ this.offCustomDragOver(this.dragOverCustomHandler);
123
+ super.willUnmount();
124
+ }
125
+ childElements() {
126
+ const { name } = this.properties, { NameSpan, ToggleButton, DirectoryNameSVG } = this.constructor, explorer = this.getExplorer(), EntriesList = explorer.getEntriesList();
127
+ return [
128
+ /*#__PURE__*/ React.createElement(_directoryName1.default, {
129
+ name: name,
130
+ explorer: explorer,
131
+ NameSpan: NameSpan,
132
+ ToggleButton: ToggleButton,
133
+ DirectoryNameSVG: DirectoryNameSVG
134
+ }),
135
+ /*#__PURE__*/ React.createElement(EntriesList, {
136
+ explorer: explorer
137
+ })
138
+ ];
139
+ }
140
+ static type = _entryTypes.DIRECTORY_NAME_DRAG_ENTRY_TYPE;
141
+ static ToggleButton = _toggle.default;
142
+ static DirectoryNameSVG = _directoryName.default;
143
+ static ignoredProperties = [
144
+ "topmost"
145
+ ];
146
+ static defaultProperties = {
147
+ className: "directory-name"
148
+ };
149
+ }
309
150
  Object.assign(DirectoryNameDragEntryItem.prototype, _easydraganddrop.dropMixins);
310
151
 
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pdGVtL2VudHJ5L2RyYWcvZGlyZWN0b3J5TmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZHJvcE1peGlucyB9IGZyb20gXCJlYXN5LWRyYWctYW5kLWRyb3BcIjtcbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBUb2dnbGVCdXR0b24gZnJvbSBcIi4uLy4uLy4uL2J1dHRvbi90b2dnbGVcIjtcbmltcG9ydCBEcmFnRW50cnlJdGVtIGZyb20gXCIuLi8uLi8uLi9pdGVtL2VudHJ5L2RyYWdcIjtcbmltcG9ydCBEaXJlY3RvcnlOYW1lU1ZHIGZyb20gXCIuLi8uLi8uLi9zdmcvZGlyZWN0b3J5TmFtZVwiO1xuaW1wb3J0IERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtRGl2IGZyb20gXCIuLi8uLi8uLi9kaXYvaXRlbS9lbnRyeS9kcmFnL2RpcmVjdG9yeU5hbWVcIjtcblxuaW1wb3J0IHsgYWRqdXN0U291cmNlRW50cnlQYXRoLCBhZGp1c3RUYXJnZXRFbnRyeVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL3BhdGhNYXBcIjtcbmltcG9ydCB7IEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUsIEZJTEVfTkFNRV9NQVJLRVJfRU5UUllfVFlQRSwgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFLCBESVJFQ1RPUllfTkFNRV9NQVJLRVJfRU5UUllfVFlQRSB9IGZyb20gXCIuLi8uLi8uLi9lbnRyeVR5cGVzXCI7XG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gZXh0ZW5kcyBEcmFnRW50cnlJdGVtIHtcblx0ZHJhZ092ZXJDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCBkcmFnRWxlbWVudCkgPT4ge1xuXHRcdGNvbnN0IGNvbGxhcHNlZCA9IHRoaXMuaXNDb2xsYXBzZWQoKTtcblxuXHRcdGlmIChjb2xsYXBzZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKCksXG5cdFx0XHRcdFx0ZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG5cdFx0XHRcdFx0ZHJhZ0VudHJ5SXRlbSA9IGRyYWdFbGVtZW50LCAgLy8vXG5cdFx0XHRcdFx0bWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSgpLFxuXHRcdFx0XHRcdGRyYWdFbnRyeUl0ZW1OYW1lID0gZHJhZ0VudHJ5SXRlbS5nZXROYW1lKCk7XG5cblx0XHRsZXQgbWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbS5nZXRQYXRoKCksXG5cdFx0XHRcdG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtLmdldEV4cGxvcmVyKCksXG5cdFx0XHRcdHByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbVBhdGgsIC8vL1xuXHRcdFx0XHRwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7IC8vL1xuXG5cdFx0bWFya2VyRW50cnlJdGVtUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocGF0aCwgZHJhZ0VudHJ5SXRlbU5hbWUpO1xuXG5cdFx0bWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBleHBsb3JlcjsgIC8vL1xuXG5cdFx0aWYgKChtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciAhPT0gcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcikgfHwgKG1hcmtlckVudHJ5SXRlbVBhdGggIT09IHByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCkpIHtcblx0XHRcdGNvbnN0IGRyYWdFbnRyeUl0ZW1UeXBlID0gZHJhZ0VudHJ5SXRlbS5nZXRUeXBlKCk7XG5cblx0XHRcdHByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIucmVtb3ZlTWFya2VyKCk7XG5cblx0XHRcdG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmFkZE1hcmtlcihtYXJrZXJFbnRyeUl0ZW1QYXRoLCBkcmFnRW50cnlJdGVtVHlwZSk7XG5cdFx0fVxuXHR9XG5cblx0ZHJvcEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIGRyYWdFbGVtZW50LCBhYm9ydGVkLCBkb25lKSA9PiB7XG4gICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGRyYWdFbGVtZW50LCAgLy8vXG4gICAgICAgICAgbWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSgpLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtLmdldEV4cGxvcmVyKCk7XG5cbiAgICBpZiAoYWJvcnRlZCkge1xuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmRyb3BEcmFnRW50cnlJdGVtKGV2ZW50LCBlbGVtZW50LCBkcmFnRW50cnlJdGVtLCBkb25lKTtcbiAgfVxuXG5cdGRvdWJsZUNsaWNrKGV2ZW50LCBlbGVtZW50KSB7XG5cdFx0bGV0IGNvbGxhcHNlZCA9IHRoaXMuaXNDb2xsYXBzZWQoKTtcblxuXHRcdGNvbGxhcHNlZCA9ICFjb2xsYXBzZWQ7XG5cblx0XHRjb2xsYXBzZWQgP1xuXHRcdFx0dGhpcy5jb2xsYXBzZSgpIDpcblx0XHRcdFx0dGhpcy5leHBhbmQoKTtcblx0fVxuXG5cdHNpbmdsZUNsaWNrKGV2ZW50LCBlbGVtZW50KSB7XG5cdFx0dGhpcy5leHBhbmQoKTtcblx0fVxuXG5cdGlzQmVmb3JlKGVudHJ5SXRlbSkge1xuXHRcdGxldCBiZWZvcmU7XG5cblx0XHRjb25zdCBlbnRyeUl0ZW1UeXBlID0gZW50cnlJdGVtLmdldFR5cGUoKTtcblxuXHRcdHN3aXRjaCAoZW50cnlJdGVtVHlwZSkge1xuXHRcdFx0Y2FzZSBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFOlxuXHRcdFx0Y2FzZSBGSUxFX05BTUVfTUFSS0VSX0VOVFJZX1RZUEU6XG5cdFx0XHRjYXNlIERJUkVDVE9SWV9OQU1FX01BUktFUl9FTlRSWV9UWVBFOlxuXHRcdFx0XHRiZWZvcmUgPSB0cnVlO1xuXG5cdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRjYXNlIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRTpcblx0XHRcdFx0Y29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuXHRcdFx0XHRcdFx0XHRlbnRyeUl0ZW1OYW1lID0gZW50cnlJdGVtLmdldE5hbWUoKTtcblxuXHRcdFx0XHRiZWZvcmUgPSAobmFtZS5sb2NhbGVDb21wYXJlKGVudHJ5SXRlbU5hbWUpIDwgMCk7XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGJlZm9yZTtcblx0fVxuXG5cdGlzVG9wbW9zdCgpIHtcblx0XHRjb25zdCB7IHRvcG1vc3QgfSA9IHRoaXMucHJvcGVydGllcztcblxuXHRcdHJldHVybiB0b3Btb3N0O1xuXHR9XG5cblx0aXNDb2xsYXBzZWQoKSB7XG5cdFx0Y29uc3QgZW50cmllc0xpc3RDb2xsYXBzZWQgPSB0aGlzLmlzRW50cmllc0xpc3RDb2xsYXBzZWQoKSxcblx0XHRcdFx0XHRjb2xsYXBzZWQgPSBlbnRyaWVzTGlzdENvbGxhcHNlZDtcdC8vL1xuXG5cdFx0cmV0dXJuIGNvbGxhcHNlZDtcblx0fVxuXG5cdGdldFJlZmVyZW5jZSgpIHtcblx0XHRjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcblx0XHRcdFx0XHRyZWZlcmVuY2UgPSBleHBsb3Jlci5nZXRSZWZlcmVuY2UoKTtcblxuXHRcdHJldHVybiByZWZlcmVuY2U7XG5cdH1cblxuXHRnZXRSZWZlcmVuY2VzKCkge1xuXHRcdGNvbnN0IGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuXHRcdFx0XHRcdHJlZmVyZW5jZXMgPSBleHBsb3Jlci5nZXRSZWZlcmVuY2VzKCk7XG5cblx0XHRyZXR1cm4gcmVmZXJlbmNlcztcblx0fVxuXG5cdHJldHJpZXZlUGF0aE1hcHMoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHBhdGhNYXBzKSB7XG5cdFx0Y29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuXHRcdFx0XHRcdHBhdGhNYXAgPSB0aGlzLmdldFBhdGhNYXAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpLFxuICAgICAgICAgIG5hbWVTcGFuTmFtZSA9IHRoaXMuZ2V0TmFtZVNwYW5OYW1lKCk7XG5cblx0XHRwYXRoTWFwcy5wdXNoKHBhdGhNYXApO1xuXG5cdFx0c291cmNlRW50cnlQYXRoID0gYWRqdXN0U291cmNlRW50cnlQYXRoKHNvdXJjZUVudHJ5UGF0aCwgbmFtZSk7XG5cblx0XHR0YXJnZXRFbnRyeVBhdGggPSBhZGp1c3RUYXJnZXRFbnRyeVBhdGgodGFyZ2V0RW50cnlQYXRoLCBuYW1lU3Bhbk5hbWUpO1xuXG5cdFx0dGhpcy5mb3JFYWNoRHJhZ0VudHJ5SXRlbSgoZHJhZ0VudHJ5SXRlbSkgPT4ge1xuXHRcdFx0ZHJhZ0VudHJ5SXRlbS5yZXRyaWV2ZVBhdGhNYXBzKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwYXRoTWFwcyk7XG5cdFx0fSk7XG5cdH1cblxuXHRyZW1vdmVGcm9tRXhwbG9yZXIoKSB7XG5cdFx0Y29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aCgpLFxuXHRcdFx0XHRcdGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuXHRcdFx0XHRcdGRpcmVjdG9yeVBhdGggPSBwYXRoO1x0Ly8vXG5cblx0XHRleHBsb3Jlci5yZW1vdmVEaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgpO1xuXHR9XG5cblx0Y29sbGFwc2UoKSB7XG4gICAgdGhpcy5jb2xsYXBzZUVudHJpZXNMaXN0KCk7XG5cdFx0dGhpcy5jb2xsYXBzZVRvZ2dsZUJ1dHRvbigpO1xuICB9XG5cbiAgZXhwYW5kKCkge1xuICAgIHRoaXMuZXhwYW5kRW50cmllc0xpc3QoKTtcblx0XHR0aGlzLmV4cGFuZFRvZ2dsZUJ1dHRvbigpO1xuICB9XG5cblx0ZGlkTW91bnQoKSB7XG5cdFx0Y29uc3QgeyBjb2xsYXBzZWQgfSA9IHRoaXMucHJvcGVydGllcztcblxuXHRcdGNvbGxhcHNlZCA/XG5cdFx0XHR0aGlzLmNvbGxhcHNlKCkgOlxuXHRcdFx0XHR0aGlzLmV4cGFuZCgpO1xuXG5cdFx0dGhpcy5lbmFibGVEcm9wKCk7XG5cblx0XHR0aGlzLm9uQ3VzdG9tRHJvcCh0aGlzLmRyb3BDdXN0b21IYW5kbGVyKTtcblxuXHRcdHRoaXMub25DdXN0b21EcmFnT3Zlcih0aGlzLmRyYWdPdmVyQ3VzdG9tSGFuZGxlcik7XG5cblx0XHRzdXBlci5kaWRNb3VudCgpO1xuXHR9XG5cblx0d2lsbFVubW91bnQoKSB7XG5cdFx0dGhpcy5kaXNhYmxlRHJvcCgpO1xuXG5cdFx0dGhpcy5vZmZDdXN0b21Ecm9wKHRoaXMuZHJvcEN1c3RvbUhhbmRsZXIpO1xuXG5cdFx0dGhpcy5vZmZDdXN0b21EcmFnT3Zlcih0aGlzLmRyYWdPdmVyQ3VzdG9tSGFuZGxlcik7XG5cblx0XHRzdXBlci53aWxsVW5tb3VudCgpO1xuXHR9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcblx0XHRjb25zdCB7IG5hbWUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICB7IE5hbWVTcGFuLCBUb2dnbGVCdXR0b24sIERpcmVjdG9yeU5hbWVTVkcgfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgRW50cmllc0xpc3QgPSBleHBsb3Jlci5nZXRFbnRyaWVzTGlzdCgpO1xuXG5cdFx0cmV0dXJuIChbXG5cblx0XHRcdDxEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbURpdiBuYW1lPXtuYW1lfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0IGV4cGxvcmVyPXtleHBsb3Jlcn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCBOYW1lU3Bhbj17TmFtZVNwYW59XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgVG9nZ2xlQnV0dG9uPXtUb2dnbGVCdXR0b259XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgRGlyZWN0b3J5TmFtZVNWRz17RGlyZWN0b3J5TmFtZVNWR31cblx0XHRcdC8+LFxuXHRcdFx0PEVudHJpZXNMaXN0IGV4cGxvcmVyPXtleHBsb3Jlcn0gLz5cblxuXHRcdF0pO1xuXHR9XG5cbiAgc3RhdGljIHR5cGUgPSBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEU7XG5cbiAgc3RhdGljIFRvZ2dsZUJ1dHRvbiA9IFRvZ2dsZUJ1dHRvbjtcblxuXHRzdGF0aWMgRGlyZWN0b3J5TmFtZVNWRyA9IERpcmVjdG9yeU5hbWVTVkc7XG5cblx0c3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuXHRcdFwidG9wbW9zdFwiXG5cdF07XG5cblx0c3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJkaXJlY3RvcnktbmFtZVwiXG4gIH07XG59XG5cbk9iamVjdC5hc3NpZ24oRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ucHJvdG90eXBlLCBkcm9wTWl4aW5zKTtcbiJdLCJuYW1lcyI6WyJEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwiZHJhZ092ZXJDdXN0b21IYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiZHJhZ0VsZW1lbnQiLCJjb2xsYXBzZWQiLCJpc0NvbGxhcHNlZCIsInBhdGgiLCJnZXRQYXRoIiwiZXhwbG9yZXIiLCJnZXRFeHBsb3JlciIsImRyYWdFbnRyeUl0ZW0iLCJtYXJrZXJFbnRyeUl0ZW0iLCJyZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSIsImRyYWdFbnRyeUl0ZW1OYW1lIiwiZ2V0TmFtZSIsIm1hcmtlckVudHJ5SXRlbVBhdGgiLCJtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsInByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCIsInByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJkcmFnRW50cnlJdGVtVHlwZSIsImdldFR5cGUiLCJyZW1vdmVNYXJrZXIiLCJhZGRNYXJrZXIiLCJkcm9wQ3VzdG9tSGFuZGxlciIsImFib3J0ZWQiLCJkb25lIiwiZHJvcERyYWdFbnRyeUl0ZW0iLCJkb3VibGVDbGljayIsImNvbGxhcHNlIiwiZXhwYW5kIiwic2luZ2xlQ2xpY2siLCJpc0JlZm9yZSIsImVudHJ5SXRlbSIsImJlZm9yZSIsImVudHJ5SXRlbVR5cGUiLCJGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFIiwiRklMRV9OQU1FX01BUktFUl9FTlRSWV9UWVBFIiwiRElSRUNUT1JZX05BTUVfTUFSS0VSX0VOVFJZX1RZUEUiLCJESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJuYW1lIiwiZW50cnlJdGVtTmFtZSIsImxvY2FsZUNvbXBhcmUiLCJpc1RvcG1vc3QiLCJ0b3Btb3N0IiwicHJvcGVydGllcyIsImVudHJpZXNMaXN0Q29sbGFwc2VkIiwiaXNFbnRyaWVzTGlzdENvbGxhcHNlZCIsImdldFJlZmVyZW5jZSIsInJlZmVyZW5jZSIsImdldFJlZmVyZW5jZXMiLCJyZWZlcmVuY2VzIiwicmV0cmlldmVQYXRoTWFwcyIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsInBhdGhNYXBzIiwicGF0aE1hcCIsImdldFBhdGhNYXAiLCJuYW1lU3Bhbk5hbWUiLCJnZXROYW1lU3Bhbk5hbWUiLCJwdXNoIiwiYWRqdXN0U291cmNlRW50cnlQYXRoIiwiYWRqdXN0VGFyZ2V0RW50cnlQYXRoIiwiZm9yRWFjaERyYWdFbnRyeUl0ZW0iLCJyZW1vdmVGcm9tRXhwbG9yZXIiLCJkaXJlY3RvcnlQYXRoIiwicmVtb3ZlRGlyZWN0b3J5UGF0aCIsImNvbGxhcHNlRW50cmllc0xpc3QiLCJjb2xsYXBzZVRvZ2dsZUJ1dHRvbiIsImV4cGFuZEVudHJpZXNMaXN0IiwiZXhwYW5kVG9nZ2xlQnV0dG9uIiwiZGlkTW91bnQiLCJlbmFibGVEcm9wIiwib25DdXN0b21Ecm9wIiwib25DdXN0b21EcmFnT3ZlciIsIndpbGxVbm1vdW50IiwiZGlzYWJsZURyb3AiLCJvZmZDdXN0b21Ecm9wIiwib2ZmQ3VzdG9tRHJhZ092ZXIiLCJjaGlsZEVsZW1lbnRzIiwiTmFtZVNwYW4iLCJUb2dnbGVCdXR0b24iLCJEaXJlY3RvcnlOYW1lU1ZHIiwiRW50cmllc0xpc3QiLCJnZXRFbnRyaWVzTGlzdCIsIkRpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtRGl2IiwiRHJhZ0VudHJ5SXRlbSIsInR5cGUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZHJvcE1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFlcUJBOzs7K0JBYk07eUJBQ0c7NkRBRUw7MkRBQ0M7b0VBQ0c7cUVBQ2E7dUJBRW1COzBCQUM0RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6SSxJQUFNLEFBQUVDLG1CQUFxQkMsd0JBQWEsQ0FBbENEO0FBRU8sSUFBQSxBQUFNRCwyQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7O2dCQUFOLGtCQUFNQSx3Q0FDcEJHLHdCQUFBQSx5QkFBd0IsU0FBQ0MsT0FBT0MsU0FBU0M7WUFDeEMsSUFB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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pdGVtL2VudHJ5L2RyYWcvZGlyZWN0b3J5TmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZHJvcE1peGlucyB9IGZyb20gXCJlYXN5LWRyYWctYW5kLWRyb3BcIjtcbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBUb2dnbGVCdXR0b24gZnJvbSBcIi4uLy4uLy4uL2J1dHRvbi90b2dnbGVcIjtcbmltcG9ydCBEcmFnRW50cnlJdGVtIGZyb20gXCIuLi8uLi8uLi9pdGVtL2VudHJ5L2RyYWdcIjtcbmltcG9ydCBEaXJlY3RvcnlOYW1lU1ZHIGZyb20gXCIuLi8uLi8uLi9zdmcvZGlyZWN0b3J5TmFtZVwiO1xuaW1wb3J0IERpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtRGl2IGZyb20gXCIuLi8uLi8uLi9kaXYvaXRlbS9lbnRyeS9kcmFnL2RpcmVjdG9yeU5hbWVcIjtcblxuaW1wb3J0IHsgYWRqdXN0U291cmNlRW50cnlQYXRoLCBhZGp1c3RUYXJnZXRFbnRyeVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL3BhdGhNYXBcIjtcbmltcG9ydCB7IEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUsIEZJTEVfTkFNRV9NQVJLRVJfRU5UUllfVFlQRSwgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFLCBESVJFQ1RPUllfTkFNRV9NQVJLRVJfRU5UUllfVFlQRSB9IGZyb20gXCIuLi8uLi8uLi9lbnRyeVR5cGVzXCI7XG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0gZXh0ZW5kcyBEcmFnRW50cnlJdGVtIHtcblx0ZHJhZ092ZXJDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCBkcmFnRWxlbWVudCkgPT4ge1xuXHRcdGNvbnN0IGNvbGxhcHNlZCA9IHRoaXMuaXNDb2xsYXBzZWQoKTtcblxuXHRcdGlmIChjb2xsYXBzZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKCksXG5cdFx0XHRcdFx0ZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG5cdFx0XHRcdFx0ZHJhZ0VudHJ5SXRlbSA9IGRyYWdFbGVtZW50LCAgLy8vXG5cdFx0XHRcdFx0bWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSgpLFxuXHRcdFx0XHRcdGRyYWdFbnRyeUl0ZW1OYW1lID0gZHJhZ0VudHJ5SXRlbS5nZXROYW1lKCk7XG5cblx0XHRsZXQgbWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbS5nZXRQYXRoKCksXG5cdFx0XHRcdG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtLmdldEV4cGxvcmVyKCksXG5cdFx0XHRcdHByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbVBhdGgsIC8vL1xuXHRcdFx0XHRwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7IC8vL1xuXG5cdFx0bWFya2VyRW50cnlJdGVtUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocGF0aCwgZHJhZ0VudHJ5SXRlbU5hbWUpO1xuXG5cdFx0bWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBleHBsb3JlcjsgIC8vL1xuXG5cdFx0aWYgKChtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciAhPT0gcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcikgfHwgKG1hcmtlckVudHJ5SXRlbVBhdGggIT09IHByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCkpIHtcblx0XHRcdGNvbnN0IGRyYWdFbnRyeUl0ZW1UeXBlID0gZHJhZ0VudHJ5SXRlbS5nZXRUeXBlKCk7XG5cblx0XHRcdHByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIucmVtb3ZlTWFya2VyKCk7XG5cblx0XHRcdG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmFkZE1hcmtlcihtYXJrZXJFbnRyeUl0ZW1QYXRoLCBkcmFnRW50cnlJdGVtVHlwZSk7XG5cdFx0fVxuXHR9XG5cblx0ZHJvcEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIGRyYWdFbGVtZW50LCBhYm9ydGVkLCBkb25lKSA9PiB7XG4gICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGRyYWdFbGVtZW50LCAgLy8vXG4gICAgICAgICAgbWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSgpLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtLmdldEV4cGxvcmVyKCk7XG5cbiAgICBpZiAoYWJvcnRlZCkge1xuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmRyb3BEcmFnRW50cnlJdGVtKGV2ZW50LCBlbGVtZW50LCBkcmFnRW50cnlJdGVtLCBkb25lKTtcbiAgfVxuXG5cdGRvdWJsZUNsaWNrKGV2ZW50LCBlbGVtZW50KSB7XG5cdFx0bGV0IGNvbGxhcHNlZCA9IHRoaXMuaXNDb2xsYXBzZWQoKTtcblxuXHRcdGNvbGxhcHNlZCA9ICFjb2xsYXBzZWQ7XG5cblx0XHRjb2xsYXBzZWQgP1xuXHRcdFx0dGhpcy5jb2xsYXBzZSgpIDpcblx0XHRcdFx0dGhpcy5leHBhbmQoKTtcblx0fVxuXG5cdHNpbmdsZUNsaWNrKGV2ZW50LCBlbGVtZW50KSB7XG5cdFx0dGhpcy5leHBhbmQoKTtcblx0fVxuXG5cdGlzQmVmb3JlKGVudHJ5SXRlbSkge1xuXHRcdGxldCBiZWZvcmU7XG5cblx0XHRjb25zdCBlbnRyeUl0ZW1UeXBlID0gZW50cnlJdGVtLmdldFR5cGUoKTtcblxuXHRcdHN3aXRjaCAoZW50cnlJdGVtVHlwZSkge1xuXHRcdFx0Y2FzZSBGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFOlxuXHRcdFx0Y2FzZSBGSUxFX05BTUVfTUFSS0VSX0VOVFJZX1RZUEU6XG5cdFx0XHRjYXNlIERJUkVDVE9SWV9OQU1FX01BUktFUl9FTlRSWV9UWVBFOlxuXHRcdFx0XHRiZWZvcmUgPSB0cnVlO1xuXG5cdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRjYXNlIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRTpcblx0XHRcdFx0Y29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuXHRcdFx0XHRcdFx0XHRlbnRyeUl0ZW1OYW1lID0gZW50cnlJdGVtLmdldE5hbWUoKTtcblxuXHRcdFx0XHRiZWZvcmUgPSAobmFtZS5sb2NhbGVDb21wYXJlKGVudHJ5SXRlbU5hbWUpIDwgMCk7XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGJlZm9yZTtcblx0fVxuXG5cdGlzVG9wbW9zdCgpIHtcblx0XHRjb25zdCB7IHRvcG1vc3QgfSA9IHRoaXMucHJvcGVydGllcztcblxuXHRcdHJldHVybiB0b3Btb3N0O1xuXHR9XG5cblx0aXNDb2xsYXBzZWQoKSB7XG5cdFx0Y29uc3QgZW50cmllc0xpc3RDb2xsYXBzZWQgPSB0aGlzLmlzRW50cmllc0xpc3RDb2xsYXBzZWQoKSxcblx0XHRcdFx0XHRjb2xsYXBzZWQgPSBlbnRyaWVzTGlzdENvbGxhcHNlZDtcdC8vL1xuXG5cdFx0cmV0dXJuIGNvbGxhcHNlZDtcblx0fVxuXG5cdGdldFJlZmVyZW5jZSgpIHtcblx0XHRjb25zdCBleHBsb3JlciA9IHRoaXMuZ2V0RXhwbG9yZXIoKSxcblx0XHRcdFx0XHRyZWZlcmVuY2UgPSBleHBsb3Jlci5nZXRSZWZlcmVuY2UoKTtcblxuXHRcdHJldHVybiByZWZlcmVuY2U7XG5cdH1cblxuXHRnZXRSZWZlcmVuY2VzKCkge1xuXHRcdGNvbnN0IGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuXHRcdFx0XHRcdHJlZmVyZW5jZXMgPSBleHBsb3Jlci5nZXRSZWZlcmVuY2VzKCk7XG5cblx0XHRyZXR1cm4gcmVmZXJlbmNlcztcblx0fVxuXG5cdHJldHJpZXZlUGF0aE1hcHMoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHBhdGhNYXBzKSB7XG5cdFx0Y29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuXHRcdFx0XHRcdHBhdGhNYXAgPSB0aGlzLmdldFBhdGhNYXAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpLFxuICAgICAgICAgIG5hbWVTcGFuTmFtZSA9IHRoaXMuZ2V0TmFtZVNwYW5OYW1lKCk7XG5cblx0XHRwYXRoTWFwcy5wdXNoKHBhdGhNYXApO1xuXG5cdFx0c291cmNlRW50cnlQYXRoID0gYWRqdXN0U291cmNlRW50cnlQYXRoKHNvdXJjZUVudHJ5UGF0aCwgbmFtZSk7XG5cblx0XHR0YXJnZXRFbnRyeVBhdGggPSBhZGp1c3RUYXJnZXRFbnRyeVBhdGgodGFyZ2V0RW50cnlQYXRoLCBuYW1lU3Bhbk5hbWUpO1xuXG5cdFx0dGhpcy5mb3JFYWNoRHJhZ0VudHJ5SXRlbSgoZHJhZ0VudHJ5SXRlbSkgPT4ge1xuXHRcdFx0ZHJhZ0VudHJ5SXRlbS5yZXRyaWV2ZVBhdGhNYXBzKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwYXRoTWFwcyk7XG5cdFx0fSk7XG5cdH1cblxuXHRyZW1vdmVGcm9tRXhwbG9yZXIoKSB7XG5cdFx0Y29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aCgpLFxuXHRcdFx0XHRcdGV4cGxvcmVyID0gdGhpcy5nZXRFeHBsb3JlcigpLFxuXHRcdFx0XHRcdGRpcmVjdG9yeVBhdGggPSBwYXRoO1x0Ly8vXG5cblx0XHRleHBsb3Jlci5yZW1vdmVEaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgpO1xuXHR9XG5cblx0Y29sbGFwc2UoKSB7XG4gICAgdGhpcy5jb2xsYXBzZUVudHJpZXNMaXN0KCk7XG5cdFx0dGhpcy5jb2xsYXBzZVRvZ2dsZUJ1dHRvbigpO1xuICB9XG5cbiAgZXhwYW5kKCkge1xuICAgIHRoaXMuZXhwYW5kRW50cmllc0xpc3QoKTtcblx0XHR0aGlzLmV4cGFuZFRvZ2dsZUJ1dHRvbigpO1xuICB9XG5cblx0ZGlkTW91bnQoKSB7XG5cdFx0Y29uc3QgeyBjb2xsYXBzZWQgfSA9IHRoaXMucHJvcGVydGllcztcblxuXHRcdGNvbGxhcHNlZCA/XG5cdFx0XHR0aGlzLmNvbGxhcHNlKCkgOlxuXHRcdFx0XHR0aGlzLmV4cGFuZCgpO1xuXG5cdFx0dGhpcy5lbmFibGVEcm9wKCk7XG5cblx0XHR0aGlzLm9uQ3VzdG9tRHJvcCh0aGlzLmRyb3BDdXN0b21IYW5kbGVyKTtcblxuXHRcdHRoaXMub25DdXN0b21EcmFnT3Zlcih0aGlzLmRyYWdPdmVyQ3VzdG9tSGFuZGxlcik7XG5cblx0XHRzdXBlci5kaWRNb3VudCgpO1xuXHR9XG5cblx0d2lsbFVubW91bnQoKSB7XG5cdFx0dGhpcy5kaXNhYmxlRHJvcCgpO1xuXG5cdFx0dGhpcy5vZmZDdXN0b21Ecm9wKHRoaXMuZHJvcEN1c3RvbUhhbmRsZXIpO1xuXG5cdFx0dGhpcy5vZmZDdXN0b21EcmFnT3Zlcih0aGlzLmRyYWdPdmVyQ3VzdG9tSGFuZGxlcik7XG5cblx0XHRzdXBlci53aWxsVW5tb3VudCgpO1xuXHR9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcblx0XHRjb25zdCB7IG5hbWUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICB7IE5hbWVTcGFuLCBUb2dnbGVCdXR0b24sIERpcmVjdG9yeU5hbWVTVkcgfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgZXhwbG9yZXIgPSB0aGlzLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgRW50cmllc0xpc3QgPSBleHBsb3Jlci5nZXRFbnRyaWVzTGlzdCgpO1xuXG5cdFx0cmV0dXJuIChbXG5cblx0XHRcdDxEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbURpdiBuYW1lPXtuYW1lfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0IGV4cGxvcmVyPXtleHBsb3Jlcn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCBOYW1lU3Bhbj17TmFtZVNwYW59XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgVG9nZ2xlQnV0dG9uPXtUb2dnbGVCdXR0b259XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQgRGlyZWN0b3J5TmFtZVNWRz17RGlyZWN0b3J5TmFtZVNWR31cblx0XHRcdC8+LFxuXHRcdFx0PEVudHJpZXNMaXN0IGV4cGxvcmVyPXtleHBsb3Jlcn0gLz5cblxuXHRcdF0pO1xuXHR9XG5cbiAgc3RhdGljIHR5cGUgPSBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEU7XG5cbiAgc3RhdGljIFRvZ2dsZUJ1dHRvbiA9IFRvZ2dsZUJ1dHRvbjtcblxuXHRzdGF0aWMgRGlyZWN0b3J5TmFtZVNWRyA9IERpcmVjdG9yeU5hbWVTVkc7XG5cblx0c3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuXHRcdFwidG9wbW9zdFwiXG5cdF07XG5cblx0c3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJkaXJlY3RvcnktbmFtZVwiXG4gIH07XG59XG5cbk9iamVjdC5hc3NpZ24oRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ucHJvdG90eXBlLCBkcm9wTWl4aW5zKTtcbiJdLCJuYW1lcyI6WyJEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwiRHJhZ0VudHJ5SXRlbSIsImRyYWdPdmVyQ3VzdG9tSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsImRyYWdFbGVtZW50IiwiY29sbGFwc2VkIiwiaXNDb2xsYXBzZWQiLCJwYXRoIiwiZ2V0UGF0aCIsImV4cGxvcmVyIiwiZ2V0RXhwbG9yZXIiLCJkcmFnRW50cnlJdGVtIiwibWFya2VyRW50cnlJdGVtIiwicmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0iLCJkcmFnRW50cnlJdGVtTmFtZSIsImdldE5hbWUiLCJtYXJrZXJFbnRyeUl0ZW1QYXRoIiwibWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJwcmV2aW91c01hcmtlckVudHJ5SXRlbVBhdGgiLCJwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwiZHJhZ0VudHJ5SXRlbVR5cGUiLCJnZXRUeXBlIiwicmVtb3ZlTWFya2VyIiwiYWRkTWFya2VyIiwiZHJvcEN1c3RvbUhhbmRsZXIiLCJhYm9ydGVkIiwiZG9uZSIsImRyb3BEcmFnRW50cnlJdGVtIiwiZG91YmxlQ2xpY2siLCJjb2xsYXBzZSIsImV4cGFuZCIsInNpbmdsZUNsaWNrIiwiaXNCZWZvcmUiLCJlbnRyeUl0ZW0iLCJiZWZvcmUiLCJlbnRyeUl0ZW1UeXBlIiwiRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsIkZJTEVfTkFNRV9NQVJLRVJfRU5UUllfVFlQRSIsIkRJUkVDVE9SWV9OQU1FX01BUktFUl9FTlRSWV9UWVBFIiwiRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFIiwibmFtZSIsImVudHJ5SXRlbU5hbWUiLCJsb2NhbGVDb21wYXJlIiwiaXNUb3Btb3N0IiwidG9wbW9zdCIsInByb3BlcnRpZXMiLCJlbnRyaWVzTGlzdENvbGxhcHNlZCIsImlzRW50cmllc0xpc3RDb2xsYXBzZWQiLCJnZXRSZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJnZXRSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsInJldHJpZXZlUGF0aE1hcHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJwYXRoTWFwcyIsInBhdGhNYXAiLCJnZXRQYXRoTWFwIiwibmFtZVNwYW5OYW1lIiwiZ2V0TmFtZVNwYW5OYW1lIiwicHVzaCIsImFkanVzdFNvdXJjZUVudHJ5UGF0aCIsImFkanVzdFRhcmdldEVudHJ5UGF0aCIsImZvckVhY2hEcmFnRW50cnlJdGVtIiwicmVtb3ZlRnJvbUV4cGxvcmVyIiwiZGlyZWN0b3J5UGF0aCIsInJlbW92ZURpcmVjdG9yeVBhdGgiLCJjb2xsYXBzZUVudHJpZXNMaXN0IiwiY29sbGFwc2VUb2dnbGVCdXR0b24iLCJleHBhbmRFbnRyaWVzTGlzdCIsImV4cGFuZFRvZ2dsZUJ1dHRvbiIsImRpZE1vdW50IiwiZW5hYmxlRHJvcCIsIm9uQ3VzdG9tRHJvcCIsIm9uQ3VzdG9tRHJhZ092ZXIiLCJ3aWxsVW5tb3VudCIsImRpc2FibGVEcm9wIiwib2ZmQ3VzdG9tRHJvcCIsIm9mZkN1c3RvbURyYWdPdmVyIiwiY2hpbGRFbGVtZW50cyIsIk5hbWVTcGFuIiwiVG9nZ2xlQnV0dG9uIiwiRGlyZWN0b3J5TmFtZVNWRyIsIkVudHJpZXNMaXN0IiwiZ2V0RW50cmllc0xpc3QiLCJEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbURpdiIsInR5cGUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZHJvcE1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUFxQkE7OztpQ0FiTTsyQkFDRzsrREFFTDs2REFDQztzRUFDRzt1RUFDYTt5QkFFbUI7NEJBQzRFOzs7Ozs7QUFFekksTUFBTSxFQUFFQyxnQkFBZ0IsRUFBRSxHQUFHQyx3QkFBYTtBQUUzQixNQUFNRixtQ0FBbUNHLGFBQWE7SUFDcEVDLHdCQUF3QixDQUFDQyxPQUFPQyxTQUFTQztRQUN4QyxNQUFNQyxZQUFZLElBQUksQ0FBQ0MsV0FBVztRQUVsQyxJQUFJRCxXQUFXO1lBQ2Q7UUFDRDtRQUVBLE1BQU1FLE9BQU8sSUFBSSxDQUFDQyxPQUFPLElBQ3RCQyxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQkMsZ0JBQWdCUCxhQUNoQlEsa0JBQWtC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