easy-file-system 1.3.132 → 1.3.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +683 -508
- package/lib/explorer.js +59 -3
- package/lib/item/entry/drag/directoryName.js +18 -3
- package/lib/item/entry/drag.js +2 -2
- package/lib/rubbishBin.js +19 -3
- package/package.json +3 -3
- package/src/explorer.js +21 -6
- package/src/item/entry/drag/directoryName.js +16 -3
- package/src/item/entry/drag.js +1 -1
- package/src/rubbishBin.js +17 -3
package/lib/rubbishBin.js
CHANGED
|
@@ -12,6 +12,7 @@ var _easyWithStyle = /*#__PURE__*/ _interopRequireDefault(require("easy-with-sty
|
|
|
12
12
|
var _easyDragAndDrop = require("easy-drag-and-drop");
|
|
13
13
|
var _easy = require("easy");
|
|
14
14
|
var _necessary = require("necessary");
|
|
15
|
+
var _drag = /*#__PURE__*/ _interopRequireDefault(require("./item/entry/drag"));
|
|
15
16
|
var _open = /*#__PURE__*/ _interopRequireDefault(require("./svg/rubbishBin/open"));
|
|
16
17
|
var _closed = /*#__PURE__*/ _interopRequireDefault(require("./svg/rubbishBin/closed"));
|
|
17
18
|
var _fileName = /*#__PURE__*/ _interopRequireDefault(require("./item/entry/marker/fileName"));
|
|
@@ -103,6 +104,13 @@ function _inherits(subClass, superClass) {
|
|
|
103
104
|
});
|
|
104
105
|
if (superClass) _setPrototypeOf(subClass, superClass);
|
|
105
106
|
}
|
|
107
|
+
function _instanceof(left, right) {
|
|
108
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
109
|
+
return !!right[Symbol.hasInstance](left);
|
|
110
|
+
} else {
|
|
111
|
+
return left instanceof right;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
106
114
|
function _interopRequireDefault(obj) {
|
|
107
115
|
return obj && obj.__esModule ? obj : {
|
|
108
116
|
default: obj
|
|
@@ -206,16 +214,24 @@ var RubbishBin = /*#__PURE__*/ function(Element) {
|
|
|
206
214
|
var _this;
|
|
207
215
|
_this = _super.apply(this, arguments);
|
|
208
216
|
_defineProperty(_assertThisInitialized(_this), "dropHandler", function(dragElement, aborted, element, done) {
|
|
209
|
-
var
|
|
217
|
+
var dragElementDragEntryItem = _instanceof(dragElement, _drag.default);
|
|
218
|
+
if (!dragElementDragEntryItem) {
|
|
219
|
+
done();
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
var dragEntryItem = dragElement, markerEntryItem = _this.retrieveMarkerEntryItem(), markerEntryItemExplorer = markerEntryItem.getExplorer();
|
|
210
223
|
if (aborted) {
|
|
211
224
|
markerEntryItemExplorer.removeMarker();
|
|
212
225
|
done();
|
|
213
226
|
return;
|
|
214
227
|
}
|
|
215
|
-
var dragEntryItem = dragElement; ///
|
|
216
228
|
markerEntryItemExplorer.dropDragEntryItem(dragEntryItem, done);
|
|
217
229
|
});
|
|
218
230
|
_defineProperty(_assertThisInitialized(_this), "dragOverHandler", function(dragElement, element) {
|
|
231
|
+
var dragElementDragEntryItem = _instanceof(dragElement, _drag.default);
|
|
232
|
+
if (!dragElementDragEntryItem) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
219
235
|
var dragEntryItem = dragElement, dragEntryItemExplorer = dragEntryItem.getExplorer(), dragEntryItemExplorerIgnored = _this.isExplorerIgnored(dragEntryItemExplorer);
|
|
220
236
|
if (dragEntryItemExplorerIgnored) {
|
|
221
237
|
return;
|
|
@@ -486,4 +502,4 @@ _defineProperty(RubbishBin, "defaultProperties", {
|
|
|
486
502
|
Object.assign(RubbishBin.prototype, _easyDragAndDrop.dropMixins);
|
|
487
503
|
var _default = (0, _easyWithStyle.default)(RubbishBin)(_templateObject());
|
|
488
504
|
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWJiaXNoQmluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBkcm9wTWl4aW5zIH0gZnJvbSBcImVhc3ktZHJhZy1hbmQtZHJvcFwiO1xuaW1wb3J0IHsgRWxlbWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XG5pbXBvcnQgeyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBPcGVuUnViYmlzaEJpblNWRyBmcm9tIFwiLi9zdmcvcnViYmlzaEJpbi9vcGVuXCI7XG5pbXBvcnQgQ2xvc2VkUnViYmlzaEJpblNWRyBmcm9tIFwiLi9zdmcvcnViYmlzaEJpbi9jbG9zZWRcIjtcbmltcG9ydCBGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSBmcm9tIFwiLi9pdGVtL2VudHJ5L21hcmtlci9maWxlTmFtZVwiO1xuaW1wb3J0IERpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gZnJvbSBcIi4vaXRlbS9lbnRyeS9tYXJrZXIvZGlyZWN0b3J5TmFtZVwiO1xuXG5pbXBvcnQgeyBub25OdWxsUGF0aEZyb21OYW1lIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhdGhNYXBcIjtcbmltcG9ydCB7IHNvdXJjZUVudHJ5UGF0aEZyb21EcmFnRW50cnlJdGVtUGF0aCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5pbXBvcnQgeyBESVJFQ1RPUllfTkFNRV9EUkFHX0VOVFJZX1RZUEUsIEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUgfSBmcm9tIFwiLi9lbnRyeVR5cGVzXCI7XG5cbmNvbnN0IHsgZm9yRWFjaCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzLFxuICAgICAgeyBSRU1PVkVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcblxuY2xhc3MgUnViYmlzaEJpbiBleHRlbmRzIEVsZW1lbnQge1xuICBkcm9wSGFuZGxlciA9IChkcmFnRWxlbWVudCwgYWJvcnRlZCwgZWxlbWVudCwgZG9uZSkgPT4ge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IHRoaXMucmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSxcbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG1hcmtlckVudHJ5SXRlbS5nZXRFeHBsb3JlcigpO1xuXG4gICAgaWYgKGFib3J0ZWQpIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLnJlbW92ZU1hcmtlcigpO1xuXG4gICAgICBkb25lKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcmFnRW50cnlJdGVtID0gZHJhZ0VsZW1lbnQ7ICAvLy9cblxuICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmRyb3BEcmFnRW50cnlJdGVtKGRyYWdFbnRyeUl0ZW0sIGRvbmUpO1xuICB9XG5cbiAgZHJhZ092ZXJIYW5kbGVyID0gKGRyYWdFbGVtZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGRyYWdFbGVtZW50LCAgLy8vXG4gICAgICAgICAgZHJhZ0VudHJ5SXRlbUV4cGxvcmVyID0gZHJhZ0VudHJ5SXRlbS5nZXRFeHBsb3JlcigpLFxuICAgICAgICAgIGRyYWdFbnRyeUl0ZW1FeHBsb3Jlcklnbm9yZWQgPSB0aGlzLmlzRXhwbG9yZXJJZ25vcmVkKGRyYWdFbnRyeUl0ZW1FeHBsb3Jlcik7XG5cbiAgICBpZiAoZHJhZ0VudHJ5SXRlbUV4cGxvcmVySWdub3JlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IHRoaXMucmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKTtcblxuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gbWFya2VyRW50cnlJdGVtLmdldFBhdGgoKSxcbiAgICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoID0gbWFya2VyRW50cnlJdGVtUGF0aCwgLy8vXG4gICAgICAgIHByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcjsgLy8vXG5cbiAgICBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gbnVsbDsgLy8vXG5cbiAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IHRoaXM7ICAvLy9cblxuICAgIGlmICgobWFya2VyRW50cnlJdGVtRXhwbG9yZXIgIT09IHByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIpIHx8IChtYXJrZXJFbnRyeUl0ZW1QYXRoICE9PSBwcmV2aW91c01hcmtlckVudHJ5SXRlbVBhdGgpKSB7XG4gICAgICBjb25zdCBkcmFnRW50cnlJdGVtVHlwZSA9IGRyYWdFbnRyeUl0ZW0uZ2V0VHlwZSgpO1xuXG4gICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyLnJlbW92ZU1hcmtlcigpO1xuXG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlci5hZGRNYXJrZXIobWFya2VyRW50cnlJdGVtUGF0aCwgZHJhZ0VudHJ5SXRlbVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIGlzRXhwbG9yZXJJZ25vcmVkKGV4cGxvcmVyKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gZXhwbG9yZXIuZ2V0UmVmZXJlbmNlKCksXG4gICAgICAgICAgaWdub3JlZFJlZmVyZW5jZXMgPSB0aGlzLmdldElnbm9yZWRSZWZlcmVuY2VzKCksXG4gICAgICAgICAgaWdub3JlZFJlZmVyZW5jZXNJbmNsdWRlc1JlZmVyZW5jZSA9IGlnbm9yZWRSZWZlcmVuY2VzLmluY2x1ZGVzKHJlZmVyZW5jZSksXG4gICAgICAgICAgZXhwbG9yZXJJZ25vcmVkID0gaWdub3JlZFJlZmVyZW5jZXNJbmNsdWRlc1JlZmVyZW5jZTtcdC8vL1xuXG4gICAgcmV0dXJuIGV4cGxvcmVySWdub3JlZDtcbiAgfVxuXG4gIGdldElnbm9yZWRSZWZlcmVuY2VzKCkge1xuICAgIGNvbnN0IHsgaWdub3JlZFJlZmVyZW5jZXMgPSBbXSB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgcmV0dXJuIGlnbm9yZWRSZWZlcmVuY2VzO1xuICB9XG5cbiAgcmV0cmlldmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgeyBtYXJrZXJFbnRyeUl0ZW0gfSA9IGdsb2JhbFRoaXM7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtO1xuICB9XG5cbiAgYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtTmFtZSA9IG1hcmtlckVudHJ5SXRlbVBhdGg7ICAvLy9cblxuICAgIHRoaXMuYWRkTWFya2VyRW50cnlJdGVtKG1hcmtlckVudHJ5SXRlbU5hbWUsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcblxuICAgIHRoaXMub3BlbigpO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyKCkge1xuICAgIHRoaXMucmVtb3ZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuc2hvd09wZW5SdWJiaXNoQmluU1ZHKCk7XG4gICAgdGhpcy5oaWRlQ2xvc2VkUnViYmlzaEJpblNWRygpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5oaWRlT3BlblJ1YmJpc2hCaW5TVkcoKTtcbiAgICB0aGlzLnNob3dDbG9zZWRSdWJiaXNoQmluU1ZHKCk7XG4gIH1cblxuICByZW1vdmVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSB7XG4gICAgY29uc3QgeyBlbnRyeURpcmVjdG9yeSB9ID0gcGF0aE1hcDtcblxuICAgIGVudHJ5RGlyZWN0b3J5ID9cbiAgICAgIHRoaXMucmVtb3ZlRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpIDpcbiAgICAgICAgdGhpcy5yZW1vdmVGaWxlTmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpO1xuICB9XG5cbiAgcmVtb3ZlRHJhZ0VudHJ5SXRlbXMocGF0aE1hcHMsIGV4cGxvcmVyLCBkb25lKSB7XG4gICAgdGhpcy5jYWxsUmVtb3ZlSGFuZGxlcnNBc3luYyhwYXRoTWFwcywgKCkgPT4ge1xuICAgICAgcGF0aE1hcHMuZm9yRWFjaCgocGF0aE1hcCkgPT4gdGhpcy5yZW1vdmVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSk7XG5cbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSkge1xuICAgIGxldCBtYXJrZXJFbnRyeUl0ZW07XG5cbiAgICBjb25zdCBuYW1lID0gbWFya2VyRW50cnlJdGVtTmFtZSwgLy8vXG4gICAgICAgICAgdHlwZSA9IGRyYWdFbnRyeUl0ZW1UeXBlOyAgLy8vXG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICAgIGZpbGVOYW1lTWFya2VyRW50cnlJdGVtID1cblxuICAgICAgICAgICAgICAgIDxGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSBuYW1lPXtuYW1lfSBleHBsb3Jlcj17ZXhwbG9yZXJ9IC8+XG5cbiAgICAgICAgICAgICAgO1xuXG4gICAgICAgIG1hcmtlckVudHJ5SXRlbSA9IGZpbGVOYW1lTWFya2VyRW50cnlJdGVtOyAgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFIDoge1xuICAgICAgICBjb25zdCBleHBsb3JlciA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgICAgZGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSA9XG5cbiAgICAgICAgICAgICAgICA8RGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSBuYW1lPXtuYW1lfSBleHBsb3Jlcj17ZXhwbG9yZXJ9IC8+XG5cbiAgICAgICAgICAgICAgO1xuXG4gICAgICAgIG1hcmtlckVudHJ5SXRlbSA9IGRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW07IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgICAgbWFya2VyRW50cnlJdGVtXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVNYXJrZXJFbnRyeUl0ZW0oKSB7XG4gICAgY29uc3QgbWFya2VyRW50cnlJdGVtID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgICAgbWFya2VyRW50cnlJdGVtXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVGaWxlTmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpIHtcbiAgICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcDtcblxuICAgIGlmIChzb3VyY2VFbnRyeVBhdGggPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgLy8vXG5cbiAgICBleHBsb3Jlci5yZW1vdmVGaWxlUGF0aChmaWxlUGF0aCk7XG4gIH1cblxuICByZW1vdmVEaXJlY3RvcnlOYW1lRHJhZ0VudHJ5SXRlbShwYXRoTWFwLCBleHBsb3Jlcikge1xuICAgIGNvbnN0IHsgc291cmNlRW50cnlQYXRoIH0gPSBwYXRoTWFwO1xuXG4gICAgaWYgKHNvdXJjZUVudHJ5UGF0aCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGV4cGxvcmVyLnJlbW92ZURpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCk7XG4gIH1cblxuICBjYWxsUmVtb3ZlSGFuZGxlcnNBc3luYyhwYXRoTWFwcywgZG9uZSkge1xuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFJFTU9WRV9FVkVOVF9UWVBFLFxuICAgICAgICAgIGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcblxuICAgIGZvckVhY2goZXZlbnRMaXN0ZW5lcnMsIChldmVudExpc3RlbmVyLCBuZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQgfSA9IGV2ZW50TGlzdGVuZXIsXG4gICAgICAgICAgICByZW1vdmVIYW5kbGVyID0gaGFuZGxlciwgIC8vL1xuICAgICAgICAgICAgZG9uZSA9IG5leHQ7ICAvLy9cblxuICAgICAgcmVtb3ZlSGFuZGxlci5jYWxsKGVsZW1lbnQsIHBhdGhNYXBzLCBkb25lKTtcbiAgICB9LCBkb25lKTtcbiAgfVxuXG4gIG9uUmVtb3ZlKHJlbW92ZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBldmVudFR5cGUgPSBSRU1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgICBoYW5kbGVyID0gcmVtb3ZlSGFuZGxlcjsgIC8vL1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG4gIH1cblxuICBvZmZSZW1vdmUocmVtb3ZlSGFuZGxlciwgZWxlbWVudCkge1xuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFJFTU9WRV9FVkVOVF9UWVBFLFxuICAgICAgICAgIGhhbmRsZXIgPSByZW1vdmVIYW5kbGVyOyAgLy8vXG5cbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcbiAgfVxuXG4gIGRyb3BEcmFnRW50cnlJdGVtKGRyYWdFbnRyeUl0ZW0sIGRvbmUpIHtcbiAgICBjb25zdCBkcmFnRW50cnlJdGVtUGF0aCA9IGRyYWdFbnRyeUl0ZW0uZ2V0UGF0aCgpLFxuICAgICAgICAgIGRyYWdFbnRyeUl0ZW1FeHBsb3JlciA9IGRyYWdFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBzb3VyY2VFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGhGcm9tRHJhZ0VudHJ5SXRlbVBhdGgoZHJhZ0VudHJ5SXRlbVBhdGgpLFxuICAgICAgICAgIHRhcmdldEVudHJ5UGF0aCA9IG51bGwsXG4gICAgICAgICAgcGF0aE1hcHMgPSBkcmFnRW50cnlJdGVtLmdldFBhdGhNYXBzKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKSxcbiAgICAgICAgICBleHBsb3JlciA9IGRyYWdFbnRyeUl0ZW1FeHBsb3JlcjsgIC8vL1xuXG4gICAgdGhpcy5yZW1vdmVEcmFnRW50cnlJdGVtcyhwYXRoTWFwcywgZXhwbG9yZXIsICgpID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgb25SZW1vdmUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICByZW1vdmVIYW5kbGVyID0gb25SZW1vdmU7IC8vL1xuXG4gICAgdGhpcy5lbmFibGVEcm9wKCk7XG5cbiAgICB0aGlzLm9uRHJvcCh0aGlzLmRyb3BIYW5kbGVyLCB0aGlzKTtcblxuICAgIHRoaXMub25EcmFnT3Zlcih0aGlzLmRyYWdPdmVySGFuZGxlciwgdGhpcyk7XG5cbiAgICByZW1vdmVIYW5kbGVyICYmIHRoaXMub25SZW1vdmUocmVtb3ZlSGFuZGxlcik7XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICB3aWxsVW5tb3VudCgpIHtcbiAgICBjb25zdCB7IG9uUmVtb3ZlIH0gPSB0aGlzLnByb3BlcnRpZXMsXG4gICAgICAgICAgcmVtb3ZlSGFuZGxlciA9IG9uUmVtb3ZlOyAvLy9cblxuICAgIHRoaXMuZGlzYWJsZURyb3AoKTtcblxuICAgIHRoaXMub2ZmRHJvcCh0aGlzLmRyb3BIYW5kbGVyLCB0aGlzKTtcblxuICAgIHRoaXMub2ZmRHJhZ092ZXIodGhpcy5kcmFnT3ZlckhhbmRsZXIsIHRoaXMpO1xuXG4gICAgcmVtb3ZlSGFuZGxlciAmJiB0aGlzLm9mZlJlbW92ZShyZW1vdmVIYW5kbGVyKTtcbiAgfVxuXG4gIGdldE1hcmtlckVudHJ5SXRlbVBhdGgoKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXG4gICAgICAgICAgeyBtYXJrZXJFbnRyeUl0ZW1QYXRoIH0gPSBzdGF0ZTtcblxuICAgIHJldHVybiBtYXJrZXJFbnRyeUl0ZW1QYXRoO1xuICB9XG5cbiAgZ2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIoKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXG4gICAgICAgICAgeyBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciB9ID0gc3RhdGU7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7XG4gIH1cblxuICBzZXRNYXJrZXJFbnRyeUl0ZW1QYXRoKG1hcmtlckVudHJ5SXRlbVBhdGgpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVBhdGhcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlclxuICAgIH0pO1xuICB9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcbiAgICBjb25zdCB7IE9wZW5SdWJiaXNoQmluU1ZHLCBDbG9zZWRSdWJiaXNoQmluU1ZHIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgcmV0dXJuIChbXG5cbiAgICAgIDxPcGVuUnViYmlzaEJpblNWRy8+LFxuICAgICAgPENsb3NlZFJ1YmJpc2hCaW5TVkcvPlxuXG4gICAgXSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbVBhdGggPSBudWxsLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbnVsbDtcblxuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1QYXRoLFxuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXJcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBPcGVuUnViYmlzaEJpblNWRyA9IE9wZW5SdWJiaXNoQmluU1ZHO1xuXG4gIHN0YXRpYyBDbG9zZWRSdWJiaXNoQmluU1ZHID0gQ2xvc2VkUnViYmlzaEJpblNWRztcblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwib25SZW1vdmVcIixcbiAgICBcImlnbm9yZWRSZWZlcmVuY2VzXCJcbiAgXTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInJ1YmJpc2gtYmluXCJcbiAgfTtcbn1cblxuT2JqZWN0LmFzc2lnbihSdWJiaXNoQmluLnByb3RvdHlwZSwgZHJvcE1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShSdWJiaXNoQmluKWBcbiAgXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIFxuYDtcbiJdLCJuYW1lcyI6WyJmb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiUkVNT1ZFX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiUnViYmlzaEJpbiIsImRyb3BIYW5kbGVyIiwiZHJhZ0VsZW1lbnQiLCJhYm9ydGVkIiwiZWxlbWVudCIsImRvbmUiLCJtYXJrZXJFbnRyeUl0ZW0iLCJyZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSIsIm1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwiZ2V0RXhwbG9yZXIiLCJyZW1vdmVNYXJrZXIiLCJkcmFnRW50cnlJdGVtIiwiZHJvcERyYWdFbnRyeUl0ZW0iLCJkcmFnT3ZlckhhbmRsZXIiLCJkcmFnRW50cnlJdGVtRXhwbG9yZXIiLCJkcmFnRW50cnlJdGVtRXhwbG9yZXJJZ25vcmVkIiwiaXNFeHBsb3Jlcklnbm9yZWQiLCJtYXJrZXJFbnRyeUl0ZW1QYXRoIiwiZ2V0UGF0aCIsInByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCIsInByZXZpb3VzTWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJkcmFnRW50cnlJdGVtVHlwZSIsImdldFR5cGUiLCJhZGRNYXJrZXIiLCJleHBsb3JlciIsInJlZmVyZW5jZSIsImdldFJlZmVyZW5jZSIsImlnbm9yZWRSZWZlcmVuY2VzIiwiZ2V0SWdub3JlZFJlZmVyZW5jZXMiLCJpZ25vcmVkUmVmZXJlbmNlc0luY2x1ZGVzUmVmZXJlbmNlIiwiaW5jbHVkZXMiLCJleHBsb3Jlcklnbm9yZWQiLCJwcm9wZXJ0aWVzIiwiZ2xvYmFsVGhpcyIsIm1hcmtlckVudHJ5SXRlbU5hbWUiLCJhZGRNYXJrZXJFbnRyeUl0ZW0iLCJvcGVuIiwicmVtb3ZlTWFya2VyRW50cnlJdGVtIiwiY2xvc2UiLCJzaG93T3BlblJ1YmJpc2hCaW5TVkciLCJoaWRlQ2xvc2VkUnViYmlzaEJpblNWRyIsImhpZGVPcGVuUnViYmlzaEJpblNWRyIsInNob3dDbG9zZWRSdWJiaXNoQmluU1ZHIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbSIsInBhdGhNYXAiLCJlbnRyeURpcmVjdG9yeSIsInJlbW92ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtIiwicmVtb3ZlRmlsZU5hbWVEcmFnRW50cnlJdGVtIiwicmVtb3ZlRHJhZ0VudHJ5SXRlbXMiLCJwYXRoTWFwcyIsImNhbGxSZW1vdmVIYW5kbGVyc0FzeW5jIiwibmFtZSIsInR5cGUiLCJGSUxFX05BTUVfRFJBR19FTlRSWV9UWVBFIiwiZmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJGaWxlTmFtZU1hcmtlckVudHJ5SXRlbSIsIkRJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSIsImRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJEaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtIiwiT2JqZWN0IiwiYXNzaWduIiwic291cmNlRW50cnlQYXRoIiwiZmlsZVBhdGgiLCJyZW1vdmVGaWxlUGF0aCIsImRpcmVjdG9yeVBhdGgiLCJyZW1vdmVEaXJlY3RvcnlQYXRoIiwiZXZlbnRUeXBlIiwiZXZlbnRMaXN0ZW5lcnMiLCJmaW5kRXZlbnRMaXN0ZW5lcnMiLCJldmVudExpc3RlbmVyIiwibmV4dCIsImhhbmRsZXIiLCJyZW1vdmVIYW5kbGVyIiwiY2FsbCIsIm9uUmVtb3ZlIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9mZlJlbW92ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkcmFnRW50cnlJdGVtUGF0aCIsInNvdXJjZUVudHJ5UGF0aEZyb21EcmFnRW50cnlJdGVtUGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImdldFBhdGhNYXBzIiwiZGlkTW91bnQiLCJlbmFibGVEcm9wIiwib25Ecm9wIiwib25EcmFnT3ZlciIsIndpbGxVbm1vdW50IiwiZGlzYWJsZURyb3AiLCJvZmZEcm9wIiwib2ZmRHJhZ092ZXIiLCJnZXRNYXJrZXJFbnRyeUl0ZW1QYXRoIiwic3RhdGUiLCJnZXRTdGF0ZSIsImdldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwic2V0TWFya2VyRW50cnlJdGVtUGF0aCIsInVwZGF0ZVN0YXRlIiwic2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJjaGlsZEVsZW1lbnRzIiwiY29uc3RydWN0b3IiLCJPcGVuUnViYmlzaEJpblNWRyIsIkNsb3NlZFJ1YmJpc2hCaW5TVkciLCJpbml0aWFsaXNlIiwiYXNzaWduQ29udGV4dCIsInNldFN0YXRlIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwicHJvdG90eXBlIiwiZHJvcE1peGlucyIsIndpdGhTdHlsZSJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7OytCQWdWYixTQUlFOzs7ZUFKRixRQUlFOzs7a0VBbFZvQixpQkFBaUI7K0JBRVosb0JBQW9CO29CQUNYLE1BQU07eUJBQ0osV0FBVzt5REFFbkIsdUJBQXVCOzJEQUNyQix5QkFBeUI7NkRBQ3JCLDhCQUE4QjtrRUFDekIsbUNBQW1DO3VCQUV4QyxxQkFBcUI7MEJBRWlCLGNBQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4RixJQUFNLEFBQUVBLE9BQU8sR0FBS0MsVUFBcUIsc0JBQUEsQ0FBakNELE9BQU8sQUFBMEIsRUFDbkMsQUFBRUUsaUJBQWlCLEdBQUtDLEtBQVUsV0FBQSxDQUFoQ0QsaUJBQWlCLEFBQWUsQUFBQztBQUV6QyxJQUFBLEFBQU1FLFVBQVUsaUJBMFRiLEFBMVRIO2NBQU1BLFVBQVU7OEJBQVZBLFVBQVU7YUFBVkEsVUFBVTs4QkFBVkEsVUFBVTs7O1FBQ2RDLCtDQUFBQSxhQUFXLEVBQUcsU0FBQ0MsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFLO1lBQ3JELElBQU1DLGVBQWUsR0FBRyxNQUFLQyx1QkFBdUIsRUFBRSxFQUNoREMsdUJBQXVCLEdBQUdGLGVBQWUsQ0FBQ0csV0FBVyxFQUFFLEFBQUM7WUFFOUQsSUFBSU4sT0FBTyxFQUFFO2dCQUNYSyx1QkFBdUIsQ0FBQ0UsWUFBWSxFQUFFLENBQUM7Z0JBRXZDTCxJQUFJLEVBQUUsQ0FBQztnQkFFUCxP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
|
|
505
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWJiaXNoQmluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBkcm9wTWl4aW5zIH0gZnJvbSBcImVhc3ktZHJhZy1hbmQtZHJvcFwiO1xuaW1wb3J0IHsgRWxlbWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XG5pbXBvcnQgeyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBEcmFnRW50cnlJdGVtIGZyb20gXCIuL2l0ZW0vZW50cnkvZHJhZ1wiO1xuaW1wb3J0IE9wZW5SdWJiaXNoQmluU1ZHIGZyb20gXCIuL3N2Zy9ydWJiaXNoQmluL29wZW5cIjtcbmltcG9ydCBDbG9zZWRSdWJiaXNoQmluU1ZHIGZyb20gXCIuL3N2Zy9ydWJiaXNoQmluL2Nsb3NlZFwiO1xuaW1wb3J0IEZpbGVOYW1lTWFya2VyRW50cnlJdGVtIGZyb20gXCIuL2l0ZW0vZW50cnkvbWFya2VyL2ZpbGVOYW1lXCI7XG5pbXBvcnQgRGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSBmcm9tIFwiLi9pdGVtL2VudHJ5L21hcmtlci9kaXJlY3RvcnlOYW1lXCI7XG5cbmltcG9ydCB7IG5vbk51bGxQYXRoRnJvbU5hbWUgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcFwiO1xuaW1wb3J0IHsgc291cmNlRW50cnlQYXRoRnJvbURyYWdFbnRyeUl0ZW1QYXRoIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhdGhNYXBcIjtcbmltcG9ydCB7IERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSwgRklMRV9OQU1FX0RSQUdfRU5UUllfVFlQRSB9IGZyb20gXCIuL2VudHJ5VHlwZXNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXMsXG4gICAgICB7IFJFTU9WRV9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzO1xuXG5jbGFzcyBSdWJiaXNoQmluIGV4dGVuZHMgRWxlbWVudCB7XG4gIGRyb3BIYW5kbGVyID0gKGRyYWdFbGVtZW50LCBhYm9ydGVkLCBlbGVtZW50LCBkb25lKSA9PiB7XG4gICAgY29uc3QgZHJhZ0VsZW1lbnREcmFnRW50cnlJdGVtID0gKGRyYWdFbGVtZW50IGluc3RhbmNlb2YgRHJhZ0VudHJ5SXRlbSk7XG5cbiAgICBpZiAoIWRyYWdFbGVtZW50RHJhZ0VudHJ5SXRlbSkge1xuICAgICAgZG9uZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHJhZ0VudHJ5SXRlbSA9IGRyYWdFbGVtZW50LCAgLy8vXG4gICAgICAgICAgbWFya2VyRW50cnlJdGVtID0gdGhpcy5yZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSgpLFxuICAgICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtLmdldEV4cGxvcmVyKCk7XG5cbiAgICBpZiAoYWJvcnRlZCkge1xuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIucmVtb3ZlTWFya2VyKCk7XG5cbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyLmRyb3BEcmFnRW50cnlJdGVtKGRyYWdFbnRyeUl0ZW0sIGRvbmUpO1xuICB9XG5cbiAgZHJhZ092ZXJIYW5kbGVyID0gKGRyYWdFbGVtZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgZHJhZ0VsZW1lbnREcmFnRW50cnlJdGVtID0gKGRyYWdFbGVtZW50IGluc3RhbmNlb2YgRHJhZ0VudHJ5SXRlbSk7XG5cbiAgICBpZiAoIWRyYWdFbGVtZW50RHJhZ0VudHJ5SXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYWdFbnRyeUl0ZW0gPSBkcmFnRWxlbWVudCwgIC8vL1xuICAgICAgICAgIGRyYWdFbnRyeUl0ZW1FeHBsb3JlciA9IGRyYWdFbnRyeUl0ZW0uZ2V0RXhwbG9yZXIoKSxcbiAgICAgICAgICBkcmFnRW50cnlJdGVtRXhwbG9yZXJJZ25vcmVkID0gdGhpcy5pc0V4cGxvcmVySWdub3JlZChkcmFnRW50cnlJdGVtRXhwbG9yZXIpO1xuXG4gICAgaWYgKGRyYWdFbnRyeUl0ZW1FeHBsb3Jlcklnbm9yZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXJrZXJFbnRyeUl0ZW0gPSB0aGlzLnJldHJpZXZlTWFya2VyRW50cnlJdGVtKCk7XG5cbiAgICBsZXQgbWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbS5nZXRQYXRoKCksXG4gICAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtLmdldEV4cGxvcmVyKCksXG4gICAgICAgIHByZXZpb3VzTWFya2VyRW50cnlJdGVtUGF0aCA9IG1hcmtlckVudHJ5SXRlbVBhdGgsIC8vL1xuICAgICAgICBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyID0gbWFya2VyRW50cnlJdGVtRXhwbG9yZXI7IC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtUGF0aCA9IG51bGw7IC8vL1xuXG4gICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgPSB0aGlzOyAgLy8vXG5cbiAgICBpZiAoKG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyICE9PSBwcmV2aW91c01hcmtlckVudHJ5SXRlbUV4cGxvcmVyKSB8fCAobWFya2VyRW50cnlJdGVtUGF0aCAhPT0gcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoKSkge1xuICAgICAgY29uc3QgZHJhZ0VudHJ5SXRlbVR5cGUgPSBkcmFnRW50cnlJdGVtLmdldFR5cGUoKTtcblxuICAgICAgcHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlci5yZW1vdmVNYXJrZXIoKTtcblxuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIuYWRkTWFya2VyKG1hcmtlckVudHJ5SXRlbVBhdGgsIGRyYWdFbnRyeUl0ZW1UeXBlKTtcbiAgICB9XG4gIH1cblxuICBpc0V4cGxvcmVySWdub3JlZChleHBsb3Jlcikge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IGV4cGxvcmVyLmdldFJlZmVyZW5jZSgpLFxuICAgICAgICAgIGlnbm9yZWRSZWZlcmVuY2VzID0gdGhpcy5nZXRJZ25vcmVkUmVmZXJlbmNlcygpLFxuICAgICAgICAgIGlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2UgPSBpZ25vcmVkUmVmZXJlbmNlcy5pbmNsdWRlcyhyZWZlcmVuY2UpLFxuICAgICAgICAgIGV4cGxvcmVySWdub3JlZCA9IGlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2U7XHQvLy9cblxuICAgIHJldHVybiBleHBsb3Jlcklnbm9yZWQ7XG4gIH1cblxuICBnZXRJZ25vcmVkUmVmZXJlbmNlcygpIHtcbiAgICBjb25zdCB7IGlnbm9yZWRSZWZlcmVuY2VzID0gW10gfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiBpZ25vcmVkUmVmZXJlbmNlcztcbiAgfVxuXG4gIHJldHJpZXZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGNvbnN0IHsgbWFya2VyRW50cnlJdGVtIH0gPSBnbG9iYWxUaGlzO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbTtcbiAgfVxuXG4gIGFkZE1hcmtlcihtYXJrZXJFbnRyeUl0ZW1QYXRoLCBkcmFnRW50cnlJdGVtVHlwZSkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbU5hbWUgPSBtYXJrZXJFbnRyeUl0ZW1QYXRoOyAgLy8vXG5cbiAgICB0aGlzLmFkZE1hcmtlckVudHJ5SXRlbShtYXJrZXJFbnRyeUl0ZW1OYW1lLCBkcmFnRW50cnlJdGVtVHlwZSk7XG5cbiAgICB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIHJlbW92ZU1hcmtlcigpIHtcbiAgICB0aGlzLnJlbW92ZU1hcmtlckVudHJ5SXRlbSgpO1xuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLnNob3dPcGVuUnViYmlzaEJpblNWRygpO1xuICAgIHRoaXMuaGlkZUNsb3NlZFJ1YmJpc2hCaW5TVkcoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaGlkZU9wZW5SdWJiaXNoQmluU1ZHKCk7XG4gICAgdGhpcy5zaG93Q2xvc2VkUnViYmlzaEJpblNWRygpO1xuICB9XG5cbiAgcmVtb3ZlRHJhZ0VudHJ5SXRlbShwYXRoTWFwLCBleHBsb3Jlcikge1xuICAgIGNvbnN0IHsgZW50cnlEaXJlY3RvcnkgfSA9IHBhdGhNYXA7XG5cbiAgICBlbnRyeURpcmVjdG9yeSA/XG4gICAgICB0aGlzLnJlbW92ZURpcmVjdG9yeU5hbWVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSA6XG4gICAgICAgIHRoaXMucmVtb3ZlRmlsZU5hbWVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKTtcbiAgfVxuXG4gIHJlbW92ZURyYWdFbnRyeUl0ZW1zKHBhdGhNYXBzLCBleHBsb3JlciwgZG9uZSkge1xuICAgIHRoaXMuY2FsbFJlbW92ZUhhbmRsZXJzQXN5bmMocGF0aE1hcHMsICgpID0+IHtcbiAgICAgIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHRoaXMucmVtb3ZlRHJhZ0VudHJ5SXRlbShwYXRoTWFwLCBleHBsb3JlcikpO1xuXG4gICAgICBkb25lKCk7XG4gICAgfSk7XG4gIH1cblxuICBhZGRNYXJrZXJFbnRyeUl0ZW0obWFya2VyRW50cnlJdGVtTmFtZSwgZHJhZ0VudHJ5SXRlbVR5cGUpIHtcbiAgICBsZXQgbWFya2VyRW50cnlJdGVtO1xuXG4gICAgY29uc3QgbmFtZSA9IG1hcmtlckVudHJ5SXRlbU5hbWUsIC8vL1xuICAgICAgICAgIHR5cGUgPSBkcmFnRW50cnlJdGVtVHlwZTsgIC8vL1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUgOiB7XG4gICAgICAgIGNvbnN0IGV4cGxvcmVyID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgICBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbSA9XG5cbiAgICAgICAgICAgICAgICA8RmlsZU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBmaWxlTmFtZU1hcmtlckVudHJ5SXRlbTsgIC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIERJUkVDVE9SWV9OQU1FX0RSQUdfRU5UUllfVFlQRSA6IHtcbiAgICAgICAgY29uc3QgZXhwbG9yZXIgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICAgIGRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gPVxuXG4gICAgICAgICAgICAgICAgPERpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0gbmFtZT17bmFtZX0gZXhwbG9yZXI9e2V4cGxvcmVyfSAvPlxuXG4gICAgICAgICAgICAgIDtcblxuICAgICAgICBtYXJrZXJFbnRyeUl0ZW0gPSBkaXJlY3RvcnlOYW1lTWFya2VyRW50cnlJdGVtOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlTWFya2VyRW50cnlJdGVtKCkge1xuICAgIGNvbnN0IG1hcmtlckVudHJ5SXRlbSA9IG51bGw7XG5cbiAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgIG1hcmtlckVudHJ5SXRlbVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlRmlsZU5hbWVEcmFnRW50cnlJdGVtKHBhdGhNYXAsIGV4cGxvcmVyKSB7XG4gICAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXA7XG5cbiAgICBpZiAoc291cmNlRW50cnlQYXRoID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7IC8vL1xuXG4gICAgZXhwbG9yZXIucmVtb3ZlRmlsZVBhdGgoZmlsZVBhdGgpO1xuICB9XG5cbiAgcmVtb3ZlRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0ocGF0aE1hcCwgZXhwbG9yZXIpIHtcbiAgICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcDtcblxuICAgIGlmIChzb3VyY2VFbnRyeVBhdGggPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG5cbiAgICBleHBsb3Jlci5yZW1vdmVEaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgpO1xuICB9XG5cbiAgY2FsbFJlbW92ZUhhbmRsZXJzQXN5bmMocGF0aE1hcHMsIGRvbmUpIHtcbiAgICBjb25zdCBldmVudFR5cGUgPSBSRU1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgICBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XG5cbiAgICBmb3JFYWNoKGV2ZW50TGlzdGVuZXJzLCAoZXZlbnRMaXN0ZW5lciwgbmV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBoYW5kbGVyLCBlbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxuICAgICAgICAgICAgcmVtb3ZlSGFuZGxlciA9IGhhbmRsZXIsICAvLy9cbiAgICAgICAgICAgIGRvbmUgPSBuZXh0OyAgLy8vXG5cbiAgICAgIHJlbW92ZUhhbmRsZXIuY2FsbChlbGVtZW50LCBwYXRoTWFwcywgZG9uZSk7XG4gICAgfSwgZG9uZSk7XG4gIH1cblxuICBvblJlbW92ZShyZW1vdmVIYW5kbGVyLCBlbGVtZW50KSB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gUkVNT1ZFX0VWRU5UX1RZUEUsXG4gICAgICAgICAgaGFuZGxlciA9IHJlbW92ZUhhbmRsZXI7ICAvLy9cblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xuICB9XG5cbiAgb2ZmUmVtb3ZlKHJlbW92ZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBldmVudFR5cGUgPSBSRU1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgICBoYW5kbGVyID0gcmVtb3ZlSGFuZGxlcjsgIC8vL1xuXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG4gIH1cblxuICBkcm9wRHJhZ0VudHJ5SXRlbShkcmFnRW50cnlJdGVtLCBkb25lKSB7XG4gICAgY29uc3QgZHJhZ0VudHJ5SXRlbVBhdGggPSBkcmFnRW50cnlJdGVtLmdldFBhdGgoKSxcbiAgICAgICAgICBkcmFnRW50cnlJdGVtRXhwbG9yZXIgPSBkcmFnRW50cnlJdGVtLmdldEV4cGxvcmVyKCksXG4gICAgICAgICAgc291cmNlRW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoRnJvbURyYWdFbnRyeUl0ZW1QYXRoKGRyYWdFbnRyeUl0ZW1QYXRoKSxcbiAgICAgICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsLFxuICAgICAgICAgIHBhdGhNYXBzID0gZHJhZ0VudHJ5SXRlbS5nZXRQYXRoTWFwcyhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCksXG4gICAgICAgICAgZXhwbG9yZXIgPSBkcmFnRW50cnlJdGVtRXhwbG9yZXI7ICAvLy9cblxuICAgIHRoaXMucmVtb3ZlRHJhZ0VudHJ5SXRlbXMocGF0aE1hcHMsIGV4cGxvcmVyLCAoKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZU1hcmtlcigpO1xuXG4gICAgICBkb25lKCk7XG4gICAgfSk7XG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IG9uUmVtb3ZlIH0gPSB0aGlzLnByb3BlcnRpZXMsXG4gICAgICAgICAgcmVtb3ZlSGFuZGxlciA9IG9uUmVtb3ZlOyAvLy9cblxuICAgIHRoaXMuZW5hYmxlRHJvcCgpO1xuXG4gICAgdGhpcy5vbkRyb3AodGhpcy5kcm9wSGFuZGxlciwgdGhpcyk7XG5cbiAgICB0aGlzLm9uRHJhZ092ZXIodGhpcy5kcmFnT3ZlckhhbmRsZXIsIHRoaXMpO1xuXG4gICAgcmVtb3ZlSGFuZGxlciAmJiB0aGlzLm9uUmVtb3ZlKHJlbW92ZUhhbmRsZXIpO1xuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgY29uc3QgeyBvblJlbW92ZSB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIHJlbW92ZUhhbmRsZXIgPSBvblJlbW92ZTsgLy8vXG5cbiAgICB0aGlzLmRpc2FibGVEcm9wKCk7XG5cbiAgICB0aGlzLm9mZkRyb3AodGhpcy5kcm9wSGFuZGxlciwgdGhpcyk7XG5cbiAgICB0aGlzLm9mZkRyYWdPdmVyKHRoaXMuZHJhZ092ZXJIYW5kbGVyLCB0aGlzKTtcblxuICAgIHJlbW92ZUhhbmRsZXIgJiYgdGhpcy5vZmZSZW1vdmUocmVtb3ZlSGFuZGxlcik7XG4gIH1cblxuICBnZXRNYXJrZXJFbnRyeUl0ZW1QYXRoKCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxuICAgICAgICAgIHsgbWFya2VyRW50cnlJdGVtUGF0aCB9ID0gc3RhdGU7XG5cbiAgICByZXR1cm4gbWFya2VyRW50cnlJdGVtUGF0aDtcbiAgfVxuXG4gIGdldE1hcmtlckVudHJ5SXRlbUV4cGxvcmVyKCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxuICAgICAgICAgIHsgbWFya2VyRW50cnlJdGVtRXhwbG9yZXIgfSA9IHN0YXRlO1xuXG4gICAgcmV0dXJuIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyO1xuICB9XG5cbiAgc2V0TWFya2VyRW50cnlJdGVtUGF0aChtYXJrZXJFbnRyeUl0ZW1QYXRoKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBtYXJrZXJFbnRyeUl0ZW1QYXRoXG4gICAgfSk7XG4gIH1cblxuICBzZXRNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlcihtYXJrZXJFbnRyeUl0ZW1FeHBsb3Jlcikge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgbWFya2VyRW50cnlJdGVtRXhwbG9yZXJcbiAgICB9KTtcbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgY29uc3QgeyBPcGVuUnViYmlzaEJpblNWRywgQ2xvc2VkUnViYmlzaEJpblNWRyB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcblxuICAgIHJldHVybiAoW1xuXG4gICAgICA8T3BlblJ1YmJpc2hCaW5TVkcvPixcbiAgICAgIDxDbG9zZWRSdWJiaXNoQmluU1ZHLz5cblxuICAgIF0pO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICBjb25zdCBtYXJrZXJFbnRyeUl0ZW1QYXRoID0gbnVsbCxcbiAgICAgICAgICBtYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciA9IG51bGw7XG5cbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbWFya2VyRW50cnlJdGVtUGF0aCxcbiAgICAgIG1hcmtlckVudHJ5SXRlbUV4cGxvcmVyXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgT3BlblJ1YmJpc2hCaW5TVkcgPSBPcGVuUnViYmlzaEJpblNWRztcblxuICBzdGF0aWMgQ2xvc2VkUnViYmlzaEJpblNWRyA9IENsb3NlZFJ1YmJpc2hCaW5TVkc7XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcbiAgICBcIm9uUmVtb3ZlXCIsXG4gICAgXCJpZ25vcmVkUmVmZXJlbmNlc1wiXG4gIF07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJydWJiaXNoLWJpblwiXG4gIH07XG59XG5cbk9iamVjdC5hc3NpZ24oUnViYmlzaEJpbi5wcm90b3R5cGUsIGRyb3BNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoUnViYmlzaEJpbilgXG4gIFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBcbmA7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsIlJFTU9WRV9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIlJ1YmJpc2hCaW4iLCJkcm9wSGFuZGxlciIsImRyYWdFbGVtZW50IiwiYWJvcnRlZCIsImVsZW1lbnQiLCJkb25lIiwiZHJhZ0VsZW1lbnREcmFnRW50cnlJdGVtIiwiRHJhZ0VudHJ5SXRlbSIsImRyYWdFbnRyeUl0ZW0iLCJtYXJrZXJFbnRyeUl0ZW0iLCJyZXRyaWV2ZU1hcmtlckVudHJ5SXRlbSIsIm1hcmtlckVudHJ5SXRlbUV4cGxvcmVyIiwiZ2V0RXhwbG9yZXIiLCJyZW1vdmVNYXJrZXIiLCJkcm9wRHJhZ0VudHJ5SXRlbSIsImRyYWdPdmVySGFuZGxlciIsImRyYWdFbnRyeUl0ZW1FeHBsb3JlciIsImRyYWdFbnRyeUl0ZW1FeHBsb3Jlcklnbm9yZWQiLCJpc0V4cGxvcmVySWdub3JlZCIsIm1hcmtlckVudHJ5SXRlbVBhdGgiLCJnZXRQYXRoIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1QYXRoIiwicHJldmlvdXNNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsImRyYWdFbnRyeUl0ZW1UeXBlIiwiZ2V0VHlwZSIsImFkZE1hcmtlciIsImV4cGxvcmVyIiwicmVmZXJlbmNlIiwiZ2V0UmVmZXJlbmNlIiwiaWdub3JlZFJlZmVyZW5jZXMiLCJnZXRJZ25vcmVkUmVmZXJlbmNlcyIsImlnbm9yZWRSZWZlcmVuY2VzSW5jbHVkZXNSZWZlcmVuY2UiLCJpbmNsdWRlcyIsImV4cGxvcmVySWdub3JlZCIsInByb3BlcnRpZXMiLCJnbG9iYWxUaGlzIiwibWFya2VyRW50cnlJdGVtTmFtZSIsImFkZE1hcmtlckVudHJ5SXRlbSIsIm9wZW4iLCJyZW1vdmVNYXJrZXJFbnRyeUl0ZW0iLCJjbG9zZSIsInNob3dPcGVuUnViYmlzaEJpblNWRyIsImhpZGVDbG9zZWRSdWJiaXNoQmluU1ZHIiwiaGlkZU9wZW5SdWJiaXNoQmluU1ZHIiwic2hvd0Nsb3NlZFJ1YmJpc2hCaW5TVkciLCJyZW1vdmVEcmFnRW50cnlJdGVtIiwicGF0aE1hcCIsImVudHJ5RGlyZWN0b3J5IiwicmVtb3ZlRGlyZWN0b3J5TmFtZURyYWdFbnRyeUl0ZW0iLCJyZW1vdmVGaWxlTmFtZURyYWdFbnRyeUl0ZW0iLCJyZW1vdmVEcmFnRW50cnlJdGVtcyIsInBhdGhNYXBzIiwiY2FsbFJlbW92ZUhhbmRsZXJzQXN5bmMiLCJuYW1lIiwidHlwZSIsIkZJTEVfTkFNRV9EUkFHX0VOVFJZX1RZUEUiLCJmaWxlTmFtZU1hcmtlckVudHJ5SXRlbSIsIkZpbGVOYW1lTWFya2VyRW50cnlJdGVtIiwiRElSRUNUT1JZX05BTUVfRFJBR19FTlRSWV9UWVBFIiwiZGlyZWN0b3J5TmFtZU1hcmtlckVudHJ5SXRlbSIsIkRpcmVjdG9yeU5hbWVNYXJrZXJFbnRyeUl0ZW0iLCJPYmplY3QiLCJhc3NpZ24iLCJzb3VyY2VFbnRyeVBhdGgiLCJmaWxlUGF0aCIsInJlbW92ZUZpbGVQYXRoIiwiZGlyZWN0b3J5UGF0aCIsInJlbW92ZURpcmVjdG9yeVBhdGgiLCJldmVudFR5cGUiLCJldmVudExpc3RlbmVycyIsImZpbmRFdmVudExpc3RlbmVycyIsImV2ZW50TGlzdGVuZXIiLCJuZXh0IiwiaGFuZGxlciIsInJlbW92ZUhhbmRsZXIiLCJjYWxsIiwib25SZW1vdmUiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmUmVtb3ZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRyYWdFbnRyeUl0ZW1QYXRoIiwic291cmNlRW50cnlQYXRoRnJvbURyYWdFbnRyeUl0ZW1QYXRoIiwidGFyZ2V0RW50cnlQYXRoIiwiZ2V0UGF0aE1hcHMiLCJkaWRNb3VudCIsImVuYWJsZURyb3AiLCJvbkRyb3AiLCJvbkRyYWdPdmVyIiwid2lsbFVubW91bnQiLCJkaXNhYmxlRHJvcCIsIm9mZkRyb3AiLCJvZmZEcmFnT3ZlciIsImdldE1hcmtlckVudHJ5SXRlbVBhdGgiLCJzdGF0ZSIsImdldFN0YXRlIiwiZ2V0TWFya2VyRW50cnlJdGVtRXhwbG9yZXIiLCJzZXRNYXJrZXJFbnRyeUl0ZW1QYXRoIiwidXBkYXRlU3RhdGUiLCJzZXRNYXJrZXJFbnRyeUl0ZW1FeHBsb3JlciIsImNoaWxkRWxlbWVudHMiLCJjb25zdHJ1Y3RvciIsIk9wZW5SdWJiaXNoQmluU1ZHIiwiQ2xvc2VkUnViYmlzaEJpblNWRyIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0Iiwic2V0U3RhdGUiLCJFbGVtZW50IiwidGFnTmFtZSIsImlnbm9yZWRQcm9wZXJ0aWVzIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJwcm90b3R5cGUiLCJkcm9wTWl4aW5zIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7K0JBOFZiLFNBSUU7OztlQUpGLFFBSUU7OztrRUFoV29CLGlCQUFpQjsrQkFFWixvQkFBb0I7b0JBQ1gsTUFBTTt5QkFDSixXQUFXO3lEQUV2QixtQkFBbUI7eURBQ2YsdUJBQXVCOzJEQUNyQix5QkFBeUI7NkRBQ3JCLDhCQUE4QjtrRUFDekIsbUNBQW1DO3VCQUV4QyxxQkFBcUI7MEJBRWlCLGNBQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEYsSUFBTSxBQUFFQSxPQUFPLEdBQUtDLFVBQXFC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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easy-file-system",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.137",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/easy-file-system",
|
|
7
7
|
"description": "A file system explorer and a rubbish bin.",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"easy": "^13.0.44",
|
|
14
|
-
"easy-drag-and-drop": "^1.2.
|
|
15
|
-
"easy-with-style": "^3.0.
|
|
14
|
+
"easy-drag-and-drop": "^1.2.82",
|
|
15
|
+
"easy-with-style": "^3.0.178",
|
|
16
16
|
"necessary": "^11.0.40"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
package/src/explorer.js
CHANGED
|
@@ -7,6 +7,7 @@ import { Element, eventTypes } from "easy";
|
|
|
7
7
|
import { asynchronousUtilities } from "necessary";
|
|
8
8
|
|
|
9
9
|
import EntriesList from "./list/entries";
|
|
10
|
+
import DragEntryItem from "./item/entry/drag";
|
|
10
11
|
import FileNameDragEntryItem from "./item/entry/drag/fileName";
|
|
11
12
|
import FileNameMarkerEntryItem from "./item/entry/marker/fileName";
|
|
12
13
|
import DirectoryNameDragEntryItem from "./item/entry/drag/directoryName";
|
|
@@ -31,6 +32,14 @@ class Explorer extends Element {
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
dropHandler = (dragElement, aborted, element, done) => {
|
|
35
|
+
const dragElementDragEntryItem = (dragElement instanceof DragEntryItem);
|
|
36
|
+
|
|
37
|
+
if (!dragElementDragEntryItem) {
|
|
38
|
+
done();
|
|
39
|
+
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
34
43
|
const markerEntryItem = this.retrieveMarkerEntryItem(),
|
|
35
44
|
markerEntryItemExplorer = markerEntryItem.getExplorer();
|
|
36
45
|
|
|
@@ -48,6 +57,12 @@ class Explorer extends Element {
|
|
|
48
57
|
}
|
|
49
58
|
|
|
50
59
|
dragOverHandler = (dragElement, element) => {
|
|
60
|
+
const dragElementDragEntryItem = (dragElement instanceof DragEntryItem);
|
|
61
|
+
|
|
62
|
+
if (!dragElementDragEntryItem) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
51
66
|
const dragEntryItem = dragElement, ///
|
|
52
67
|
dragEntryItemExplorer = dragEntryItem.getExplorer(),
|
|
53
68
|
dragEntryItemExplorerIgnored = this.isExplorerIgnored(dragEntryItemExplorer);
|
|
@@ -362,13 +377,13 @@ class Explorer extends Element {
|
|
|
362
377
|
parentContext() {
|
|
363
378
|
const context = this.getContext(),
|
|
364
379
|
retrieveFilePaths = this.retrieveFilePaths.bind(this),
|
|
365
|
-
retrieveDirectoryPaths = this.retrieveDirectoryPaths.bind(this)
|
|
366
|
-
parentContext = Object.assign({}, context, {
|
|
367
|
-
retrieveFilePaths,
|
|
368
|
-
retrieveDirectoryPaths
|
|
369
|
-
});
|
|
380
|
+
retrieveDirectoryPaths = this.retrieveDirectoryPaths.bind(this);
|
|
370
381
|
|
|
371
|
-
return
|
|
382
|
+
return ({
|
|
383
|
+
...context,
|
|
384
|
+
retrieveFilePaths,
|
|
385
|
+
retrieveDirectoryPaths
|
|
386
|
+
});
|
|
372
387
|
}
|
|
373
388
|
|
|
374
389
|
initialise() {
|
|
@@ -13,7 +13,16 @@ import { FILE_NAME_DRAG_ENTRY_TYPE, FILE_NAME_MARKER_ENTRY_TYPE, DIRECTORY_NAME_
|
|
|
13
13
|
|
|
14
14
|
export default class DirectoryNameDragEntryItem extends DragEntryItem {
|
|
15
15
|
dropHandler = (dragElement, aborted, element, done) => {
|
|
16
|
-
const
|
|
16
|
+
const dragElementDragEntryItem = (dragElement instanceof DragEntryItem);
|
|
17
|
+
|
|
18
|
+
if (!dragElementDragEntryItem) {
|
|
19
|
+
done();
|
|
20
|
+
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const dragEntryItem = dragElement, ///
|
|
25
|
+
markerEntryItem = this.retrieveMarkerEntryItem(),
|
|
17
26
|
markerEntryItemExplorer = markerEntryItem.getExplorer();
|
|
18
27
|
|
|
19
28
|
if (aborted) {
|
|
@@ -24,12 +33,16 @@ export default class DirectoryNameDragEntryItem extends DragEntryItem {
|
|
|
24
33
|
return;
|
|
25
34
|
}
|
|
26
35
|
|
|
27
|
-
const dragEntryItem = dragElement; ///
|
|
28
|
-
|
|
29
36
|
markerEntryItemExplorer.dropDragEntryItem(dragEntryItem, done);
|
|
30
37
|
}
|
|
31
38
|
|
|
32
39
|
dragOverHandler = (dragElement, element) => {
|
|
40
|
+
const dragElementDragEntryItem = (dragElement instanceof DragEntryItem);
|
|
41
|
+
|
|
42
|
+
if (!dragElementDragEntryItem) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
33
46
|
const collapsed = this.isCollapsed();
|
|
34
47
|
|
|
35
48
|
if (collapsed) {
|
package/src/item/entry/drag.js
CHANGED
package/src/rubbishBin.js
CHANGED
|
@@ -6,6 +6,7 @@ import { dropMixins } from "easy-drag-and-drop";
|
|
|
6
6
|
import { Element, eventTypes } from "easy";
|
|
7
7
|
import { asynchronousUtilities } from "necessary";
|
|
8
8
|
|
|
9
|
+
import DragEntryItem from "./item/entry/drag";
|
|
9
10
|
import OpenRubbishBinSVG from "./svg/rubbishBin/open";
|
|
10
11
|
import ClosedRubbishBinSVG from "./svg/rubbishBin/closed";
|
|
11
12
|
import FileNameMarkerEntryItem from "./item/entry/marker/fileName";
|
|
@@ -20,7 +21,16 @@ const { forEach } = asynchronousUtilities,
|
|
|
20
21
|
|
|
21
22
|
class RubbishBin extends Element {
|
|
22
23
|
dropHandler = (dragElement, aborted, element, done) => {
|
|
23
|
-
const
|
|
24
|
+
const dragElementDragEntryItem = (dragElement instanceof DragEntryItem);
|
|
25
|
+
|
|
26
|
+
if (!dragElementDragEntryItem) {
|
|
27
|
+
done();
|
|
28
|
+
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const dragEntryItem = dragElement, ///
|
|
33
|
+
markerEntryItem = this.retrieveMarkerEntryItem(),
|
|
24
34
|
markerEntryItemExplorer = markerEntryItem.getExplorer();
|
|
25
35
|
|
|
26
36
|
if (aborted) {
|
|
@@ -31,12 +41,16 @@ class RubbishBin extends Element {
|
|
|
31
41
|
return;
|
|
32
42
|
}
|
|
33
43
|
|
|
34
|
-
const dragEntryItem = dragElement; ///
|
|
35
|
-
|
|
36
44
|
markerEntryItemExplorer.dropDragEntryItem(dragEntryItem, done);
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
dragOverHandler = (dragElement, element) => {
|
|
48
|
+
const dragElementDragEntryItem = (dragElement instanceof DragEntryItem);
|
|
49
|
+
|
|
50
|
+
if (!dragElementDragEntryItem) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
40
54
|
const dragEntryItem = dragElement, ///
|
|
41
55
|
dragEntryItemExplorer = dragEntryItem.getExplorer(),
|
|
42
56
|
dragEntryItemExplorerIgnored = this.isExplorerIgnored(dragEntryItemExplorer);
|