easy-file-system 1.5.17 → 1.5.19

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.
@@ -4,18 +4,20 @@ import { pathUtilities } from "necessary";
4
4
 
5
5
  import { EMPTY_STRING } from "../constants";
6
6
 
7
- const { pathWithoutBottommostNameFromPath } = pathUtilities;
7
+ const { concatenatePaths, pathWithoutBottommostNameFromPath } = pathUtilities;
8
8
 
9
- export function sourceEntryPathFromDragEntryItemPath(dragEntryItemPath) {
10
- const dragEntryItemPathWithoutBottommostName = pathWithoutBottommostNameFromPath(dragEntryItemPath),
11
- sourceEntryPath = nonNullPathFromName(dragEntryItemPathWithoutBottommostName); ///
9
+ export function sourceEntryPathFromEntryItem(entryItem) {
10
+ const entryItemPath = entryItem.getPath(),
11
+ entryItemPathWithoutBottommostName = pathWithoutBottommostNameFromPath(entryItemPath),
12
+ sourceEntryPath = nonNullPathFromName(entryItemPathWithoutBottommostName); ///
12
13
 
13
14
  return sourceEntryPath;
14
15
  }
15
16
 
16
- export function targetEntryPathFromMarkerEntryItemPath(markerEntryItemPath) {
17
- const markerEntryItemPathWithoutBottommostName = pathWithoutBottommostNameFromPath(markerEntryItemPath),
18
- targetEntryPath = nonNullPathFromName(markerEntryItemPathWithoutBottommostName); ///
17
+ export function targetEntryPathFromEntryItem(entryItem) {
18
+ const entryItemPath = entryItem.getPath(),
19
+ entryItemPathWithoutBottommostName = pathWithoutBottommostNameFromPath(entryItemPath),
20
+ targetEntryPath = nonNullPathFromName(entryItemPathWithoutBottommostName); ///
19
21
 
20
22
  return targetEntryPath;
21
23
  }
@@ -26,21 +28,21 @@ export function adjustSourceEntryPath(sourceEntryPath, name) {
26
28
  } else if (sourceEntryPath === EMPTY_STRING) {
27
29
  sourceEntryPath = name; ///
28
30
  } else {
29
- sourceEntryPath = `${sourceEntryPath}/${name}`;
31
+ sourceEntryPath = concatenatePaths(sourceEntryPath, name);
30
32
  }
31
33
 
32
34
  return sourceEntryPath;
33
35
  }
34
36
 
35
- export function adjustTargetEntryPath(targetEntryPath, name) {
37
+ export function adjustTargetEntryPath(targetEntryPath, nameInputName) {
36
38
  if (false) {
37
39
  ///
38
40
  } else if (targetEntryPath === null) {
39
41
  targetEntryPath = null;
40
42
  } else if (targetEntryPath === EMPTY_STRING) {
41
- targetEntryPath = name; ///
43
+ targetEntryPath = nameInputName; ///
42
44
  } else {
43
- targetEntryPath = `${targetEntryPath}/${name}`;
45
+ targetEntryPath = concatenatePaths(targetEntryPath, nameInputName);
44
46
  }
45
47
 
46
48
  return targetEntryPath;
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _necessary = require("necessary");
12
- var _eventTypes = require("../eventTypes");
13
- var forEach = _necessary.asynchronousUtilities.forEach;
14
- function onMove(moveHandler, element) {
15
- var eventType = _eventTypes.MOVE_EVENT_TYPE, handler = moveHandler; ///
16
- this.addEventListener(eventType, handler, element);
17
- }
18
- function offMove(moveHandler, element) {
19
- var eventType = _eventTypes.MOVE_EVENT_TYPE, handler = moveHandler; ///
20
- this.removeEventListener(eventType, handler, element);
21
- }
22
- function onOpen(openHandler, element) {
23
- var eventType = _eventTypes.OPEN_EVENT_TYPE, handler = openHandler; ///
24
- this.addEventListener(eventType, handler, element);
25
- }
26
- function offOpen(openHandler, element) {
27
- var eventType = _eventTypes.OPEN_EVENT_TYPE, handler = openHandler; ///
28
- this.removeEventListener(eventType, handler, element);
29
- }
30
- function onSelect(selectHandler, element) {
31
- var eventType = _eventTypes.SELECT_EVENT_TYPE, handler = selectHandler; ///
32
- this.addEventListener(eventType, handler, element);
33
- }
34
- function offSelect(selectHandler, element) {
35
- var eventType = _eventTypes.SELECT_EVENT_TYPE, handler = selectHandler; ///
36
- this.removeEventListener(eventType, handler, element);
37
- }
38
- function onPathChange(pathChangeHandler, element) {
39
- var eventType = _eventTypes.PATH_CHANGE_EVENT_TYPE, handler = pathChangeHandler; ///
40
- this.addEventListener(eventType, handler, element);
41
- }
42
- function offPathChange(pathChangeHandler, element) {
43
- var eventType = _eventTypes.PATH_CHANGE_EVENT_TYPE, handler = pathChangeHandler; ///
44
- this.removeEventListener(eventType, handler, element);
45
- }
46
- function callOpenHandlers(filePath) {
47
- var _this = this;
48
- var eventType = _eventTypes.OPEN_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
49
- eventListeners.forEach(function(eventListener) {
50
- var handler = eventListener.handler, element = eventListener.element, openHandler = handler; ///
51
- openHandler.call(element, filePath, _this); ///
52
- });
53
- }
54
- function callSelectHandlers(path, selected) {
55
- var _this = this;
56
- var eventType = _eventTypes.SELECT_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
57
- eventListeners.forEach(function(eventListener) {
58
- var handler = eventListener.handler, element = eventListener.element, selectHandler = handler; ///
59
- selectHandler.call(element, path, selected, _this); ///
60
- });
61
- }
62
- function callMoveHandlersAsync(pathMaps, done) {
63
- var eventType = _eventTypes.MOVE_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
64
- forEach(eventListeners, function(eventListener, next) {
65
- var handler = eventListener.handler, element = eventListener.element, moveHandler = handler, _$done = next; ///
66
- moveHandler.call(element, pathMaps, _$done);
67
- }, done);
68
- }
69
- function callPathChangeHandlersAsync(oldPath, newPath, callback) {
70
- var notSuccess = false;
71
- var done = function() {
72
- var success = !notSuccess;
73
- callback(success);
74
- }, eventType = _eventTypes.PATH_CHANGE_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
75
- forEach(eventListeners, function(eventListener, next) {
76
- var handler = eventListener.handler, element = eventListener.element, pathChangeHandler = handler; ///
77
- pathChangeHandler.call(element, oldPath, newPath, function(success) {
78
- notSuccess = !success;
79
- next();
80
- });
81
- }, done);
82
- }
83
- var eventMixins = {
84
- onMove: onMove,
85
- offMove: offMove,
86
- onOpen: onOpen,
87
- offOpen: offOpen,
88
- onSelect: onSelect,
89
- offSelect: offSelect,
90
- onPathChange: onPathChange,
91
- offPathChange: offPathChange,
92
- callOpenHandlers: callOpenHandlers,
93
- callSelectHandlers: callSelectHandlers,
94
- callMoveHandlersAsync: callMoveHandlersAsync,
95
- callPathChangeHandlersAsync: callPathChangeHandlersAsync
96
- };
97
- var _default = eventMixins;
98
-
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZXZlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFzeW5jaHJvbm91c1V0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgTU9WRV9FVkVOVF9UWVBFLCBPUEVOX0VWRU5UX1RZUEUsIFBBVEhfQ0hBTkdFX0VWRU5UX1RZUEUsIFNFTEVDVF9FVkVOVF9UWVBFIH0gZnJvbSBcIi4uL2V2ZW50VHlwZXNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXM7XG5cbmZ1bmN0aW9uIG9uTW92ZShtb3ZlSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBldmVudFR5cGUgPSBNT1ZFX0VWRU5UX1RZUEUsXG4gICAgICAgIGhhbmRsZXIgPSBtb3ZlSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZNb3ZlKG1vdmVIYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IE1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IG1vdmVIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uT3BlbihvcGVuSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBldmVudFR5cGUgPSBPUEVOX0VWRU5UX1RZUEUsXG4gICAgICAgIGhhbmRsZXIgPSBvcGVuSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZPcGVuKG9wZW5IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IE9QRU5fRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IG9wZW5IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uU2VsZWN0KHNlbGVjdEhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gU0VMRUNUX0VWRU5UX1RZUEUsXG4gICAgICAgIGhhbmRsZXIgPSBzZWxlY3RIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZlNlbGVjdChzZWxlY3RIYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IFNFTEVDVF9FVkVOVF9UWVBFLFxuICAgICAgICBoYW5kbGVyID0gc2VsZWN0SGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvblBhdGhDaGFuZ2UocGF0aENoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gUEFUSF9DSEFOR0VfRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IHBhdGhDaGFuZ2VIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZlBhdGhDaGFuZ2UocGF0aENoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gUEFUSF9DSEFOR0VfRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IHBhdGhDaGFuZ2VIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIGNhbGxPcGVuSGFuZGxlcnMoZmlsZVBhdGgpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gT1BFTl9FVkVOVF9UWVBFLFxuICAgICAgICBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XG5cbiAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgb3BlbkhhbmRsZXIgPSBoYW5kbGVyOyAgLy8vXG5cbiAgICBvcGVuSGFuZGxlci5jYWxsKGVsZW1lbnQsIGZpbGVQYXRoLCB0aGlzKTsgIC8vL1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY2FsbFNlbGVjdEhhbmRsZXJzKHBhdGgsIHNlbGVjdGVkKSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IFNFTEVDVF9FVkVOVF9UWVBFLFxuICAgICAgICBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XG5cbiAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgc2VsZWN0SGFuZGxlciA9IGhhbmRsZXI7ICAvLy9cblxuICAgIHNlbGVjdEhhbmRsZXIuY2FsbChlbGVtZW50LCBwYXRoLCBzZWxlY3RlZCwgdGhpcyk7ICAvLy9cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNhbGxNb3ZlSGFuZGxlcnNBc3luYyhwYXRoTWFwcywgZG9uZSkge1xuICBjb25zdCBldmVudFR5cGUgPSBNT1ZFX0VWRU5UX1RZUEUsXG4gICAgICAgIGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcblxuICBmb3JFYWNoKGV2ZW50TGlzdGVuZXJzLCAoZXZlbnRMaXN0ZW5lciwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgbW92ZUhhbmRsZXIgPSBoYW5kbGVyLCAgLy8vXG4gICAgICAgIGRvbmUgPSBuZXh0OyAgLy8vXG5cbiAgICBtb3ZlSGFuZGxlci5jYWxsKGVsZW1lbnQsIHBhdGhNYXBzLCBkb25lKTtcbiAgfSwgZG9uZSk7XG59XG5cbmZ1bmN0aW9uIGNhbGxQYXRoQ2hhbmdlSGFuZGxlcnNBc3luYyhvbGRQYXRoLCBuZXdQYXRoLCBjYWxsYmFjaykge1xuICBsZXQgbm90U3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGRvbmUgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VjY2VzcyA9ICFub3RTdWNjZXNzO1xuXG4gICAgICAgICAgY2FsbGJhY2soc3VjY2Vzcyk7XG4gICAgICAgIH0sXG4gICAgICAgIGV2ZW50VHlwZSA9IFBBVEhfQ0hBTkdFX0VWRU5UX1RZUEUsXG4gICAgICAgIGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcblxuICBmb3JFYWNoKGV2ZW50TGlzdGVuZXJzLCAoZXZlbnRMaXN0ZW5lciwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgICBwYXRoQ2hhbmdlSGFuZGxlciA9IGhhbmRsZXI7ICAvLy9cblxuICAgIHBhdGhDaGFuZ2VIYW5kbGVyLmNhbGwoZWxlbWVudCwgb2xkUGF0aCwgbmV3UGF0aCwgKHN1Y2Nlc3MpID0+IHtcbiAgICAgIG5vdFN1Y2Nlc3MgPSAhc3VjY2VzcztcblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCBkb25lKTtcbn1cblxuY29uc3QgZXZlbnRNaXhpbnMgPSB7XG4gIG9uTW92ZSxcbiAgb2ZmTW92ZSxcbiAgb25PcGVuLFxuICBvZmZPcGVuLFxuICBvblNlbGVjdCxcbiAgb2ZmU2VsZWN0LFxuICBvblBhdGhDaGFuZ2UsXG4gIG9mZlBhdGhDaGFuZ2UsXG4gIGNhbGxPcGVuSGFuZGxlcnMsXG4gIGNhbGxTZWxlY3RIYW5kbGVycyxcbiAgY2FsbE1vdmVIYW5kbGVyc0FzeW5jLFxuICBjYWxsUGF0aENoYW5nZUhhbmRsZXJzQXN5bmNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV2ZW50TWl4aW5zO1xuIl0sIm5hbWVzIjpbImZvckVhY2giLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJvbk1vdmUiLCJtb3ZlSGFuZGxlciIsImVsZW1lbnQiLCJldmVudFR5cGUiLCJNT1ZFX0VWRU5UX1RZUEUiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9mZk1vdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25PcGVuIiwib3BlbkhhbmRsZXIiLCJPUEVOX0VWRU5UX1RZUEUiLCJvZmZPcGVuIiwib25TZWxlY3QiLCJzZWxlY3RIYW5kbGVyIiwiU0VMRUNUX0VWRU5UX1RZUEUiLCJvZmZTZWxlY3QiLCJvblBhdGhDaGFuZ2UiLCJwYXRoQ2hhbmdlSGFuZGxlciIsIlBBVEhfQ0hBTkdFX0VWRU5UX1RZUEUiLCJvZmZQYXRoQ2hhbmdlIiwiY2FsbE9wZW5IYW5kbGVycyIsImZpbGVQYXRoIiwiZXZlbnRMaXN0ZW5lcnMiLCJmaW5kRXZlbnRMaXN0ZW5lcnMiLCJldmVudExpc3RlbmVyIiwiY2FsbCIsImNhbGxTZWxlY3RIYW5kbGVycyIsInBhdGgiLCJzZWxlY3RlZCIsImNhbGxNb3ZlSGFuZGxlcnNBc3luYyIsInBhdGhNYXBzIiwiZG9uZSIsIm5leHQiLCJjYWxsUGF0aENoYW5nZUhhbmRsZXJzQXN5bmMiLCJvbGRQYXRoIiwibmV3UGF0aCIsImNhbGxiYWNrIiwibm90U3VjY2VzcyIsInN1Y2Nlc3MiLCJldmVudE1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBMklBOzs7ZUFBQTs7O3lCQXpJc0M7MEJBRXNEO0FBRTVGLElBQU0sQUFBRUEsVUFBWUMsZ0NBQXFCLENBQWpDRDtB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