easy-file-system 1.5.5 → 1.5.7

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 (44) hide show
  1. package/example.js +2483 -1325
  2. package/lib/button/name.js +35 -1
  3. package/lib/constants.js +13 -4
  4. package/lib/div/item/entry/directoryName.js +19 -10
  5. package/lib/div/item/entry/fileName.js +17 -9
  6. package/lib/div/item/entry.js +8 -1
  7. package/lib/eventTypes.js +7 -2
  8. package/lib/example/view/button/editSelected.js +157 -0
  9. package/lib/example/view/explorer/first.js +158 -0
  10. package/lib/example/view/explorer/second.js +160 -0
  11. package/lib/example/view/rubbishBin.js +111 -0
  12. package/lib/example/view.js +71 -45
  13. package/lib/explorer.js +10 -83
  14. package/lib/index.js +7 -3
  15. package/lib/input/name.js +300 -0
  16. package/lib/item/entry/drag/directoryName.js +8 -6
  17. package/lib/item/entry/drag/fileName.js +10 -8
  18. package/lib/item/entry/drag.js +57 -15
  19. package/lib/keyCodes.js +22 -0
  20. package/lib/list/entries.js +16 -2
  21. package/lib/mixins/event.js +99 -0
  22. package/lib/styles.js +1 -5
  23. package/package.json +1 -1
  24. package/src/button/name.js +34 -0
  25. package/src/constants.js +1 -0
  26. package/src/div/item/entry/directoryName.js +23 -16
  27. package/src/div/item/entry/fileName.js +20 -14
  28. package/src/div/item/entry.js +7 -0
  29. package/src/eventTypes.js +3 -1
  30. package/src/example/view/button/editSelected.js +23 -0
  31. package/src/example/view/explorer/first.js +18 -0
  32. package/src/example/view/explorer/second.js +18 -0
  33. package/src/example/view/rubbishBin.js +9 -0
  34. package/src/example/view.js +53 -41
  35. package/src/explorer.js +9 -89
  36. package/src/index.js +1 -0
  37. package/src/input/name.js +90 -0
  38. package/src/item/entry/drag/directoryName.js +5 -4
  39. package/src/item/entry/drag/fileName.js +10 -6
  40. package/src/item/entry/drag.js +77 -23
  41. package/src/keyCodes.js +4 -0
  42. package/src/list/entries.js +16 -0
  43. package/src/mixins/event.js +140 -0
  44. package/src/styles.js +0 -1
@@ -183,6 +183,20 @@ class EntriesList extends Element {
183
183
  });
184
184
  }
185
185
 
186
+ editSelectedPath() {
187
+ const dragEntryItems = this.retrieveDragEntryItems();
188
+
189
+ dragEntryItems.some((dragEntryItem) => {
190
+ const selected = dragEntryItem.isSelected();
191
+
192
+ if (selected) {
193
+ dragEntryItem.edit();
194
+
195
+ return true;
196
+ }
197
+ });
198
+ }
199
+
186
200
  addDirectoryPath(directoryPath, collapsed = true) {
187
201
  let directoryNameDragEntryItem;
188
202
 
@@ -576,6 +590,7 @@ class EntriesList extends Element {
576
590
  removeAllPaths = this.removeAllPaths.bind(this),
577
591
  deselectAllPaths = this.deselectAllPaths.bind(this),
578
592
  addDirectoryPath = this.addDirectoryPath.bind(this),
593
+ editSelectedPath = this.editSelectedPath.bind(this),
579
594
  removeDirectoryPath = this.removeDirectoryPath.bind(this),
580
595
  forEachDragEntryItem = this.forEachDragEntryItem.bind(this),
581
596
  retrieveDragEntryItems = this.retrieveDragEntryItems.bind(this),
@@ -594,6 +609,7 @@ class EntriesList extends Element {
594
609
  removeAllPaths,
595
610
  deselectAllPaths,
596
611
  addDirectoryPath,
612
+ editSelectedPath,
597
613
  removeDirectoryPath,
598
614
  forEachDragEntryItem,
599
615
  retrieveDragEntryItems,
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ import { asynchronousUtilities } from "necessary";
4
+
5
+ import { MOVE_EVENT_TYPE, OPEN_EVENT_TYPE, PATH_CHANGE_EVENT_TYPE, SELECT_EVENT_TYPE } from "../eventTypes";
6
+
7
+ const { forEach } = asynchronousUtilities;
8
+
9
+ function onMove(moveHandler, element) {
10
+ const eventType = MOVE_EVENT_TYPE,
11
+ handler = moveHandler; ///
12
+
13
+ this.addEventListener(eventType, handler, element);
14
+ }
15
+
16
+ function offMove(moveHandler, element) {
17
+ const eventType = MOVE_EVENT_TYPE,
18
+ handler = moveHandler; ///
19
+
20
+ this.removeEventListener(eventType, handler, element);
21
+ }
22
+
23
+ function onOpen(openHandler, element) {
24
+ const eventType = OPEN_EVENT_TYPE,
25
+ handler = openHandler; ///
26
+
27
+ this.addEventListener(eventType, handler, element);
28
+ }
29
+
30
+ function offOpen(openHandler, element) {
31
+ const eventType = OPEN_EVENT_TYPE,
32
+ handler = openHandler; ///
33
+
34
+ this.removeEventListener(eventType, handler, element);
35
+ }
36
+
37
+ function onSelect(selectHandler, element) {
38
+ const eventType = SELECT_EVENT_TYPE,
39
+ handler = selectHandler; ///
40
+
41
+ this.addEventListener(eventType, handler, element);
42
+ }
43
+
44
+ function offSelect(selectHandler, element) {
45
+ const eventType = SELECT_EVENT_TYPE,
46
+ handler = selectHandler; ///
47
+
48
+ this.removeEventListener(eventType, handler, element);
49
+ }
50
+
51
+ function onPathChange(pathChangeHandler, element) {
52
+ const eventType = PATH_CHANGE_EVENT_TYPE,
53
+ handler = pathChangeHandler; ///
54
+
55
+ this.addEventListener(eventType, handler, element);
56
+ }
57
+
58
+ function offPathChange(pathChangeHandler, element) {
59
+ const eventType = PATH_CHANGE_EVENT_TYPE,
60
+ handler = pathChangeHandler; ///
61
+
62
+ this.removeEventListener(eventType, handler, element);
63
+ }
64
+
65
+ function callOpenHandlers(filePath) {
66
+ const eventType = OPEN_EVENT_TYPE,
67
+ eventListeners = this.findEventListeners(eventType);
68
+
69
+ eventListeners.forEach((eventListener) => {
70
+ const { handler, element } = eventListener,
71
+ openHandler = handler; ///
72
+
73
+ openHandler.call(element, filePath, this); ///
74
+ });
75
+ }
76
+
77
+ function callSelectHandlers(path, selected) {
78
+ const eventType = SELECT_EVENT_TYPE,
79
+ eventListeners = this.findEventListeners(eventType);
80
+
81
+ eventListeners.forEach((eventListener) => {
82
+ const { handler, element } = eventListener,
83
+ selectHandler = handler; ///
84
+
85
+ selectHandler.call(element, path, selected, this); ///
86
+ });
87
+ }
88
+
89
+ function callMoveHandlersAsync(pathMaps, done) {
90
+ const eventType = MOVE_EVENT_TYPE,
91
+ eventListeners = this.findEventListeners(eventType);
92
+
93
+ forEach(eventListeners, (eventListener, next) => {
94
+ const { handler, element } = eventListener,
95
+ moveHandler = handler, ///
96
+ done = next; ///
97
+
98
+ moveHandler.call(element, pathMaps, done);
99
+ }, done);
100
+ }
101
+
102
+ function callPathChangeHandlersAsync(path, callback) {
103
+ let notSuccess = false;
104
+
105
+ const done = () => {
106
+ const success = !notSuccess;
107
+
108
+ callback(success);
109
+ },
110
+ eventType = PATH_CHANGE_EVENT_TYPE,
111
+ eventListeners = this.findEventListeners(eventType);
112
+
113
+ forEach(eventListeners, (eventListener, next) => {
114
+ const { handler, element } = eventListener,
115
+ pathChangeHandler = handler; ///
116
+
117
+ pathChangeHandler.call(element, path, (success) => {
118
+ notSuccess = !success;
119
+
120
+ next();
121
+ });
122
+ }, done);
123
+ }
124
+
125
+ const eventMixins = {
126
+ onMove,
127
+ offMove,
128
+ onOpen,
129
+ offOpen,
130
+ onSelect,
131
+ offSelect,
132
+ onPathChange,
133
+ offPathChange,
134
+ callOpenHandlers,
135
+ callSelectHandlers,
136
+ callMoveHandlersAsync,
137
+ callPathChangeHandlersAsync
138
+ };
139
+
140
+ export default eventMixins;
package/src/styles.js CHANGED
@@ -7,7 +7,6 @@ export const fileNameSVGHeight = "2rem";
7
7
  export const rubbishBinSVGHeight = "4rem";
8
8
  export const markerSVGMarginLeft = "3rem";
9
9
  export const toggleSVGPaddingRight = "1rem";
10
- export const dragEntryItemFontSize = "1.2rem";
11
10
  export const entryItemDivMinHeight = "2rem";
12
11
  export const entriesListPaddingLeft = "2rem";
13
12
  export const entryItemDivPaddingTop = "1.25rem";